Appearance
Troubleshooting
Most of the time Fablnx doesn't fail — it waits. A tool is greyed out because something has to happen first, and the tooltip says what. This page collects every one of those, plus the refusals and messages you can hit while working.
Read the tooltip first
Every disabled control in Fablnx carries its own reason. Hover it and it tells you exactly what it's waiting for — the tables below are the same answers, gathered in one place.
"Why is this tool greyed out?"
The scene editor unlocks progressively. You set the grid up first, give it a scale, then place steel onto it — so you build in the order the drawing can actually support. Here is the whole chain.
The drawing tools (the left rail)
| Tool | Greyed out when | Tooltip you'll see | Fix |
|---|---|---|---|
| Dimension / Calibrate K | The scene has no grid lines | Draw grid lines first | Use Grid line G, or run Detect grid lines |
| Column C (plan) | No dimension recorded yet | Add a dimension (Calibrate) first | Record one bay with Dimension K |
| Member M (elevation) | No level line pinned yet | Pin a level first (Level tool, L) | Use Level line L and click a horizontal |
| Beam B / Brace X | No columns placed | Place columns first | Place or detect columns |
| Beam B / Brace X | Some column has no profile | Give every column a profile first | Give each column a section — or run Match profiles with Columns ticked |
The tooltip on screen is the tool's own label with the reason appended, e.g. Dimension — two grid lines + a distance — Draw grid lines first. The column above quotes the reason half.
Why beams wait for column profiles
A beam frames into columns. Until every column knows its section, the model can't say where the beam actually stops — so the sequence is deliberate rather than a limitation. It also means Match profiles (with Columns ticked) is worth running before you start drawing beams by hand.
The AI detect steps
Same chain, worded for the detectors:
| Step | Greyed out when | Tooltip you'll see |
|---|---|---|
| Detect grid lines | The scene isn't on a sheet region | Detect grid lines — place this scene on a sheet region first |
| Calibrate | No grid yet | Calibrate — detect the grid first |
| Detect columns | Not calibrated | Detect columns — calibrate first |
| Match profiles | No columns, beams or braces yet | Match profiles — detect columns, beams or braces first |
| Detect beams | No columns found yet | Detect beams — detect columns first |
| Fill from the model | See the next table | Fill from the model — … |
On an elevation only three of these exist: Detect grid lines & levels, Calibrate, and Fill from the model. The column and beam detectors read plans, so they aren't offered.
Fill from the model
Prefill needs two things: somewhere to put what it brings, and steel standing in Tekla to learn from.
| Greyed out when | Reason shown |
|---|---|
| Tekla isn't connected | Connect to Tekla first |
| A plan with no level set | Give this scene a level first |
| A plan, and no steel in the model at or below its level | Tekla holds nothing at or below this level to inherit from |
| An elevation, and an empty model | Push a sheet into Tekla first |
| The scene can't hold a member yet | The same reason the Column / Member tool is showing |
It reads Tekla, not your other sheets
Prefill used to read the project's other drawings too, so tracing a sheet was enough to unlock it. It reads the model now: another drawing is a reading of a drawing, and the building is what's standing in Tekla. So a job with nothing pushed prefills nothing — push a plan first — and a section you corrected by hand in Tekla is the one the next sheet inherits.
Why a plan only inherits from at-or-below
Column sections are scheduled on the lower plan, and a column comes up from the level beneath. Steel above yours has nothing to teach this one. Each intersection finds its own level below, too — so a split level (ROOF FRAMING PLAN – AREA B) inherits from what stands under Area B, not from Area A just because Area A happens to sit higher.
Other disabled controls
| Control | Waiting for | Tooltip |
|---|---|---|
| Create in the New scene dialog | A name — and, for a plan, a level | — |
| Add level in the Structure panel | A non-blank name and an elevation that reads as feet and inches | — |
| Push to Tekla on a scene | A validation pass that came back clean | Push to Tekla — validate clean first |
| Runs along (elevation inspector) | This sheet's own grid | Draw or detect a grid line on this sheet first. |
| Fill slope (plans only) | Two pinned, parallel lines that both have an elevation, and at least one unpinned parallel line left to fill | The reason appears as a hint under the button: Pin two lines to define the slope. / Set the Cut level, or give the pinned lines an elevation. / Pinned lines must be parallel — a slope runs one way. / Two pins sit on the same line. |
Fill slope is a plan tool
There is no Fill slope on an elevation. A sloped datum on an elevation is a slant line instead — see Tracing an elevation.
The prefill tooltip lowercases its reason
Fill from the model builds its tooltip by lowercasing whatever is blocking it, so you'll see things like Fill from the model — pin a level first (level tool, l). That trailing l is the key L.
Controls that don't do what they say
A few labels in the app currently promise more than the build delivers. These are known, and listed here so you don't lose time on them.
| Where | What it says | What actually happens |
|---|---|---|
| Scene editor, a level or slant line | Right-click → Delete | Reads Delete grid undefined and does nothing. Delete it from the inspector instead |
| Scene editor, a level line | Left-click with Select | Does not open its properties panel |
| Scene editor status bar | The levels count | Counts the project's levels, not the ones pinned on this sheet |
| 3D model status bar | M move · Del delete · Ctrl+Z undo | The 3D model is read-only. Edit members in their source scene, then revalidate and commit |
| 3D model status bar | The clash count | Never appears — clash reporting is not currently wired |
| Copilot panel | The Ask the copilot composer | Disabled — the app labels it coming soon |
"It refused to let me do that"
These are deliberate refusals, not bugs. Each one is protecting a rule the model depends on.
"A column is vertical"
You tried to draw a column between two different grid lines on an elevation. A diagonal between two lines is a brace, not a column. Use the brace answer when the editor asks.
"That describes something vertical"
You tried to put both work points of a slant line on the same grid line. A slope has to run between two lines; something vertical is a column.
A grid intersection already has a column
One column per intersection. Click one that's occupied and Fablnx tells you rather than stacking a second on top. Dragging a run across several intersections simply skips the occupied ones.
If validation later reports "4 columns stand at CO-8 × CO-M — a station takes one", that's a stack a detector or a prefill created, not something you could click. Delete all but the right one — and note you may be looking at the one on top while the problem is underneath it.
A slope won't delete
A beam runs along it. A rafter can't disappear out from under the framing that follows it. Move or delete those beams first.
Steel that merely sits at a height the slope passes through isn't carried by it and doesn't block the delete.
Prefill stopped and wrote nothing
Your elevation names several grid lines — ELEVATION ALONG GRIDS B, C, D, F, G, H & I — which asserts those frames are identical, and the committed building disagrees. Fablnx tells you exactly where: which member, at which grid and height, which of your grids have it and which don't.
Nothing is written on purpose: a half-filled elevation looks traced while quietly missing steel on some frames. Either narrow this scene's grid lines to the ones that genuinely match, or split the scene in two, then prefill again.
An elevation won't commit
An elevation that names no grid line fails validation with elevation_no_grid, so Push to Tekla stays disabled with its usual Push to Tekla — validate clean first tooltip. Set Runs along in the inspector — see Tracing an elevation.
"Where did my steel go?"
A member vanished after I deleted a level line
It's still there. Steel records its height, not the rule you read the height off — so removing a horizontal never costs you work. The member simply stops being drawn until something on the sheet states that height again. The member table still lists it.
Pin a level back at that height, or place an offset elevation there, and it reappears.
I redrew a rafter and the framing didn't follow
Same rule. A beam framed to a slope is recorded at that elevation, not attached to the slope. Redraw the rafter and the beam stays where you put it — so check the framing after you change a slope.
The 3D model is missing members I definitely drew
Look at World in the Structure panel. Anything the model can't place is listed by name with the reason — an undimensioned grid line, a member with no locatable anchor, a column drawn on only one plan. That list is a to-do, not an error log.
Also check the scene is actually committed: the world is the set of committed scenes.
My scene dropped out of the model on its own
You edited it. Editing a committed scene takes it back out of the world until you validate and commit again, so a sheet in the model is always exactly what it says on screen. The in-world badge clears on your first accepted edit.
That holds however the edit arrives — your own change, the same project open in another window, or a detection step writing to the sheet. There is no warning dialog; the badge clearing is the only signal.
Detection didn't find everything
This is expected, and the shape of what it misses is predictable.
| What happened | Why | What to do |
|---|---|---|
| A beam framing into the middle of a girder wasn't found | Every detected member is anchored to grid intersections; that beam has no crossing at its far end | Draw it yourself |
| Detection found detail ink as a column | Detect columns deliberately errs toward showing you too much, including shapes that appear once | Use Review detections and delete what doesn't belong |
| Columns have no section on an upper plan | The sheet genuinely never states one — sections are scheduled on the lower plan | Fill from the model |
| Nothing detects on an elevation except grid and calibrate | The column and beam detectors read plans; pointing one at an elevation would write plan-shaped rows | Trace it, or Fill from the model |
| A sheet shows no suggested regions | A very dense sheet — typically a scan traced back to vectors — can be too heavy to segment | Outline the region by hand |
Precision over recall
Fablnx is tuned to raise fewer false positives rather than catch absolutely everything. Reviewing and deleting a handful of extras is quick; finding steel that was silently invented is not.
Reading a schedule off the sheet didn't work
Boxing a schedule with a rectangle markup and clicking Read from a markup returns a proposal, never rows — so "didn't work" is usually the proposal saying something you can fix before adding it. See Read a schedule off the sheet.
| What you see | Why | What to do |
|---|---|---|
| Box the schedule on a sheet with a rectangle markup first | The markup you picked is a pin, which has no area to read | Draw a rectangle around the schedule |
| No text inside that markup | The sheet is a scan — a picture with no text layer, and Fablnx does not OCR | Use a vector PDF of the sheet, or enter the marks by hand |
| Rows come back but the box covers only part of the schedule | The reader only sees what is inside the rectangle | Redraw the markup around the whole schedule, including its level rules and its locations row |
| A column's location cell is blank, showing no grid reference read | The cell said something neither the reader nor the model could read as a grid intersection | Type it in — the row is otherwise complete and can still be ticked |
| A piece says top is not on a level | The drawn line stops at a height no level on the sheet names, which is true of a post that stops where its wall does | Name the level yourself, or leave the piece out |
| A piece says 2 sections written on this piece | Two sections straddle the line with nothing saying where it changes | Split it by hand, or pick the one that applies |
| A row has a coloured rule down its left edge | It was read by a language model because the drawing's own text did not parse, so nothing on the sheet vouches for it | Check it against the sheet, then tick it |
Nothing is saved until you click Add
Reading writes nothing. Every row is editable in place and only the ticked ones are added, so a proposal that came back half-right costs you the half you keep.
Validation questions I can't get rid of
There is no way to dismiss an RFI, by design. A finding answers itself the moment the underlying problem is gone, and reopens by itself if it comes back. An open question always blocks Push to Tekla, so what reaches the model is genuinely coordinated rather than waved through.
If a finding looks wrong:
- Click the row. It opens the scene and lights up exactly what it's about. A cross-sheet conflict names the grid line on both sheets, and you'll see the one in front of you.
- Check you're looking at the right member. Stacked columns are the classic case.
- Remember you can always revise your own sheet freely. You're only blocked when your sheet disagrees with what another committed sheet says.
Two things validation deliberately does NOT flag
A member the plan shows and the elevation doesn't. Leaving things off for clarity is normal draughting — real sheets say so in the title block, "STEEL ACCESS NOT SHOWN FOR CLARITY". Since nothing can be dismissed, a rule that fired on correct drawings would make commit unreachable.
A column on two levels with different sections. That's a splice — a correct, buildable drawing. Only two sheets disagreeing at the same level is a conflict.
Nothing is loading
- Check the connection. Fablnx is offline-aware and will tell you when it can't reach the server rather than leaving you guessing.
- You don't need to refresh. Every panel updates itself as work lands — there is no Refresh button anywhere in Fablnx, and its absence is deliberate. If a panel looks stale, it is far more likely waiting on a step you haven't run.
- One exception: the projects screen. It refreshes when the window regains focus rather than pushing live. Click away and back rather than reloading. See Projects & uploads.
- A save is in flight. Every edit saves automatically; a brief spinner appears while one is going out. There's nothing to click.
Still stuck?
- Look the word up in the Glossary — a surprising number of confusions are vocabulary.
- Replay the guided tutorial from the help menu (?) in the top-right corner.
- Walk Your first model end to end on the worked example.