Skip to content

Levels, grids & the building ​

The Files panel lists the drawings. The Structure panel lists the building — its levels, its grid, its column and beam schedules, the coordinated 3D model, and a running count of what is in the world so far.

Everything in this panel describes the committed building. A scene you are still tracing has not joined it yet: it appears the moment you commit it, and it drops out again the moment you edit it.

Open the Structure panel ​

  1. Click Structure (the layers icon) in the left sidebar.
  2. Pick one of the buttons. Each opens a tab in the editor area.

The building's own running state is the last button, World — it opens as a tab like the rest.

ButtonSub-hint on the buttonWhat it opens
LevelsElevation ladderThe level section — the one place levels are edited
Grids2D grid diagramThe grid plan, dimensioned
SchedulesColumn & beam marksThe mark schedules — every mark and the profile it stands for
Design connectionEvery beam end in the modelThe connections — the beam ends the open model holds, grouped, and the designer
Designed connectionsThe submittal, and PublishDesigned connections — the marks the job has designed, and where each end is published into the model
ModelCoordinated 3D modelThe coordinated 3D model
Model vs drawingsWhat disagrees, what is missingThe reconciliation — where the open model and your sheets do not agree
Fit-upTekla's clash check, explainedFit-up — what each clash means, in the language the connection was designed in

They all open as ordinary editor tabs, so you can drag them to split right or split down and keep the section beside the sheet you are tracing. None of the buttons is ever disabled.

Some of these need Tekla, and they say which half is missing

Design connection, Model vs drawings and Fit-up read the open Tekla model, not a stored copy of it. Outside Tekla Structures each one says so in plain words rather than showing an empty table that looks like a finished answer.

There are two halves to this — the model is on your machine and the drawings are on the server — and a screen that cannot run names the one it is waiting for. Off the network with Tekla open, Model vs drawings says the model is here and the drawings are not rather than showing a failure.

Nothing here needs refreshing

The panel and the 3D tab read the same solved world. Trace or delete a scene — in this window or another — and the counts, the section and the grid plan all re-solve themselves. Schedule edits travel the same way: a mark you add, retype or delete is there in every other open window at once. There is no Refresh button anywhere in this panel, and its absence is deliberate.

Read the level section ​

The Levels tab draws your levels as the section they are: a datum line for each one at its true height, tagged with its name, with the elevation on the right, and the story height dimensioned between each adjacent pair.

On the sheetWhat it means
A datum line with a name tagOne project level
The figure on the rightThat level's elevation
A dimension between two datumsThe story height between them
A chip on the rowThe committed plan that cuts this level, or N sheets
Eyebrow Section, count N levelsThe title block; the count adds · <ft-in> overall once two elevations differ
Stamp Level sectionN levels · M traced, and either Drawn to scale · Δ story height or One elevation — not to scale

Traced in the stamp means levels that have at least one committed plan cutting them.

With no levels yet the tab reads:

No levels yet.Add the first one below — a name off the drawings and its elevation, like TOS EL 42'-0". Every plan cuts one of these.

Open the plan that cuts a level ​

  1. Open Structure → Levels.
  2. Hover a level row. Its tooltip tells you what clicking will do.
  3. Click the row.
The row's tooltipWhat clicking does
Open <plan name>Exactly one committed plan cuts this level — it opens
N sheets draw this levelSeveral do — a card opens at your cursor, listing each one
No plan traced at this level yetNothing to open; the row is not clickable

The card lists every sheet under the heading Plans cutting this level, each row showing the scene's name, its type — Plan or Elevation — and its page as · p3. Click any row to open that scene. The card's footer says it plainly: Committed sheets only — a scene joins the building when it commits. Press Esc or click away to dismiss it.

Rename a level or change its elevation ​

  1. Click the level's name (its tooltip reads Click to rename).
  2. Type the new name.
  3. Press Enter, or click away, to commit it. Esc cancels.

The elevation works the same way — click the figure (Click to set the elevation), type, Enter. It accepts feet and inches (42'-6 1/2"), a bare number (read as feet), or an in / inch suffix.

A blank name and an unparseable elevation are both discarded silently — there is no error message; the old value simply stays.

Levels are edited here and nowhere else, and an edit reaches every scene at once.

Delete a level ​

Click the trash icon on the level's row (tooltip: Delete <level name>).

There is no confirmation

One click removes the level immediately. Nothing asks you first and there is no undo in this panel. A level is the default elevation for every grid line on every scene sitting on it, so deleting the wrong one is expensive — read the name on the trash tooltip before you click. A level that scenes still use is refused, and the readout under the Add level row says how many stand on it. A level that a schedule piece runs to — a column read off a schedule drawn as an elevation runs between two named levels — is refused the same way, and says how many rows. A level nothing uses goes at once.

Add a level ​

  1. Open Structure → Levels and find the Add level row under the drawing.
  2. Type the name — placeholder Name, e.g. TOS EL 42.
  3. Type the elevation — placeholder 42'-0".
  4. Click Add.

Watch the readout beside the fields as you type:

ReadoutMeaning
drawn in the section as you typeNothing entered yet
lands at <ft-in>The elevation parsed — this is where it will go
feet and inches, like 42'-6 1/2"The elevation did not parse
<name> already stands at <ft-in>. Edit that level instead.The project already has a level by that name

Add stays disabled until you have both a non-blank name and a readable elevation.

A level's name is unique within the project, and Level 03 and LEVEL 03 count as the same name. If the name is taken, the readout says which elevation it already stands at and your text stays in the box to be changed. The same readout carries a refused rename and a refused delete.

As soon as the elevation parses, the level is drawn into the section as a ghost, tagged New (tooltip Where this level lands), complete with its story-height dimensions — and if it is a new high or low point, the whole section rescales around it. The ghost is not clickable and has no trash icon; it becomes real when you click Add.

Move around the section ​

ActionControl
ZoomScroll — the level under the cursor stays put
PanLeft-drag vertically
Zoom in / out+ / − in the top bar (− is disabled at 100 %)
Back to the whole sectionFit
Highlight one levelType in Find a level

Zoom runs from 100 % to 2400 %, and the percentage is shown beside the buttons. Find a level matches the level name as you type; non-matching levels are dimmed, not removed, so you keep the section's shape.

A story-height figure can go missing

When two levels sit very close together — less than about 3.4 % of the section's height apart — the dimension line stays but its figure is not printed, to stop it colliding with its neighbours. Zoom in and the figure appears. The dimension is not missing; it is only too tight to letter at that zoom.

Read the grid plan ​

The Grids tab draws the building's grid the way a plan sheet draws it: centre lines in long-dash-short-dash, every label bubbled at both ends, and the spacing dimensioned between adjacent lines.

On the sheetWhat it means
A round bubbleA named line — one the drawings themselves name
A small flat tag, dimmedAn offset line — shown on the drawings but never named, labelled from its position, like CO-10+14'-11"
The dimension string with 45° slashesThe bays, ticked at every grid line
A dimension outside the bubblesThe overall — drawn only where a direction has more than two lines
Eyebrow Grid, count lineN grid lines, then · N offsets when any exist, then · N directions
Stamp Grid planN lines · M directions, Dimensions to grid centre lines, and, when offsets exist, Offset — shown but never named

With nothing committed yet the tab reads:

No grid in the building yet.Grid lines are read off the plans you commit, never typed. Trace a plan in the Build panel and its lines land here, dimensioned.

Why the plan is redrawn rather than plotted

The lines are not plotted from raw sheet coordinates. They are grouped into directions (families of parallel lines, within about 2.9° of each other), every line in a direction is redrawn to the same extent, the bubbles are pushed outside the steel at both ends, and the dimension string is laid between them. That is why the grid plan looks like a sheet and not like a scatter of segments, and why it reads the same however many scenes contributed to it.

Find every sheet that shows a grid line ​

  1. Open Structure → Grids.
  2. Hover the line. Its tooltip reads <label> — on N sheets.
  3. Click it.

The card that opens keeps two facts apart:

GroupWhat is in it
Drawn onCommitted plans that drew this line
Elevations along itCommitted elevations that run along it

Each row shows the scene name, a level chip for the level that plan cuts, the type — Plan or Elevation — and the page as · p7. A plan with no level set reads no level, styled as a problem rather than left blank. Click any row to open that scene. A line no committed sheet draws reads Nothing draws this line yet.

Pick a bay out of the dimension string ​

  1. Click a dimension figure.
  2. The bay it measures draws as a thick span with heavier ticks at both ends, the figure lights up, and both grid lines it measures between light up with it.
  3. Click the same figure again, or click empty space, to let go.

The figure's tooltip names what it measures: <label A> ↔ <label B> — <ft-in>.

Why some figures step out a row — and end in a dot

Where a bay is too tight to letter, its figure is pushed up a row rather than printed over its neighbours, and a thin leader runs back down to the bay it belongs to. That leader ends in a dot, deliberately — a tick on a dimension string means a grid line, so a stepped-out figure could never end in one without lying about the grid.

Move around the grid plan ​

ActionControl
ZoomScroll — the point under the cursor stays put
PanLeft-drag
Frame the whole planFit
Zoom in / out+ / −
Turn the dimensions offDimensions — lit by default
Highlight one labelType in Find a grid

Zooming magnifies the drawing itself — lines thicken and labels grow, as they would on paper you moved closer to — so a crowded run of offsets becomes readable by zooming in rather than staying the same thread however far you go.

Dimensions removes every dimension string, tick and figure, leaving the lines and their bubbles. Find a grid matches the label as a substring and highlights the matches; nothing is hidden or dimmed.

Where grid lines come from ​

You never type a grid line. Lines are read off the plans you commit, so the grid plan fills in as the building does.

A label the drawings never tied to a dimension has nowhere to go, and is listed under the drawing:

Not placed: A · B · C — no dimension on the drawings ties these to the grid, so they have nowhere to go yet.

The fix is on the sheet, not in this panel: dimension the line to the rest of its grid in the scene, then revalidate and recommit.

Read the mark schedules ​

The Schedules tab is the project's mark → profile table — the column schedule and the beam schedule in one place. A mark is the label the drawings put on a member, C1 or B12; the profile is what that label stands for, W10X49 or HSS6X6X1/2.

This is the table detection reads as its vocabulary of marks. Whatever profile you enter against C1 is the profile every member tagged C1 is named with, on every sheet in the project. That is what the tab is for.

It is the vocabulary of marks, not of profiles: detection reads the full AISC shapes catalog alongside this table, so a sheet that writes W14X90 outright is matched whether or not any row here lists it. Filling the schedule in is what makes the short labels — C1, B12 — mean something.

On the sheetWhat it means
Eyebrow Schedule, count 4 columns · 2 beamsThe title block — both schedules are counted, whichever one is on screen
The Columns | Beams switch, top rightThe lit side is the schedule the table shows, and the kind the Add row will create
A ruled table, captioned Column schedule or Beam scheduleThe schedule itself: a Mark column and a Profile column
A trash icon at the end of a rowAppears on hover — deletes that mark
Stamp Column scheduleN marks, and Read by mark detection

Rows are sorted by mark in drawing order, so C2 comes before C10.

Find a mark appears above the table as soon as there is one row to search. It matches the mark or the profile as a substring, and non-matching rows are dimmed, not removed — the same convention as the Levels tab, so you keep the shape of the schedule while you look.

Flipping the Columns | Beams switch cancels any edit you have open and clears any message on screen.

With nothing scheduled for the kind on screen, the tab reads:

No columns scheduled yet.Add the first mark below — the label off the drawing, like C1, and the profile it stands for. Detection names members from this table.

The beam schedule says the same thing with No beams scheduled yet. and B12 as its example.

Edit a mark or its profile ​

  1. Click the row's mark. It becomes an input.
  2. Type the new mark.
  3. Press Enter, or click away, to commit it. Esc cancels.

Click the profile instead and you get a type-ahead rather than a plain box. Type any part of a designation and a dropdown filters as you go, listing prefix matches first, each suggestion showing the designation with its depth in inches and its weight in plf. ↑ and ↓ move the highlight, Enter or a click takes the highlighted one, and clicking away commits whatever is in the box. Esc closes the dropdown.

A blank value is discarded — the old value simply stays.

A profile the catalog has never heard of is still allowed

The dropdown is an aid, not a gate. The profile field is free text: type a designation the AISC shapes catalog does not carry and it is accepted exactly as you typed it. Drawings name profiles no catalog holds, and the schedule has to be able to say so.

Add a mark ​

  1. Open Structure → Schedules and set the switch to Columns or Beams — it decides which schedule you are adding to.
  2. Find the Add column (or Add beam) row under the table.
  3. Type the mark — placeholder Mark, e.g. C1, or B12 on the beam schedule.
  4. Type the profile — placeholder Profile, e.g. W10X49, with the same type-ahead as the table.
  5. Click Add.

Add stays disabled until both fields are non-blank.

Beside the fields a note spells out what you are about to do — names every column tagged C1 — rewritten with your mark as you type it, and falling back to the example while the field is empty.

A mark can only appear once ​

Two rows in the same schedule cannot carry the same mark. Try it — by adding a duplicate, or by renaming one mark onto another that already exists — and the server refuses. The refusal appears in place of the note beside the fields, in a warning tone:

C1 is already W10X49 in this project. Edit that row instead.

Nothing is overwritten quietly. The row you already have keeps its profile, and the add or the rename simply does not happen; the fix is the one the sentence names — edit the existing row.

Uniqueness is per schedule. A beam marked C1 and a column marked C1 are two rows in two different schedules and do not clash.

It is also per scope, and there are three. A row typed here belongs to the project and is what every sheet reads. A row read off a drawing belongs to that sheet — two sheets may spell the same mark differently, which is worth reporting rather than refusing. And a row added in a scene's own schedule panel belongs to that scene, and wins there over the project's row of the same mark: that is how you say B12 is a W21X44 on this sheet without changing the project's mind. So the same mark can appear once in each scope, and only two rows in the same scope are the clash the sentence above refuses.

Delete a mark ​

Hover the row and click the trash icon at its end (tooltip: Delete <mark>).

There is no confirmation

One click removes the mark immediately. Nothing asks you first and there is no undo in this panel. Detection reads this table as its vocabulary, so a mark you delete stops naming members on every sheet at once — read the mark on the trash tooltip before you click.

Read a schedule off the sheet ​

The drawing already carries the schedule. Rather than typing forty rows back in by hand, box it with a rectangle markup and let Fablnx read what is inside.

  1. Open the sheet that carries the schedule and draw a rectangle markup around it — see Markups. A pin will not do: it has no area to read.
  2. Open Structure → Schedules (or the schedule panel inside a scene) and click Read from a markup.
  3. Pick the sheet or mark from the box, then click Read.

Fablnx works out which of the two kinds of schedule is in the box from what the box contains — you never pick between them.

The schedule is drawn asWhat comes back
A printed table of marksA Mark and a Profile for every row it found
An elevation — a rule per level, a line per columnThe levels it rules, and every column standing between them: where it stands, the section it carries, and the level it runs from and to

Nothing is saved by reading. Every row arrives with a tick box, and only the ticked ones are added when you click Add. Rows the reader resolved cleanly are ticked for you; anything it could not resolve is shown unticked and dimmed, with the reason in place of the value, for you to fill in or leave out.

A column that does not stand on a grid intersection

A schedule drawn as an elevation says where each column stands, and a column that sits off the intersection carries its offset from each grid line — C(-25' - 2")-11(4' - 6") means grid C shifted 25'-2" and grid 11 shifted 4'-6". That is read and kept exactly as the sheet writes it, offsets and all, because a column 25 feet off grid C is not at C-11.

On an elevation schedule the levels come with the columns. Any level the sheet names that your project does not have yet is created with them, so you do not have to enter them first. A level your project already knows at a different height is refused by name rather than moved.

Rows a model read for you ​

Occasionally a sheet writes something the reader's own patterns do not cover. In that case Fablnx asks a language model to read only those cells — never a row it already read off the drawing — and a line above the table says so:

2 of 3 the drawing's text did not resolve were read by openrouter. Those are left unticked — check them against the sheet.

Those rows carry a coloured rule down their left edge and are never ticked for you, however complete they look. They are the one value on the row that nothing in the drawing vouches for, so the tick is yours to give after you have compared it with the sheet.

A schedule that reads cleanly never involves a model at all, and you will see none of this.

Open the coordinated 3D model ​

Click Model. This is the only way into the coordinated 3D model — there is no button for it in the Build panel and none in the scene editor.

Open the World ​

World is the last row of the Structure panel, and it opens as a tab in the centre, like every other view there. Split it beside a sheet, reorder it, close it — it behaves like any tab, and there is no separate panel to remember the state of.

It carries three things, in order: the running state of the building, whatever you have selected in Tekla, and Tekla's own reports. They describe the world — the model as it stands — rather than the drawings, which is why they open together as one view rather than as three more rows of the Structure panel. Two of the three read the open model and have little to say in a browser.

The World summary ​

At the top of the view, the World summary is the running state of the building.

TileCount
grid linesGrid lines in the Tekla model
membersSteel in the model, split into what Fablnx wrote and what you drew yourself

A small spinner appears beside the tiles while the model is re-read. While the model is empty, one hint sits under the tiles:

Open a scene, Validate, then Push to Tekla — the building grows one sheet at a time.

If the model cannot be read, the panel says so, or Couldn’t read the world model when there isn't one.

Fix what the world can't place ​

When anything is stuck, a caption reads Can’t place yet with a count, and everything stuck is listed underneath. The list scrolls — nothing is truncated, so the last row is as reachable as the first.

Grid labels with no dimension path are reported first:

CO-P · CO-Q have no dimension path — dimension them to the rest of the grid and recommit.

The sentence agrees with the count: a single stuck label reads has … dimension it to the rest of the grid.

Members are listed one per row: the kind, its grid location — labels joined with ×, and multiple stations joined with → — the level, and then the reason. A row reads like Column · CO-0.4 × CO-P · Roof. A member whose ends are off the grid entirely has no location to print, so only its kind is shown.

These are the complete set of reasons a member can carry:

ReasonWhat to fix
it is not on a grid intersectionThe column's end is not anchored — snap it onto a crossing
its grid intersection could not be placedIts two labels do not resolve to a crossing; the grid itself is short a dimension
one of its ends sits at no elevation the sheet statesAn elevation-stated span has no height at one end — pin the level, or state the height
the sheet puts both its ends at one elevation, so it has no heightA stated span of zero height
one of its ends is not on a grid intersectionA beam or brace with fewer than two anchored ends
the grid it is anchored to could not be placedThe beam or brace's end labels do not resolve to a point
its two grid lines give it two different elevationsThe two lines disagree about the height at that point — reconcile them
the two plans put it at one elevation, so it has no heightTwo plans sighted the same column at the same height
it appears on only one plan, so nothing says how tall it isOne sighting and nothing above it — draw the column on the plan above, or state its span on an elevation
Why this list is not an error list

Every reason above is the world telling you what the drawings have not yet said. It is the honest half of the answer: the model places what it can and names what it cannot, rather than inventing a height or a position to make the count look better. Nothing here blocks anything — the blocking questions are validation findings, which stop a scene from committing in the first place.

One case is deliberately never reported: the topmost column sighting in a real shaft. Every building has a highest plan, and reporting it would be permanent noise.

In the current build the single-sighting reason is also narrower than it reads. It is only listed while nothing else in the model has already been listed as unplaced — once anything else is stuck, single-sighting columns stop being reported at all.

Where to go next ​

Design the connections your model needs ​

Design connection lists the beam ends in your open Tekla model. Not a catalog of what could exist somewhere — the connections this building has.

Braces are not beam ends. A push records on each member in Tekla whether it is a column, a beam, a horizontal brace or a vertical brace, and braces are left out of this list — their ends are gusset work, and no beam frames into a brace. Steel pushed before this was recorded is updated on your next push.

  1. Click Structure → Design connection. Every beam end the model holds, waiting to be designed. Designed connections is its own Structure button beside it, and it is what has been — so you can open both and split them side by side.
  2. The screen asks two questions, in order. Beam ends across the top is the kind of joint — the only kind today. Under it, where it frames: Column flange, Column web or Girder web, each with its count. There is no All — a beam end frames one way, and a mixed list is one you have to sort before you can read it.
  3. Each row is a typical — one detail and every end it serves. Open it to see the ends.
  4. Click Design on the typical you want. A typical that has already been designed says View / redesign instead, and opens on what it was designed with.
┌─────────────┐
│  Beam ends  │                                   ← the kind of joint
└─────────────┴──────────────────────────────────────────────────────
  (Column flange 12) (Column web 6) (Girder web 2)
                                                   ↑ where it frames

▼ W18X50 → W14X90              12 ends  2C  [View / redesign]
     B-12   start                             [Locate]
     B-14   start                             [Locate]
     B-15   end                               [Locate]
▶ W21X44 → W14X90               6 ends              [Design]
▶ W16X31 → W14X90 · 15° skew    2 ends              [Design]

Beam ends is a strip with one tab in it, on purpose. It is where a second kind of connection appears when there is one, and a heading that quietly turns into a tab later is a screen that moved under you.

You land on the first condition that has ends, not on a fixed one. A job with no column flanges opens on its column webs rather than on an empty table with the real work one click away.

Marks come from numbering

The name beside each end is its shipping mark, and Tekla only has one once numbering has run. Until then the ends are listed by their internal id and the table says so — run Drawings & reports → Numbering in Tekla and they come back with their marks.

Design is on the typical and Locate is on an end, and the difference is the whole point. A typical is a detail — you cannot point at it, and settling it is one decision that lands on twelve members. An end is one beam in the model, and Locate selects both members — the beam and what it frames into — and zooms to them, which frames the joint rather than the whole span.

Locate appears only inside the Tekla extension, since there is no model to point at in a browser. If it cannot find the steel it says so — "None of that steel is in the open model" usually means this project was pushed into a different model than the one you have open.

This needs Tekla open

The connections are read from the open model at the moment you look, not from a stored copy. Outside Tekla Structures the tab says so rather than showing an empty table — an empty table and a building with no connections look identical, and only one of them means there is something to draw.

You do not need to have pushed a sheet first. The ends are found from where the steel actually is, so a model somebody else built is read the same as one Fablnx wrote.

A typical is the unit of work

Same condition, same two sections, same skew and slope. Designing it designs the detail, and the detail lands on every end in it. You do not detail four hundred connections one at a time; you settle the details that repeat and deal with the handful that are exceptions.

The biggest typical sorts to the top, because the detail that lands on forty members is the one worth looking at first. A skewed or sloped one says so in its header — it is a different detail from the square one above it, and the sections alone would not tell them apart.

A header saying 2 held means somebody has corrected those members in Tekla. They are never overwritten, so a design opened against them is a proposal.

Each typical opens in its own tab, named for the detail it designs — Beam end · Column flange · W18X50 → W14X90 — so several can be open at once, split across panes, and told apart. There is no way back out of a designer, and none is needed: the list is a tab of its own and is still open.

Read the design ​

The designer opens on the two members and the condition your model states. Those are not offered for you to change — a connection designed for other sections is not the one in front of you.

The connection type is yours, and so is everything else: the plate, the bolts, the weld, the cope, the loads. The type it opens on is a conventional starting point, not a recommendation. Press Change beside it in Configuration to see the others:

2C  Double clip angle
    to a column flange              [Change]
    ├ 1C   Single clip angle
    ├ 2C   Double clip angle          ← on now
    ├ SP   Single plate, shear tab
    └ EP   Shear end plate
    Not detailed to this condition: Extended single plate.

Only what the condition can actually take is offered, and anything left out is named with the reason rather than greyed out or quietly missing — on an HSS column you get one option and four explanations, which is the catalog being honest about a genuinely awkward condition.

Switching type keeps the members, the loads and the cope — those are facts about this end, and they do not change because the detail did. Two things do move: the bolted/welded arrangement, because each type has its own (a double clip angle is detailed bolted/bolted; a shear tab never is), and the horizontal edge distance, because on a plate it is what decides whether you have a conventional shear tab or an extended one. Anything you typed for the previous type is still there if you switch back.

Press Design and every limit state that applies is run.

The verdict says one of four things, and they are genuinely different:

VerdictWhat it means
PassesEvery limit state was evaluated and satisfied
FailsThe connection can be built, and something it carries is overstressed
Cannot be builtNot a strength problem — the geometry leaves nowhere to put the detail
IncompleteA limit state it requires has not been built yet, so no pass can be claimed

Unrecognised

There is a fifth thing the pill can say, and you should not see it: Unrecognised means the engine answered with a verdict this version of Fablnx does not know.

It is not a verdict about your connection — it is Fablnx telling you it cannot read the answer. The design may well be fine, but nothing here can say so, so the connection cannot be added to a package until Fablnx is updated. Read the report, which is built by the engine, and update Fablnx.

Underneath are three tabs:

  • Checks — everything that ran, grouped the way an engineer reads a calculation: detailing and fit-up, then the support side, the connecting element, the beam web, the supporting member and structural integrity. Each shows what governed. Anything wanting attention is repeated at the top. A row badged NOT READ is the same thing one level down: the engine sent a check this version of Fablnx cannot present. It is deliberately neither green nor red, because it says nothing about the connection — the other rows are unaffected and the report has the full answer.
  • Not applicable — what this connection does not need, each with the geometric reason. Never "it passed": a check that did not run is a different answer from one that did.
  • Derived — the dimensions nobody typed. About half of what a connection looks like it asks for is reference data keyed on the sections and the grades, worked out once so no two checks can disagree about it.
  • Reads — every quantity this connection actually reads, and which limit states read each one. It is answered by planning the connection rather than designing it, so it is there whether or not the design has finished.

Report in the title bar opens the sealable calculation over the workspace — the whole document, with its working, its drawings and where each input came from. Close it with ✕, ← Back to the design, Esc, or a click outside it.

Print from inside it and you get the report and nothing else: not the designer behind it, not the toolbar. It carries its own styles, so it prints the same from any browser, and any browser will save it as a PDF.

A quantity read two ways shows both numbers

Some quantities are read by several checks and given a different value by each. The provided edge distance is one: 1.25 in measured to the element edge, 1.75 in measured through the beam web, and 3.0 in where the maximum is checked. The row shows all three rather than picking one, because a single number there would be a value two of the three checks never saw.

A ratio is printed in full

The bar stops at the end of its track; the number does not. 1.83 and 3.27 are different problems, and a bar pinned at the end cannot tell them apart.

One limit state stays absent ​

Out-of-plane plastification of an HSS wall is deliberately not built. The source it would be ported from is broken at exactly that check, so rather than guess at it, any design over an HSS wall reports Incomplete and names it. It can never report Passes until that is settled, which is the point.

See the fit-up ​

Beside the drawing is the connection in 3D, with an explode slider and no dimensions. It is for the thing an elevation cannot show: whether the angle clears the girder flange, whether there is room to swing a wrench inside a column, whether the cope is deep enough.

It draws every part or none

If the engine sends a solid this view cannot place, it draws nothing and says what is missing, rather than leaving that part out.

This is the one picture whose whole job is showing whether parts touch. A part silently missing from it does not make it a slightly worse picture — it makes it answer is there room here wrongly. The elevation and the checks do not come from this model and are unaffected.

Pick a view — Iso, Front, Top, Side — and drag Explode to pull the assembly apart. Each part travels the way it would actually come off: the member further than the ply it carries, the fastener further than both, and the weld least of all, because seeing it hang between the two parts it fills is the point.

Add it to the package ​

When the design says what you want, press Add to package and give it its mark.

The mark is the join between this package, the erection drawings and the shop drawings, so you type it — nothing generates it. A schedule that invents its own marks is one nobody can look a number up in, and Tekla's own numbering is not something Fablnx can read, so it cannot come off the model either.

One mark per detail, and one detail per mark. Adding the same typical twice renames it rather than making a second entry: two names for one detail is two rows in a schedule that has to be read as one, and the erector gets both.

Adding it is also what settles the design on the typical. The mark and the design travel together, because this is the moment you accepted it — so the project now knows what this detail is, and every end the typical serves can be published from it later. Nothing is written into the Tekla model yet; that is Publish, one end at a time, from the Designed connections tab.

Look at a design you already made ​

Open a typical that has been designed — View / redesign on its row, or View design on its mark in Designed connections — and it comes back as it was accepted: every value you chose in the boxes on the left, the drawing, the 3D, and every check with its governing ratio. Nothing is re-run. The engine gains checks over time and could answer differently today; what you see is the answer you approved.

A bar under the title says which detail it is, what shear it stands on, and which of three states you are looking at:

  • Settled — this is the design, and every value on the left is what it was designed with.
  • Edited since it was settled — something has changed. Press Redesign to run the checks against what is on the left, then add it to the package again.
  • Its values were not recorded — the design was settled before Fablnx stored what was typed, or by the copilot from a saved design nobody typed a form for. The boxes then hold your model's reading and the designer's own starting points, which is not the same thing as somebody's choices, so the bar says so rather than letting them look like decisions. Design it again to record them.

The Design button reads Redesign on a detail that has one.

And removing the mark takes the design back with it. The typical goes back to unsettled on Design connection, and its code disappears from the row. They move together because adding is what decided it: a detail taken out of the job is not still decided. Designing it again settles it again.

Designed connections ​

Designed connections is what the job has designed, gathered into the submittal it goes out in: who seals it, what the seal covers, and which marks are in it. Those three are what make a package a submittal rather than a pile of calculations.

Fill in the job, then the scope, then the engineer. The exclusions are prefilled — four lines that are true of every beam-end package — and they are editable, because an engineer who does not mean them has to change them, which is a better failure than one who never thought about them.

Reactions came from is blank on purpose. Reactions with no stated source is the commonest defect in a delegated package: a connection designed to a load nobody can trace is designed to nothing. Leaving it empty produces an objection rather than a plausible sentence.

Two buttons:

  • Design sheets — the typicals and the schedule, with no seal block. You want these long before anything is ready to seal, and a document carrying a seal block invites being treated as one.
  • Build submittal — the whole thing. A name, a licence number and a jurisdiction are what make a seal a seal; without all three you get the sheets and no seal.

Either one opens the document over the package, the same way the calculation opens over the designer. Close it with ✕, ← Back to the package, Esc, or a click outside it, and print from inside it to get the document and nothing else.

Every result is recalculated when the package is built. Nothing stores a ratio: a stored answer is a second copy of something the engine owns, and it goes stale the first time a check changes. So a submittal printed today says what the engine thinks today.

View design on a mark opens what it was sealed on, in a designer tab — the values, the drawing and the checks — so a submittal can be read beside the design behind it.

Detail an end into the model ​

Open a mark to see the ends it covers, and press Detail on one. Or press Detail all on the mark itself, which writes every end it covers.

One end at a time when a joint is in question, all of them when it is not. A mark with some ends detailed and some not is an ordinary state, and this screen is what shows you which is which. Detail all counts the ends it will write before you press it — Detail all 12 — and skips any end whose beam Fablnx did not create, because those are never written.

Detail all is one write, not twelve. The model is read once and every end goes in against that reading, so the last end is detailed against the same steel as the first, and you get one line at the bottom for the lot. Only one write runs at a time: while it is going, every Detail on the screen is disabled and says so.

The ends under a mark are read off the model each time you look, never stored. A mark you added on Tuesday covers the beam you drew into the same condition on Wednesday. If the model no longer has that detail at all — somebody re-sized a beam — the mark says not in the model rather than being cleaned up behind you.

One line says what happened. The line at the bottom counts it — Model updated — 79 created, 21 updated. 35 ends awaiting a connection design — and nothing opens after it.

An end whose typical you have not settled yet is counted on that line as ends awaiting a connection design: the steel is in the model on its work points, and designing the connection is the next step, not a failure of this one.

Detail is not a push

A push asks what a sheet says the building should be and moves steel to match. Detail does not touch steel at all — it changes only how a member meets what carries it. So you can detail connections on a model no sheet has been pushed to, and detailing one will never propose to re-place a beam you were not thinking about.

Steel you drew yourself is never written

A member Fablnx did not create is yours, and Detail leaves it alone rather than stamping it. If an end did not change, that is why.

The connection is built to the design, not to Tekla's defaults

A shear tab, an extended shear tab and a shear end plate are built by Fablnx placing the steel: the plate at its designed thickness and grade, the bolts at their designed diameter, standard, count and spacing, and the fillet at its designed leg. Every dimension the calculation stands on is the dimension in the model.

A clip angle is built by Tekla's own connection, because a rolled angle has a catalogue name and that connection can be told which angle to build. Measured on 2026-09-03 against a live model: the angle, its grade, the bolt standard, the diameter and the count all reach the steel. The bolt spacing does not — that component will not take one, so a clip angle is built at its own pitch. Check it on the first of a job.

A connection that cannot be told which angle to build — for instance one this cannot reach a bolt through — is refused with the reason rather than built approximately.

A design that could not be dimensioned is not built

If the engine cannot work a plated connection out, that end is left on its work points and named in the report. It is never given Tekla's own plate and Tekla's own spacing to stand in: a connection nobody designed is indistinguishable in the model from one somebody did, and it is the one that would be believed, because it is already there.

Compare the model with the drawings ​

Model vs drawings puts the open Tekla model beside everything your project's sheets claim, and lists what the two do not agree about. It is the check a checker makes by eye: Tekla knows what steel exists, Fablnx knows what the drawings say should, and neither can answer alone.

The bar counts the whole picture — 318 in the model · 306 drawn · 41 the detailer's own — and the findings sit under it in four groups, in the order they cost you:

GroupWhat is in it
Built differently from the drawingBoth sides have the member and describe it differently — a decision made twice. The row prints W16X31 drawn · W18X35 built
Drawn, and not in the modelA sheet states it and the model does not hold it: never pushed, or deleted since
You changed these, so we leave them aloneHeld from every push. You corrected them in Tekla, so Fablnx has stopped maintaining them — which is the point, and the one thing you have to be told
In the model, claimed by no drawingOurs, and no sheet calls for it any more. A push removes one of these only where the sheet being pushed actually looked — see what a push removes; nothing on this tab does

When the two agree the tab says so outright, with the count of members of ours that are all claimed by a sheet — and, beside it, the count of the detailer's own steel that was never ours to account for.

Your own steel is counted, never listed

Steel you modelled by hand carries no Fablnx stamp, so it is never a finding. A report that flagged every hand-modelled brace as unaccounted for is one nobody reads twice. It is counted in the bar so the totals add up, and that is all.

A profile that is missing on one side is not a disagreement — that would be an accusation built out of an absence — and neither is a difference of case or spacing.

Why a member is held ​

You changed these, so we leave them alone is the one group that does not read as a list. Each held member is a card, because being held is a decision with two ways out of it and held on its own tells you nothing you can act on.

A card says what the drawings state beside what the model now holds, and then what actually differs — one line each:

It saysWhat it means
SectionW16X26 drawn · W16X31 built — you re-profiled it
GradeThe steel grade on the object is not the one the notes resolved
MovedHow far a work point was carried, and at which end — 4.5 in at the start
RotationHow far a column was turned from the way the drawings show it
FramingAn end is connected to something other than what the drawing frames it into, or to nothing

Under that are the two things that would let go of it, and they are not the same thing:

  • Set it back in Tekla. Restore the member to what the drawings state and the mark Fablnx stamped on it matches again — so the next push resumes maintaining it, exactly as it did before.
  • Take the correction into the drawings. The disagreement is over, every later sheet proposes what you built, and a push has nothing left to write. The member stays held: nothing outside Tekla can clear the mark on a Tekla object.

When you have adopted a correction the card says so — Nothing differs any more — the drawings state what you built — which is how you know it landed.

Make one correction the rule ​

A card whose section differs offers one button:

Make W16X31 the answer for every beam the drawings call a W16X26 — 5 others

That is the same gesture as settling a connection on a typical, and the same kind of decision. If you corrected six beams by hand, you are not telling Fablnx about six beams — you are telling it the callout was read wrong, and the rule answers for every member of that condition across every sheet in the project.

Two things it will not do:

  • It never touches a member you named by hand. A section you set yourself is yours; a rule drawn from somebody else's correction does not overrule it.
  • It stays inside this project. What you correct here constrains later sheets of this building. Nothing is carried across to your next job.

Afterwards it says how many were restated — 5 beams restated W16X31 — rather than leaving you to compare two screens.

Corrections are picked up on the push

You do not have to come to this tab. Every push reads the open model, takes back anything you corrected in it, and reports how many members it restated. The drawing panels update as it happens.

Show me ​

Click a row and its steel is selected in the Tekla model. Click the row you are already on and Tekla frames it as well. Framing is a deliberate second gesture on purpose: a view that jumps every time a row is glanced at is hostile.

Paint in Tekla ​

Paint in Tekla colours every finding on the steel itself, using Tekla's own temporary colouring — so it looks like every other colouring you use and it clears the way you expect.

Findings are place facts. A bay full of steel no drawing accounts for reads as a patch of colour in one corner of the model, and no table makes a patch visible.

The colouring lives only while the toggle is on. Turn it off, or close the tab, and the model goes back to normal — a colouring that outlived its question would leave you reading last week's answer in this week's model.

Since I last looked ​

Since I last looked answers the other question: what has moved in this model while I was away. One sentence — Since you last looked: 3 added, 1 removed, 6 moved, 2 re-sized — or Nothing has changed in the model since you last looked.

The first time you ask there is nothing to compare against, so it answers Noted. Ask again after you have drawn something and this will say what moved. and remembers the model as it stands.

A member that both moved and changed size is counted in both figures: those are two edits, and hiding either hides an edit.

The "before" is this browser's, and it moves when you look

The snapshot it compares against is kept in this browser on this machine, and it is replaced each time you ask. So the answer is always since you last pressed this button, not since this morning, and a colleague on another machine gets their own answer. Clearing your browser data starts the count again.

Find out what a clash actually means ​

Tekla's clash check tells you two parts interfere. Fit-up tells you what that means: the shear plate on B-12 passes 3/8 in into the web of G-4 at C-4 — the design was solved against a W21X44 and the girder there is a W21X50.

That second half is the difference between nudging a plate and changing a design, and nothing else in the job can say it. Tekla never saw your drawings and never ran the connection calculation; Fablnx knows which member came from which sheet, what was designed for the end that fouls, and what the overlap does to it.

Press Check for clashes, and nothing else starts it. Not opening the tab, not opening a model, not pushing. The check walks every solid in your model, so it runs when you ask and at no other time. While it is going the bar counts up, and Stop keeps whatever has been found so far.

A run you start from Tekla's own clash check menu is picked up here too — the tab is listening, not just watching its own button.

The findings arrive in three groups:

GroupWhat is in it
What the clash meansBoth parts are ours, they are a beam end and what it frames into, and you have settled a connection on that typical. Each row is a sentence, with the designed and the built sections underneath it
As Tekla reported itOurs, and nothing could be added — no connection settled on that typical yet, not a beam end and its support, or a reason Tekla itself could not resolve. Printed exactly as Tekla printed it
Your own steelNeither part carries a Fablnx stamp, so Fablnx has no account of either and never touched them. Listed because you want to see it

Click a row to select the member in Tekla; click it again to zoom to it. Paint in Tekla colours the findings on the model — red where the design has to change, amber where somebody has to decide. Your own steel is never coloured.

Why some findings are only quoted

Fablnx will not invent an explanation. A clash between two parts you modelled yourself is not ours to account for, and a reason Tekla reports as FAILEDSOLID is Tekla saying it could not decide. Both are shown, unchanged — a list that quietly held back the findings it had no sentence for would be a list you could not trust.

Very large runs

At most 500 findings come back at a time, and the bar says how many there really were — Tekla found 1200 clashes — the first 500 are below.

What Fablnx knows about what you selected in Tekla ​

Under the World summary, the World view carries a running answer about whatever is selected in the Tekla model. It replaces going somewhere to look something up, which is the daily cost this is aimed at.

With nothing selected it reads Select steel in Tekla to see what the drawings say about it. Outside Tekla it is not shown at all.

Select steel and it says:

LineWhat it tells you
N selectedWith the section beside it when they are all one, or 4 sections when they are not
The mark listUp to six pieces, each with its mark and profile. A piece that is not ours is tagged not ours
The drawingThe sheet itself, around the steel you selected
Drawn onWhat each sheet says about this steel — one line per drawing (see below)
Not oursHow many were modelled by hand. Fablnx never touches these
ConnectionThe detail settled on this steel: the code, the interaction ratio and the governing limit state
AssemblyA button, What is it made of?
AskWhat disagrees with the drawings here, and a button to raise it as an RFI

A set answers about the set. Detailing questions are almost never about one piece: fourteen beams selected want what do these have in common, not fourteen cards.

The Connection line is one line per typical, not per member. Two beams that share a typical share one decision, and printing it twice would say the decision was taken twice. This is the answer to where did this 3/8 plate come from — the model holds steel and no reasoning, and this is the reasoning.

Assembly is asked for rather than fetched. Reading an assembly is a walk through Tekla's own object tree, and doing it on every click would make selecting feel slow for a listing almost nobody wants at that moment. Click What is it made of? and you get the assembly mark, its part count, its bolt and weld counts, and every part with its own mark, profile and length — Tekla's own inquire, put beside the drawing that produced it and the design that sized it.

An assembly reads unnumbered until the model has been numbered, which is honest: an unnumbered part has no mark.

Show me the drawing ​

Above the lines, the panel shows the sheet that drew this member, cropped around its own linework and the callout that named its section — the one thing in this toolchain that can answer what does the drawing actually say here without you going to find the sheet. Tekla has the steel and never saw the drawings; a PDF viewer has the drawings and does not know which line is this beam.

The member's own lines are picked out in its kind colour and the callout that named its section in amber, with the rest of the sheet behind them so you can see where on the drawing you are.

A member several sheets draw gets a crop from each, side by side. That is the fastest way there is to see two drawings disagreeing about one piece of steel — the crops are beside each other with each sheet's name and the section it called it underneath.

It answers about one member and names which: a crop is a place, and fourteen of them is a page nobody reads. Select fourteen beams and you get the first one's drawing plus first of 14 selected; the Drawn on lines below still answer about the whole set.

It is drawn, not photographed

This is not a picture cut out of the PDF. Fablnx reads every line of every sheet into geometry when the file is uploaded, and the crop is those lines drawn again — which is why it follows your light or dark theme, stays sharp at any size, and can colour the steel the drawing itself drew.

Three things it can say instead of a drawing, and they mean different things:

  • opening the sheet… — the geometry is still loading.
  • This sheet states the section but does not draw the member — the sheet names the piece in a schedule or a note without any linework Fablnx traced to it.
  • This sheet's geometry would not open — something went wrong reading the page.

Why is this beam a W16X31? ​

Drawn on is the answer, in the drawings' own words. One line per sheet, and each line carries three things:

  • the sheet that states this member,
  • the section that sheet called it — the callout as it was read,
  • whether a detector read it off the drawing or somebody wrote it down.

A sheet naming a section the model does not hold is marked in red, because that disagreement is the reason anybody asked. Two sheets calling one column two different things both appear: nothing is merged into a single answer here, which is what makes a quarrel between drawings visible at all.

Up to six pieces get a line each. Beyond that it summarises — how many of the selection any sheet states, across how many sheets, and every section named between them — because fourteen beams selected is a question about the set.

If some of the selection is ours and no sheet accounts for it, the panel says so under the lines: 3 of ours that no sheet accounts for.

There is no confidence score

Fablnx records who named a section, not how confident a detector was — a member carries no confidence, and a number invented for the screen would be worse than the truth. read off the sheet means a detector matched the callout; named by hand means a person typed it.

Raise an RFI about the selected steel ​

Ask checks the selection against everything the drawings state and offers what it finds. Three things can be raised:

What it saysWhat it means
Two drawings give C-4 different sections: S2.1 calls it W12X65 and S3.1 calls it W12X50Two sheets contradict each other, and the model can only hold one of them
The drawings state W16X26 for B-7 and the model holds W16X31The steel in the model is not what the sheets say it should be
B-9 is in the model carrying a Fablnx stamp, and no sheet in the set accounts for itSteel Fablnx wrote that no drawing now calls for

Press Raise an RFI and it goes onto the RFI list with the sheets, the marks and a picture of the view you are looking at attached, and the sheet it names opens from the row.

You do not write the message. An RFI is what your firm sends an engineer, so Fablnx writes the sentence itself from the open model — what disagrees, what would settle it, and which sheets state the member. Raising the same thing twice reopens one row rather than making a second, and the row answers itself the moment the model and the drawings agree again.

Select several members and each gets its own RFI: which section governs for C-4 is not answered by an answer about C-9. The button says how many it will raise.

A member you corrected in Tekla is never asked about

If you re-sized a member in the model, Fablnx holds it and stops maintaining it — that is a decision you made, and asking the engineer to adjudicate it would be asking about something already settled. It shows under Model vs drawings as a hold instead.

The Tekla view goes with it ​

Raising an RFI from here takes Tekla's own snapshot of the view you are in and files it against the question. It shows under the row on the RFI list, and it is the difference between a paragraph about a section callout and a sentence with the bay in it.

Fablnx draws nothing. Tekla renders its own view — your filters, your representation, your camera — and that picture is what gets filed. There is nothing to set up and there are no settings to choose: it is taken on a white background at a size that survives being read on paper and in an email client, because that is where an RFI is read.

The picture is taken the moment you press the button, before the question is worked out against the model, so the bay in it is the one you were looking at rather than wherever you moved to while it thought.

Point at what you mean

The snapshot is of the active view — the one you last clicked in. Frame the steel you are asking about before you raise the question, and zoom in: a picture of the whole building tells the engineer nothing they could not already see.

If no view is active, Fablnx says so and the RFI is still raised — a question without its picture is better than no question.

Run one of Tekla's reports, over a scope only Fablnx can name ​

At the bottom of the World view sits Tekla's reports, over a scope only we can name. Like the selection panel, it is only shown inside the Tekla extension.

Fablnx does not write reports. Advance bills, part and assembly lists, bolt lists, weld lists and paint areas are Tekla's own templates. They have been argued into shape by the industry, your firm has probably customised its own, and a second set of numbers from us would disagree with the one your shop already trusts. So Fablnx runs Tekla's reports and produces none of its own.

What it adds is the two things Tekla cannot do, because Tekla never saw your drawings.

Pick the scope ​

ScopeWhat it covers
Everything drawn on S2-1Every member that sheet states, with the count beside it. One entry per sheet that actually states members
Every unsettled connectionEvery beam whose connection nobody has settled a detail on yet. Only offered with a model open

Scoping a report today means selecting the members by hand in the model, one at a time. This is the same list Fablnx already keeps to answer which sheet said so, so it is one click.

A sheet nobody has traced is not offered, so there is no way to run a report over nothing.

Pick the template ​

The list is the templates this model can actually run, read off Tekla's own search path and grouped by where each came from:

GroupWhere it comes from
This modelThe model folder and its attributes folder
This projectYour XS_PROJECT folder
Your firmYour XS_FIRM folder
TeklaThe templates that ship with your environment

Your firm's templates come first, because Tekla itself searches them ahead of the ones in the box — this is reading Tekla's own order, not a preference Fablnx invented. Many installations have no firm or project folder set at all, and that is normal: those groups simply do not appear.

Template names are Tekla's own, so they look exactly as they do in Tekla's report dialog — including the leading number your environment uses to sort them.

Run it ​

Click Run in Tekla. Fablnx selects the scope in the model, Tekla writes the report into the model's own Reports folder, and the panel tells you the file name.

The selection is left where it is. That is the answer to what did that report cover, in the model, in front of you — and it is exactly the selection you would otherwise have made by hand.

The file is named after the drawing ​

A report scoped to sheet S2-1 with the Advanced Bill template is filed as S2-1-advanced-bill.rpt, not report_003. A week later the file still says what it is and which sheet it covers.

Every run says when, and what has happened since ​

Under the button, each run lists its file name, the scope it covered, when it was run and how many members it named. A run that a later push has overtaken carries a warning: 3 pushes issued since.

What "stale" does and does not mean

It means Fablnx issued instructions to the model after the report was run. It does not mean the model changed — Fablnx never learns what Tekla actually holds, only what it asked for.

And it cannot see the other way a report goes out of date: if you edit the model by hand, no report will be marked stale. Re-run it if you have been working in Tekla.

A report Tekla refused is listed too, with the reason — usually a template name that is not on this model's search path. A refusal that vanished would look like a run that never happened.

Fablnx — the AI copilot for structural steel design & detailing. · Version: Unreleased