In short: A steel material take-off (MTO) lists the quantity and weight of every steel section in a structure. You can get a first version directly from your STAAD.Pro model, but a take-off you can price and order from needs grouping, connection allowances and checks that the analysis model alone does not give you.

Ask any estimator what the first question about a steel structure is, and the answer is almost always the same: "How many tonnes?" The steel material take-off answers it. It drives the cost estimate, the procurement plan and often the decision between design options. Yet in many design offices it is still produced by hand: counting members, reading lengths and multiplying by unit weights in a spreadsheet.

This guide explains what a good steel MTO contains, how to get the numbers from STAAD.Pro, and where the analysis model falls short.

What a steel material take-off contains

At its simplest, an MTO is a table of:

  • Section designation, for example an ISMB or built-up I-section, an angle, a channel or a pipe.
  • Number of pieces.
  • Total length.
  • Unit weight in kg/m.
  • Total weight in kg or tonnes.

A more useful take-off also groups steel the way the project needs it: by building, by floor, by member type (columns, rafters, beams, bracing, purlins) or by fabrication package. Estimators want totals by section to price material; site teams want totals by zone to plan erection.

Getting the numbers from STAAD.Pro

Your analysis model already knows every member's length and section, so it is the natural starting point.

The built-in take-off. STAAD.Pro can produce a steel take-off report that lists total length and weight by section profile. It is quick, and for a first estimate it is often enough.

Exporting through OpenSTAAD. For anything more structured, read the model through OpenSTAAD: loop over the members, get each member's length and assigned section, and group the results the way you need them. With a small C# or Python script, you can produce a formatted Excel workbook grouped by section, by member group and by level in one go. Because it reads the live model, the take-off updates as soon as the design changes.

Either way, the core calculation is the same:

weight = length × unit weight (kg/m)

summed by whatever grouping you choose.

Where the analysis model falls short

An analysis model is built to predict behaviour, not to describe what gets fabricated. Several differences matter for a take-off:

Lengths are centre-line lengths. Members in the model run from node to node. Fabricated members are cut to fit between other members, so actual lengths differ slightly. For estimating this is usually acceptable; for ordering, the fabrication drawings rule.

Connections are not in the model. Base plates, end plates, stiffeners, gussets, cleats and bolts carry real weight. They do not appear as members in the analysis. Most offices add an allowance for connections, agreed with the fabricator and based on experience with similar structures, and show it as a separate line so it is visible.

Secondary steel may be missing. Purlins, girts, sag rods, cladding supports, stairs, handrails and platforms are often designed separately or not modelled at all. A complete take-off lists them separately, with their source noted.

Built-up and tapered sections need care. For pre-engineered buildings with tapered members, the weight comes from plate dimensions along the member, not from a standard rolled-section table. Make sure the method you use calculates tapered weights from the actual plate sizes.

Duplicates and dummy members. Analysis models sometimes contain members that do not exist in reality: very stiff links, members split at intermediate nodes, or members used only for load application. Exclude them, or the take-off overstates the steel.

Grouping that people can use

A take-off is only useful if the reader can act on it. A layout that works well for most projects:

  1. Summary sheet: total tonnage, and totals by member type (primary frames, secondary members, bracing, connections allowance).
  2. By section: pieces, length and weight for each profile, which is what the estimator prices and the purchaser orders.
  3. By group or level: for planning fabrication and erection packages.
  4. Assumptions: what is included, what allowances were added and what is excluded.

That last sheet saves arguments later. A number without its assumptions is the most common source of disputes between design, estimation and site.

Checks before you send it

  • Sanity-check the total against a rate per square metre of floor or roof area for similar structures you have done. A large difference is a prompt to look for a modelling issue, not proof of an error.
  • Spot-check three members by hand: length from the drawing, unit weight from the section table, weight multiplied out.
  • Confirm units. Model units in metres or millimetres, and unit weights in kg/m, mix easily.
  • Check the section list for anything unexpected, such as a placeholder section left in from an early design stage.

Keeping it current

The biggest problem with hand-made take-offs is not accuracy. It is that they go out of date the moment the design changes. Every revision means repeating the work, so take-offs are often not updated at all.

Generating the take-off from the model solves that. When the take-off is one click away, you can run it at every design iteration and see the effect of each change on tonnage. That is how design optimisation becomes routine rather than a one-off exercise.

Our MTO Generator does exactly this: it reads the STAAD.Pro model, groups the steel by section, member group or level, and writes a formatted Excel workbook. If you prefer to build your own, the OpenSTAAD approach above is a good first automation project.