Generating reports from your models

SketchUp Pro can generate tabular reports (fancy lists, basically) from the groups and components in your models. It's a simple operation, and provided you've set things up properly, it can save you a ton of time. Let's look at a pretty straightforward example: a picket fence.

I’m designing a simple wooden fence (SketchUp model) to encircle my yard. The fence is made from copies of three different components: Posts, Rails and Pickets. Here's what it looks like:

My pickets fence is made from instances of three components.

I need to know how much lumber to buy, so I use SketchUp Pro to generate a report (File > Generate Report...) in CSV format which I can open in any spreadsheet program. I use Google Docs so that my spreadsheet is online. Take a look at the resulting raw report in its entirety, or view the screenshot below:

A CSV-format report from SketchUp Pro, imported into Google Docs' spreadsheet tool. (Click to enlarge)


Looking closely at the report, you can see that each component gets its own row, and that each row contains a whole bunch of information contained in a number of columns. Each column represents a different attribute associated with the component; attributes are things like "Definition Name", "Layer" and "LenZ" (length in the Z, or blue, direction).

I'm only interested in using this report to figure out how much wood I need, so I delete all of the attribute columns except the following:

  • Definition Name: Tells me which component I'm looking at
  • LenX: Tells me the length along the X (red) axis of the component. This is important for my rails, which span horizontally.
  • LenZ: Tells me the length along the Z (blue) axis of the component. This is important for my posts and pickets, since it's their height that I'm interested in.
"LenZ" and "LenX" refer to lengths along the Z (blue) and X (red) axes, respectively.


Now my report is a lot easier to look at. To make is even clearer, I rename the columns. LenX becomes "Width" and LenZ becomes "Height". Lastly, I sort by the column "Definition Name" to group each component together. You can look at the complete, simplified report to see the whole thing. A screenshot is below:

The report after I've deleted unnecessary columns and renamed the remaining ones.(Click to enlarge)


To calculate how many feet of lumber I'll need, all I have to do is sum (add together) the relevant values for each component type:
Posts: Sum all values in Height (LenZ) column for all Post components
Rails: Sum all values in Width (LenX) column for all Rail components
Pickets: Sum all values in Height (LenZ) column for all Picket components

The report lets me easily sum any range of numbers. In this case, I'm figuring out how much 4x4 (3.5 x 3.5, actually) lumber I'll need for my fence posts.


It gets better. Using custom attributes that I can assign with SketchUp Pro's Component Attributes dialog box, I can do even more. I can write a simple formula that calculates area, which would tell me how much paint to buy. I can assign a cost to each component to figure out how much this fence is going to set me back. I can create a new "Length" attribute that takes into account the kerf (thickness) of the saw blade I'll use to cut the lumber. Geeky, but 100% useful.

Stay tuned -- I'll talk about combining report generation with custom attributes in another post in a couple of weeks.

NOTE: Anticipating confusion that might ensue... The horizontal length of my fence's rails will always be LenX (red), even if I turn them 90 degrees so that they're actually oriented in the Y (green) direction. Why? Every component has its own set of axes. The width of Rail extends along the X (red) axis for that component, so I can always know its length by looking at its LenX value. Please use the comments for this post to let me know if I'm not making any sense.

Previous Article
Creating section animations with Scenes
Creating section animations with Scenes

Add a little magic to your SketchUp project by creating section animation with your 3D models.

Next Article
'Save a Copy As' is my new favorite command
'Save a Copy As' is my new favorite command

According to Mitchel Stangl, "Save a Copy As" is his new favorite command. Discover how the 'Save a Copy As...