December 27, 2006

Wall Corner Condition - Plan Modifiers

With some additional help from John Mumaw in a follow up reply to the Wall Corner Condition thread in the Autodesk Architectural Desktop Discussion Group, I was able to get wall modifiers to work in creating a projecting brick pier at an outside corner intersection of two walls. See this post for a description of another way to do it with Wall Endcaps. The image above shows the desired end result.

Here are some tips for using plan modifiers for achieving the results above. Credit goes to Mr. Mumaw for most of what follows.

  1. You will need to draw your walls so that the graph lines extend past their intersecting point, then use a cleaup radius to get the walls to clean up.

  2. Do not make the modifiers the exact size you need, as that results in the "interesting" results shown below. Notice the "leaking" brick hatch and extra Shrink Wrap/Component line.

  3. Instead, make the modifiers some distance longer that you need. You will then need to draw the walls that same extra distance beyond the projection, and the wall cleanup will take care of the "extra" length. I chose to use 2". The image below shows the two polylines I used to create the plan modifiers. Note that the modifiers have not yet been applied to the wall shown in this image, which was drawn from left to right, so the modifiers are at the start of this wall. The brick polyline starts at the outer face of brick, offsets up 8", runs 2" longer than the desired pier length, for a total of 4'-10" and runs back 8" to the brick face. The air gap polyline is offset 4" from the brick polyline, so that the 4" width of the brick is maintained and the start and stop points are at the outer face of the air gap component.

  4. If you apply the modifiers to a stand-alone wall, a cleanup error will result. This is not a cause for alarm, as this technique only works when the wall cleans up with another wall.

  5. To create the plan modifier from the drawn polyline, select the wall along which you drew the polylines, right click and choose Plan Modifiers > Convert Polyline to Wall Modifier... from the context menu.
    Choose whether or not you want to save the polyline, then give the modifier a meaninful name.
    Verify that the correct component is indicated in the Add Wall Modifier dialog, and make certain that the Offset Opposite Face toggle is NOT checked.

  6. The plan modifiers will be attached to the wall you selected. If this wall will be used as one of your corner walls, select the wall, right click and choose Properties. On the Design tab, in the Advanced category and Worksheets subcategory, click on the Plan Modifiers worksheet and check the settings for your modifiers. If your wall style is created like the out-of-the-box wall styles, with the first component at the outside component and the last component to the inside, then you will want the modifiers to be attached to the left face of your components, with the Mirror X and Measure to Center toggles unchecked and the Mirror Y and Use Drawn Size toggles checked. The Start Position Offset for the Brick component should be 0 from the start of wall; the Start Position Offset for the Air Gap component should be the width of the brick component from the start of wall, 4" in this case. If you drew your polylines at the end of a wall, rather than the start, the Air Gap Offset would be -4" from the end of wall.

  7. If your pier is symetrical, you can use the same plan modifiers for the other wall. Make note of what end of the wall you need the modifiers, start or end. Then select the wall, right click, choose Properties and open the Plan Modifiers Worksheet. Add the modifiers already created by choosing the appropriate name and component, then making certain to check the toggles as noted above. Use a positive offset for the Air Gap component when placing the modifier at the start of wall and a negative offset when placing the modifier at the end of wall.

  8. The image below shows two left justified walls. The vertical wall was drawn from bottom to top and the horizontal wall was drawn from left to right. The wall modifiers shown above have been added to the end of the vertical wall and the start of the horizontal wall. The Graph Display Representation is toggled on so you can see that the graph lines of the two walls were extended 10 total inches beyond their intersecting point, 8" for the brick offset plus 2" for the extra length at which the plan modifiers were drawn. A cleanup radius of 1'-6" was added to each wall at the intersection end so that the walls would clean up with each other, giving the desired result. The minimum cleanup radius here would be 10 times the square root of 2 inches, which you could get by using the grip to stretch each radius to the endpoint of the other wall's graphline.

  9. You can use other justifications besides left, but you will need to increase the cleanup radius accordingly. Keep in mind that the larger the cleanup radius, the greater the chance that there will be a problem with other walls close to the corner. The images below show baseline and right justified walls using the same modifiers, but with larger cleanup radii to compensate for the greater distance between the graphline endpoints. Note also that the graphline endpoints remain 10" beyond the outer face of the wall.

December 16, 2006

Wall Corner Condition

I was reading a thread titled Wall Corner Condition in the Autodesk Architectural Desktop Discussion Group in which "adtcad" posted an image of a multi-component wall where the brick offset at an outside corner on both walls, and asked how to achieve that result. The image below is similar to the one attached by "adtcad". (Click on any image to see a larger version.)

John Mumaw suggested using plan modifiers. Not having much opportunity to do so as part of my work, I took the opportunity to explore his suggested method and failed miserably. I am hoping that he or someone else with extensive plan modifier experience can post a working example of his approach so that I (and others) can reverse engineer what was done and add another weapon to my ADT arsenal.

Undeterred, I fell back on a technique that I have had many occasions to use, wall endcaps. One feature of wall endcaps with which you may be unfamiliar is the option to set a "return offset" on the Dimensions tab when editing a Wall Endcap Style. If you provide a positive number, the endcap moves away from the end of the wall, toward the middle of the wall. A negative number, on the other hand, will move the endcap beyond the end of the wall, and is key to using wall endcaps to simulate cleanup or to get wall components to offset at wall ends, as endcaps are not shown at wall ends that clean up with another wall.

I posted a sample file as a reply in that thread, which includes the walls that generated the image above, as well as the polylines I drew to create the endcap, as shown in the following image.

Note that the polylines all start and end on a line drawn perpendicular to the length of the wall, and that all of the polyline segments have a width of zero, except for the ones along the 45-degree angle. Zero-width segments will be drawn as component edges, when those are set to display. Segments with a width will not be drawn, creating an open condition at the component which can be used to simulate cleanup between walls that have adjoining endcaps.

I used the wall context menu Endcaps > Calculate Automatically to generate the Wall Endcap Style from the polylines I drew, setting it to be an override, as I chose not to make this the style's default endcap condition.

This will create the endcap, but not the offset, and will extend the wall used to create the endcap so that the endcap appears on top of where the polylines were drawn.

Then I opened the Style Manager and found my newly created Wall Endcap Style, under the Architectural Objects folder. In the sample file I posted, the Wall Endcap Style is called "CMU-8 Rigid-1.5 Air-2 Brick-4 Furring Four-Foot Brick Pier Open End Beveled - Projected 56 (End 1)". On the Dimensions tab, I set a Return Offset of -56", so that the entire endcap would project beyond the end of the drawn wall.
That much of a projection would not be necessary - if you keep the cleanup radii of both walls at zero, any negative projection would do - but I chose to do that so that the wall end has meaning, relative to the brick offset. If you look closely at the first image, you can see that I had the wall graph display toggled on, and the wall end occurs right where the brick offsets. The walls were drawn left justified, so the wall graph line occurs at the outside face of the brick.

Finally, I stretched the wall back down 56" to get the endcap back to its original position and added a second wall, applying the same endcap to the adjoining end.

Check out the Wall Corner Condition thread if you are interested in seeing the sample for yourself, or just to take a good, long laugh at my pathetic attempt to follow Mr. Mumaw's suggestion, as I left those in the file, as well.

December 12, 2006

Not Quite 7500...

...but really close. The official tally is in - 7447 total in attendence at Autodesk University 2006. That number includes 5166 attendees, 311 instructors, 648 Autodesk employees and 1322 investors, media, guests, exhibitors (from 89 companies), staff, and other attendees.

December 03, 2006

Agents of Change - Autodesk University 2006

I had the good fortune to attend Autodesk University 2006 as a last-minute substitute for someone else at my firm who was unable to go. AU returned to Las Vegas for 2006, but at a new venue, The Venetian. Despite a record-breaking number of participants - 7500 was the last number I heard announced - the facility was up to handling it, making an exception for Tuesday's lunch, when the exhibit hall was not yet open to help spread out the arrival time. No one seemed to miss the long haul that had to be made at previous Vegas AU's between the hotel and conference center at the MGM.

This year's theme was "Agents of Change", based on the idea that AU attendees tend to be early adopters of Autodesk's anually-changing software as they deal with the ever-changing challenges and opportunities in the world in general and their particular industries in specific.

This year not only the curriculum, but the physical location of most classes was broken up into industry-specific campuses. For example, the Building campus was located at one end of Level 3, and a lounge dedicated to the Building campus was located directly opposite the classrooms and staffed by Autodesk BSD employees armed with computers to demonstrate the BSD program offerings during the time that classes were offered. This made it much easier to find others in your discipline, both those you already knew and those you wanted to meet.

The Building Industry Main Stage presentation was held Wednesday morning. While I was glad to hear a renewal of the promise to continue developing both the Architectal Desktop and Revit platforms, I was annoyed at the ongoing marketing spin that equates "2D", "CAD drafting" and "AutoCAD for Architects" with Architectural Desktop and "3D" and "Building Information Modeling (BIM)" with Revit. I say that without any animosity toward the Revit product. The class schedule I inherited had mostly Revit or Revit-based classes and I came away impressed with Revit's capabilities. The main stage example for how you can leverage the Revit Building BIM model was the ability to link to 3ds Max and import the cameras and materials, then do renderings and light level analyses in 3ds Max. What a pity that "2D" Architectural Desktop can not do the same. I suppose they forgot that Architectural Desktop files can also be linked to Viz and Max and that, since the 2004 release, Architectural Desktop has shipped with VIZ Render.

Each industry group had its own reception in various venues on Wednesday evening. The Building reception was held at the JET Nightclub in the Mirage, billed on the invitation as "one of the coolest hotspots" and "architecturally stunning". I found it dark (save for pulsating lights on the main floor), loud, crowded and no more architecturally interesting than most any other night club I have visited. Everyone else seemed to be enjoying themselves, so it is probably safe to say the problem was with me, not the event.

The Thursday evening entertainment was fantastic. Engineer/comedian Don McMillan was every bit as funny as he was two years ago, and the Blue Man Group performance was excellent. Autodesk's Shaan Hurley was chosen from the audience to "participate"; you can see photos in this article in his blog. You can find additional photos from AU 2006 in Shaan's AU 2006 Photo Gallery.

Overall, I had a great time at AU 2006 and came away with a lot of valuable knowledge. I was able to meet many people that I only "know" from the Discussion Groups or AUGI forums and chat with some of the people at Autodesk who help produce the software I use at work, Architectural Desktop. If you have a passion for one or more Autodesk products, I would highly recommend attending Autodesk University. At the Thursday night event, Lynn Allen announced that AU 2007 would also be held at The Venetian in Las Vegas, November 26 - 30, 2007. Mark your calendars and start working on a way to get there!

October 31, 2006

Multi-View Block Creation

There have been a number of posts in the Autodesk Architectural Desktop Discussion Groups over the years asking for help in the creation of Multi-View Block Definitions. If you can create an AutoCAD block definition, then you are most of the way there. I am going to assume that you do know how create the AutoCAD blocks that will be used for the Multi-View Block, and will focus on a few tips on creating the blocks and then run through the process of creating the Multi-View Block Definition.

  • MVB - abbreviation used in balance of article for Multi-View Block.
  • view block - an AutoCAD block definition assigned to one or more view directions for one or more Display Representations.
  • view direction - direction from which the ADT model is being viewed. MVBs allow assigning blocks to be displayed when one of the orthogonal view directions [Top, Bottom, Front, Back, Left or Right] is active, as well as one for "Other" view directions.
  • WCS - World Coordinate System, a fixed coordinate system used as the basis for defining all objects and other coordinate systems.
When creating a MVB, you need to consider what the purpose of the MVB is and under what conditions it needs to be visible. For example, a Schedule Tag may only need to be seen from the Top view direction, and a single view block may be sufficient. Other MVBs may depict a symetrical object that can use the same view block for more than one view direction. The example shown here assumes a 3D object is to be represented, with a unique view block for each orthogonal direction, as well as a "3D Block" made with a Mass Element.

The two most important things to keep in mind when creating the view blocks for your MVB are:
  • Maintain an insertion point for all view blocks that is consistent in all three dimensions, preferrably at the MVB insertion point.
  • Set the World Coordinate System current when defining the view blocks. The graphics for each orthogonal view block need to be drawn in the plane from which they will be viewed [World X-Y plane for Top and Bottom views, World X-Z plane for Front and Back views and World Y-Z plane for Left and Right views]. It may be advantageous to set an UCS that places the UCS X-Y plane parallel to the plane in which you wish to draw the graphics for a particular view block, but you MUST CHANGE BACK to the WCS before defining the view blocks!
I find it easiest to achieve both those goals when creating a new MVB by drawing a series of lines in the X-Y WCS, with one endpoint of each line at WCS Y= 0. One of the preset isometric views, such as the southwest view shown in the image below, provides a handy viewpoint for drawing the block graphics, getting them positioned correctly and getting a consistent insertion point. It also allows you to use the graphics from one view block as a starting point for drawing the graphics of the others.

You will also want to give consideration as to whether your MVB needs to display differently when different Display Representations are active. Perhaps your object should have a different top view displays for a regular plan and a reflected ceiling plan. If you have your Display System set up with two Display Representations for MVBs, one of which is only active in the Display Configuration[s] you use for regular plans and the other one of which is only active in the Display Configuration[s] you use for reflected ceiling plans, then you can create separate view blocks and assign each to the Top view direction in its corresponding Display Representation. Also remember that, unlike other ADT objects, the display control for MVBs is limited to assigning view blocks to view directions for the available Display Representations and then choosing which Display Representation[s] to have active for a given Display Representation Set. You can not control layer, color, linetype or plot style as a display setting; you need to set those up in the graphics of the view block. For example, if you want your MVB to plot screened when the Screened Display Represenation is active, then the graphics you use in the view block[s] assigned to the Screened Display Representation must be set up to plot screened, either by direct plot style/color assignment or by using ByLayer graphics on a layer that plots screened. My example MVB has the graphics in the view blocks all set to ByBlock, so that they will inherit the layer, color, linetype, etc, of the parent MVB.

Once the view blocks are defined, the hard work is over. Open up the Style Manager and create a new Multi-View Block definition. Give the definition an appropriate name and description on the General tab. Then select the View Blocks tab, where you will assign the view blocks you created to the appropriate view directions for each Display Representation in which your MVB is to be visible. In my example file, the General Display Representation is used to display the othogonal view blocks, with the "3D block" assigned to the other view direction. The Model Display Representation has the "3D block" assigned to all view directions. Select the desired Display Representation in the left list box, then use the Add... button to select a view block. When adding a view block, the initial default is for all view directions to be selected; left click on the view direction toggles at the right to set or clear each view direction for the selected view block. The images below show the General Display Representation settings for the Widget_To [Top view block], Widget_Fr [Front view block], Widget_Le [Left view block] and Widget_Ot [Other view block]. The settings for the other view directions are similar, with the each block assigned to the appropriate view direction.

The following image shows how the Widget_Ot view block has been assigned to all view directions for the Model Display Represenation.

Select the OK button in the MVB Definition Properties dialog and the OK button in the Style Manager to save your MVB Definition to your drawing. Now would be a good time to save the drawing file, too.

Having defined a new MVB, you will want to test it before using it yourself or distributing it to others. The image below shows a new set of orientation lines, this time with the MVB inserted at the endpoint, then rotated in three dimensions so that, when viewed from the Front predefined view, all seven view blocks will be active at the same time. This allows you to make certain all view blocks were assigned, the correct view block was assigned to each view direction and the view block is properly oriented.

The image below is the result of changing to the Front view and shows that the MVB was created correctly.

October 03, 2006

Auto-Import Layer Key Style

Autodesk Architectural Desktop provides a way to make certain the Layer Key Style in your drawing files reflects the latest revisions without having to manually import the revised Layer Key Style [or even to know that it has been updated]. The image and procedures shown here were created/developed for ADT 2004, but the same feature is available in later releases.

The Layering tab of the Drawing Setup dialog allows you to specify a Layer Standards/Key File to Auto-Import. If you have not done so already, you will want to establish a file to hold your Layer Standard[s] and Layer Key Style[s]. The AecLayerStd.dwg file holds the out-of-the-box Layer Standards and Layer Key Styles. For the 2004 release, on a standalone, local machine installation, this file is located at:

C:\Documents and Settings\All Users\Application Data\Autodesk\Autodesk Architectural Desktop 2004\R16.0\enu\Layers

The path will be similar, with some minor variation in later releases. If you have a customized installation, particularly if some files were placed on the network for common access by all users, this file could be anywhere, but is likely located with your other content files.

If you have customized or plan to customize either the Layer Standard or the Layer Key Style[s], I would highly recommend starting with a copy of the AecLayerStd.dwg file, renamed to reflect that it has your firm's customizations, to make migration to new releases easier. Be certain to back up any customizations, whether to the AecLayerStd.dwg file or your own custom file.

Having identified the name and location of your central source file for Layer Standards and Layer Key Styles, you will want to make that your Auto-Import file by selecting the ellipsis [...] button to the right of the Layer Standards/Key File to Auto-Import area, navigating to your file and selecting it.

Next, set the Layer Key Style from your source file that you wish to be current, using the dropdown list in the Default Layer Standard area. Then note the toggle at the bottom of that area, labeled "Always import Layer Key Style when first used in drawing". Check that toggle if you wish to automatically update your drawing file with any future changes made to the Layer Key Style in the source file. If you want that to be the default condition for all drawings opened on that computer, for that users, also check the Save As Default toggle in the lower left corner. [You may want to check the settings on the other tabs to be certain they have the desired initial default values set before hitting OK, as the Save As Default toggle affects the entire dialog box.]

Here is how this feature works. The first time you issue an ADT command in a given editing session for that drawing [and any other in which the Always import Layer Key Style when first used in drawing toggle is checked], ADT will check the file specified as the Layer Standards/Key File to Auto-Import to see if the Layer Key Style has been edited and saved more recently than the current drawing file. If so, it will automatically import the Layer Key Style from the source file before making use of the referenced Layer Key. If not, the Layer Key Style in the drawing file will be used. No additional checks on the Layer Key Style will be made during that editing session. If you are told the Layer Key Style has been updated while you are editing a file, you can either use the Style Manager to update it from the source file manually, or save [if you want to keep any unsaved changes], close and reopen the file.

This feature is particularly valuable if you are just implementing ADT and make frequent changes to the Layer Key Style to get things "just right" for your office at the same time others are using ADT for production work.

September 28, 2006

ADT 2007 Service Pack 1 Available

You can now download Service Pack 1 for ADT 2007. Be certain to download and carefully read the Readme for the Service Pack, which provides a listing of the Architectural Desktop and AutoCAD issues that the Service Pack resolves, along with additional known issues not resolved by the Service Pack, instructions on how to install the Service Pack based on the way you installed ADT 2007 and a list of files modified by the Service Pack.

As noted in the Readme, you may need your original installation disk[s] or network image when installing the Service Pack, so be sure to have that handy before you start.

September 09, 2006

List Definitions and Multi-Line Room Names

In anticipation of my firm's migration from ADT 2004 to 2007, I was curious as to how we might be best able to take advantage of the addition of an automatic "Name" property for Spaces and the introduction of List Definitions, an expansion of Name Definitions for Areas in previous releases, which now can be applied to Spaces, Zones and/or Manual Properties and can be used to create a predefined list of Names for Spaces.

We currently use a custom room tag based on the out-of-the-box scale-dependent tag, with a second manual property and attribute to support two-line room names, when needed. A formula property combines the contents of the two individual manual properties into one property for use in schedules. You can find a sample file with content similar to what we use in this thread in the Autodesk Architectural Desktop Content Discussion Group. An alternate formula, that can support two, three, or more room name properties/lines, is discussed in this previous article, which contains links to a sample file posted in the ADT Discussion Groups.

Since there is only one "Name" property for Spaces, that would not be compatible with our current methods. I recalled, however, that the Autodesk Knowledge Base for ADT offers another method for creating a two-line room tag that makes use of a single manual property for entering the name and uses MTEXT codes to achieve two or more lines of text. A companion formula property strips out the MTEXT codes for use in a schedule. I just tested this in ADT 2007, with the hope that the List Definition entries could be set up with the MTEXT codes, but it turns out that the backslash character used by the MTEXT codes is not valid.

It looks as though we will have to keep our current set up, possibly adding a List Definition to each of our Manual Properties for room names and remember to train everyone to ignore the Name property on the Design tab of the Properties palette, and keep using our current two Manual Properties on the Extended Data tab.

September 03, 2006

NA in Formulas Revisited

I came across an old article on dealing with NA as a potential value in a Formula property. The workaround I suggested, as illustrated in a sample file posted in a reply in the Autodesk Architectural Desktop Discussion Group, made use of the VBScript TypeName function to test whether the value of an automatic property was "Empty", which results in the dreaded NA being displayed in a property, and causes a formula that tries to perform mathematical operations on that value to fail.

That workaround remains valid, but today it occurred to me that the same approach that Scott Arvin used for the "Cost" examples in his Property Data Enhancements Brain Dump might also work for NA. In the "Cost" example, the ? returned when a property is not attached to a scheduled object will also cause a formula that tries to evaluate it to crash. The ? character that is displayed for Undefined properties is specified in the Property Data Format assigned to the property, as is the NA for Not Applicable properties. You can avoid the crash in either case by creating a Property Data Format that assigns an explicit string to the Undefined and/or Not Applicable properties. You do that by typing in opening and closing double quotes around the text you enter into the associated edit box, as shown for the Not Applicable value in the Standard-8-NA Property Data Format shown in the image below.

I have made a new reply to the previously mentioned thread which has a sample ZIP file attached that contains NA-in-Formula-Test2.dwg. This is a copy of the previously posted drawing file [2004 format], and contains all of the properties used for the original method, along with two new properties and a new Property Data Format. The Property Data Format is called Standard-8-NA, and is as depicted above. One of the new properties is an Automatic property referencing the Thickness property of doors, called ThicknessUnformatted2, and has the new Standard-8-NA Property Data Format applied. The other new property is a Formula property called ThicknessForSchedule2, and looks like this:

If TypeName( [ThicknessUnformatted2] ) = "String" Then
RESULT = "--"
RESULT = CDbl( [ThicknessUnformatted2] )
End If

A direct test for "NA" in [ThicknessUnformatted2] worked when the value was Not Available, and therefore "NA", but did not work when the value was a real number, so I changed the test to simply determine whether the type was a string [the TypeName function always returns a string, so a comparison to another string should not cause a failure]. This alternate approach does not require the ThicknessForFormula Formula property that the original one did, but does require a custom Property Data Format. I would call it a draw and suggest you use whichever method seems best to you.

August 20, 2006

Structural Member Wizard

You may already be familiar with the Structural Member Catalog, a handy feature that has been available in Autodesk Architectural Desktop since at least the 3.3 release. The Structural Member Catalog provides an easy way to create Structural Member Styles based on real-world structural members. [Images here are from the 2006 release.]

But perhaps you have a need for a structural member style that is not in the catalog, whether to use it as a “generic” member, until the actual member is determined and you prefer not to use a real-world shape to make it easy to distinguish later; you have a special size not in the catalog; or you have some other need for a shape not in the catalog. For example, a while back, Brad Crouse had posted in the AUGI Forums [see this thread and this thread] that he was trying to create model in ADT at 1/16 actual size, in order to show, at full size, the “toy” buildings he intends to build.

One option would be to create custom structural member shapes, by drawing each outline as a closed polyline, and then using the -AecsMemberShape command to create the shapes. But if the shapes you need match “standard” structural shapes, with non-statndard size parameters, you may be able to save yourself some time and effort by using the Structural Member Wizard. You can access the Wizard from the pulldown menus, Format > Structural Members > Wizard…, or by invoking the _AecsMemberStyleWizard command.

The Structural Member Wizard is a handy, dialog-driven utility that prompts you for the appropriate dimensional parameters for various types of concrete, steel or wood shapes, then generates a Structural Member Shape and Style for you to use. You can see the available options in the images below for concrete…


…and wood.

Let’s assume that our project is in the Schematic Design Phase, and we have managed to get the structural engineers to commit to using W14’s for the columns. We do not know the exact size for any of the columns, but the engineers have allowed that the largest column would be a W14x99. For schematic purposes, we want to make certain that our column enclosures can handle both the widest and deepest section, so we will use the Structural Member Wizard to create a “composite” structural member that combines the flange width of the W14x99, 14.656”, with the depth of the the W14x82, 14.31”, rounded up in case the final calculations sneak in a larger member or two. Our schematic column will have the following parameters:

A – Depth: 14.5
B – Flange Width: 14.75
C – Web Thickness: 0.625
D – Flange Thickness: 1.00
E – Weld Radius: 0.75

Start up the Structural Member Wizard and choose the Steel Wide Flange (I) option on “page” 1 of 3.

Select Next > to move to page 2 of 3, and enter the data noted above.

Select Next > and enter a style name, like “W14-Schematic” on page 3 of 3, then select Finish.

The Wizard then creates both a Structural Member Shape Definition and a Structural Member Style called “W14-Schematic”, ready for you to use.

Comic Relief

For those of you out there in the architectural profession who may be taking your job just a little too seriously, this site may help rebalance your outlook. At the very least, you may get a chuckle or two.

Thanks go out to Bryan L. Myers, in the AUGI ADT/ABS "Watering Hole" Forum for the link, in the "What they don't teach you in Architecture School" thread.

August 13, 2006

ADT Schedule Feature Resources

Here are some links to various resources that can help you understand the Scheduling Feature of ADT/ACD-A. Some are from some time back, so the specifics for more current releases may be slightly different, but all have something to offer. Do not forget to check out the ADT/ACD-A Help, too.

Brain Dumps 13, Schedule Basics and 15, Creating Schedule Tags, by Matt Dillon
Grab these from Chris Yanchar's Between the Walls ADT Weblog
or go to the original threads that were the basis of the Brain Dumps:
Brain Dump 13, Schedule Basics
Brain Dump 15, Creating Schedule Tags
9/1/2008 Update: The links to the Brain Dumps in Chris' blog appear to be dead, so you will have to go to the original threads.

Brain Dump 13, Schedule Basics, updated for ADT 2006
This is an update of Matt Dillon's classic, based on ADT 2006 means and methods.

Property Data Enhancements, by Scott Arvin
This "must read" covers the "new" property types that were added in ADT 2004, including formula properties.

NOTE: AUGI now has "levels" of membership, and access to the AUGI Training Program (ATP) materials is not part of the free membership level. In order to have access to the ATP materials noted below, you will have to join at one of the paid levels.

ATP071 Schedule Basics Course Materials, by David Koch
If you are a member of AUGI [its free], you have access to archived AUGI Training Program course materials. Download the materials for ATP071, which can be found by logging into the AUGI website and, from the Home page, clicking on the following links:
Education > AUGI Training Program > Archived ATP Courses
Scroll down to April, 2005 and download the course materials for ATP071. Then visit the archived Course Forum [click on the link] and look for the "Formula Property Exercise" thread. Download the supplemental exercise on formula properties that is attached to my first post in that thread.

Not an AUGI member yet? Sign up here.

ATP121 ADT Formula Properties Course Materials, by David Koch
This course was offered in June, 2006, and is also available in the ATP Archives.

Autodesk University 2007 - AB114-4 Get Fully Equipped in AutoCAD® Architecture Session Materials
Details on how to access the session handout and sample files can be found in this blog article.

Here are some previous articles in my blog, related to the Schedule Feature, that you may have missed:
11/25/2004 - Autodesk Architectural Desktop Tags
12/21/2004 - Overriding A Property Value Using A Formula
12/22/2004 - Clustering Spaces Within a Unit in a Space Schedule
12/24/2004 - Electrical Device Schedule Using Clustering
01/12/2005 - "Unformatted" Properties for Formulas
01/29/2005 - VBScript Operators for Formula Properties
03/21/2005 - ADT 2006 Tags Illustrated
04/03/2005 - Formula Property Interface Improved in ADT 2006
04/19/2005 - Scale-Dependent Tags in ADT
07/03/2005 - Structure/Flow in Formula Properties: If/Then/ElseIf/Else Construct
07/04/2005 - Multi-Line Room Name Formula Improvements
07/09/2005 - Multi-Line Room Name Formula Revisited
07/09/2005 - Structure/Flow in Formula Properties: Select Case Construct
07/16/2005 - Unformatted Properties and Numeric Precision
07/16/2005 - WxH Formula For Windows
08/03/2005 - Schedule Column Loss in "Old" Drawings
08/31/2005 - Rounding Up Property Data Values
08/31/2005 - Rounding Revisited
09/03/2005 - Rounding Redux
09/15/2005 - Rounding to Death
09/24/2005 - Scale-Dependent Tag Tools in ADT 2006
11/02/2005 - Filtering Objects in an ADT Schedule
11/14/2005 - Dealing with NA in Formulas
12/13/2005 - Sorting Schedules by Door Numbers with Suffixes
12/20/2005 - Underline in Tag But Not in Schedule
12/24/2005 - Schedule Table Placeholders
12/28/2005 - Schedule Basics Brain Dump for 2006
01/04/2006 - Residential Door Tags
01/12/2006 - Sorting Character Strings Like Numbers
01/14/2006 - Sorting Character Strings Like Numbers Image
01/14/2006 - Richard Binning: Auto Tagging With VBA
01/15/2006 - Door/Window Assembly Frame Depth in Window Schedule
01/25/2006 - Using System Variable Values in Formula Properties
01/28/2006 - Formatting Areas and Volumes in Schedules Using Drawing Setup
02/03/2006 - Underline in Tag But Not in Schedule II
03/11/2006 - Enhanced Property Data Features in ADT 2007, Part 1 [visibility and order]
03/21/2006 - Enhanced Property Data Features in ADT 2007, Part 2 [anchor and graphic properties]
03/24/2006 - Enhanced Property Data Features in ADT 2007, Part 3 [unit type]
03/31/2006 - Enhanced Property Data Features in ADT 2007, Part 4 [list definition]
04/08/2006 - Enhanced Property Data Features in ADT 2007, Part 5 [table title and header overrides; formula columns]
04/27/2006 - Stacking Properties in a Schedule Table
05/01/2006 - Using Property Data Formats to Force Real Number Interpretation
05/04/2006 - Retrieving the Door Type of a Door Style
05/23/2006 - Retrieving the Door Type of a Door Style 2
06/10/2006 - Tag for Polyline-based "Rooms"
06/17/2006 - Separating Structural Shape Names in a Complex Structural Member Style
06/24/2006 - Automatically Displaying a Viewport’s Scale
07/29/2006 - Room Name/Number PSD Heads Up in 2007
09/03/2006 - NA in Formulas Revisited
09/09/2006 - List Definitions and Multi-Line Room Names
01/09/2007 - Formula Property VBScript Help
01/10/2007 - List Definitions - Utility to Import/Export
01/20/2007 - Scale-Dependent Schedule Tags in ADT 2006 or 2007
02/16/2007 - Dealing "*Xxx not found*" Location Property Result
03/03/2007 - Adding a New Scale to a Scale-Dependent Block
03/20/2007 - Another Formula Property Override Example
04/01/2007 - ADT 2006 & Prior - Angular Automatic Properties
04/06/2007 - Annotative Tags With Leaders in ACA 2008
04/10/2007 - Multiple-Line Room Tags
04/15/2007 - ACA 2008/ADT 2007: Setting a Different Property Data Format in a Formula Property
04/26/2007 - Revising a Schedule Table Style
06/16/2007 - AU 2007
06/16/2007 - Rounded Values and the Quantity Column
07/01/2007 - Anchor Property Sample
07/25/2007 - Pasting Formulas
12/24/2007 - AB114-4 Class Materials and Webcast
05/01/2008 - Property Set Tools
06/16/2008 - Text Case and the Quantity Column
07/28/2008 - Copy/Paste and Formulas
09/15/2008 - On Error Resume Next
09/16/2008 - Z-Coordinates of Aec Objects
10/27/2008 - Zoom To from Schedule Table Fails
11/15/2008 - Creating Annotative Tags in AutoCAD Architecture
12/19/2008 - Non-Project Door Tag Using Room Number with Prefix and/or Suffix
04/10/2009 - Deleting Property Sets Using the Properties Palette
06/12/2009 - Copying a Schedule Table Between Drawings
08/28/2009 - Another Automatic Property Override Sample
11/25/2009 - ACA Scheduling by "Mark"
12/29/2009 - Space Schedule with Header Rows, sorted by Level and Building/Wing
11/25/2011 - Rounding and Column Totals
02/12/2012 - ACA: Extracting Text from a Style Name
03/27/2012 - ACA 2013 - Grouping and Subtotals in Schedule Tables
06/24/2012 - ACA: Occupancy Load Calculations and Division by Zero
06/26/2012 - ACA: Occupancy Load Calculations with a Column Total
03/26/2013 - ACA 2014: Property Set Defintion Auto-attach
12/10/2013 - ACA: Obtaining the Effective Name of a Dynamic Block in a Formula Property
12/12/2013 - ACA: Formula Property to Determine if a Block Instance is a Dynamic Block
02/12/2014 - ACA: Double Click a Tag to Edit Property Data
05/26/2015 - ACA/AMEP 2016: Property Visibility Override
06/29/2015 - ACA: Classification Definitions, Applies To and Tagging
12/04/2015 - ACA: Underline in Tag But Not in Schedule III
04/11/2017 - ACA: Property Set Definitions, Applies To - Just How Many Polyline Types Are There?
05/23/2017 - ACA: Wall Rotation Property
01/14/2019 - ACA: Accessing AEC Data in Formula Properties for Multiple Versions
09/11/2019 - ACA: Rotation Property for Multi-View Blocks

July 29, 2006

Room Name/Number PSD Heads Up in 2007

For those making the transition to Autodesk Architectural Desktop 2007 who are planning on migrating existing drawings to 2007 but who will be using the 2007 out-of-the-box content for room tags or who may want to use an existing custom tag with the 2007 out-of-the-box Property Set Definitions, be aware that there has been a change in the name of the Property Set Definition that holds the properties used for room tags.

In Autodesk Architectural Desktop 2006 and earlier, the RoomObjects Property Set Definition held these properties; in Autodesk Architectural Desktop 2007, the SpaceObjects Property Set Definition does. Autodesk Architectural Desktop 2006 had a SpaceObjects Property Set Definition, but it was identical to the SpaceStyles Property Set Definition, and contained automatic properties associated with Spaces.

ADT 2006 Room Objects Property Set Definition

ADT 2007 Space Objects Property Set Definition

If you migrate previous drawings to 007, be certain to rename the RoomObjects Property Set Definition to SpaceObjects if you want to use the 2007 out-of-the-box tags. If you migrate both old drawings and old content, you would not have to make the change, but keep in mind that other Property Set Definitions with Location properties may also reference the room properties, so either bring all of your old sets and content or be prepared to edit property references if you mix and match.

If you have a custom tag that you want to use with the 2007 Property Sets, make a copy of the content file for use in 2007 [unless you will never use a previous version ever again], and then edit the view blocks, changing the attribute tag names to refer to the SpaceObjects Property Set Definition, rather than the RoomObjects Property Set Definition.

Also note that the "Name" property is no longer a manual property but now references a newly added automatic property source, which can be filled in on the Design tab of the Properties palette, in the General subheading of the Basic category. You can assign a List Definition that applies to Space Names if you like, to make it easier to enter names in a consistent manner. If you prefer multi-line tags that use multiple attributes for multiple lines, you will have to add the needed properties and create/migrate your custom tag.

July 01, 2006

More Updates & Service Packs

In addition to the updated tutorials, the following were recently added to the Autodesk Architectural Desktop Updates and Service Packs page for Autodesk® Architectural Desktop 2007:

Hotfix - Fatal Error During Save Published: 2006-06-14
Hotifx - Cut and Paste Published: 2006-06-30
Certified Hardware XML Database Update Published: 2006-06-12

Note that you need only update the acdb17.dll file from one of of the two Hot Fixes, as either currently provides version of that file.

Revised Tutorial Files for ADT 2007

Revised Imperial and Metric tutorial files for Autodesk Architectural Desktop 2007 have been posted to the Autodesk website for downloading. According to the Imperial Readme file:

Autodesk Architectural Desktop 2007 Imperial Update Tutorials

Revised imperial tutorials with new lessons and exercises in printable PDF format.
Datasets for the new lessons included in the updated tutorials. Download the datasets to c:\Program Files\Autodesk Architectural Desktop 2007\ Tutorial\Architectural Desktop\Datasets.

Files included in this package:
  • adt_imperial_tutorials.pdf - PDF file containing updated imperial Autodesk Architectural Desktop 2007 Tutorials.
  • Getting Started_I.dwg - Getting Started tutorial dataset.
  • A4A_I.exe - Autodesk Architectural Desktop: Making AutoCAD Better for Architects tutorial dataset.
  • Small Office Building_I.exe - Small Office Building tutorial dataset.
  • Steel-Framed Residence_I.exe - Creating a Steel-Framed Residence tutorial dataset.

If you customized file locations when installing ADT 2007, you would want to place the datasets in the same folder(s) as the original datasets.

June 30, 2006

Google Earth Extension for ADT 2007 Public Beta

Shaan Hurley has announced the availability of a new public beta on the Autodesk Labs site, the Google Earth™ Extension for AutoCAD 2007, Architectural Desktop 2007, Autodesk® Civil 3D® 2007, and Autodesk Map 3D 2007.

June 24, 2006

Automatically Displaying a Viewport’s Scale

For those not using Project Navigator and the Callouts that are linked to a Model Space View, there are two ways to display the scale of a viewport that will update "semi-automatically". Users of Autodesk Architectural Desktop 2004 or later can use Formula properties to obtain and format the viewport scale. Users of Autodesk Architectural Desktop 2005 and later can use a field in Text, Mtext or an Attribute attached to a Block Reference. Each method has its advantages and disadvantages; use the method that works best for you and your workflow.

A sample file created in ADT 2006 that contains examples of both techniques has been posted to this thread in the Autodesk Architectural Desktop Dicussion Group. The content in that file is not meant to be finished content suitable for project use, but was developed solely to demonstrate that the ideas work. Testing of the content was fairly limited; should you choose to adapt any of it for your own use, please test it thoroughly to be certain it performs as you expect.

Setting up a field is certainly easier than setting up the formulas and tags. I used Dtext to hold the field, but you could add it to an attributed block just as easily. After adding the field or attributed block with the field, you will need to edit the field. Choosing the Object Field Name, use the Select Object button to select the desired viewport, select the Custom Scale Property and choose your desired Format. The 2006 version of the dialog can be seen in the image below.

I noted the following with respect to using fields:
  • Formatting in fields is "static" - you pick one of the given formats and that is how the scale is displayed. For example, Imperial "architectural" scales are usually given in terms of the distance that represents 1’-0" [1/4" = 1’-0"], while "engineering" scales are given as the distance that 1" represents [1" = 50’-0"]. There are formats for each type, but you would have to manually set that for each field. The 1" = #’ format only shows the distance as feet, not feet and inches.
  • If the scale factor of a viewport is close but not quite an exact "typical" scale, the value may round to a "typical" scale value, masking the error.
  • The #" = 1’-0" and #" = 1’ formats will always express any fractional number with a denominator that is 2 raised to some power [halves, quarters, eighths, etc.]. You will not get 1/10" = 1’-0", but 13/128" = 1’-0", which is not an exact expression of the scale.
  • 2006 and 2007 offer a formatting option, "Use scale name", that overcomes the previously mentioned issues by displaying scales that have been entered into the Scale List using the scale name. You will have to enter all of the scales you expect to use in the Scale List, but you would probably want to do that anyway. Viewport scales that do not match a value associated with a scale on the list are displayed as the raw custom scale number, making it easy to spot viewports which have "close, but not quite" scales. 2005 lacks this option, as well as the option to express Imperial scales as 1" = a number of feet.

You can retrieve the CustomScale property for a viewport object using a Formula property that is part of a Property Set Definition attached to the viewport. You can then format that value however you like, provided you are willing to write the code to do so. There is also a StandardScale property, which returns an integer that is likely related to the Scale List, but in the time I spent looking at this, I was not able to work out how to take that number and use it to get the associated scale name.

The following assumptions were made in developing the sample Formula properties. If your situation varies, you may need to adjust the formulas to suit.
  • Drawing units for Imperial are inches and for Metric are millimeters. Other base units may require adjustments to compensate.
  • Metric scales are expressed as ratios of plotted units to real-world units, with one side or the other set to 1.
  • Imperial scales are expressed as fractions of an inch equal one foot, when the fractions of an inch can be given as a whole number of 256ths of an inch. The fraction is reduce to the lowest possible denominator. Otherwise, Imperial scales are given as 1" = a number of feet and inches.

The ViewportObjects Property Set Definition in the sample file contains the following properties:
  • DetailNumber - A text-type Manual property for entering a detail number.
  • DetailTitle - A text-type Manual property for entering a detail title.
  • Handle - An Automatic property that references the Handle automtatic property source. This property is used to get the viewport object in the ViewportScale Formula property.
  • Measurement - A Formula property that gets the value of the Measurement System Variable. This is used to determine if the viewport scale should be formatted for Imperial [value is 0] or Metric [value is 1].
  • ViewportScale - A Formula property that gets the value of the viewport's CustomScale property, and returns the inverse of that value.
  • ViewportScaleString - A Formula property that takes the value in the ViewportScale property and formats it, based on the Measurement property value and the ViewportScale value. Metric scales are expressed as a ratio of plotted units:real-world units. When each plotted unit represents more than one real-world unit [typical in architectural drawing], this results in 1:[scale factor]. For that rare case where you are showing a detail at larger than full-size, the scale is given as [1/scale factor]:1. Where Imperial scales can be expressed as a whole number of 256ths of an inch = 1'-0", that format is used, otherwise, the scale is expressed as 1" = feet and inches.

I chose to use two separate properties, one to get the scale value, and another to do the formatting, to make it easier to test these two functions. You could just as easily use one formula and eliminate any issues that might arise when reading the ViewportScale value into the ViewportScaleString property, such as the reduction of the precision to a maximum of eight decimal places.

The Measurement formula reads in the value of the MEASUREMENT System Variable, using this formula:
Set acadApp = GetObject(,"AutoCAD.Application")
RESULT = acadApp.ActiveDocument.GetVariable("MEASUREMENT")

The ViewportScale formula gets the viewport object using the Handle Automatic Property Source. Since viewports are in paper space, there will be no issue with the Handle source not working across externally referenced files; using Handle lets the same formula work in any version since the introduction of the Formula property in ADT 2004. Once the viewport object is in hand, getting the CustomScale object and taking its inverse is easily done.
Set acadApp = GetObject(,"AutoCAD.Application")
Set pViewportObj = acadApp.ActiveDocument.HandleToObject( "[Handle]" )
RESULT = 1 / pViewportObj.CustomScale

The ViewportScaleString property uses the value from the ViewportScale property and performs the formatting need to create the string to be displayed. As shown in the code below, the first test is for whether the drawing is using Metric or Imperial, based on the value in the Measurment property [MEASUREMENT System Variable value].
scaleFactor = [ViewportScale]

If [Measurement] = 1 Then
' Metric drawing
If scaleFactor > 1 Then
scaleFactor = Fix( scaleFactor * 10000.0 ) / 10000.0
RESULT = "1 : " & CStr( scaleFactor )
inverseScaleFactor = Fix( 10000.0 / scaleFactor ) / 10000.0
RESULT = CStr( inverseScaleFactor ) & " : 1"
End If
'Imperial drawing
'If 12.0/scaleFactor is a whole number of 256ths, return string as that
'fraction, reduced to lowest denominator = 1'-0"; otherwise, return string as
'1" = feet (and inches).

inchesPerFoot = 12.0 / scaleFactor
maxNumerator = inchesPerFoot * 256.0
If ( maxNumerator - Fix( maxNumerator ) ) = 0 Then
minNumerator = maxNumerator
powerOfTwo = 0
tempNumerator = minNumerator / 2.0
Do While tempNumerator - Fix ( tempNumerator ) = 0.0
powerOfTwo = powerOfTwo + 1
minNumerator = tempNumerator
If powerOfTwo = 8 Then
Exit Do
End If
tempNumerator = minNumerator / 2.0
minDenominator = 256.0 / 2^powerOfTwo
RESULT = minDenominator
wholeTotalInches = Fix ( minNumerator / minDenominator )
properInchesNumerator = minNumerator - ( wholeTotalInches * minDenominator )
wholeFeet = Fix ( wholeTotalInches / 12.0 )
wholeInches = wholeTotalInches - (wholeFeet * 12.0)

If wholeFeet = 0 Then
strWholeFeet = ""
strWholeFeet = CStr( wholeFeet ) & "'-"
End If

If (wholeInches = 0) and (wholeFeet = 0) Then
strInches = CStr( properInchesNumerator ) & "/" & CStr( minDenominator )
Elseif properInchesNumerator = 0 Then
strInches = CStr( wholeInches )
strInches = CStr( wholeInches ) & " " & CStr( properInchesNumerator ) & "/" & CStr( minDenominator )
End If

RESULT = strWholeFeet & strInches & Chr(34) & " = 1'-0" & Chr(34)

wholeFeet = Fix( scaleFactor / 12.0 )
inches = ( Fix( ( scaleFactor - ( wholeFeet * 12.0) ) * 10000 ) / 10000 )
RESULT = "1" & Chr(34) & " = " & CStr(wholeFeet) & "'-" & CStr( inches ) & Chr(34)
End If
End If

Please note the following with regard to rounding: The ViewportScale property returns the inverse of the CustomScale property of the viewport, with up to eight-decimal places. The ViewportScaleString arbitrarily cuts off formatted Metric scales and Imperial scales using the 1" = feet and inches format to four decimal places without rounding. This should not be an issue if your viewport scale is a standard scale with a whole number scale factor; displaying some fractional value can help identify viewports that have been incorrectly set up or modified.

Updating of the Scales – Field and Formula
If you have read this far, you may have forgotten my use of the term "semi-automatic" way back in the first paragraph to describe the updating of the scale properties. Here is what I observed in my sample file, during the limited testing that I did. The values do not always update instantaneously; I did not test what would happen when plotting the file with a value that had not been updated. If you have all of the "Automatically update field values" options selected [User Preferences tab of the Options dialog] - including Plot - I would not expect to have a problem with fields, but you would certainly want to test this before using it in a production environment.
  • Changes made to the scale of a viewport using any of the following methods routinely did not automatically update the scale value in the Schedule Tag or in a field. REGEN [REGENALL from Model Space] updated a field in MTEXT; OBJRELUPDATE was often needed to update the Schedule Tag [and also works on fields].
    • ZOOM command in Model Space of the viewport [all options, including real time].
    • Rolling the mouse wheel in Model Space of the viewport.
    • Viewport Scale Control [a toolbar control that is a feature of the ACAD.cui Viewports toolbar], in Model Space or Paper Space. ADT does not include this toolbar, so this may not be an issue for you unless you have the ACAD.cui loaded, have transferred the Viewports toolbar to the ADT.cui or have added the Viewport Scale Control to a custom toolbar of your own.
  • Changes made to the scale by selecting the viewport in Paper Space and using the Properties palette appear to be udated immediately in a Schedule Tag; a REGEN is required to update a field. Note: On occasion, but not consistently, I have seen changes made using the Custom property not automatically update in a Schedule Tag. In these cases, a REGEN has updated that tag value.
  • Changes made to the scale by selecting the viewport in Paper Space and using the VP Scale list on the Drawing Window Status Bar appear to be updated immediately in a Schedule Tag; a REGEN is required to update a field. Note: On occasion, but not consistently, I have seen changes made using the Custom option not automatically update in a Schedule Tag. In these cases, a REGEN has updated that tag value.
  • Changes made to the scale in Model Space and using the VP Scale list on the Drawing Window Status Bar appear to be updated immediately in a Schedule Tag; a REGENALL is required to update a field [or change to Paper Space and use REGEN]. Note: On occasion, but not consistently, I have seen changes made using the Custom option not automatically update in a Schedule Tag. In these cases, a REGENALL has updated that tag value.

One other note of caution: Do not use this with multiple versions of Architectural Desktop running - not simply installed, but with separate instances of multiple versions actually running - on the same computer simultaneously. I experienced "lock ups", where not only the Schedule Tag, but the Property Data as displayed on the Properties palette, remained fixed on the initial value, even after saving, closing and reopening the file. Closing all but one instance of one version of Architectural Desktop and reopening the file restored the ability of the properties to update.

June 17, 2006

Separating Structural Shape Names in a Complex Structural Member Style

Structural Member Styles can have up to ten components. The Shape Designation - List Automatic Property Source returns a "list" of the starting shapes used by the components of a Structural Member Style. The name of each shape appears in order, separated by a semicolon from the other shapes. For example, a steel column shape with three components, a 12x12 base plate, a W8x28 column and a 12x12 top plate, would be listed as "12x12;W8x28;12x12", assuming that "12x12" and "W12x28" were the shape names for the plate and column components.

If you wanted to create a tag that listed a particular shape name, or had some other need to have access to the individual shape names, you can use a series of Formula properties, one for each component/shape name. A sample file with one approach to doing this has been posted in response to a question raised in my AUGI Training Program course on Formula Properties [ATP121]. To assure access to the file after the course concludes, I have also posted the file to this thread in the Autodesk Architectural Desktop Content Discussion Group.

In the formulas, the first thing I did was to append a semicolon onto the end of the string returned by the Shape Designation - List Automatic Property Source. This creates a string in which every shape name is followed by a semicolon and allows every shape name to be processed in the same way.

While similar formulas could be used for all ten shape names, I chose to simplify the first formula as no initial processing of the string is required; all that is needed is to extract the first shape name in the string. The VBScript Left function is used to do the extraction; the InStr function is used to determine the character position of the first semicolon, and one is subtracted from that to return just the first shape name. Here is the formula for the first structural shape name:
shapeList = "[ShapeDesignation-List]" & ";"
RESULT = Left( shapeList, InStr( 1, shapeList, ";", 0 ) - 1 )

The formulas for shape names two through ten are identical, except for the value set assigned to the shapeNumber variable, which determines which shape name gets returned [2 = second shape name, 3 = third shape name, etc]. A Do While Loop statement is used to execute the code that removes the leading shape name and its trailing semicolon until the desired shape name is at the head of the string. Then the resultant string is processed using the same code as used in the formula for the first shape name. There is one extra wrinkle here, to accommodate Stuctural Member Styles that use less than ten components - after each truncation, the resultant string is tested to see if it is an empty string. If so, the Do While Loop is immediately exited. An empty string is returned if there is no component assigned to that number, otherwise the shape name is returned. Here is the formula for the second through tenth structural shape names, shown for the tenth name:
shapeList = "[ShapeDesignation-List]" & ";"
shapeNumber = 10
loopCount = 1
Do While shapeNumber > loopCount
shapeList = Mid( shapeList, InStr( 1, shapeList, ";", 0 ) + 1 )
If shapeList = "" Then
Exit Do
End If
loopCount = loopCount + 1

If shapeList = "" Then
RESULT = shapeList
RESULT = Left( shapeList, InStr( 1, shapeList, ";", 0 ) - 1 )
End If

The sample file contains a ten-component Structural Member Style called TestColumn, and a two-component Structural Member Style called TestColumn2, samples columns using these styles are shown below.

The style name property values for the ten-component style looks like this:

The style name property values for the two-component style looks like this:

June 10, 2006

Tag for Polyline-based "Rooms"

In response to a question in the Autodesk Architectual Desktop Content Discussion Group, I have posted a ZIP file containing a sample file and an AEC Content Schedule Tag file done in ADT 2005 showing that you can, if you like, use polylines to represent the outline of a room and set up a Property Set Definition and Schedule Tag that will display a room name, room number and room area.

If something like that would interest you, check it out in this thread.

June 09, 2006

Reminder - Formula Property Course Starts Monday

For those of you who are considering taking ATP121 but like to wait to the last possible moment to commit to something, that moment is here! The course starts Monday, June 12 - a mere three days from now. So go sign up for it, already, and I will "see" you in the course forum.

Read more about the class and how to join AUGI and/or sign up for the class in this previous post.