March 30, 2012

ACA 2013: Object Display Enhancements Part 1

AutoCAD® Architecture 2013 adds a number of new features to the Display System.

Layer Keys for Display Components
An often wished for feature is now in the program: it is now possible to assign a Layer Key or Layer Overrides to a component of an object, instead of just hard-coding the layer name in the style. If you have ever wanted to have layer control over one or more individual components of an object, but did not want to have the hassle of setting and maintaining those layer names in each style, you can now add Layer Keys or Layer Overrides to a style to have components placed on a particular layer via layer keying.

In general, I find using the display system to control the visibility and appearance of most components of AEC objects to be quite adequate and would just as soon avoid throwing layers into the mix. But there are a few items where it would be nice to be able to control the visibility of a component with a simple Layer Freeze/Thaw, rather than going through the hassle of adding new Display Representations, Display Sets and Display Configurations. For example, we use a zero-width component to display a line that indicates the fire-resistance rating of a Wall, and its display is controled by the assigned Material Definition. There have been projects where, for certain drawings, I wanted to turn off this component, as it was interfering with other graphics. Being able to do so by freezing a layer would be much easier than setting up another Display Representation for materials, editing that for all of the materials in the drawing and then setting up a Display Set and Configuration to use the new Display Representation. Hard-coding a layer name in a Display Representation has always bothered me, as it means future edits if the content needs to be used with a different layer standard. The new Layer Key/Override feature allows source content to be set up that will generate layers based on the current Layer Key Style and avoid having a hard-coded layer name in the Display Representation.

There are a few nuances that you need to master in order to be able to use the new feature. The most important is that your source file (where you store and edit the display settings) cannot have any objects of the type to which you want to add a Layer Key or Layer Override in the file. For Drawing Default settings, this will likely be your template file, so that should not be a major problem. For Style Override settings, you will have to delete any instances of objects of the style being edited prior to being able to edit the override settings, and you will not be able to add any instances afterwards, as that will cause the layer to be resolved and defeat the puropose of using a Layer Key. The Layer Key and Layer Overrides are not available at the Object Display Override level, because, by definition, you have to have an object in the drawing in order to apply the override. This feature does not make much sense as an individual object override, anyway. You cannot access this feature on the Display tab of the Properties palette; you have to edit the settings in a dialog, through Display Manager (Drawing Default settings only) or through Style Manager.

Before starting, make certain that the current Layer Key Style in the source file drawing or template has all of the Layer Keys you wish to assign. If you are going to use custom Layer Keys, be certain that you update the Layer Key Style in your Layer source file with the custom keys, and, if you are not set up to automatically import the Layer Key Style from your Layer source file, in your template files.
In the composite image above, the Swing Component has had the custom DOORSWING Layer Key added by clicking in the blank area in the Layer Key column on the Swing line, and choosing the DOORSWING Layer Key in the Select Layer Key dialog. Once a Layer Key is assigned, the value in the Layer column for that component is cleared, and will remain that way until an object is placed in the file. As previously mentioned, you want it to stay that way in your source file(s), so that the resolution takes place in the target file.

In order to make use of the Layer Overrides, you must first set a Layer Key. If you want to assign a component to a layer, but do not want to create a custom Layer Key, you can use Layer Overrides. Keep in mind that if the resultant layer does not already exist in the drawing, it will be generated based on the attributes of the assigned Layer Key, so choose the Layer Key accordingly, or be prepared to adjust the layer properties after the fact. In the composite image above, the Frame component has the DOOR Layer Key assigned, and then, by clicking on the icon in the Layer Overrides column on the Frame line, a Minor 1 field override of "Fram" was set in the Select Layer Overrides dialog.

Do not forget to change the component attributes from BYBLOCK to BYLAYER for any components to which you assign a Layer Key, unless you only want them on a separate layer and want them to display with the attributes of the main object.

If you make Drawing Default level changes in your template file and then start a new drawing with that template, the Layer Key and, if specified, Layer Override will be resolved when the first object of that type is added to the new drawing. If the resultant layer does not already exist in the drawing file, the layer attributes specified in the current Layer Key Style (as modified by any Layer Overrides set) will be used to generate the layer. If the layer does already exist, the layer will be left as is, just like any other use of a Layer Key. At that time, the Layer Key and Layer Overrides columns will be locked and the resolved layer name will be shown in the Layer column. You can then edit the Display Representation and change the layer name if you so choose - the Layer Key and Layer Overrides are inactive from that point forward, even though the Layer Key name will remain displayed. The same holds true when adding an object that has a Style-level display override in the source file that includes a Layer Key or Layer Key and Layer Override.

There is a way, however, to impose a Layer Key/Override on a file that already has objects within it. When set at the Drawing Default level, with the file open, open the Display Manager (on the Manage ribbon tab, on the Style & Display panel, select the Display Manager tool). In the Display Manager, open a source file that has the unresolved Display Representation in it (such as your template file). Use the Display Manager to copy the Display Representation from the source file to your current file and choose Overwrite Existing.
Select OK to register the change, close the Display Manager and return to the drawing. You will not notice any immediate change, but the Layer Key/Override from the source file has been copied into this file. In order to get this to resolve, you need to execute the "add" command for the object type affected by the Display Representation. For example, start the DOORADD command if you have copied a Door Display Representation. Doing so, even if you cancel before placing an object, will cause the Layer Key/Override to be applied, affecting all existing objects in the file as well.

If you have a drawing with objects of the same style name, but without the Layer Key/Override set (or with it set, but resolved to a previous Layer Key Style), you can use the Style Manager to overwrite the style from a source file with an unresolved Style-level Layer Key/Layer Override. If you have a Tool palette tool referencing the style from such a source file, you can also right click the tool and choose "Re-import..." from the context menu. The only difference here is when you start the "add" command to trigger the resolution of Layer Key/Override, if redefined style is not the current default style, you will have to change to that style on the Design tab of the Properties palette to get the change to take effect.

In all of the above cases, keep in mind that you will not see the effects of the Layer Key/Override if the Display Representation that has the Layer Key/Override set is not active in the currently active Display Set. The change will take place, but until you change the Display Configuration/view direction to a combination that makes the Display Representation that has the Layer Key/Override applied, you will not see it.

Next Article in the Series (ACA 2013: Object Display Enhancements Part 2)

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.

March 25, 2012

Revit - Wall Type Edit Tip

This may be old news to more experienced Revit hands, but I discovered this today and thought I would document it for future reference. When editing a Wall Type in the Type Properties dialog, if you make changes to either or both of the "Coarse Scale" parameters under the Graphics category...
...and then decide you want to review the Wall's Structure by clicking on the Construction > Structure parameter's Edit button, be aware that if you click on the OK button in the Edit Assembly dialog (whether or not you make any changes)...
...your "Coarse Scale" parameter edits may get lost.

I say "may", because I found at least one circumstance under which it did not result in a deletion: if I click the Edit button and then choose the Cancel button to exit the Edit Assembly dialog, I can then click the Edit button again and if I choose the OK, the "Coarse Scale" parameter edits will be preserved. There may be other sequences that do not result in the loss of the "Coarse Scale" parameter edits. Edits to items under Identity Data do not seem to get lost like the "Coarse Scale" parameter edits do.

If you are certain you want to keep your "Coarse Scale" parameter edits, then the safe thing to do before pressing the Structure parameter Edit button is to use the Apply button in the Type Properties dialog. Doing so registers all edits up to that point in the Revit model and "Coarse Scale" parameter edits will not get lost when editing the Structure and choosing OK to dismiss the Edit Assembly dialog. Of course, if you do select the Apply button, you will not be able to discard any previous edits by choosing Cancel to exit the Type Properties dialog. So make certain you really want to keep all of the edits made before selecting the Apply button.

March 17, 2012

Revit Family Editor - Lock Column

While working in the Family Editor, have you wondered what was the purpose of the Lock column in the Family Types dialog? I have often wondered what this column, first introduced in the 2011 release, does, and was never able to find anything about it in the Help. Today, thanks to a link posted by Richard Black in this thread in the AUGI Revit Architecture - Families Forum, I was able to watch this video, which does a good job of explaining what effect locking a dimension parameter has.

March 14, 2012

ACA Structural Member Styles - Part 5

First Article in the Series (Structural Member Catalog)
Previous Article in the Series (Manually Created Structural Member Styles)

Structural Member Contextual Ribbon Tab
In addition to the accessing the various Structural Member tools on the Manage ribbon tab, from the flyout of the Style & Display panel, once you have at least one Structural Member in your drawing file, you can select a Structural Member and access the Structural Member Catalog, Structural Member Wizard and Insert Member Shape tools as well as a tool to open the Style Manager filtered for Structural Member Styles from the Structural Member contextual ribbon tab, shown below in it ACA 2010 incarnation.

March 11, 2012

Revit: When is a Reference not a Reference?

I was adding an "L" shaped wall cabinet Casework family to my model yesterday, and was surprised to find that I did not get a stretch grip at the end of one of the legs. I was also unable to use the Align tool to adjust the extend the length of that leg to the face of a perpendicular Wall. The family is set up such that the height and depth of the wall cabinet mass is set in the Type, but the length of each leg is an Instance Parameter.

I had successfully done this operation previously, but apparently with a different family. I was confused as to why it was not working, when it was clear from the object's properties that an Instance Parameter had been used for both leg's length. I edited this particular family (which I did not create) and found that somehow the Reference Plane at the end that was not responding had its Is Reference parameter set to "Not a Reference". After changing this to one of the other choices, the stretch grip was activated and the Align Tool was able to be used to align the end of the leg with other geometry.

After discovering the reason why, it all made sense. I have used "Not a Reference" on occasions where I have a Reference Plane in a family that controls the position of some minor geometry (such as the "swing direction" arrow of a horizontal slider in a plan view) that I do not want to use as an alignment plane in the placed family, but had never previously seen that value assigned to a Reference Plane that defines an important part of the geometry of the family.