Bill of materials from Revit, AutoCAD and Civil 3D: how to get it out of the model and how to automate it for purchasing
How to get a bill of materials from Revit, AutoCAD and Civil 3D, why it rarely works as is for purchasing, and how to automate it in your format.
Revit · AutoCAD · Civil 3D · Materials
Can you pull the bill of materials from the model automatically? Yes. And in the format your purchasing team uses.
What each program offers for counting and measuring, why that list rarely works as is for buying, and how to automate the rest. At the end, how we do it at Zeist.
The list that always gets built by hand
Before every order, someone opens the model, counts, measures, copies to Excel, groups, adds waste and moves it into the purchasing format. When the design changes, it starts over, and nobody is quite sure what changed since the last order.
Revit, AutoCAD and Civil 3D already know how to count and measure. What's missing is turning that into the list your company actually uses. This guide shows what each program offers and how to automate the rest.
From the model to the order
Models
Revit, AutoCAD, Civil 3D
Quantities
Count, measure, group
Your format
Codes, units, waste
Order
What changed since the last list
An automated bill of materials, in 7 steps
How it differs from a takeoff, what Revit, AutoCAD and Civil 3D offer, what no list does on its own, how to automate it and how we do it at Zeist.
- 01Basics
BOM or takeoff
Buying isn't the same as estimating
- 02Revit
In Revit
Schedules and material takeoffs
- 03AutoCAD
In AutoCAD
Data extraction and COUNT
- 04Civil 3D
In Civil 3D
Pipes, structures and pay items
- 05Limits
What's missing
Several sources, codes, waste and changes
- 06Automation
Dynamo or a plugin
Two ways to automate it
- 07Zeist
How we do it
A plugin with your purchasing format
Both come from the same model, but they answer different questions:
| Bill of materials | Quantity takeoff | |
|---|---|---|
| What it's for | Buying or fabricating | Estimating and paying for work |
| How it's grouped | By material, size and supplier code | By estimate line item |
| Units | Purchase units: sticks, sheets, bags, each | Item units: LF, SF, CY, lb |
| Waste | Added | Usually not |
That's why a quantity takeoff rarely works as a shopping list, or the other way around. We cover the takeoff in automated quantity takeoff.
Both are on the View tab, Create panel:
- Schedule/Quantities. Lists the elements of a category with the fields you pick: type, size, length, count. Clear the option to itemize every instance and it groups identical elements and counts them.
- Material Takeoff. Adds up the area and volume of each material in the layers: wall concrete, floor finishes, insulation.
Schedules support calculated values: a formula can add waste or turn feet into sticks. You have to set that up in every schedule and every project.
To get it into Excel, File › Export › Reports › Schedule writes a delimited text file that Excel opens. It doesn't produce a formatted Excel workbook: Dynamo or a plugin does that. We cover it in exporting Revit schedules to Excel.
The limit: each schedule looks at one model. If architecture, structure and MEP are separate models, that's three lists someone combines by hand.
In AutoCAD, the list comes from blocks: their names and attributes.
Data extraction (DATAEXTRACTION). A wizard that reads one or more drawings, picks the blocks and their properties or attributes, and puts the result in a table in the drawing or in an external file, such as Excel or CSV. The extraction is saved as a template you can rerun, and the table flags when the data has changed.
COUNT, since AutoCAD 2022. It counts the blocks in the drawing, flags duplicated or exploded ones and inserts a table with the counts. Since AutoCAD 2023 it can also count within an area. The table doesn't update on its own: you save or regenerate.
The list is only as good as the blocks. If a valve block has no code, diameter and pressure attributes, there's nothing to pull. And if someone exploded a block, it drops out of the count.
In water, sewer and storm networks, the parts are already objects with sizes:
- Pipe and structure tables. They list each pipe with diameter, material and length, and each manhole or inlet with its data.
- Pay items (QTO). On the Analyze tab, QTO Manager assigns codes to pipes and structures. Assign them in the parts list and every new part is tagged automatically. Then you generate a quantity report by pay item.
Set how length is measured, for example in 3D and between the inside faces of structures, and check the report against the objects: it doesn't always come out as expected.
What's missing: fittings such as bends, tees and reducers aren't always modeled, and the list doesn't know the stock length each pipe is bought in. We cover it in Civil 3D pipe networks and fittings.
All of the above counts and measures. A real order needs more:
- Several sources. Revit models by discipline, AutoCAD drawings and Civil 3D networks in one list.
- Your codes. Inventory or supplier codes aren't in the model, and every company uses its own.
- Stock lengths. Rebar, pipe sold by the stick, full sheets: purchases round up to what the supplier sells.
- Waste by material. It isn't the same for rebar, tile or cable.
- Purchase units. Feet to sticks, cubic yards to bags, pounds to bars.
- What changed. Compare against the last list and order only the difference.
With Dynamo, in Revit and Civil 3D. A script reads the elements and their parameters, groups them, applies formulas and writes an Excel file. It's quick to build and good for testing the rules. Plain AutoCAD, without Civil 3D, doesn't include Dynamo.
With a plugin. A button on the top toolbar that reads every model, assigns each element its code, applies the rules for stock lengths, waste and units, writes the list in your format and compares it with the previous one. It works in Revit, AutoCAD and Civil 3D, because all three have an API.
| Criterion | Plugin | Dynamo script |
|---|---|---|
| Time to a working tool | Weeks | Days |
| Revit, AutoCAD and Civil 3D | All three | Revit and Civil 3D |
| Several models in one pass | Yes | Possible, harder to maintain |
| Comparison with the last order | Yes | Needs extra logic |
| Best for | Every order | Testing the rules |
The full comparison is in Dynamo or C# for Civil 3D and Revit.
We build custom plugins for Revit, AutoCAD and Civil 3D. For the bill of materials, a typical plugin:
- Reads every source in the project: Revit models, AutoCAD drawings and Civil 3D networks.
- Assigns your code to each element through a lookup table your team maintains.
- Applies your rules: stock lengths, waste by material and purchase units.
- Writes the list in your Excel format, by discipline, work area or order.
- Compares it with the last list and flags what was added, removed or changed.
- Reports what it couldn't classify, such as an element without a code or an exploded block.
How we work:
- Diagnosis (1 week, free): we look at how you build the list today and write down the rules.
- Prototype (1 to 2 weeks): we validate the logic on one of your projects.
- Development (2 to 4 weeks): the plugin, tested on your own models.
- Installation: an installer for the whole firm, a button on the top toolbar, a manual and documentation.
- Support: updates with every new release of Revit, AutoCAD or Civil 3D.
The source code belongs to your company: the plugin is yours.
Related resources
- For the estimate: automated quantity takeoff, from the model to Excel.
- Revit and Excel: exporting Revit schedules to Excel and back.
- Networks: Civil 3D pipe networks and fittings.
- Rebar: a rebar plugin for Revit.
- For budgeting the work: how much a Revit or Civil 3D add-in costs.
- The add-in map: Revit and Civil 3D add-in development.
Frequently asked questions about bills of materials in Revit, AutoCAD and Civil 3D
Use a schedule, from the View tab's Create panel, that lists the category with its types and sizes without itemizing every instance, so identical elements are grouped and counted, or a material takeoff to add up areas and volumes by material. File › Export › Reports › Schedule writes delimited text that Excel opens.
Technical note: the options apply to Revit 2024, AutoCAD 2024 and Civil 3D 2024 and later; COUNT has existed since AutoCAD 2022.
Keep reading on this topic
Revit and Civil 3D Add-in Development: The Complete Guide (2026)
The complete guide to Revit and Civil 3D add-in development: what add-ins are, what to automate, C# and the Autodesk API, deployment and cost.
How to Build a Civil 3D Plugin with Claude Code Without Being a Programmer: End-to-End 2026 Guide
How to build a Civil 3D plugin with Claude Code without coding experience: architecture, prompts that work, and how to compile and deploy it.
Dynamo vs C# in Civil 3D and Revit: when to use each + automations that save hours
Dynamo or C# for automating Civil 3D and Revit: the real differences, when each one is worth it, and automations that save hours, with examples.
How much does a Revit or Civil 3D add-in cost? 2026 pricing and timeline guide
How much a Revit or Civil 3D add-in costs to build: what drives price and timeline, and how to calculate whether it pays for itself in hours saved.