March 27, 2012

ACA 2013 - Grouping and Subtotals in Schedule Tables

The ability to group items within a Schedule Table and have subtotals for each group has long been wished for by AutoCAD® Architecture users, extending back to when the program was called Architectural Desktop. That wish has been granted in the 2013 release, which supports up to three levels of grouping and subtotals.

In the past, you have been able to sort by the values of one or more properties, which would get objects with the same value for a given property in close proximity. If you specified a quantity column in your Schedule Table (whether displayed or hidden), you could also get objects with identical values in all columns to collapse onto one line. For properties with numerical values, you could specify that the total of all items in the Schedule Table be shown at the bottom of the Schedule Table.
Tracking the area of Spaces is a common need in architectural design. The image above shows a sample schedule for Spaces, such as might have been created in a previous release. The Schedule Table is sorted first by the Space type (using the Style automatic property source to acquire the name of the Space Style) and has a quantity column to collapse identical lines. While the Schedule Table avoids the use of room numbers to have some identical rows, inevitably you will want to include data that will prevent all Spaces of a given type from collapsing on one line (if nothing else, the areas of the Spaces of one type are unlikely to all be identical in a real-world design), leaving you with multiple Total Areas for each type. The image below shows the "new" Sorting/Grouping tab (formerly just "Sorting") of the Schedule Table Style used to produce the Schedule Table shown above. The Group feature is not enabled for either of the columns being sorted.

While getting totals for each Space type in the sample Schedule Table above might not be too difficult, on a real project with tens or hundreds of Spaces, it could be quite a chore, and in the past, would likely have resulted in exporting the Schedule Table contents to a spreadsheet program, followed by additional formatting and manipulation to get useable subtotals. Doing this repeatedly as changes are made to a project in the early design phases can be tedious. In a copy of the previous Schedule Table Style, the Group feature for the SpaceStyles:Style property has been activated by checking the Group toggle under that property.
The Display Subtotals For Group toggle has also been checked. While you can override the formatting of the Group property, this was not done, as indicated by the "None" text; the Subtotal Format Override was used, however, to increase the height of the text from 3/32", as set on the Default Format tab, to 1/8", as indicated by the Height designation. The default Group Orientation of Column was kept. Group Row Repeat and Group Row Indent are disabled when using the Column orientation,. Group Row Separation was changed from None to Blank Row. The results can be seen in the image below.
When grouping by a property using the Column orientation, all items with the same value for that property are listed together ("grouped"). Instead of having that property value shown on each line, the individual row lines are deleted (including at the subtotal line, if used) and the value is shown once, centered on the group of rows. A subtotal line appears at the bottom of each group, in this case showning a subtotal for the quantity and for the total area. In order to use the subtotal feature, at least one column in your Schedule Table Style must be set up to display a total. Since a height override was applied to subtotal rows, the text on these rows is larger, making them stand out a little. A blank row appears between each group, also helping to distinguish between groups. At the very bottom, you will note that the "grand" total line still appears. Unfortunately, a blank row does not separate this line from the group and subtotal line above, nor can you override the formatting of the grand total line.

Doors are another object that are often scheduled. A simplified Door Schedule, such as might have been done in a previous release, sorted by Door Type, is shown below.
As with the Spaces, in this simple example it would be easy enough to add up the totals per Door type, but not so on a real project. The image below shows the settings made to a copy of the style of the Schedule Table shown above, to implement groups and subtotals.
I chose to display the subtotals for each group, change the alignment of the group from the default "Middle Center" to "Middle Left" and made the same Subtotal Format Override (1/8" text height) as was made on the Space Schedule above. Setting the Group Orientation to "Row", makes the Group Row Repeat and Group Row Indent choices active. The Row orientation for groups takes the column for the property being grouped out of the Schedule Table and inserts a row above each group labeled with the column header name and the property value, separated by a colon (":"). Group Row Repeat will repeat that row at the bottom of the group, which can be helpful with nested groups or groups with many lines; I chose to not include that here. Group Row Indent can make it easier to read a Schedule Table with nested groups all using the the Row orientation. This example did not need to use either of those, as there is only one group and I chose to provide a blank row separation between the groups. In the final beta version, on which these samples are based, I was unable to get the Group Row Indent feature to work. It had worked in a previous version, so I am hoping that it was either an issue with my installation or that the problem is resolved in the shipping version.
The image above shows the results of those settings. If you choose to set up grouping on multiple columns (properties) in your schedule table, the results will be sorted by the left-most first, then within each of those groups, the second grouping will be applied and, if you specify a third grouping (rightmost), that would be applied within each of the second groupings subgroups. Once you choose a column orientation for a group, any additional groups to the right of that also must use column orientation.

New components for Schedule Tables mean more display settings. The image below shows the components and out-of-the-box Drawing Default settings for Schedule Tables (final Beta, US Imperial content). There are separate display settings for Data Text, Separator Lines, Title Separator Lines and Indent Lines for each of the three levels of Groups, as well as settings for Data Text, Row Lines and Column Lines for each of the three levels of Subtotals. These are all set to ByBlock, with the exception of LtScale, which is set to 1, so they will initially inherit the properties of the parent Schedule Table object. You may want to edit the Drawing Default values of the newly added components to be compatible with the settings for the previously available components (especially if you have customized those settings).
You may also have noticed new columns in the Display Properties for Layer Key, Layer Overrides and Transparency. Look for more on those in a future post.


RobiNZ said...

Hi David,
Interested to see you have a quantity column in the schedule along with grouping.
In the release ACA 2013 I found this caused the group subtotals to be incorrect. Starting with an old sched style (with QTY) and adding groups meant the total changed.

Thought I was going mad until removing the Qty Col restored the correct totals. Have you tried since release?
- Robin.

David Koch said...

I do not recall if I even checked the sample files I did with the beta version to see if there were problems with the subtotals matching the sum of the displayed numbers or with the Schedule Total matching the totals of the subtotals. A quick check on the Total Area column in the image posted shows the values match.

I know there are potential rounding issues when doing totals in schedule tables, as the total is calculated from the "raw" data, not the potentially rounded values displayed in the Schedule Table. Perhaps some variant of that is at work in your example?

I do not currently have access to the shipping version of ACA 2013, so I cannot test this further right now.

PS - Sorry for the slow response time; I am really swamped at work right now and have not had much time for checking in on my blog.