Skip to content
Structura v0.6.0 · FR-W5

What Structura will not convert

A conversion tool that quietly does its best with a file it cannot read produces a model someone has to discover is wrong. Structura draws the boundary in public and refuses at the edge, with a typed reason. This page is the boundary — the input contract, the vocabulary, the drawing conventions the accuracy was measured against, and the things labelled roadmap because they do not exist at the release named in the footer.

DXF only At most 15 storeys At most 50 sheets Architecture only
Input contract

What goes in

Accepted

DXF, two shapes of it.

Vector plan sheets plus elevation sheets, or a single DXF carrying the building as a 3D mesh export. Nothing else is read, and the file type is enforced on the server, not only in the browser.

Refused

DWG, PDF, and anything scanned.

Native DWG is not read — converting DWG ingestion sits behind an interface and is roadmap. Raster and scanned drawings are out of scope entirely: there is no image pipeline, so a scan is not a slow conversion, it is no conversion.

Caps

15 storeys, 50 sheets.

Enforced limits, not guidance: a set beyond them is blocked at upload rather than started and abandoned. One conversion runs at a time per building.

Vocabulary

8 architectural classes.

IfcWall · IfcDoor · IfcWindow · IfcColumn · IfcSlab · IfcStair · IfcRoof · IfcSpace. There is no MEP, no structural framing, no furniture or equipment — those classes do not exist anywhere in the pipeline, the detectors or the writer.

The honest beat

How it refuses a file

A prospect shared a piping isometric PDF. Structura refused it — no crash, no partial model, no building created — with a typed error carrying a code and a message, the same error convention the product uses everywhere else.

The response, quoted from the API contract
HTTP 422
{"code": "upload/not-dxf", "message": "Only .dxf files are accepted"}

The upload screen catches it first so nobody waits on a round trip; the same file posted straight at the API gets the same typed refusal. Rejection is enforced server-side either way.

Two independent boundaries excluded that file, and it is worth separating them. The first is the input contract: it was a PDF, so it was refused on file type before any geometry was read. The second would have stopped it even as DXF — a piping isometric describes a pipe route through space, and there is no pipe class in the model schema, the detectors or the IFC writer. That is not a confidence problem the reviewer could fix. It is a vocabulary the pipeline was never built to speak.

What Structura can do for a reader in that position: the buildings on an industrial site — control rooms, administration blocks, substations, pump houses — are architecture, and they convert from their own DXF plan and elevation sheets or from an as-built mesh, exactly like every other building on this site. The piping does not, and saying so early is cheaper for everyone than saying it after an invoice.

The principle
Every refusal is typed: a code and a message, chosen from a list, never a stack trace and never a silent drop. A file Structura cannot read costs a reader one clear sentence, not a model they have to audit to discover is wrong.
Rooms

What spaces do and do not do

Plans route only

A mesh-route building never gets rooms. It records the deferral as a building-scoped assumption instead of reconstructing something unverifiable.

Outer boundary only

A column or a closed interior island inside a room does not carve a hole in its boundary. When that happens the room records it as an assumption, and its net floor area quantity is omitted from the IFC rather than silently overstated.

No boundary editing

A room’s shape comes only from the walls that closed it. A reviewer can rename a room, reclassify it or reject it, but cannot redraw its boundary in the browser.

Mesh route

What a mesh export gives up

The mesh route reads a building that was modelled in 3D rather than drawn in 2D. It recovers the envelope well and the detail poorly, and it says which is which: every item below arrives as a recorded assumption or a review flag on the conversion, never as a silent absence.

  • No columns, no stairs

    Neither class is reconstructed from a mesh at all. The accuracy page reports both as not graded on this route rather than scoring them.

  • Openings under-recovered

    Windows in third-party models are often painted onto a surface rather than modelled as a hole. What was never a hole cannot be found as one.

  • Roof-top plant is not modelled

    Masts, plant enclosures and similar structures are outside the architectural vocabulary, so they are dropped rather than approximated as walls.

  • One-sided walls are assumed

    A wall the mesh shows from one face only has no measurable thickness. Structura applies a default, drops the confidence and flags it for review, with the assumption recorded against that element.

Sensitivity

The drawing conventions the accuracy assumes

The published scores were measured on fixtures that follow the conventions below, because those are the conventions the 2D detectors were built against. A drawing set that differs is not necessarily a failure — but it is not covered by any number on the accuracy page, and finding out is what a trial is for.

For each element class, the drawing convention the 2D detectors expect and the kind of drawing that defeats them.
Reads Expects Defeated by
Walls Two parallel face lines on layer A-WALL, broken across every opening. A wall drawn as a single centreline polyline, as a hatched poché, or as an arc is not paired into a wall.
Doors and windows Block inserts on A-DOOR and A-GLAZ, sitting in a gap that appears in both wall faces. Openings drawn as loose linework, or blocks under other names, are not recognised as doors or windows.
Columns Circles on A-COLS. Rectangular or built-up columns on other layers are not detected.
Stairs A polyline run on A-FLOR-STRS, one line per tread across it, and an UP label. A stair drawn without the tread lines or the direction label is not reconstructed.
Rooms Room labels on A-AREA-IDEN, inside a boundary that walls actually close. A room the drawing leaves open at a threshold has no closed boundary, so no space is authored for it.
Sheet identity Titleblock text on A-ANNO-TEXT; the sheet number is the fallback when the title is unreadable. A non-standard titleblock forces the fallback, and a sheet whose number does not follow the plan or elevation pattern is classified by neither.
Annotation TEXT entities for labels and dimension text. MTEXT is not read at all: a plan whose labels are MTEXT reads as unlabelled.
Orientation Plans drawn axis-aligned, in millimetres or with the drawing units declared. Rotated plans are untested rather than known-good — the published accuracy says nothing about them.

The parser reads lines, circles, arcs, polylines, block inserts and text. Anything a drawing encodes some other way is invisible to it.

Named, not dated

Roadmap

Everything below is roadmap: it does not exist at the release named in the footer, it carries no date, and nothing elsewhere on this site counts it as shipped.

  • Native DWG ingestion

    Roadmap

    DWG files must be converted to DXF before Structura can read them.

    Stubbed behind an interface today

  • PDF and raster ingestion

    Roadmap

    Vector PDF and scanned drawings both need an ingestion path that does not exist.

    Explicit non-goal at this release

  • MEP and structural classes

    Roadmap

    Ducts, pipework, cable trays and structural framing have no representation in the model schema.

    No detector, no writer support

  • Piping isometrics

    Roadmap

    Would need pipe and fitting classes in the writer, an isometric sheet parser, and slope and elevation semantics the pipeline does not have.

    New classes plus a different parser

  • Interior holes in room boundaries

    Roadmap

    Would let a room enclose an island and still report a truthful net floor area.

    Outer boundary only today

  • Boundary authoring and editing

    Roadmap

    Would let a reviewer redraw a room or a wall footprint rather than reject it.

    Review edits dimensions, not shapes

  • Columns and stairs from a mesh

    Roadmap

    Would close the two classes the mesh route currently declines to reconstruct.

    Reported as not graded today

  • Re-conversion of a revised sheet set

    Roadmap

    Would let a revised drawing set be converted against an existing building so unchanged elements keep their identifiers across a revision, not only across a re-export.

    Versions and stable identity already exist

  • Rotated and non-standard drawings

    Roadmap

    Rotated plans, arcs used as walls and unfamiliar titleblocks need detector work and a published census before any claim is made about them.

    Untested rather than supported