Getting a takeoff into Tekla PowerFab or STRUMIS comes down to one file: a clean CSV (or Excel sheet) with one row per piece — section designation, quantity, length, and weight. PowerFab consumes it through the estimating import or an ABM-style bill of material; STRUMIS takes it through the BOM import in Estimating or Contracts. Neither system cares what produced the file. What they punish is dirty data: inconsistent section names, missing lengths, and phantom quantities.
That last part is where most imports go sideways. The MRP is only as good as the takeoff you feed it, so the real work is producing an accurate piece list before you ever open the import dialog. (Choosing that upstream tool is its own decision — see top platforms for estimating shop drawings.)
Where Takeoff Ends and MRP Begins
Draw the line clearly — blurring it causes double-entry and version chaos:
| Stage | Tool | Owns | |---|---|---| | Takeoff | SteelFlo, Bluebeam, highlighters | What steel is on the drawings: sections, counts, lengths | | Estimating | PowerFab Estimating / STRUMIS Estimating | Pricing, labor, waste, markup, the bid number | | Procurement & production | PowerFab / STRUMIS MRP | POs, nesting, inventory, tracking, the system of record |
The takeoff tool answers "how many W12X26s are on this job and how long are they." The MRP answers everything after that. If you find yourself re-counting members inside PowerFab, your takeoff failed upstream. If you find yourself tracking purchase orders in your takeoff spreadsheet, you're duplicating the MRP.
The handoff artifact between the two stages is a bill of materials: one row per piece or per line item, with enough fields for the MRP to price and procure against.
What Is an ABM and Why Does PowerFab Want One?
ABM stands for Advance Bill of Material. It's the early material list — issued before shop drawings are complete — that lets purchasing get mill orders placed while detailing is still in progress. On a 12-week mill lead time, waiting for final shop drawings before ordering main material can kill a schedule, so the ABM exists to commit the big tonnage early: main members by section and length, with grades, sequenced by area or phase.
Tekla PowerFab is built around this workflow. Its import tooling accepts bill-of-material files in several shapes — KISS files from detailing systems, and CSV/Excel with a column mapping you define once and save as a template. When you import, PowerFab matches each row's shape designation against its section database, pulls the weight per foot, and extends the totals.
At estimating stage you usually don't have a detailer's ABM yet — that's the point. Your takeoff CSV plays the same role: it's the earliest structured material list on the job. Import it into PowerFab Estimating, price it, win the job, and the eventual detailing ABM reconciles against what you bid.
CSV Export From SteelFlo: Columns and PowerFab Mapping
SteelFlo's Cut List export produces one row per detected piece — not aggregated line items — which maps cleanly onto piece-based imports. The columns:
| SteelFlo CSV column | Contents | Maps to (PowerFab) | |---|---|---| | Member Type | Section designation, normalized (W10X15, HSS6X6X1/4) | Shape / Dimension | | Category | beam, hss, channel, angle, plate, pipe, cfs | Material type filter (informational) | | Piece # | Sequence within that member type | Piece count basis | | Page | Drawing sheet the piece was detected on | Reference / remarks | | Length (ft or m) | Measured length, or stock default for linear members | Length | | Source | measured / default / needs dimensions | Flag for review before import | | Weight (lbs/ft or kg/m) | Section weight rate from a 4,500+ section database across 6 standards | Usually let PowerFab recalculate | | Est. Weight | Length × rate | Cross-check against PowerFab's extension | | Review | verified / AI-trusted / unreviewed | Audit trail |
Three practical notes from running this import:
Let the MRP recalculate weight. Import shape and length, and let PowerFab extend weight from its own section database. If SteelFlo's Est. Weight column and PowerFab's calculated total disagree by more than rounding, something is wrong with a section name or a unit — that mismatch is a free error check, so don't throw it away by importing your weight column as gospel.
Filter the Source column first. Rows marked needs dimensions are plates and other non-linear items with no real length. Deal with those before import (see gotchas below). Rows marked default carry a stock length, not a measured one — fine for budget pricing, worth tightening for a hard bid.
Aggregate or don't, deliberately. PowerFab is happy with 14 rows of W12X26 at various lengths, and piece-level rows preserve page references. If your template wants aggregated line items, a two-minute pivot table collapses pieces into section + length groups before import.
How Do You Import Takeoff Data Into STRUMIS?
STRUMIS takes bills of material at both the Estimating and Contract stages, and the workhorse for takeoff data is the Excel/CSV BOM import. The flow:
- Prepare the sheet. One row per item: section, grade, quantity, length, and optionally a mark/reference. STRUMIS's import wizard lets you map your columns to its fields and save the mapping, so the SteelFlo CSV needs reshaping exactly once — after that it's the same three clicks per job.
- Match sections against the STRUMIS material database. This is the step that bites. STRUMIS validates every section name against its libraries (it carries AISC, British/European, Australian, and other national libraries). Unrecognized designations get flagged for manual resolution. Because SteelFlo normalizes detected labels against the same published standards — AISC, BS, EN, IS, AS/NZS, GB, and cold-formed SSMA — the designations arrive in catalog form rather than as raw OCR text, and match rates stay high.
- Assign grade and sequence. Takeoff data rarely carries grade (more on that below). Set defaults per material type in STRUMIS — A992 for wide flange, A500 for HSS, A36 for plate on a typical US job — and override the exceptions.
- Reconcile at contract stage. When the detailing BOM arrives later (KISS file or Tekla model link), STRUMIS can compare it against the estimate BOM. Variances between what you bid and what detailing produced are change-order evidence, not just noise.
STRUMIS also imports KISS files and NC/DSTV data directly from detailing systems — but those exist downstream, after detailing. At bid stage, the CSV import is the path.
Keeping Estimating Fast While the ERP Stays the System of Record
The failure mode to avoid: making the MRP the takeoff tool. PowerFab and STRUMIS both technically let you key in a bill of material line by line, and estimators who do it spend hours transcribing from PDF to import grid — manual counting with worse ergonomics.
The setup that works:
- Takeoff happens in a takeoff tool. SteelFlo's pipeline detects and boxes every member label on the drawing set, you verify the flagged items, and the combination of AI detection plus human verification runs at 95-99% accuracy. A drawing set that took a day of highlighter work produces a verified piece list in under an hour.
- The CSV is the contract between systems. Export once, import once. No retyping, no transposition errors, and the Review column tells anyone downstream which rows were individually verified.
- The MRP owns everything after import. Pricing, combining, purchasing, nesting, production tracking — all in PowerFab or STRUMIS. When the job revises, you run a fresh takeoff and diff the exports rather than editing the MRP's BOM by memory.
More detail on formats and downstream tools is in the integrations and export overview.
Common Mapping Gotchas: Grades, Lengths, Piece Marks
Grades. Structural drawings specify grade in general notes, not on each member callout, so no takeoff export carries per-piece grade. Both PowerFab and STRUMIS want grade to price material. Fix: set grade defaults per material type in the MRP and adjust the exceptions (weathering steel, Gr 50 plate) manually. Don't invent a grade column in the CSV — a wrong default that looks authoritative is worse than a blank.
Lengths. Measured lengths import as-is. Default lengths (stock assumptions on unmeasured linear members) are fine for budget numbers, and the Source column flags them for you. Plates export with a blank length rather than a fictional stock value — a plate priced as 20 ft of "length" is how estimates quietly gain tons — so plate items need width × length × thickness in the MRP or a lump allowance.
Piece marks. Takeoffs don't have them. Marks (B-101, C-3) are assigned by the detailer months after the bid. Leave the mark field empty at import or use a takeoff reference (page + piece number); when the real ABM lands at contract stage, marks come with it. Forcing fake marks at estimating stage only creates collisions later.
Section naming. The classic import killer: W10x15 vs W10X15, HSS walls as fractions vs decimals (HSS6X6X1/4 vs HSS6X6X.250), UK sections written three different ways on the same sheet. Every unmatched name is a manual fix in the import wizard. Normalized, catalog-form designations out of the takeoff tool are what keep an import at zero exceptions instead of forty.
FAQ
How do I handle drawing revisions after I've already imported the takeoff?
Don't edit the imported BOM from memory. Run a new takeoff on the revised set, export, and diff the two CSVs (sort by Member Type + Length; any spreadsheet does this in minutes). Import the delta as a revision in PowerFab or a BOM revision in STRUMIS. The two dated CSVs are also your paper trail when the GC asks what changed between Rev B and Rev C.
Do connection materials come through the export?
Detected connection hardware exports as separate line-item rows below the main member list — bolt counts, plate callouts where the drawings show them. Treat these as a starting checklist, not a complete connection bill: full connection material lives in the detailer's ABM. Most estimators price connections as a percentage or per-ton allowance at bid stage and reconcile at detailing.
How do plate items import if they have no length?
They export with a blank length and a needs dimensions flag rather than a fake stock length. Options: enter plate dimensions in the MRP where plate items are priced by area and thickness anyway; carry plate as a weight allowance at bid stage; or measure the governing plates on the drawings and leave the rest as allowance. The one wrong answer is letting a default length ride into the bid.
Does the MRP need the takeoff tool's weights?
No — and it's better if it recalculates. PowerFab and STRUMIS both extend weight from their own section libraries. Use the takeoff export's weight column as an independent cross-check: if the totals disagree beyond rounding, hunt for the mismatched section name before you trust either number.
The fastest path to seeing how this fits your shop is to run it on a real job. Upload a drawing set to SteelFlo, verify the detected members, and export the BOM — then import that CSV straight into PowerFab or STRUMIS. The first 3 takeoffs are free, so you can test the full drawing-to-MRP handoff before spending anything.