IFC to AVEVA E3D — a PML macro that builds native SCTN, PIPE and duct primitives
Convert IFC into an AVEVA E3D PML macro (.mac).
Convert an IFC model into an AVEVA E3D PML macro (.mac). Upload the IFC, choose the disciplines, and download a macro you run inside E3D with $M path/to/file.mac — which builds the model as NATIVE, EDITABLE E3D primitives: SCTN sections for steel, PIPE components for piping, and duct elements for HVAC.
This is not a mesh import. Every other route from IFC into a plant-design environment gets you reference geometry — something to look at and clash against, but not something to work on. A PML macro instead issues the commands that create real Dabacon objects, so a steel member arrives as an SCTN with a specification reference and an orientation angle you can edit, not as triangles. That is the difference between importing a picture of the structure and importing the structure.
When to reach for it: When you need to bring a structural-steel IFC into AVEVA E3D (or PDMS) as native, editable SCTN sections and PANE panels — not a reference-model import. Covers coordination, clash detection and downstream engineering work that requires real Dabacon elements.
What you get: A .mac PML macro that, when executed in E3D, builds a SITE / ZONE containing one native SCTN per beam/column/member and one PANE per plate. Each SCTN carries its SPREF catalogue reference, BANG rotation, and explicit JSTA/JEND joint points. Unmapped profiles either skip silently or emit a GBOX placeholder (toggleable). When you re-export a newer workspace version of the same model, BIMCamel emits a delta macro that uses in-place MODIFY commands so AVEVA's RefNo is preserved — Sikla / Hilti supports, hangers and cable-tray anchors stay connected. The config panel shows a live diff preview (+ added / − deleted / ~ modified, with how many will preserve RefNo) before you click Run. Every download includes a human-readable .log.txt audit trail listing every ADD / DELETE / MODIFY / REPLACE the run produced. Optional: stamp every emitted element with an :IFCGUID UDA so any PML script can resolve E3D elements back to the IFC GlobalId.
Example: Bring a multi-discipline IFC (steel + MEP) into E3D as native, editable SCTN / PIPE primitives for coordination and clash.
Three disciplines, each opt-in
Steel is on by default; piping and ducting are opt-in, and each writes into its own zone (ZONE-STEEL, ZONE-PIPING, ZONE-DUCTING by default, all renameable, under a site that defaults to IFC-MODEL). A run with no discipline selected is refused rather than producing an empty macro — a .mac that runs cleanly and creates nothing is a particularly expensive way to waste an afternoon in E3D.
- Structural steel → SCTN primitives, with beams, columns and bracing mapped onto catalogue profiles (IPE, HEA, HEB, UB, UC, RHS, CHS and the rest) via a profile map you can override per project.
- Piping → PIPE components with tubes, valves and fittings, and a pipe-spec map so DN sizes resolve against your own catalogue.
- Ducting → duct elements for HVAC runs.
- Plates → written as PANE by default, or as SCTN if your project's conventions expect sections.
The details that decide whether the macro is usable
Orientation is where IFC-to-E3D conversions normally fall apart, so the angle handling is explicit rather than assumed. You can flip the beta-angle sign and apply an offset in degrees to match your project's convention — and a supplied sign of zero is clamped to +1, because a literal zero would silently wipe every BANG in the macro and leave a structure of correctly-placed, wrongly-rotated members.
SPREF paths are validated before the macro is written, and format problems are reported as warnings rather than blocking the run — AVEVA catalogues genuinely do vary per project, so a path this tool doesn't recognise may still be right for yours. The point is that you learn about it here, not from a $M that fails halfway through in E3D.
Pick the target — E3D 3.x or E3D 2.1 — so the emitted syntax matches your installation. Optionally stamp each created element with its source IFC GlobalId as a UDA (IFCGUID by default, renameable), which is what makes the E3D model traceable back to the IFC element it came from on the next revision.
Revisions: a delta macro, not a rebuild
Rebuilding a whole SITE every time the IFC changes destroys any work done in E3D since the last import, which in practice means the second revision never gets imported at all. So the export tracks changes. Each run leaves a fingerprint of what it created; when you export a later version of the same model, it diffs against that fingerprint and emits a DELTA macro — only what was added, moved or removed.
Positions are compared with a 0.5 mm tolerance and angles with 0.1° by default, so floating-point noise in a re-export doesn't present itself as a thousand moved members. You can also point the diff at a specific "before" IFC you upload yourself, independent of the workspace version history, or force full or delta mode explicitly when you'd rather decide than let it choose.
How to convert IFC to an AVEVA E3D PML macro
- Upload your IFC file (structural-steel models only — IfcBeam, IfcColumn, IfcMember, IfcPlate)
- Open the config panel — the tool scans the file and lists every distinct steel profile (IPE, HEA, UB, RHS, CHS, …) it found
- Map each profile to its E3D catalogue SPREF path (click Autofill defaults for a /GENSEC/… starting point, then edit any path that doesn't match your project's catalogue)
- Optionally set the Site / Zone / element-name prefix and, if the B-angles come out rotated in E3D, dial in the sign or offset
- Pick the IfcPlate strategy — PANE (native panel + vertices + thickness, default) or SCTN (treat plates like beams, needs their profile in the mapping table)
- Click Run — each element is emitted as a native SCTN or PANE with JSTA / JEND joint points
- Download the .mac file, open it in E3D's command line and execute: $M path/to/file.mac
Under the hood
BIMCamel parses IFC files in the browser using the open-source web-ifc engine and renders models with @thatopen/components + three.js. Heavy operations (clean / optimise / validate / convert) run on disposable server-side workers using the same web-ifc stack plus our own .NET pipeline; results stream back to your browser as soon as they're ready. Uploads sit on our servers only as long as your tier's retention window allows and are never used to train AI.
Frequently asked questions
How do I get an IFC model into AVEVA E3D?
Convert it to a PML macro here, then run the macro in E3D with $M path/to/file.mac. The macro creates native primitives — SCTN for steel, PIPE components for piping, duct elements for HVAC — rather than importing a mesh.
Is the result editable, or just reference geometry?
Editable. The macro issues the E3D commands that create real Dabacon objects, so a steel member arrives as an SCTN with a specification reference and an orientation you can change. Mesh imports (STEP, DXF) give you reference geometry only.
Which disciplines are covered?
Structural steel (on by default), piping and ducting (both opt-in), each written into its own zone. Plates can be written as PANE or as SCTN depending on your project's conventions. A run with no discipline selected is refused rather than producing an empty macro.
My steel comes in rotated the wrong way — can I fix that?
Yes. Flip the beta-angle sign and apply an offset in degrees to match your project's convention. Note that a sign of zero is clamped to +1 on purpose: a literal zero would wipe every BANG and leave every member correctly placed but wrongly rotated.
Can I map profiles and pipe specs to my own catalogue?
Yes — supply a profile map for section names and a pipe-spec map for DN sizes, and they override the defaults. SPREF paths are validated before the macro is written and any format problems are reported as warnings, so you find out here rather than from a failing $M.
What happens when I export a new revision?
It emits a delta macro instead of rebuilding the site, so the work you've done in E3D since the last import survives. Changes are diffed against the previous export's fingerprint using a 0.5 mm position tolerance and 0.1° angle tolerance, so re-export noise isn't reported as movement. You can also diff against a "before" IFC you upload, or force full or delta mode.
Can I trace an E3D element back to its IFC element?
Yes — turn on IFC GUID stamping and each created element carries its source GlobalId as a UDA (named IFCGUID by default). That's what makes the next revision's diff meaningful and lets you look an element up in the original model.
Which IFC versions are supported?
IFC2x3 and IFC4 — the two schema versions exported by essentially every AEC authoring application. IFC4x3, the infrastructure schema, works too: it opens in the viewer, and validation, health reports, property-set editing and georeferencing all run on it. Tools that need geometry processing, such as clash detection and 3D export, aren't verified on IFC4x3 yet.
What's the maximum IFC file size?
Up to 25 MB as a guest, 100 MB with a free account, 500 MB on Pro, and 1 GB on Team. The caps are on upload size only — every tool itself is available on every tier.
What happens to my file after processing?
Your file is uploaded over HTTPS and processed on our servers. Guest uploads are stream-only — the working files are deleted as soon as your download finishes. Free accounts keep results for 7 days; Pro and Team keep saved models until you delete them. Files are never shared with third parties or used to train AI.
Is IFC to AVEVA E3D (PML) free?
Yes. IFC to AVEVA E3D (PML) is free to use — guests get 3 runs a day with 25 MB uploads, and a free account raises that to 10 runs a day with 100 MB uploads. No trial clock, no watermarks.
Does IFC to AVEVA E3D (PML) work on Revit or Navisworks files?
Not yet. It isn't offered for Revit or Navisworks files: it needs extruded steel and swept pipe geometry; converted models are meshes, so the macro would be empty. Export an IFC from Revit or Navisworks and use that instead.
Guides from the Learn library
- How to Export IFC to CAD Formats Without a Desktop Translator
- How to Get Navisworks Files (NWD/NWC) into an IFC Workflow