Appearance
Import & export (JSON / DXF / DWG / SpaceGass / SAF / IFC)
Already have a model elsewhere, or need to hand one off? Studio imports a range of formats from File ▸ Import (the I shortcut) - the right one is detected from the file - and exports to the same formats from File ▸ Export… (the E shortcut). Everything runs locally in your browser - no upload.
JSON (a Studio model)
The native format. Export JSON writes the full model - geometry, sections, loads, design inputs and the report title block; Import reads it straight back, so it round-trips exactly. This is the format to use for saving and re-opening your own work.
DXF (CAD geometry)
Bring a frame in from AutoCAD / Revit / LibreCAD. Studio reads LINE, 3DLINE and LWPOLYLINE entities as members, and 3DFACE quads as plate elements, and is $INSUNITS-aware (mm, cm, m, inch, foot - so a drawing in mm doesn't import 1000× too big). Each segment becomes a member, with endpoints merged into shared nodes.
You get geometry only - assign supports, loads and real sections, then solve. Any entity that can't be turned into a member (arcs, splines, blocks, old-style polylines) is counted and reported rather than silently dropped. Imported plates default to 10 mm - set the real thickness in the plate inspector.
Imported on its side?
CAD files vary in their up-axis convention (Studio is Y-up). If a model imports rotated, use View → Swap Y/Z axes for a one-click fix (undoable) - it swaps the whole model's Y and Z, including any loads and supports.
DWG (native)
Import a binary .dwg file directly - no conversion needed. A 2D drafting DWG (lines, polylines) comes in the same way as DXF above: geometry only, one member per segment.
A 3D-solid DWG (extruded members modelled as AutoCAD solids) is handled differently: Studio tessellates the solids for display and, where it can, also infers an analysis frame from them - a member (with a custom section taken from the solid's own cross-section) for each solid, plus fixed supports where a solid meets the ground. When no frame can be inferred, you still get the tessellated solids as a non-structural visual reference.
The tessellated mesh is display-only, not part of the model
Either way, the solids themselves are shown as a translucent mesh - a display underlay, not FE members, nodes or plates. The status bar's Mesh figure (triangle count, shown only while a DWG/OBJ import has this display geometry) is a count of that CAD tessellation, separate from the Members / Nodes / Plates counts. Don't read a non-zero Mesh count as structural content - check the Members/Nodes counts for what will actually solve.
SpaceGass (.SG)
Open a SpaceGass model directly. Studio decodes the .SG container and imports nodes, members, named sections (matched to the catalogue for real A/I/Z), supports, nodal + member/distributed loads, plates, and the load cases + factored combinations. The import log reports what came in (and how many section profiles matched the catalogue).
Notes:
- Members that reference a missing node are skipped (and reported in the log).
- Section names are matched to the catalogue (e.g.
460 UB 67.1→460UB67.1) for exact properties; unmatched profiles keep their name and need a section assigned before design. - SpaceGass and Studio both use Y as the vertical axis, so coordinates carry over directly. If a model ever imports rotated, that is the first thing to check.
SpaceGass text file (.txt)
The human-readable SPACE GASS Text File (v12xx) that SpaceGass exports - distinct from the binary .SG archive above. It is a complete model exchange: geometry, named sections (catalogue-matched), materials, supports, member loads, and the load cases + factored combinations. Import via File ▸ Import (the format is detected from the file header); export via File ▸ Export SpaceGass (.txt).
Notes:
- The format carries member line-loads only. Area / panel loads are resolved onto the members by the exporter, so a model with slab pressures still round-trips with equivalent member loads.
- To see every case at once, pick the All load cases entry in the load-case selector - it overlays all cases' loads in the 3D view.
- SpaceGass is Z-up and Studio is Y-up, so coordinates (and the restraint / release bits) are remapped on the way in, exactly as the DXF and
.SGimports do.
SAF (.xlsx)
SAF (Structural Analysis Format) is the open, Excel-based analytical exchange from SCIA / Nemetschek - read natively by SCIA Engineer, Archicad, Allplan and RISA. A SAF file is a plain .xlsx workbook with one sheet per object type. Studio maps StructuralPointConnection (nodes), CurveMember (members), CrossSection, Material, the support sheet, and the load actions / cases / combinations. Import any SAF .xlsx via File ▸ Import; export via File ▸ Export SAF (.xlsx).
Notes:
- Same content set as the SpaceGass text export (geometry, sections, materials, supports, point + line loads, load cases + combinations), written Z-up.
- The
.xlsxis zipped in your browser - no upload, no spreadsheet app needed. - Real-file validation against an official SAF sample is still pending, so check a round-trip before relying on it for a critical exchange.
IFC (OpenBIM)
Import an IFC file - the open BIM interchange standard, so this works with models exported from Revit, ArchiCAD, Tekla, FreeCAD and Blender (Bonsai), not one vendor. Studio reads the structural frame: IfcBeam / IfcColumn / IfcMember centrelines (resolved through the placement chain and scaled by the file's length unit - Revit usually exports millimetres), their section profiles → sections (catalogue-matched where the profile name is known, otherwise parametric A/I from the profile dimensions), and the member names the BIM author gave them (shown in the model tree).
Notes:
- This is a geometry import - add supports and loads before solving. Slabs, walls and other non-frame BIM objects are ignored (counted in the log).
- A cranked / multi-segment member axis imports as several members sharing the kink nodes.
- Importing the IFC structural-analysis model (with supports and loads built in) is on the roadmap.
TIP
After any geometry import the model has no supports or loads, so the status-bar Model chip will flag the missing pieces. Add them, then Solve.
Import connections (IFC)
File ▸ Import connections (IFC) brings engineer-specified steel connections in from an IFC file and marks them as designed (rather than auto-generated), so a joint detailed in your BIM tool carries through to the connection schedule. Use it when the connections were authored elsewhere; otherwise let Studio auto-design them. Connections are an actively maturing area - check the imported joints before relying on them.
Exporting (File ▸ Export…)
File ▸ Export… (the E shortcut) opens one dialog with every output format. Pick one:
| Format | What you get | Use it for |
|---|---|---|
| JSON | The CivilKit native model - geometry, sections, loads, design inputs, title block | Saving / re-opening, sharing the exact model, version control |
| DXF | CAD wireframe (members + nodes on layers) | Drafting in AutoCAD / any CAD tool |
| DWG | Native AutoCAD wireframe (falls back to DXF where unsupported) | CAD workflows that need .dwg |
| IFC - structural | OpenBIM: members as IfcBeam / IfcColumn with real section profiles | Round-tripping to Revit / Tekla / ArchiCAD |
| IFC - all elements | The above plus imported slab / wall / footing context (IfcSlab / IfcWall) | A fuller BIM hand-off (shown when the model carries that context) |
| Connections (IFC) | The connections + fabrication take-off | Handing joints to estimators / detailers |
| SpaceGass (.txt) | A SpaceGass structural text model | Moving the model into SpaceGass |
| SAF (.xlsx) | The Nemetschek Structural Analysis Format spreadsheet | SCIA / Allplan / Archicad / RISA |
Round-trip
JSON is the only loss-free round-trip (it preserves design inputs + the title block). The CAD and BIM formats carry geometry (and, for IFC, sections) - re-importing them rebuilds the frame, not your loads or design settings.