How to make a cut list from a SketchUp model
Model every part as its own component, so identical parts share one definition and count together. Then run a cut list tool: the free OpenCutList extension is the best choice for most woodworkers, and SketchUp Pro's File › Generate Report can export a parts table as CSV.
How to model for an accurate cut list
Every cut list tool reads what is in the model, so the counts are only as good as the way you built it. The most common question on the SketchUp forum is some version of "how can I count how many of each piece I have to order?" The answer is almost always the same: make the parts components.
- One part, one component. Each board, panel or rail should be its own component, not loose geometry and not a piece of a larger solid.
- Identical parts share a definition. Make the first shelf a component, then copy it. Every copy is an instance of the same definition, so the list shows one line with a quantity of 4 instead of 4 lines.
- Groups count as unique. A group has no shared definition, so 12 identical rails modeled as groups come out as 12 separate parts. Convert them before you run the list.
- Name the components. "Side panel" and "Face frame stile" read better on a shop list than "Component#14". See renaming components if you have many to fix.
- Paint the part, not the faces. Apply the material (say, white oak or 3/4" birch ply) to the component itself so the tools can sort by material.
If a copy needs to be a different length, right-click it and choose Make Unique before you stretch it. Otherwise you resize every copy. Lookover has a longer guide on groups vs components, including how to convert a pile of identical groups.
Length, width and thickness: orient your parts
A part's size comes from its bounding box. Whether the 30" side reads as length or width depends on the tool and on the component's axes.
OpenCutList can work it out from the shape (longest side is length, shortest is thickness) or read the red, green and blue axes, and you can switch per part. SketchUp's own Generate Report has no such logic, so if you use it, set the axes the same way on every part: for example red along the grain, blue through the thickness.
To fix a component's axes, right-click it and choose Change Axes, then click the new origin, the red direction and the green direction. When you make a new component, the Set Component Axes button in the dialog does the same thing.
Also watch for scaled instances. If you stretched a component with the Scale tool, the definition is still the original size and some tools read the wrong number. Make Unique before scaling a single part, or rebuild it at the right size.
OpenCutList: the free SketchUp cut list extension
For most woodworkers this is the tool to use. OpenCutList is a free, open source extension (GPLv3, funded by donations through OpenCollective) available on the Extension Warehouse. It builds a parts list from your components and goes well past a plain list:
- Parts lists grouped by material and thickness, with quantities.
- Cutting diagrams for sheet goods and boards, so you can see how parts nest on a sheet of ply or a length of stock.
- Cost and weight estimates once you give materials a price and density.
- Printable labels and exploded views.
- Export of the list to a file (CSV among others) for a spreadsheet.
It treats materials by type (solid wood, sheet goods, dimensional lumber), in imperial or metric whatever your model units. Parts that share a component definition land on one line. Boards modeled as groups land on separate lines, which is the usual reason a list looks too long. If you have identical parts that ended up as separate definitions, its Group similar parts option merges them in the list.
Install it from the Extension Warehouse (Extensions › Extension Warehouse), then open it from the Extensions menu. The OpenCutList docs cover each tab in detail.
SketchUp's built-in option: Generate Report
SketchUp Pro and Studio include File › Generate Report. It builds a table from the attributes of the objects in your model and downloads it as a CSV. It is not in SketchUp Free (web) or SketchUp Go.
If the menu item is missing, open Extensions › Extension Manager (Window › Extension Manager before SketchUp 2021.1) and make sure Dynamic Components is enabled. Generate Report depends on it, and turning it back on restores the menu item.
- Select the parts you want, or nothing to report on the whole model.
- Choose File › Generate Report and create a new template.
- Choose whether to report on the whole model or the selection, and how deep into nested components to look.
- Drag attributes such as the definition name and size into Report Attributes. Drag the definition name into Group By so identical parts collapse into one row with a count.
- Click Run to preview, then download the CSV.
Save the template in the model or export it as a .grt file to reuse it on the next project. Generate Report is good for schedules and counts, but it does not draw cutting diagrams or work out board feet. That is where OpenCutList or a custom script comes in.
A custom cut list CSV with a Ruby script
If you want a format no tool gives you, a short script can write it. This one lists each component definition with its quantity and its three sizes sorted longest to shortest, and saves cutlist.csv to your Desktop. It only reads the model, so there is nothing to undo.
require "csv"
model = Sketchup.active_model
parts = model.definitions.select do |d|
!d.group? && !d.image? && d.count_used_instances > 0
end
path = File.join(Dir.home, "Desktop", "cutlist.csv")
CSV.open(path, "w") do |csv|
csv << ["Part", "Qty", "Length", "Width", "Thickness"]
parts.sort_by(&:name).each do |d|
b = d.bounds
t, w, l = [b.width, b.height, b.depth].map(&:to_f).sort
csv << [d.name, d.count_used_instances, l.to_l.to_s, w.to_l.to_s, t.to_l.to_s]
end
end
puts "Wrote #{parts.size} parts to #{path}"Paste it into Extensions › Developer › Ruby Console (SketchUp 2021.1 and newer; older versions have it under Window › Ruby Console). The Ruby script guide covers loading it as a file instead.
Two limits to know. It lists every component, so assemblies (a whole cabinet made into a component) show up next to their parts. And it reads the definition's size, so instances you stretched with the Scale tool report their original size. Add a filter on names or tags if your model needs it.
Ask an AI agent for the cut list you want
MakeIt4Me (our product) connects an AI agent on your computer (Claude, ChatGPT desktop, Cursor and others) to your open SketchUp model. It can read your components and materials and write a file to disk, so you can ask for the list in your own words:
"Make a cut list of every component, grouped by material and thickness, with board-foot totals for the solid wood. Write it to cutlist.csv on my Desktop."
The agent writes the Ruby, runs it in your model, reads any error and tries again. If a count looks wrong, it can tell you which parts are groups or stretched copies so you can fix the model first. Expect a round or two to get the format exactly right.
If you'll want the same list on every project, ask it to turn the script into a cut-list extension with a menu command and package it as an .rbz you can install or share. See making your own extension and how this compares to hiring a developer.
It doesn't replace OpenCutList's cutting diagrams. It's for the custom list or report that no extension produces quite the way your shop wants it.
Questions
Why does my cut list show every piece as a separate part?
The parts are groups, or copies that were made unique. Groups never share a definition, so each one is its own line. Turn the first one into a component, replace the others with copies of it, and the quantities add up.
Is Generate Report available in SketchUp Free or SketchUp Go?
No. It is part of desktop SketchUp Pro and Studio. Neither the web version nor Go runs extensions, so OpenCutList is not an option there either.
Can SketchUp calculate board feet?
Not natively. OpenCutList reports material quantities and cost for solid wood, and a script can compute board feet as thickness × width × length in inches, divided by 144.
Does OpenCutList cost anything?
No. It is free and open source. The developers fund each major release through donations on OpenCollective.