December 29, 2009

Space Schedule with Header Rows, sorted by Level and Building/Wing

A request was posted to this thread in the Autodesk AutoCAD® Architecture Discussion Group, looking for a way to add three blank lines between different building wings in a Schedule Table. A sample image was attached to the post, showing a header label in the middle line.
I suggested that it would be possible to get close to what was shown, by adding some hidden columns to control the sorting and some "non-real" Spaces for the blank rows, similar to the techniques used in two previous posts from some time back (Clustering Spaces Within A Unit in a Space Schedule and Electrical Device Schedule Using Clustering). I noted that it would not be possible to have the vertical lines between columns stop at the row with the header text, and that the header text would not be able to be in a larger font or be able to extend across multiple columns. I was able to use the 2009 release to put together a sample file, posted in a reply in the Discussion Group thread, that demonstrates the required techniques to achieve the desired results. I did choose to omit the remarks column and also chose to make the ceiling height column a separate column, to avoid the need to build an Imperial feet-and-inches formatted string at the end of the ceiling finish.
To achieve the results shown, I took advantage of a feature not available in the 2005 release in which the earlier examples were done – Classification Definitions. I set up a Classification Definition called SpaceHeader that has two classifications: "Header", used to designate the Space Style used for the header rows, which are not "real" Spaces in the project, and "Space", used to designate Space Styles used for actual Spaces in the project. Using a Classification Definition offers two advantages: it allows identifying the header Spaces at the style-level and would make it easy to exclude these "non-real" Spaces from other Space-related Schedule Tables, such as one listing and totaling areas.

A custom Space Style, called Header, has display overrides to place all components on a non-plotting layer, a default size of 1" x 1" x 1" and is classified as "Header". The other Space Styles used in the sample files are out-of-the-box styles, set to the "Space" classification. The sample files include three "construct" files, representing the first, second and third floors, with sample spaces in two wings/buildings in each file, including three Header Spaces for each wing. There is also a "view" file into which the three construct files are externally referenced, with the Schedule Table. While the files are not part of an AutoCAD Architecture "project," the same techniques could be used when using Project Navigator.

The SpaceObjects2 Property Set Definition was created from scratch, to avoid any confusion that might arise from having "extra" properties from the out-of-the-box property sets. Once you understand how the properties in the sample file work, you will most likely want to incorporate the techniques into the object-based property set you are currently using for Spaces, to avoid having to recreate Schedule Tags and other Space-related Schedule Tables.The SpaceObjects 2 Property Set Definition includes manual properties for Sector, Level, Number and Number Suffix, which are combined in the RoomNumber-Composite formula property to create the room number for each real Space. If you are using Project Navigator, you can substitute a project property for the Level property, and, if you are using Divisions for your wings or separate buildings, you can also use a project property for the Sector property. I made the Number property an Integer-type manual property; if you prefer, this could be an Auto Increment – Integer type. The RoomName property is an automatic property, using the Room Name property of the Space. Substitute your firm’s standard way of doing room names if it differs.

Text-type manual properties to hold the floor, wall base, wall and ceiling finishes for each real Space are also included in the SpaceObjects2 Property Set Definition. An Integer-type manual property called SortOrder1, with a default value of 10, is used to control the sorting of the Header Spaces. Real Spaces all keep the default value (no editing required), assuring that they will be sorted after the Header Spaces for each respective floor/wing. One Header Space for each wing of each floor has SortOrder1 set to 1, another (the one with the header text in the room number column) is set to 2 and the third is set to 3. A Text-type manual property called HeaderText, with a default value of an empty string, is provided to allow entry of the header text. Only the Header Space that is assigned the SortOrder1 value of 2 has the default value for the HeaderText property edited.

An automatic property called Height, referencing the Height automatic property source for Spaces, is used to obtain the ceiling height automatically. A classification property called SpaceType is used to determine what SpaceHeader classification has been assigned to each Space.

The header rows are blank (or nearly blank) because the Schedule Table does not display any of the above noted properties directly. Instead, each visible column in the Schedule Table references a formula property, each of which is structured something like the one for RoomNumber-Schedule shown in the image below.In each formula, the value of the SpaceType property is checked to determine if the Space is a "Header" Space. If so, the RoomNumber-Schedule property returns the value of the HeaderText property (blank for header rows 1 and 3; the header text for header row 2). All of the other formulas return an empty string for Header Spaces. If the Space is a "real" Space, then the value of the corresponding property is passed through (RoomNumber-Composite for the RoomNumber-Schedule property).

Sorting is accomplished by including three hidden columns in the Schedule Table, for the Level, Sector and SortOrder1 properties.These three columns, along with the RoomNumber-Schedule column, are used to achieve the desired sorting.All of the Spaces are initially sorted by Level. Within each Level, the Spaces are sorted by Sector, then the SortOrder1 value is used to get the Header Spaces, in order, at the top of each Floor/Sector group. Finally, the RoomNumber-Schedule column is used to sort the real Spaces by room number.

While the final Schedule Table does not match the sample 100%, it is pretty close, and given that all of the graphics are part of the Schedule Table, and not additional, manually placed items that would have to be checked and updated every time the Schedule Table was updated, I think this is a very workable solution. One final note: this technique will not work for Schedule Tables that include a "total" for any column in the Schedule Table, since the blank rows will have a non-numeric empty string value.

December 18, 2009

AEC Content on the Ribbon - AU Tech Talk

October 19, 2013 Update: The links to the Autodesk website no longer work for me, so I assume that the AU Tech Talk content has been taken down. I have posted the contents of my article on putting AEC Content on the ribbon in this post.

The December 2009 Edition of the AU Quarterly Newsletter is out. If you do not already receive the newsletter, you can do so by becoming a member of the AU Online site and requesting the newsletter in your profile, under the Preferences category. This edition includes a link to an AU Tech Talk article I wrote about accessing AEC Content from the ribbon. I had a chance to look into this topic more deeply since I last blogged about this topic.

The article is a fairly detailed tutorial (with pictures!) on how to customize a CUIX file to add a ribbon tool that "runs" a tool palette tool, enabling you to add your own custom AEC Content to a ribbon tab. You can access the AU Tech Talk page and look for my smiling face,or go right to the article (sorry, there is a picture of me there, too).

December 04, 2009

Revit Key Plans

Thanks to a little help from the AUGI Revit® Architecture Forum, I was able to add a key plan to the title block family in my current Revit project and, with the setting of one instance-based parameter for the title block on each sheet, display the appropriate key plan, or none at all. There are a number of suggestions and examples in that thread; here is what I did today.

I happened to have an AutoCAD® file that had the structural grid accurately drawn, so I made use of a copy of that, in AutoCAD® Architecture, to quickly draw the building outline and the match lines, determine the amount I needed to scale the outline down to fit in my key plan area and finally paste the scaled-down graphics into a new file created from scratch.

I started a new Generic Annotation family in Revit Architecture 2010, and imported my scaled-down drawing file, matching origin to origin. I traced over the graphics with Revit linework, added text and filled regions for each of the three sectors into which the plans are broken and popped in a north arrow. I then deleted the imported AutoCAD file from the family.

To be able to control the visibility of the graphics, I created four Yes/No parameters in the Family Types dialog: Outline, SectorA, SectorB and SectorC.I then created six family types: No Key Plan (all parameters unchecked), Outline Only (Outline parameter checked, others unchecked), Sector A (only Outline and SectorA checked), Sector B (only Outline and SectorB checked), Sector C (only Outline and SectorC checked) and Sectors A-B-C (all parameters checked).In the Instance Properties dialog for all of the graphics in the family, I set the Visible parameter to be equal to one of the Yes/No parameters. All of the graphics except for the filled regions were set to the Outline parameter and the filled regions were set to the appropriate "Sector" parameter.

After saving the family file, I loaded it into my title block family and placed an instance in the Key Plan area. I gave that instance a Label tied to an instance-based parameter called Key Plan that I placed under the Graphics category. I set the default value to No Key Plan, saved the title block family and reloaded it into my project.

Now, by simply setting the Key Plan parameter in the Instance Properties of each sheet's title block file, I can make the appropriate key plan display, and that key plan will be in the same location on each sheet.The Sector A key plan is shown above; the other options (other than No Key Plan, which is blank) are shown below and are a parameter setting away.Pretty slick, if I do say so myself. ;-) [As always, reduced images can be viewed full-size by clicking on them; use the Back button on your Browser to return to the article.]

October 19, 2011 Update: A more detailed explanation of how to embed key plan graphics in a title block family, with instance-based control over what, if any, graphics display at each title block, can be found in this blog article.

December 03, 2009

Writing on the Wall?

I can not say I looked very closely at the class offerings for AU 2008, but my recollection from AU 2007 and earlier was that there was a relative parity in the offerings for AutoCAD® Architecture and Revit® Architecture (even if Revit had a "Power Track" and ACA did not).

For AU 2009, if you use the search feature on the class catalog and specify AutoCAD Architecture as the "software", there are all of thirteen AutoCAD Architecture classes (one lab) and one unconference session listed, if you count Matt Dillon's "two-part" class on scheduling as one class and eliminate the "Digital Tools" unconference and Revit Visualization class that are clearly mis-associated with AutoCAD Architecture. There are no AU Virtual classes on AutoCAD Architecture. Thanks to double-booking in some time slots, you could not schedule an entire slate of ACA classes this year, as there are time slots that do not have an ACA class offered.

Searching on Revit Architecture, on the other hand, yields a bumper crop of seventy-six classes (including four labs) and eight unconference sessions. I did not check through all of those classes to see if any were miscategorized or to check for repeat offerings. There was at least one class in each time slot and many slots with multiple choices. There are also nine AU Virtual sessions covering one or more versions of Revit, including one specifically covering Revit architecture. So if you were wondering which program Autodesk wants you to learn, wonder no more.

Make of the above observations what you will. I did not have the pleasure of attending AU in 2008 or 2009. Perhaps the ACA classes offered in 2008 were sparsely attended, and the drop in the number of classes offered simply reflects market demand. Or perhaps it is simply an extension of the marketing push to Revit. Given how much I still have to learn about Revit, I suppose I should be glad there will be a lot of learning opportunities once the recorded sessions are posted to AU Online.