Search This Blog

Friday, January 27, 2012

Auditorium Seating via Rail Object in Revit

While helping a designer with a new chapel project, ran into an issue of how to layout auditorium seating on a sloped radial floor in Revit Architecture 2012.  Things we wanted to accomplish included, easy and controlled layout via straight line segments and via curved arcs.  We also wanted to have a running count of seats via schedule.

My first thought was to curtain walls and use the system panel family to host the chair. This worked fairly well until the seating had to share arm rests.  Although you can host a detail component in the mullion profile family as an option for displaying the arm rest in 2D, it does not allow for nesting 3D Arm rest geometry in the mullion profile family.  Although, for quick plan view layout, seat counts, and ease of creation, this method worked quite well and would work very well in 3D as long as arm rests were not required.

Since this project called for seating with armrests, we resorted to a railing object with nested chairs as baluster panels, and nested arm rests as baluster posts. This allowed us to control the seat size, spacing and placement of armrests along any type of sketch line, curved or straight.  Endpost offsets allowed for control of the arm rest on the ends. Locking the sketchline to grids allowed the designer to change the length or radius as necessary while the chairs simply updated to match.

We ended up with 6 railing types, 3 for floor mounted and 3 for wall mounted chairs. Materials are handled in the nested geometry families and each chair has 3 different parametric sizes (20, 21, 22 O.C.).  based on Series Seating Celebration model.

Generic Model templates were used to create the support posts in two types, wall mounted and floor mounted as shown above.  This gm family was then nested into the Baluster post family and loaded into the project for railing type creation.

Again gm family templates served as the starting point for the seat geometry, which was then nested into the baluster panel family.  Doing both posts and seats as independent geometry in generic model families kept them flexible for future use and allowed for some testing in hosted families. Modeling was kept minimal while matching overall shape and style.  Each family starts as simple 2D geometry for flexibility and efficiency.  Updating 2d graphics and adding refinements in 3D are easy to accomplish as necessary.

As the design progressed, we ran into issues with the railings not hosting to the sloped floors. It is not as simple as editing the railing and picking the floor object as host.  My favorite command, align, was not much help either.  It seems that railing objects host to floors unless the floor is sub-entity modified.  Since many of the floors were sloped in this way or via sweeps, the hosting was accomplished via very thin "ramp" elements which effectively control things vertically while maintaining the horizontal control via grid elements. 

To hide the redundant ramps, we moved the ramps to the "constraints" phase and demolished it in the "hide by demo" phase, both of which precede the "existing phase" and thus don't appear in new construction views.  This is based on a tip I learned at AU 2011 in an interiors class taught by Steve Brown.

Seat counts are controlled by dividing the railing length by the center line spacing of the seat size within a calculated field in the Chapel Seating Schedule (a railing schedule).  Format was set to integer and the formula in the calculated field was wrapped in the round() function.  Originally, the round down function, new to Revit 2012, was used to force a seat count.  Because the railing seems to default to always round up graphically, I found that the round() function actually matched the graphics to the count more accurately.


Anonymous said...

Thanks for the informative article, but until Revit can accomplish this task in a MUCH SIMPLER, STRAIGHTFORWARD way, most typical architectural offices aren't going to be willing to go through all the hoops.

Having to use curtain walls, mullions, railing objects and baluster panels to create auditorium seating just won't get it...

Richard Binning said...

I guess it depends on your needs. This is a predictably efficient method of laying out this type of seating short of a complex custom family. It allows for iterative exploration.