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.
What goes in
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.
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.
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.
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.
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.
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.
What spaces do and do not do
A mesh-route building never gets rooms. It records the deferral as a building-scoped assumption instead of reconstructing something unverifiable.
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.
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.
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.
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.
| 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.
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
RoadmapDWG files must be converted to DXF before Structura can read them.
Stubbed behind an interface today
-
PDF and raster ingestion
RoadmapVector PDF and scanned drawings both need an ingestion path that does not exist.
Explicit non-goal at this release
-
MEP and structural classes
RoadmapDucts, pipework, cable trays and structural framing have no representation in the model schema.
No detector, no writer support
-
Piping isometrics
RoadmapWould 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
RoadmapWould let a room enclose an island and still report a truthful net floor area.
Outer boundary only today
-
Boundary authoring and editing
RoadmapWould 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
RoadmapWould close the two classes the mesh route currently declines to reconstruct.
Reported as not graded today
-
Re-conversion of a revised sheet set
RoadmapWould 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
RoadmapRotated 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