November 25, 2004

Autodesk Architectural Desktop Tags

Ever wonder how a tag "knows" to which object types [doors, windows, walls, spaces, etc.] it may be applied? Did you ever wish that an additional Property Set Definition [PSD] or two could be attached at the same time you place your tag, even if the tag does not display any properties from the additional PSD[s]? If so, read on.

The key to both issues is in the attribute tag names included with your ADT tag. But first, a brief overview of how tags a constructed. An ADT tag is a Multi-View Block [MVB] that has been turned into a "Custom Command" type of AEC Content file, using the AEC Content Wizard. The _AecAnnoScheduleTagAdd command attaches the MVB to an object with a tag anchor. The MVB is composed of one or more "view blocks". Each view block is an ordinary AutoCAD block, containing regular graphics [if desired] along with at least one attribute definition. It is the attribute tag name of this/these attribute[s] that we will focus on here.

ADT tags display one or more properties from one or more PSDs that are attached to an object. It is important to understand this distinction: the property value resides on the object, NOT in the attribute - the attribute merely is the vehicle for displaying the property value. You tell ADT which property to display by formatting the attribute tag name as follows:


where [PropertySetDefinitionName] is the name of your PSD and [PropertyName] is the name of a property within that PSD that is to be displayed by that attribute. For example, to display the Name property of the RoomObjects PSD, the attribute tag name would be ROOMOBJECTS:NAME.

ADT determines to which object types a particular tag may be applied by looking at the PSDs referenced by the attribute definitions contained within the view blocks attached to the MVB tag, and then looking at the object types to which those PSDs apply. For example, the "Room Tag" AEC Content file provided with ADT 2005 uses a MVB called "Aec3_Room_Tag", which has one view block, called "Aec3_Room_Tag_P". That view block, in turn, has three attribute definitions: ROOMOBJECTS:NAME, ROOMOBJECTS:NUMBER and SPACEOBJECTS:HEIGHT. The RoomObjects and SpaceObjects PSDs both apply to "Area, Space", so ADT will allow you to apply the tag to an area or a space, but not to any other objects. [As an aside, the "Room Tag" AEC Content file provided with ADT 2005 actually references the SPACESTYLES:HEIGHT property in the third attribute, but the out-of-the-block template files include a revised block definition for the "Aec3_Room_Tag_P" view block that changes that to SPACEOBJECTS:HEIGHT. This reflects the difference in property locations between ADT 3, when this tag was made, and ADT 2004/2005. If you are using ADT 2004 or 2005 and want to use this tag in a file that does not have the revised "Aec3_Room_Tag_P" definition in it, you may want to edit the content file and change the tag for that third attribute definition to SPACEOBJECTS:HEIGHT so that the SpaceObjects PSD is attached.]

The "Room Tag" also includes an example of how to get additional PSDs attached when tagging. If you have ever used this tag, you will have noticed that the tag does not display a "height". Take a look at the properties of the SPACEOBJECTS:HEIGHT attribute definition:

ATTRIBUTE Layer: "0"
Space: Model space
Linetype: "BYBLOCK"
LineWeight: BYBLOCK
Handle = 1c61
Style = "Standard"
Font file = txt
center point, X= 8'-1" Y=3'-3 7/32" Z= 0'-0"
height 0'-0 1/2"
rotation angle 0.00
width scale factor 1.00000
obliquing angle 0.00
flags invisible
generation normal

Notice, in particular the flags setting - "invisible". By including an invisible attribute definition that references a property in the PSD you wish to have attached to the object when you tag it, the tag will attach that PSD without displaying any of that PSDs values.

If you are just starting to tackle customizing ADT tags, you may want to take a look at two "Brain Dumps" written by Matt Dillon: "Schedule Basics" and "Creating Custom Automatic Schedule Tags". These were written for ADT 2, but will still give you a firm understanding of the relationships between PSDs, objects, tags and schedules. These are where I got my start. You can find a link to this in Chris Yanchar's "Between the Walls" ADT Weblog at the link below. Chris' Weblog is a great resource for information on ADT.

No comments: