Skip to content

IFC structural models

The IFC structural analysis view in and out — what IFC2X3, IFC4 and IFC4X3 files bring, what an export carries, and what IFC cannot say.

Results & reports 7 min read

IFC is the format a structural engineer is most often handed. Tekla, Revit, Archicad, Allplan, AxisVM, SCIA Engineer, RFEM and FreeCAD all write it, and most of them can write the part of it that matters here: the structural analysis view, the nodes, members, surfaces, supports and loads that an analysis program works on. Elementarium reads that view and writes it back.

ImportExport
SchemasIFC2X3, IFC4, IFC4X3IFC4 ADD2 TC1
File.ifc (STEP text).ifc (STEP text)
UnitsWhatever the file declares, SI or imperialSI, declared explicitly
Up axisZ, as IFC defines itZ, with the project rotated if it is not Z-up
What it reads or writesThe structural analysis viewThe structural analysis view

The analysis view, not the building

An IFC file can hold two different models of the same structure. The physical model is what the architect and the detailer draw: IfcBeam, IfcColumn and IfcSlab, each a solid with a profile swept along a path. The structural analysis view is the engineer's idealisation of it: IfcStructuralPointConnection for nodes, IfcStructuralCurveMember and IfcStructuralSurfaceMember for the members and plates, with supports, releases, load cases and loads attached.

Elementarium imports the analysis view. A file that holds only the physical model is recognised and refused with a plain message rather than imported as an empty project. Deriving analysis members from solids is a decision about where the axis of a member is and which members connect, which is an engineering decision; it is not one the importer makes silently on your behalf.

Importing a file

File › Import › IFC model… reads the file, then shows what it found before anything changes: the project type it will become (2D or 3D, frame, truss or general), the counts of nodes, members, plates, load cases and loads, and a warning for everything it could not map. Nothing is written until you confirm.

The import replaces the content of the current project, in one undoable step. The project itself, its URL and the people it is shared with stay, the same contract as SAF and .elproj. To keep the current model as well, create a new project first.

What comes in

IFCBecomes
Point connections, with their boundary conditionsNodes, supports and springs
Curve members (PIN_JOINED_MEMBER, TENSION_MEMBER, CABLE …)Beams, or bars for the pin-jointed types
Axis on a curve memberThe member's local axes
Member–connection conditionsEnd releases, including release springs
IfcRelConnectsWithEccentricityMember eccentricity
Connections part-way along a memberInterior nodes
Surface members with inner boundsPlates with openings, with thickness and material
Curve connections along a member or plate edgeLine supports
USERDEFINED curve members named RigidLinkRigid arms
Profiles: I, rectangle, circle, hollow, L, U, T, arbitrary polylineSections
Mechanical material propertiesMaterials (E, G, ν, density, thermal expansion, strengths)
Load groups, load cases, load combinationsThe same, with their factors
Self-weight coefficients on a caseA self-weight case
Point, line, linearly varying, surface, graded surface, plate edge, temperature and displacement actionsThe matching loads
IfcGroup nestingGroups

A file meshed by its exporter, with one point connection per mesh corner, comes in as one plate, not hundreds: coincident connections merge, faces belonging to one surface member are merged back into a single outline, and the mesh is made again here.

Catalogue names are hints

A profile named IPE 300 or a material named S355 is matched against the library, but the name is never the whole answer:

  • a profile is taken from the catalogue only when every dimension the file states agrees with the catalogue's to 1 %; otherwise the file's own dimensions are used and the mismatch is reported;
  • a material is taken from the catalogue only when the file's E agrees to 5 %. An E so low it can only be a unit slip (below 10 MPa) is reported, and the catalogue grade used.

Where the file states nothing usable, the importer substitutes a default (IPE 200, S235) and says so in the warnings. Read them before you solve.

Units

The units are the file's own, read from the project's unit assignment, with SI prefixes, conversion-based units (inch, foot, pound-force, kip, ksi) and derived units. A file in kN and m that never declares a line-force unit is read with line loads in kN/m, composed from the base units it does declare, which is what every exporter we have seen assumes. Your project's display units are a separate setting and are not changed by the import; see Units.

Tolerated, and reported

Real exporters write files that are not quite valid, and the importer reads them anyway rather than failing on the first irregularity:

In the fileWhat happens
A curved or tapered memberImported straight, or with a constant section, with a warning
A different eccentricity at each endThe mean is used, with a warning
A support stated in a rotated coordinate systemRead in global axes, with a warning
A load over part of a member's lengthSkipped, with a warning
Area supports or elastic bedding under a surfaceSkipped, with a warning: there is no surface support yet
A membrane surface memberImported as a shell, which also carries bending
Supported connections no member reachesDropped, with a warning
Several analysis models in one fileAll imported together, with a warning
IFC2X3 stiffness written as −1, 0 or a huge numberBelow zero or ≥ 10⁹ is rigid, zero is free, anything between is a spring
Results (IfcStructuralResultGroup)Ignored: results are computed here

Exporting a model

File › Export › IFC structural model… shows the counts it will write and lists anything that cannot be carried before writing the file. The output is an IFC4 ADD2 TC1 structural analysis view in SI units, checked against IfcOpenShell.

Everything the model holds

Every feature the app models survives an IFC round trip. Where standard IFC has a word for it, it is written in standard IFC, so any program that reads the analysis view gets it: nodes, supports and springs, members with their axes, releases and eccentricities, plates and openings, line supports, rigid arms, groups, materials with their strengths, sections, load groups, cases and combinations, and every load type, including plate edge loads and graded surface loads.

What IFC has no word for travels in an Elementarium extension: one property set on the project, named Elementarium_* rather than Pset_* (which buildingSMART reserves), holding load panels, wind and snow generators, masses, analysis setups, design checks, exact section and material records, combination definitions and project settings. Another program ignores it and still gets the physics: a load panel arrives as the member loads it produces, and self-weight on selected members as explicit loads. When the file comes back to Elementarium, the extension restores the originals.

In the projectWritten as
Linear combinationAn IFC load combination, by factor
Envelope or code combinationOne IFC load combination per permutation, plus the definition in the extension
Self-weight on the whole modelSelf-weight coefficients on the case
Self-weight on selected elementsExplicit line and surface actions, restored as scoped self-weight on re-import
Load panelIts member loads in IFC; the panel itself in the extension
A project that is not Z-upRotated into IFC's Z-up exactly, rotated back on re-import

Drawings, comments, result probes and report configuration are not model data and are not written. The project file carries those.

GlobalIds stay put

Every entity imported from IFC remembers the GlobalId it arrived with, through edits and renames, and the export writes it back. The dialog says how many entities keep theirs. An entity created here gets a GlobalId derived from the project and its own id, so exporting the same model twice produces the same file, byte for byte, which keeps a diff between two issues meaningful.

IFC, SAF or the project file

You want toUse
Keep or hand over an Elementarium project exactly.elproj
Bring in the analysis model from a BIM or detailing toolIFC
Exchange with SCIA Engineer, RFEM or IDEA StatiCaSAF or IFC, whichever the other side prefers
Draw over an architect's planDXF

The road overpass example was written outside the studio as an IFC4 structural file and brought in through this importer, and it is a reasonable first file to inspect if you want to see what a clean import looks like.

Something wrong or unclear on this page? Tell us, and it gets corrected.