December 22, 2004

Clustering Spaces Within A Unit in a Space Schedule

In response to a request in the Autodesk Architectural Desktop 2005 Discussion Group, I posted a sample Property Set Defintion and Schedule Table Style that clusters all of the spaces within an individual unit together, in a user-set order, and, rather than repeat the unit number for each space, includes a "header row" that lists the unit name and number in the room name column. See the posts in the thread for more detailed information on the requirements.

The clustering and ordering within each cluster is achieved by including two hidden columns in the Schedule Table Style. The first sort is done on the RoomNumber property, and the second sort is done on the OrderWithinUnit property. Both are manual properties that the user needs to fill in. The OrderWithinUnit property is also used to identify the space that forms the "header row" - it must always be set to 1. A formula property concatenates the unit room name and room number for the "header row" while passing through just the room name for the other spaces. Formula properties are used to process automatic properties in the table, clearing the values on the header row and passing through the values for the individual spaces within each unit. The remarks manual property is scheduled directly.

The sample also demonstrates that the header row can be made visually distinct by entering the MTEXT code "\P" [without the quotes] to force a new line, increasing the height of the header rows. The "\P" code will work even if it is in a hidden column, which might be preferable if it was desired to include actual remarks in the "header row". By using a formula property that returns a RESULT of "\P" if the OrderWithinUnit property is 1 and "" otherwise, adding that property to the schedule and hiding that column, you could prevent accidental erasure of the code on the "header row".


Anonymous said...

Awesome work. I've been impressed with how useful schedules can be ever since AutoDesk's addition of VBScript to AecSchedules.

Anonymous said...

Excellent, that was really well explained and helpful