Room Occupant Loads in AutoCAD Architecture – Topic 02: Property Set Definitions

July 17th, 2009

Topic 02: Property Set Definitions

In the previous topic, I covered how to lay the groundwork for establishing a listing of Occupancy types as AutoCAD Architecture/MEP Classifications, which are relevant to your Project’s governing Building Code. Now, through the use of Property Sets, we’ll move-on to creating a means for extracting data from your AEC Objects, and perform a few calculations to automatically determine Room Occupant Loads for your Project.

“Property Sets” represent the “guts” of any BIM-like analysis in AutoCAD Architecture/MEP; by utilizing data that is derived directly from the physical properties, or manual data embedded within the AEC Objects that comprise your Building Model. Property Sets are a set of features that provide the User with a very robust toolset that will: extract data stored in Objects, the Project, Materials, and Classifications; perform mathematical calculations using this derived data; and/or format the resultant data for specialized output scenarios. Think of Property Sets as the “Data Center” control of any Scheduling/Tagging scenario that you wish to accomplish.

Without going into a whole separate topic on Property Sets themselves, for this exercise we’ll be concentrating upon the usage of only the four specific Property Types we’ll need to accomplish our goal of automated Room Occupant Load calculations: Automatic Properties, Manual Properties, Classification Properties, and Formula Properties:

Automatic Properties are data that is automatically derived from the AEC Object the Property Set is assigned to. As the Source Object changes, the values of Auotmatic Properties reflect these changes without requiring User input. In this example, we will use this Property type to dynamically derive the Gross and Net Areas of the various Space Objects placed in our Project.

Manual Properties are just what the name implies: data that the User manually creates and assigns to Objects or Style Definitions via the Property Set. This type of Property is normally used for raw data that is not derived from an Object’s geometry, and is static in nature. In this example, we’ll use a Manual Property to provide a place to optionally enter the Actual Occupancy of a Space, which is usually needed when the actual occupancy is larger than Building Code defined calculated occupancy, and another to pre-determine if the Gross or Net are of a Space is to be used to calculate Occupancy, based upon the Space Object’s “occupancy” Classification assignment.

Classification Properties are a special flavor of Property type, which reads the values of Manual Properties stored in a separate Property Set, which is attached to a Classification. This sounds like quite a complex mouthful to explain in words, but once demonstrated, it’ll seem simpler. Just think: Manual Property Data is stored in a Classification, and an Object has a Property Set with a Classification Property that looks for the value of the Manual Property of whatever Classification is currently assigned.

Formula Properties are a Property type that allows one to read the current values of other Properties, and then perform a wide-variety of mathematical operations upon that data. We will use Formula properties to: a.) Read the Net and Gross Areas of a Space Object, b.) Read the “Floor Area per Occupant” Property that is defined in a separate Property Set contained in the “Occupancy” Classifications we started to setup in Topic 01 (more on this later…), c.) Read a few Manual controlling Properties to determine how to calculate the Room Occupant Load, and d.) Output the proper calculated result. This sequence of operations might sound complicated, but all this computation occurs in a single Formula Property, making the amount of custom programming that you’ll need to do pretty limited, which is nice.

Note: This article will not be a comprehensive guide on how to create Formula Properties and the VBScript programming language they utilize to create complex computations of data. Examples will be offered to achieve our Occupancy calculation goals, but it will be assumed that the Readers of this article understand how to implement the example plain-text representations of the VBScript code that is used.

The basic concept of automating Room Occupant Loading goes something like this:

1. Space Objects are created in the Drawing to define a particular “Occupancy Region” (usually a room).

2. The “DesignOccupantLoad” Property Set is attached to each Space Object.

3. An “Occupancy”  Classification is assigned to each Space Object.

4. The Property Set contained in the Space Object, reads Property Set Data from the currently assigned “Occupancy”  Classification, and utlizes it to supply the values of pre-defined variables in it’s Occupancy calculation formula, and returns a result.

5. This Design Occupant Load value may then be displayed in a Tag and/or Schedule.

Figure 02 - "Applies To" settings

Figure 01 - Creating a new Property Set Defintion

So to begin, we need to create 2 separate Property Sets: One to be assigned to the Classifications, and one to be assigned to the Space Objects. The Data of these two Property Sets will be combined and operated upon, through the use of a single Formula Property contained in the Space Object Property Set.

Classification Property Set:  “Occupancy Groups”

First, let’s create the Classification Property Set:
(The Space Object Property Set will reference Properties contained in this one, so we need to create it first)

1.    Open the Style manager in your AutoCAD session. (command: AECSTYLEMANAGER)

2.    Expand the Documentation Objects folder and <right-click> on Property Set Definitions, and select New from the cursor menu. (see fig.01)

3.    Name the new Property Set Definition: “OccupancyGroups”.

4.    While this new Property Set Definition is still selected, in the right-pane of the Style Manager GUI, select the “Applies To” tab.

5.    In the “Applies To” interface select “Styles and Definitions” (radio-button) and “Classifications” (check-box listing). (see fig.02)

6.    Next, select the “Definition” tab in the same interface. This is where you’ll define the various Properties that you’ll need. The buttons along the right edge of the interface represent that various Property Types that may be created.
(Note: You’ll notice that only the “Manual” and “Formula” Property types are applicable to Classification Definitions, all other buttons are inactive.)

psd_appliestoclassification

Figure 02 - "Applies To" Classifications

7.    Start by creating the following Properties (listed by Name/Type). Don’t worry about configuring them yet, just get them all created:
“Description”/Manual
“FloorAreaPerOccupant”/Manual
“NetAreaRequired”/Manual

8.    Enter any descriptive text in the “Description” field that you’d like, for each of the three Properties. (optional)

9.    Set the “Type” field for the “NetAreaRequired” Property (only) to be “True/False”.  The other two should have defaulted to “Text”. (please change them to “Text” if they haven’t defaulted to that Type)

Once the “OccupancyGroups” property set is created, we can return to our “Occupancy” Classification Definition created in Topic 01, to attach and populate the Classifications with “OccupancyGroups” Property Data:

1. In the Style Manager interface, browse to Multi-Purpose Objects>>Classification Definitions and select “Occupancy”. In the right-pane, all of the different Occupancy Types that you setup in Topic 01 should be listed.

2. Now, you must Add the “Occupancy Groups” Property Set to  each Classification in this listing.  To do this, simply select a Classification in the listing, and then click on the Property Sets… button in the same interface window. This will display the Edit Property Set Data interface window, which will be blank. In the bottom-left corrner you’ll find the Add Property Sets button, click that. The Add Property Sets window will appear, and the “OccupancyGroups” Property Set will be listed. Check the box beside it, and click OK.

Figure 03 - Edit Property Set Data

Figure 03 - Edit Property Set Data

3. You should now have the Edit Property Set Data window before you again, but this time with the OccupancyGroups Property Set present, with it’s individual Properties listed below. (see fig.03)

4. Manually enter a Description for this particular Occupancy type, the code-defined Floor Area per Occupant, and if the Net Floor area of the Space shall be used in the design Occupant Load calculation, or not (true/false).
Note: The “Occupancy Groups” Property “Description” may be retrieved later for scheduling purposes, where as the main Classification “Description” field may not, thus the redundancy of replicating that piece of data in two places.

5. When complete with the data-entry for the Property Data, click OK to return to the Occupancy Classifications in the Style Manager, and repeat these steps for each Classification in the listing.

Space Property Set:  “DesignOccupantLoad”

Now that the Classifications are populated with Property data, we can move on to setting-up the DesignOccupantLoad Property Set that will be attached to the Space Objects in your Drawing.

1.  Follow the steps 1-5 outlined above for creating a new Property Set Definition. For this Property Set Definition:  Name it “DesignOccupantLoad”, Set the “Applies To” to Objects, and check “Space” in the listing.

2. In the Definition tab of the Property Set Definition interface, create the following Properties:

Figure 04 - Automatic Property Source

Figure 04 - Automatic Property Source

ActualOccupancy“/Manual
Notes: set Type=Integer

GrossFloorArea“/Automatic
Notes: Creation of this Property will open a new window: Automatic Property Source. In this interface, select “Gross Area” in the list of possible Space Properties that appears. (see fig.04)

NetFloorArea“/Automatic  
Notes: Creation of this Property will open a new window: Automatic Property Source. In this interface, select “Net Area” in the list of possible Space Properties that appears.

DesignOccupantLoad“/Formula
Notes: Creation of this Property will open a new window: Formula Property Definition. Just enter the Name:  field for the Property for now, and click OK; we’ll define the VBScript for the  formula in a later step.

Figure 05 - Classification Property Definition

Figure 05 - Classification Property Definition

FloorAreaPerOccupant“/Classification
Notes: Creation of this Property will open a new window: Classification Property Definition. In this interface, enter “FloorAreaPerOccupant”in the Name:  field, check the box beside “Occupancy” as listed in the Classification Definition: list box, check the Classification Property: box, and finally, expand Occupancy Groups and select the “FloorAreaPerOccupant” Property. (see fig. 05)

NetAreaRequired“/Classification
Notes: Creation of this Property will open a new window: Classification Property Definition. In this interface, enter “NetAreaRequired” in the Name:  field, check the box beside “Occupancy” as listed in the Classification Definition: list box, check the Classification Property: box, and finally, expand Occupancy Groups and select the “NetAreaRequired” Property.

3. Ok, we’ve created all of Properties that we’ll need in the “DesignOccupantLoad” Property Set. Now, we just need to re-visit the Formula Property “DesignOccupantLoad” to create the VBScript that will retrieve the necessary pieces of data from other Properties, and then perform the occupancy calculation while considering the value of a few variables.

4. Start by double-clicking on the “DesignOccupantLoad” Formula Property. This will re-open the Formula Property Definition interface for that Property. In the Formula box, you will need to create a VBScript that will process your data, and calculate the proper result based upon what “Occupancy” Classification is assigned to the Space.

5. To begin crafting our Formula, this we’ll start by determining if we should be using the Gross Area or the Net Area of the Space Object. This is controlled by the “NetAreaRequired” true/false Property in the “OccupancyGoups” Property Set assigned to the Classificartions, and is then read-though to the “NetAreaRequired” Classification Property contained in the “DesignOccupantLoad” Property Set assigned to the Space Objects. So to start our VBScript calculation, we need to retrieve the value of the “NetAreaRequired” Classification Property, test it’s true/false value, and supply the proper Area value to the remainder of the formula; all done though the use of an “If…Then” Statement :

if [NetAreaRequired] = True then
AreaBasis = [NetFloorArea]
Else
AreaBasis = [GrossFloorArea]
End if

You’ll notice in the example code that I’m introducing the variable: “AreaBasis” to store the Gross or Net value we want to use.

6. Next, we need to calculate the code-determined occupancy for the Sapce Object by dividing our “AreaBasis” variable by the  “FloorAreaPerOccupant” value defined in the “Occupancy” Classification’s Property Set, and then round that value to a nice even number:

MaxFloorArea = Round(AreaBasis/[FloorAreaPerOccupant] )

You’ll notice in the example code that I’m introducing another variable: “MaxFloorArea” to store the Code-determined Occupant Load.

7. Lastly, we just need to determine if the actual occupancy of the Space exceeds that of the Code-determined occupancy, and output the proper DesignOccupantLoad result for the Space. We’ll start by checking if the (optional) “ActualOccpancy” Manual Property has been given a value, and if it has, whether or not it’s lager than the code-determined occupancy; and then reurn the final RESULT:

if [ActualOccupancy] > MaxFloorArea then
RESULT = [ActualOccupancy]
Else
RESULT=MaxFloorArea
end if

Figure 06 - "DesignOccupantLoad" Formula Property

Figure 06 - "DesignOccupantLoad" Formula Property

Note: When you’ve completed these steps of making the Formula, it should look like this example screen-shot. (see fig.06) If you’ve referenced the various Properties (text-code contained in brackets) properly, by  double-clicking on them in the Insert Property Definitions: list below the Formula: box, they will be highlighted with a background color. If you need further instruction on creating Formulas, please consult your software’s Help Guide.

Ok, well that completes the exercise of setting up the necessary Property Sets to calculate Design Occupant Load. In the next Topic, we’ll start by attaching our Classifications and Property Sets to some Space Objects, and test the results of our newly-automated calculations.

Next Topic 03: Working with Space Object Data

 

Room Occupant Loads in AutoCAD Architecture – Topic 01: Classifications

July 6th, 2009

Topic 01:  Classifications

So, let’s start with Classifications. I’ve found that this feature is probably the most underutilized feature of ACD-A. And that’s a shame. I also find it to be one of the most powerful data tools available. Hopefully, my documentation of this ROL process will open some eyes up to the potential of Classifications.

Figure 1 - AutoCAD MEP "Space Classifications"

Figure 1 - AutoCAD MEP "Space Classifications"

For this exercise, we are going to use Classifications to define all the possible types of Occupancy, as defined in our applicable Building Code. When I started to define this process for myself, back in 2007, I created a new Classification Definition for Occupancy from scratch. We may now not have to do that, as I’ve found that as part of the AutoCAD MEP 2008 installation, an Out-of-the-box (OOTB) Classification exists that is likely applicable to you. (see figure 1) It contains the “IMC 2000″, “ASHRE 62.1-2004″, and “UBC 1997″ standards for occupancy pre-loaded into a single Classification definition named: “Space Occupancy”. But for the sake of simplicity, I’m going to start a new (abbreviated) Classification Definition, just to document the process required. (You may choose to apply these principles to the OOTB Classification).

Figure 2 - Creating a New Classification Definition

Figure 2 - Creating a New Classification Definition

Begin by opening the Style Manager, and browse the Object tree to Multi-Purpose Objects>>Classification Definitions. Right-Click on the Classifications Definition’s heading, and choose New.  Name the new Classification Definition: “Occupancy“. (see figure 2)

Then select it in the listing and browse to the “Applies to” tab. We’ll use this feature to make our new Classification Definition only work with Space Styles. This is just a safety measure to prevent a User from trying to use our Occupancy Classification with object types that it isn’t intended for, possibly causing errors. So, in the Applies To tab, check the box next to “Space” in the listing of Object types. (see figure 3)

Figure 3 - "Applies To" Space

Figure 3 - "Applies To" Space

Next, click on the Classifications tab in the same GUI. Now we’re ready to start adding individual Classifications for Occupancy. For each type of Occupancy you wish to utilize, you will need to create a unique Classification. To create a new Classification: 1.) Click (highlight) the root Classification name in the Classification tree*. 2.) Click on the Add button. (see figure 4) A new Classification (default name: “New Classification”) will be added to the tree. 3.) Click on the newly created Classification and re-name it to match the Occupancy Type that it will represent. To rename it, select it in the tree, and change the values of the Name and Description fields in the GUI at the bottom. Repeat this process for each Occupancy Type you wish to track.

*Note: You may nest Classifications within each other to create a system of Parent and Child Classifications. This is how the AutoCAD MEP “Space Occupancy” Classification Definition, pictured in figure 1 above, is setup. This is nice with respect to organizing your Classifications in outline form, from the general to the specific, perhaps; but be aware that it does create additional complexity that you must allow for in how you utilize the Classifications elsewhere. In an Outline Classification (or multi-dimensional), a user may select any Classification, at any point within the tree. In other words, all the Classifications are “live”, and considered equally by AutoCAD Architecture. If using Classification Properties (like I’ll be demonstrating in the next section) you must “trap” every possible Classification assignment in the tree; or run the risk of errors. I’ve found that for this particular task, a one-dimensional Classification Definition works best, and is less prone to error.

Figure 1 - AutoCAD MEP "Space Classifications"

Figure 4 - Adding Classifications









Once you’ve input all your Classifications, you can move on to the next topic of creating your Property Set Definitions. Later in the process, you will have to re-visit your Classifications to populate the values of some Properties that we’ll be adding. So, the next topic will walk-through the creation of 2 separate Property Set Definitions: one for the Classifications, and another for the Spaces.

Next Topic 02: Property Set Definitions


Mirror Mirror

April 24th, 2009

A coworker came to me last week with a strange Revit Architecture question.  He was trying to adjust the crop boundaries on an elevation, but every time he selected the top grip, the bottom boundary moved.  Grabbing the bottom grip?  Yes, that one moved the top.  We spent the better part of lunch trying to resolve the issue.  Baffled, we finally deleted that elevation and recreated it, which got the crop boundaries behaving normally again.

But why was it doing this in the first place?  As it turns out, the problem was a result of having used the Tools>Project Position/Orientation>Mirror Project command in Revit 2009.  Revit mirrors the entire project, including it’s own internal understanding of the top and bottom of your elevation’s crop regions.

Solution?  Delete and recreate the elevation as we did, or grab the elevation tag in a plan view, and mirror (without copy) about (your-best-guess-for-the-) center point of the elevation, and readjust the crop regions after the fact.  Or retrain yourself to grab the bottom grip to adjust the top.

Note: we’ve also discovered issues with the Rotate Proect/True North tools, where workplanes don’t rotate with the view.  This results in the inability to add any annotation to that view because the workplane is at an extreme angle to the view direction.  I haven’t had a chance to investigate this one, though.

Home Again

April 23rd, 2009

We have completed our move to a new home on the web.  Everything should be functional (including our SSL certificate!!), but please let us know if you encounter any problems, as it is always possible that something broke in the transition.

Website Woes

April 10th, 2009

Over the past few weeks, we have been experiencing quite a few technical difficulties in getting our current, valid SSL certificate installed properly with our webhost.

For a software company doing business on the internet, this is certainly a troublesome development.  We apologize for the inconvenience, and hope you will be patient while we continue to work on getting this issue resolved.

Room Occupant Loads in AutoCAD Architecture: Introduction

March 13th, 2009

An interesting discussion occurred a few days ago in the Autodesk Discussion Groups, which prompted me to try and document a process that I’ve been utilizing to leverage a combination of features in AutoCAD Architecture (2008) to help analyze a project for certain aspects of building code compliance. So here goes…

An essential part of Building Code Analysis is determining Occupancy. So many of the calculations required to determine compliance with things like: Number of Exits, Exit Width, Plumbing Fixture Counts, etc. derive, at least in part, from Occupancy; which is really a summation of each space’s Room Occupant Load, or ROL. To determine ROL, one must decide 2 things: 1.) What type of Occupancy is the Space? and 2.) what is the Floor Area of the Space? Once these two variables are defined, a ROL is typically derived from a Table in the Building Code. Example: A “Classroom” Occupancy might dictate that the ROL is 1 person per 30 square feet of Gross Floor Area. What’s nice, is that AutoCAD Architecture (ACD-A) includes a set of features, that when used in combination, can help us automate these types of calculations; and from there we can display this derived data in schedules and/or schedule tags. ACD-A is by no means a complete solution for Building Code compliance analysis, but it can be used to automate portions of the process, and help us obtain, process, and format data more accurately and efficiently.

The features in AutoCAD Architecture that make-up this data-generating “tool-box” are: AEC Spaces, Classifications, and Property Sets; and we can then utilize AEC Schedules and/or Schedule Tags (attributed MVBlocks) to display and format this data as required.

The concept that I’ll be explaining uses Spaces to define the physical properties of the Occupancy, which in this case will be Floor Area. Classifications are used to categorize the Spaces per Occupancy type, and Property Sets are used as the “data engine” to pull all these disparate pieces of information together, and then to run a few calculations and isolate and format useful output. Because of the inherent interoperability of these ACD-A objects and features, the best way to implement them is not necessarily linear. For demonstration purposes I will concentrate upon the setup of each component individually, but in actual practice you’d likely develop the Spaces, Classifications, and Property Sets in unison; checking interoperability at increments along the way.

I’m finding that documenting this entire process will require more effort than I have patience for in a single sitting, so I’ll be posting successive “Chapters” on this topic to my blog over the next few weeks. I’ll start with setting up Classifications, and then follow with Property Set Definitions, Space Styles, Schedules and Tags, and Display Themes in successive topics respectively. When complete, these topics will hopefully serve as an informative resource for using AutoCAD Architecture to aide in Building Code compliance and analysis; and maybe generate some new ideas in follow-up discussions that will benefit the larger AEC Design community. Wish me luck…

Next: Topic 01 – Classifications

We’ll see you at AU!

August 22nd, 2008

The plans are set: Corey and I will both be attending Autodesk University 2008. Though we won’t have a booth, we’ll be happy to give you the spiel on our product(s)! ;)

Resurrecting a Dead Horse: CTB vs. STB

December 28th, 2007

A while back, I started a lengthy discussion about the merits of STB, trying to identify advantages over a CTB standard. What resulted was there isn’t really any advantage to using STB; other than greater flexibility in output to Color. And with the advent of True Color, that reasoning could be called into question. One thing that did not really come up in discussion, is how an STB system frees up the User to strategize on-screen colors to better make sense of the design.

Read the rest of this entry »

The doctor is IN

December 27th, 2007

Hey, we’d like to think we’re up with the times. Or maybe we’re aiming to be helpful like so many other gracious souls on the internet. Perhaps we, like Charlie Brown, are simply needing some way to let it all out, seeking cheap psychiatric advice in return. Whatever the reason, we’re starting blogs. Here and now. We’ll have to wait and see what they become, but keep your comments uplifting just in case.