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.

November 25, 2009

ACA Scheduling by "Mark"

The out-of-the-box Door and Window Schedules and Schedule Tags are set up to identify each Door or Window with a unique identifier and list each one in the Schedule Table. While that suits many practices (including mine, for Doors), there are many who prefer to assign a "mark" to a particular Door or Window configuration and use that mark on all instances of that configuration. The Schedule Table would then list each mark only once. This is easily done in Autodesk AutoCAD® Archtecture, with the addition of a few properties and some tweaks to the Schedule Table and Schedule Tag you are using.

You can find a sample file done in the 2010 release (and, therefore, in the 2010 drawing format) posted in a reply in this thread in the Autodesk AutoCAD Architecture Discussion Group. The purpose of the sample file is to demonstrate a way of scheduling Doors by Mark, and the Property Sets, Schedule Table Style and sample data focus on that, and are not meant to represent a finished system, ready for use (or a compelling architectural design). Several other properties are included in the Property Sets and Schedule Table, to give a sense of context, but do not show all of the information you would want in a Door Schedule.

I made the following assumptions:
  • There would be a unique mark for each combination of Door parameters, including size.
  • Most Doors would be a "standard size" and that the mark for those Doors would be entered in the standard size description.
  • The system had to allow for an occasional, non-standard-size Door, without requiring that the Door Style of that Door be edited to have the non-standard size added.
  • An office-wide set of standard mark designations can be established and built into the office-standard Doors Styles, so that the standard sizes and associated marks do not have to be added to the Door Styles for each project.
If you have a unique Door Style for each mark you require, then a simple manual property in a style-based Property Set can be used to hold the mark value, add that to your tag and schedule and you would be done. If you can not establish office standards that will cover a large majority of the Doors on your projects, you may be better served with a manual property in an object-based Property Set and entering the value for each Door.

In the sample file, there are four Door Styles in which standard sizes have been entered and the desired mark has been assigned as the Description. The image below shows the Standard Sizes tab for the Single - Wood Full Flush - No Light Door Style.
There is an automatic property source for Doors, Standard Size Description, that will make the Description entered in for a Standard Size available in a Property Set. The DoorObjects2 Property Set in the sample file makes use of this for the MarkFromStdSize property. If you only use Standard Sizes, you can use this property directly in your Schedule Tag and Table. This property will display the value of the Not Applicable property of the assigned Property Data Format (NA for the out-of-the-box Case - Upper Property Data Format used in the sample file) if a non-standard size is used for a Door, so I included two additional properties: a text-type manual property (MarkOverride) to hold the value of the mark for non-standard-sized Doors and a formula property (Mark) to pass through the appropriate value for each Door.The Mark property is the one that appears in the tag and schedule. The MarkOverride property has a default value of EDITME, so that if a non-standard size is used and a MarkOverride value is not entered, it will be obvious in the tag or schedule.

The formula property checks the value of the MarkFromStdSize property. If it is "NA", then the value of the MarkOverride property is passed through; otherwise, the value of the MarkFromStdSize property is passed through. Note that in this example, changing the value of the override property is not the trigger for the formula property - the override value is only passed through when a non-standard Door size is used.
Add the Mark property to your Door Schedule Table Style, and delete any other "Mark" or "Door Number" column. To get all of the Doors with the same Mark to collapse into one row, add a quantity column to your Schedule Table Style. Hide this column if you do not want it to show in the final Schedule Table, as I did in the sample file.Keep in mind that for rows to collapse, all of the columns must show identical information. If you have an object-based Remarks column, such as the sample file has, you would need to add the exact same text the to Remarks property for each Door of a given mark for the rows to collapse. The same will hold true of any other columns in your Schedule Table.

The Door Tag in the sample file is simply a copy of the out-of-the-box Aec6_Door_Tag that has had the Multi-View Block and the assigned AutoCAD block renamed. The Attribute Tag of the assigned AutoCAD block was edited to reference/display the DoorObjects2:Mark property.

All of the Doors in the sample file are a standard size of their Door Style, except for the A4 Door, which is not and derives the "A4" mark from the MarkOverride property.


course|notes are six-page reference cards that provide quick access to the basics of a particular program. Paul Aubin now has three titles available for the 2010 releases of AutoCAD Architecture, AutoCAD MEP and Revit Architecture. If you are interested, you can find out more in this article in his blog.

Full Disclosure: I helped Paul with the AutoCAD Architecture 2010 course|notes and was compensated for my efforts.

November 18, 2009

Mastering AutoCAD Architecture 2010 Available

As reported in his blog, Paul Aubin's Mastering AutoCAD Architecture 2010 is now available. Read more about it in his blog article or at his website, from which you can also link to to order the book if you are so inclined.

November 13, 2009

Best Error Dialogs Ever!

We migrated our project to Revit Architecture 2010 this week, for reasons too boring to relate here. Our computers, however, remain the same, and what in 2009 was a relatively infrequent out-of-memory error situation has become a multiple-times-a-day nightmare. Add that to the even more frequent loss of the floating network license and this week has been a real treat. (Thankfully, the transit strike was settled early Monday morning, so I have not been walking six miles each way this week.)

Even under the stress of trying to get a progress printing done today, I could not help but laugh at this incredibly helpful error dialog that appeared on my computer today.
I thought I had seen it all until this beauty came up.
You really have to admire the efficiency with which it fails to communicate what the problem is. At least there was no question as to the action to take, since "OK" was the only choice. Sadly, after clicking on the OK button ten or so times, Revit crashed and burned.

November 04, 2009

Off Topic: Transit Strike

The oh-so-considerate union leadership called a strike at 3 am on Election Day (yesterday, November 3), giving commuters (including me) no opportunity to make alternate arrangements and squandering any sympathy those same commuters might have had for the strikers. Thanks to the intervention of the governor and the mayor, the strike was postponed until after those rich enough to afford World Series tickets but too cheap to pay for parking at the stadium were able to get home from Game 5 in Philadelphia. So those who only ride public transit when the Phillies make it to the World Series were accommodated; those who ride every day were [insert expletive of your choice here].

I now find myself with a 6-mile walk each way, in and out of work. The good news is I have been able to do it in 90 minutes (average rate of 4 mph!), which is much faster than I would have estimated. The bad news is my commuting time is now about two hours longer than it was, and my schedule needs to adjust accordingly. As such, it is unlikely I will have time to post much to this blog until such time as the transit strike is resolved. As of Day 2, no additional talks have taken place (or even been scheduled).

October 26, 2009

Equal Lights Republished

A little over a year ago, I contributed an article to the AU Quarterly Newsletter on creating equal lights in Door/Window Assemblies, Curtain Walls and Curtain Wall Units. Unfortunately, when the AU Online site was overhauled last December, the links to articles from previous newsletters were lost. For those who never read the article and those who have forgotten its contents (including me), here is the article. If you are interested, a drawing file that has the Door/Window Assemblies used to generate the images below, along with some other experiments done while writing the article, can be found in this post in the AutoCAD Architecture Content Discussion Group.

Equal Light Openings With Door/Window Assemblies and Curtain Wall Units

You might think that creating Door/Window Assembly or a Curtain Wall that has equal light openings is a fairly simple task – set up a Division with a fixed number of Cells and you should be good to go. The same technique should also work if you wanted to use a Curtain Wall Unit to subdivide those equal Cells with “muntins” to get equal light openings between muntins. You could then place the Door/Window Assembly or Curtain Wall at any size and have equal light openings. While you can achieve the desired results, it will take a little knowledge and some additional effort.

There are two reasons why it is not quite as simple as we might like:

  • The “equal” in equal Cells refers to the distance between grid lines. Unless offsets are applied to the Frame or Mullion, the outer grid lines occur at the outside edge of the Frame, while the inner grid lines are centered on the Mullions. This means that the light opening of the start and end Cells will be reduced by the full width of the Frame, plus half the width of a Mullion, while interior Cells will only be reduced by the width of a Mullion. If both Frame and Mullion are the same width, the Start and End Cells’ light opening will be less than the light opening of the Middle Cells.
  • The grid lines of a nested Curtain Wall Unit are spaced evenly, based on the location of the parent Door/Window Assembly or Curtain Wall grid lines bounding that Cell, not on the light opening of that Cell. The Frame of the Curtain Wall Unit will be located at the light opening of the Cell, but the locations of “equal Cell” Mullions may not generate equal light openings in the Start, End, Top or Bottom Cells.
Figure 1
Equal Cell Door/Window Assembly with Equal Cell Curtain Wall Unit Infill
Blue Dimensions – Gridlines; Red Dimensions – Light Openings (Typical in all Figures)

If you keep the above in mind, it is possible to create equal light openings, and we will take a look at some techniques to do so, starting with the outer Door/Window Assembly or Curtain Wall, and then looking at the impact those choices have on a nested Curtain Wall Unit. A Door/Window Assembly will be used for these examples, but the techniques also apply to Curtain Walls.

There are several ways to generate equal light openings in the parent Door/Window Assembly or Curtain Wall.
  • Frame Offset: This might be acceptable for a Curtain Wall, since it does not create its own opening, although the Curtain Wall’s overall length and height will not represent the overall Frame dimension. For Door/Window Assemblies that are anchored in a Wall, offsetting the Frame pushes it into the Wall, leaving part of the Frame buried in the Wall, which is not acceptable.
  • Mullion Offsets: By creating multiple Mullions with varying offsets, assigned to the proper locations, equal light openings can be created. For example, three equal openings can be created when the Frame and Mullion widths are equal by setting up a vertical Division with three equal Cells and then creating two Mullions, each offset by 1/6 of their width toward the middle, resulting in each Cell losing 1-1/3 of the Frame/Mullion width. This can get rather complex when there are five or more equal openings to be created.
  • Start/End Division Offsets: This is the easiest method, and can also accommodate the case where the Frame and Mullion dimensions are not equal. Simply subtract one half the width of the Mullion from the Frame width and use that for both the Start Offset and the End Offset of the Division. This will make the Start and End Cells wider than the Middle Cells, resulting in equal light openings no matter how many Cells are specified, without the need to create offset Mullions.

Figure 2
Equal Cell Door/Window Assembly with 1.5 Start and End Offset

For a Simple Panel, Door or Window Infill, using the Start/End Division Offset method is the way to go, as these elements will be sized to fit the light opening of the Cell in which they are placed. If you can achieve your desired Muntin pattern by using the Muntins in a Window Style, that may be the best way to get equal light openings in a style that works for any overall Frame dimension, using a single Infill style.
Figure 3
Equal Cell Door/Window Assembly with 1.5 Start and End Offset
Window Style Infill with 0 Width Frame and 1 Width Sash and Muntins

If you need the greater control over spacing that using a Curtain Wall Unit for Infill can provide, there is a small problem with using the Start/End Offset method – the applied offset makes the outer Cells wider, but does not move the grid lines from the outside edge of the Frame, so the same Curtain Wall Unit Style can not be used for all Cells. (The Mullion Offsets method may also have the same problem, because the light opening is likely not centered on the gridlines in all of the Cells.) Fortunately, two copies of that Curtain Wall Unit Style, one with a Division Start Offset and one with a Division End Offset equal to the Offsets applied to the parent object can be quickly created, assigned to an Infill and used in the Start Cell and End Cell respectively. This gives you the look you want, while maintaining the flexibility of being able to change the overall Door/Window Assembly dimensions.
Figure 4
Equal Cell Door/Window Assembly with 1.5 Start and End Offset
Curtain Wall Unit Style Infill – Three Similar Styles:
1.5 Start Offset in Start Cell, No Offsets in Middle Cell, 1.5 End Offset in End Cell
(3.5 Offset Top and Bottom at Horizontal Division, All Three Styles)

Here is an example of a more complex muntin pattern. A series of nested grids, all using a fixed number of Cells, was used to create the pattern. Start and or End Offsets were applied as needed to get the equal light openings shown. This can be a little tricky to set up, since the nested grids for the Start and End Cells also need to have offsets applied, but once you have it set up, you can create a Door/Window Assembly with any overall length and height and maintain equal light openings.
Figure 5
Equal Cell Door/Window Assembly with 1.5 Start and End Offset
Curtain Wall Unit Style Infill with Offsets Applied to Multiple Divisions as Necessary

October 20, 2009

Revit - Modify Group Origin

This will likely not be news to long-time Revit users, but after a couple of months of Revit use, I discovered this feature today. The project on which I am working has a number of pairs of identical patient rooms, which another team member set up as Model Groups. The rooms are arranged along the curved exterior of the building, so each group is rotated slightly from the adjacent groups. After working through several design iterations, I was trying to get the "final" design drawn accurately and to get the adjoining Walls to clean up correctly. I was frustrated by the lack of an exposed coordinate system or the equivalent of an insertion point in Revit. I also found it annoying that I had to continually repostition the rotation point when orienting each Model Group.

It turns out that there is an "origin" for Model Groups and that origin is the default rotation point for the group. Somewhere along the line, the origin of our Model Group got moved off to a random point within one of the rooms. Fortunately, it is quite easy to relocate the origin point. (Which probably explains how it got moved to such a strange place - it is almost too easy to move it.) Simply select an instance of the Model Group in a Plan or 3D view. As shown in the image below, in a Plan view you will get two axes, labeled "X" and "Y", with three grip points. Click on the grip point at the intersection of the axes......and drag the the point where you want the origin placed and release the left mouse button.I used an intersection snap [SI] in the example in the screen captures to be certain it was placed accurately. The grips at the "arrow ends" of the axes allow you to rotate the axes, if you want to change the angle at which the Model Group initially inserts.

One small step on the road to Revit enlightenment; one giant reduction in frustration.

October 01, 2009

Revit Praise #1 - Parametric Families

Today was a really, really bad Revit day, but it would be churlish of me to say only bad things about Revit® Architecture, when that does not reflect my opinion of the software on most days. I realize that much of my struggle can be ascribed to a combination of my inexperience with the software, the overly demanding nature of the geometry of the building for which the fitout is being done and "issues" with the linked Revit files for the building, done by another firm and outside of my ability to control or improve.

So lets focus on a strength of Revit that I find quite fascinating: the ability to create custom components that are driven by parameters. This past August I had the good fortune to be able to take Paul Aubin's on-line Mastering the Family Editor, a series of five one-hour, on-line training sessions covering the use of Revit's Family Editor. (See Paul's website for current offerings. It was my understanding that he plans to make recordings of sessions available, for a fee, to those who did not sign up for the live course, but I did not see a link for this particular course as of tonight.) By setting up parameters, you can get the same graphics to "flex" to multiple sizes ("types", in Revit terminology) without the need to create multiple styles, as you would with a Multi-View Block in AutoCAD® Architecture.

Armed with that excellent knowledge, I was able to create two families for accessible shower seats (one each for rectangular and L-shaped). Each family currently has two types - one for the maximum seat size allowed under ICC/ANSI A117.1 and one for the minimum size. The images below show the plan views for the two families. The origin point for the component is at the upper left corner. The green dashed lines are "reference planes", and the top and far left ones are designated as defining the component's origin (the corner of a shower). The reference planes do not show when the object is placed in a project, but within the family, provide a framework on which the 2D linework (used here, to keep file size down) or 3D objects can be locked.
Square Shower Seat

L-Shaped Shower Seat
(Click on any image to see a full-size version; use the back button in your browser to return here)

The dimensions with text are the parameters and in this case are all type-based. Each type created can set a different value for each of these dimensions. The dimensions with numbers only are fixed dimensions, which maintain desired distances between two reference planes when one is moved by a change in a parameter value. In this case, I chose to make the maximum allowable distance off the back and side walls fixed dimensions.

The blue double arrow icons are controls that allow the graphics to be "flipped" to cover opposite hand situations. Adding these is as simple as selecting the Control tool on the Design bar, choosing the Control type on the Options Bar and clicking in the plan view window to place the Control. (I am currently using Revit Architecture 2009; the process in 2010 may be slightly different.)

One might argue that with only two types in each family, this is a bit of overkill. Other types, based on specific manufacturer's dimensions, could easily be added. (The elevation views also have a Height and Thickness parameter to drive the location of the top of the seat and the thickness of the seat.) The point here is to show some of the possibilities. Components that have the same basic shape, but many possible sizes - for example, Doors - allow a single piece of content to have many types, representing the range of available sizes. By carefully setting up reference planes and parameters, you can add as much control to your custom content as you need, rather than having to make a custom Profile or View Block for each size or live with having a single Profile or View Block being scaled to the overall width/height, as you would have to do in Architectural Desktop.

Using type parameters allows you to build-in standard sizes, which is appropriate for items that are manufactured to certain, predetermined sizes. Parameters can also be made instance-based, if you want to be able to set the parameter value for each instance, which would be appropriate for content that is built-to-order.

September 30, 2009

Revit Rant #2

The project on which I am working has a Model Group for a pair of patient rooms, which is then repeated multiple times on two floors.

When making changes to the Model Group, you enter a special mode. When the edits are done, you "Finish", and the edits are propogated to each instance of the Model Group. When it works, it is really great, and most of the time it works.

Today, I ran into a problem that I had encountered previously. There is another team member working on the project, and when I tried to save the changes I made to the Model Group, I got an error message stating that the other person had possession of an element that needed to change as part of my Model Group save. The error message indicated that the other person needed to Save to Central, and then I needed to Reload Latest.

Getting the other person to Save to Central was no problem, since we sit in adjacent cubicles. Unfortunately, the Reload Latest function is disabled when editing a Model Group, so I still can not save the Model Group changes! That in itself is infuriating (I just love redoing work), but to have the error message tell me to do something that can not be done is simply rubbing salt in the wound.

So, you need to strike a balance between saving Model Group changes so often that you waste too much time waiting for the save to occur and doing so much work in a Model Group edit session that, should you be unable to save because you can not Reload Latest, you lose too much time discarding and redoing the edits.

Revit Rant #1

DISCLAIMER: It may very well be that the issues discussed below have a solution, of which I am unaware, due to my current level of Revit experience.

I am finding it very difficult to draw/model with any accuracy. The lack of an exposed coordinate system (let alone a user-defined one), and simple things like insertion points for linked Revit files or Model Groups is maddening. Modeling anything, in place, where you want it when you first place it is extremely difficult. The fact that the project on which I am working has multiple weird angles does not help.

I am also frustrated by the number of items in the program that can not be done with accuracy or repeatably. Clipping a view and placing a view on a sheet are, so far as I can tell, a total "eyeball" situation. It becomes rudely apparent when you change from one sheet to another, and what should be aligning plans on adjacent floors (or aligning plans of different types of the same floor) ends up being an animation, with the plan moving up and down, side to side or both.

Side Note to Self: The next time someone asks me to work on a project where adjacent rooms are rotated at 1.53 degrees, just say no.

September 14, 2009

Update 1 for ACA 2010 Released

Update 1 for AutoCAD® Architecture 2010 was released today. Get the proper version for your operating system type (32-bit or 64-bit). Be certain to read the "readme" before installation, where you will find installation instructions as well as a summary of the AEC and AutoCAD issues resolved.

September 05, 2009

2010 File Format Change

This post may be somewhat on the late side, but given the continuing confusion in the Discussion Groups, it may still be of value to some. The 2010 release of AutoCAD® and the related "vertical" products, such as AutoCAD® Architecture, introduced a new AutoCAD file format (the 2010 format). ACA files created in 2010 as well as files created in a previous release and opened and saved in 2010 will have 2010-format AEC objects, which are NOT compatible with previous releases and CANNOT be saved back to a previous release format.

As this Knowledge Base article states, there are only two options for going back to a previous release. Exporting to AutoCAD will explode all AEC objects to AutoCAD objects. SaveAs to a previous release will result in un-editable proxy objects representing the AEC objects and new AEC objects will NOT be able to be created in the file.

So, if you need editable AEC objects, there is no going back from a 2010-format file to an earlier release. Keep that in mind when planning a deployment of ACA 2010. And, for the record, this is exactly the same situation as occurred with the release of ADT 2004 and ADT 2007.

August 28, 2009

Another Automatic Property Override Sample

For those of you who never tire of examples of using a manual property and a formula property to allow for overriding the value of either an automatic property or a style-based manual property on an object-by-object basis (and for those who have never seen an example of this), I have posted a ZIP file with a file created in AutoCAD® Architecture 2009 to the Default Finish Scheduling thread in the Autodesk AutoCAD Architecture Discussion Group. Look for the file attached to my August 24, 2009 reply.

The sample file has a style-based Property Set with text-type manual properties for entering typical room finishes for a specific Space Style. If you set up separate Space Styles for each room type you have anyway, doing this provides an easy way to get schedulable finish information into your drawings, since you only need to enter the finish information once, in the Space Style, for each style. If your projects usually have the same finishes in all Spaces of the same type/style, the style-based Property Set could be all you would need. Even if you had two or three different sets of finishes for a particular Space type (for example, for offices), if there were a significant number of each office type, you would probably want to create a separate Space style for each office type, and assign the appropriate finishes at the style level.

Many projects will have individual Spaces that will have some variation from the typical finishes for its Space type. If there are only a few of these, it may not be too much trouble to create separate Space Styles for each variant. But if there are a large number of unique variants, creating a Space Style for each will quickly become a burden. Rather than give up on style-based properties and go to object-based properties (where you would need to enter the data for each individual Space), you can set up an object-based manual override property to hold a different value for just that one Space, and a formula property that you use in the Schedule Table, that checks to see if the override property is set to its default value. If so, the formula passes through the style-based typical value. If not, the formula passes throught the override value. That allows you to take advantage of the power of style-based properties without needing to create a separate Space Style for each variant.

The sample file has a handful of Space Styles and two custom Property Sets. The SpaceStyleFinishes Property Set contains five manual properties for entering the typical floor, base, wainscot, wall and ceiling finishes for a particular Space Style. Depending upon the nature of your work and the way you document finishes, you may need to add or subtract properties here; for example, you may want four wall finish properties (north, south, east and west). For the purposes of being able to create the example file without taking an inordinate amount of time, I limited the properties to those five. (As always, click on any image to see a full-size version; use the Back button on your browser to return here.)This Property Set applies to Space Styles and is attached to each style on the General tab, using the Property Sets... button.If you have a number of frequently used finishes, consider setting up a List Definition that applies to Manual Properties to hold the options for each finish type, then using that to speed entering values (and make them consistent). The sample file does not include this; values there were manually entered in the Edit Property Set Data dialog.The SpaceObjectFinishes Property Set contains two properties for each property in the style-based property: an Override property to hold the override value, when one is desired, and a formula property to pass through the appropriate value, as noted above.The default value for the override properties is "USEDEFAULT!" (without the quotation marks). The exact value you use is not important, so long as it is not anything that could be a value you would want to use for the override. The formula property for each finish type is similar to that shown below for the FloorFinish formula property.
If "[FloorOverride]" = "USEDEFAULT!" Then
RESULT = "[SpaceStyleFinishes:FloorDefault]"
RESULT = "[FloorOverride]"
End If
The formula tests the override property to see if its value remains the default value. If so, it passes through the typical, style-based value. If not, it passes through the override value. By using this property in your Schedule Table Style and/or Schedule Tag, you get the advantages of both style- and object-based properties.

The sample file also contains two Schedule Table Styles. One is meant for final documents, and shows only the "final" formula property value for each Space.You can not use the Cell Edit feature to edit the finish values in this Schedule Table, however, because automatic properties like formula properties can not be edited that way. If you prefer to make post-placement edits by using Cell Edit, then you will also want to have a "working" Schedule Table Style, which is the second one in the sample file. This lists the formula property, style-based typical property and object-based override property for each finish type. You can use Cell Edit on either the typical property, changing the formula property value for all instances of that style that do not have overrides, or the override property, changing the formula property value for just that Space.In the partial Schedule Table shown above, you can see that an override value has been entered for the floor finish for the last three Office Spaces (111, 112 and 113), changing the default value of CPT 2 to CPT 5.

August 23, 2009

AutoCAD® Architecture 2010 – UI Changes, Part 6 – The Ribbon, Render Tab

Render Tab
The Render tab is the fourth static (always available) tab provided in the out-of-the-box ACA CUI. The image below and all screen captures in this article are based on the shipping version.
Tools Panel
The Tools Panel contains a single button that toggles the tool palettes on and off, setting the Visualization tool palette group current when toggling it back on.If you would prefer that it simply switch to the Visualization tool palette group, refer to this previous article for instructions on how to modify the CUIX file.

Render Panel
The Render Panel contains commands related to rendering.The Render split button split button allows you to render or render a region.The main button will change to run the most recently chosen option from the drop-down list. The Render Presets drop-down button offers a list of named, pre-established rendering settings. The most recently used choice is displayed when the drop-down list is collapsed.Choose Manage Render Presets at the bottom of the drop-down list to open the Render Presets Manager dialog, where you can edit the current settings, review the settings assigned to any of the standard presets as well as create or edit custom render presets (RENDERPRESETS command). The button below the Render Presets drop-down does not execute a command, but shows a histogram indicating the progress of a rendering in progress. Selecting the button at the left side of the third row on the main panel, Render Output File, toggles whether or not a rendered image is saved to a file. When enabled (bluish background, rather than gray), the Browse for File button at the right side of that same row (elipsis icon) becomes enabled, allowing you to specify the path and file name for the rendering file. The text box in the middle of the third row will display the path and name of the specified file. Select the Render panel title bar to expand the panel. A slider button shows the current render quality. The Render Output Size drop-down offers four standard image sizes; choose Specify Image Size at the bottom to open the Output Size dialog, where you can set a custom size for the rendered image.The Adjust Exposure button (RENDEREXPOSURE command) opens the Adjust Rendered Exposure dialog when the LIGHTINGUNITS system variable is not set to 0. The Environment button opens the Render Environment dialog, where you can enable or disable "Fog" and control various parameters thereof (RENDERENVIRONMENT). The Render Window button (RENDERWIN) opens the Render window without starting a rendering operation, allowing you to view previously rendered images for drawings with a "render history." The open arrow pointing to the lower right icon, at the far right side of the Render panel title bar, will toggle the Advanced Render Settings palette on and off.

Materials Panel
The Materials Panel contains commands related to render materials.The Materials split button allows you to toggle the open/close state of the Materials palette (MATERIALS command) or to set the mapping of materials on selected object(s) (MATERIALMAP).The command most recently selected from the drop-down will become the default for the button. The Materials/Textures drop-down list offers a choice of one of three states: both materials and textures off, materials on but textures off or both materials and textures on (VSMATERIALMODE).The button displays the current choice. The Material Mapping split button offers another way to use the MATERIALMAP command, this time with a preselected mapping type: Planar, Box, Cylindrical or Spherical.The main button appears to be fixed on "Planar". Selecting the Materials title bar will expand the panel to reveal three additional commands: Attach By Layer (assign materials by the object's layer - MATERIALATTACH), Copy Mapping Coordinates (copy material mapping from one object to another - MATERIALMAP, copY mapping to option) and Reset Mapping Coordinates (reset the mapping to the map defaults - MATERIALMAP, Reset mapping option).

Sun & Location Panel
The Sun & Location Panel contains commands related to including a sun-like light source in your renderings.The Sun Status command button allows you to toggle the sun on and off (SUNSTATUS system variable). The Sky button presents itself as a split button, but I was not able to find a way to make this button active. It will display the value of the SKYSTATUS systen variable, which allows you to set whether or not the sky illumination is computed at render time. Changing the value of SKYSTATUS changed the text shown with the button, displaying the current status. It may be that this only becomes active at an appropriate point in the rendering process, which is not something I do on a regular basis. The Set Location button allows you to specify the geographic location of the objects being rendered, so that the sun angles are set correctly. The Date and Time sliders become active when the sun is turned on, and allow you to specify the date and time of the rendering, and the sun angles will be set accordingly. The arrow icon at the far right side of the Sun & Location panel title bar toggles the Sun Properties palette, where you can make addtional sun parameter settings.

Lights Panel
The Lights Panel contains commands related to lighting.The Create Light split button allows you to place one of three types of lights: Point (POINTLIGHT), Spot (SPOTLIGHT) or Distant (DISTANTLIGHT).The last type chosen from the drop-down list becomes the command executed by the button; the "Create Light" text remains constant. The Shadows drop-down button allows you to set the type of shadows: none, ground or full (VSSHADOWS command).The last option chosen is displayed on the button. Select the Lights panel title bar to expand the panel. The first button on the expanded panel is the Default Lighting button (DEFAULTLIGHTING), which toggles between the default lighting and the lighting placed. The button is highlighted when Default Lighting is active. Three slider controls follow, giving control over Brightness, Contrast and Midtones (RENDEREXPOSURE). The Light glyph display button toggles the display of light glyphs in the drawing (LIGHTGLYPHDISPLAY). This button is also highlighted when active, in this case when the display of light glyphs is enabled. The lighting units drop-down allows you to choose from Generic, American and International lighting units.Generic lighting has no units and "standard" lighting. The other two use the units indicated and photometric lighting.

Camera Panel
The Camera Panel contains commands related to cameras.The Create Camera command button runs the CAMERA command, creating a camera object. The Show Cameras command button allows you to toggle the visibility of camera glyphs in the drawing file (CAMERADISPLAY). The button is highlighted when cameras are shown. Select the Camera panel title bar to expand the panel and reveal an additional button, Adjust, which allows you to change the view of a selected camera (AECCAMERAADJUST).

Animations Panel
The Animations Panel contains commands and controls related to animations.The Animation Motion Path command button allows you to set camera and/or target paths and make other animation settings in the Motion Path Animation dialog (ANIPATH command). There are four annimation control buttons: play, pause, record and save. The Walk/Fly split button gives you access to the Walk (3DWALK) and Fly (3DFLY) command buttons as well as the Walk and Fly Settings (WALKFLYSETTINGS).The last item selected becomes the command on the button.