For more articles in creating complex family shapes in Revit, please check out my blog space at:
The SpaceMouse Pro
When Autodesk Revit 2012 was released in March of 2011, one of the new features was its support for 3dconnexion devices. To make a long story short, I had the opportunity to evaluate and write a product review for the SpacePilot Pro. From the moment I began testing this top of the line unit, I was hooked. Subsequently, I wrote product reviews for the remainder of their products. Here are the links to these reviews:
In December of 2011, a new 3Dconnexion device, the SpaceMouse Pro, hit the market. Judging from its looks and features, there was no doubt in my mind that this is going to be another hit for the company. At that time, however, a project deadline prevented me from getting a unit for evaluation. Last August, I finally was able to acquire an evaluation unit which I used in the last finishing stages of an eBook project.

This article is about the new SpaceMouse Pro by 3Dconnexion. This model is comparable to the SpaceExplorer in terms of the number of keys. The 
SpaceMouse Pro, however, has additional features and an enhanced design. This model may very well be a preview of things to come in 3Dconnexion's product line. A number of reviews have already been written by other websites, therefore, the main focus of this review is how to use it effectively with Revit.
The SpaceMouse Pro (SMP) was packaged in a black box similar to the SpaceExplorer's box. Upon lifting the carton lid, the packaging revealed a black flap containing a Quickstart guide presented as images. The flap is on top of a recyclable molded paper pulp container with a lid. Kudos to 3Dconnexion for going green and dumping the hard molded plastic (used in other models) in favor of this recyclable container. The SMP sat snugly inside the container along with a brochure and a DVD containing the driver.

Navigation in all 3Dconnexion products (including the SMP) is accomplished by moving the controller cap, the protruding round cylinder on top of the base. The controller cap in the SMP has a metal ring on top, similar to the SpacePilot Pro's. The overall shape looks like a morph between the SpacePilot Pro and the SpaceExplorer. The hand rest is made of soft rubber-like material.

  • Full sized, soft coated hand rest
  • 3Dconnexion patented 6Dof technology
  • QuickView Keys
  • Rotation Toggle Key
  • Intelligent Function Keys
  • On-Screen Display
  • Keyboard Modifiers (Ctrl, Alt, Shift, Esc)
  • Virtual NumPad
  • 15 programmable keys
  • Dimensions: (LxWxH): 204 mm x 142 mm x 58 mm / 8" x 5.6" x 2.3"
  • Weight: 665 g / 1.47lb
The layout of the keys are similar to the SpaceExplorer. However, the Menu and Fit buttons are located below the left and right cluster of keys. This location is more ergonomic. The keys can be easily pressed by the pinky or the thumb.

Minimum System Requirements:
  • Windows 7 (RTM, all editions), Windows Vista (RTM, SP1 and SP2, all editions), Windows XP Professional x64 Edition (RTM, SP2, SP3), Windows XP Professional (SP2, SP3)
  • Mac OS X v. 10.4.6
  • Linux Red Hat Enterprise WS 4, SuSE Linux 9.3
  • IBM AIX 5.2 ML04, HP-UX 11, Sun Solaris 8 (SPARC), Sun Solaris 10 (x86/x64)
  • USB port
An obvious major improvement is the size, shape, and placement of the keys. The keys are larger and have a soft, responsive feel. But what sets the SMP apart from other 3Dconnexion devices is the On Screen Display and Virtual NumPad. The On Screen Display is a visual reminder that puts an image of the four function keys on the screen together with their assigned commands. This feature can also be useful in cases where a user has more than one button configuration. The On Screen Display image appears in about a second after pressing and holding down any of the four function keys. It can be activated from any view and can also be turned off from the 3Dconnexion Properties dialog box (system tray>3DxWare).

The Virtual NumPad displays a numeric keypad on the screen whenever the number 1 function key is pressed quickly. For example, when a temporary dimension value is selected for editing, pressing the number 1 key displays the Virtual NumPad at the bottom right of the selected value. Thereafter, the cursor can be used to enter a new value. The left pointing bent arrow at the bottom right is the Enter key. The arrow to its left clears the selected value, should a value needs to be retyped again. The resizable Virtual NumPad can be activated from any view and can be assigned to any of the 15 programmable keys.

Being an experienced user of all previously released 3Dconnexion devices, I was able to quickly and easily navigate a model using the SMP's controller cap. The cap has the same feel as the controller caps found in the SpacePilot Pro and SpaceExplorer.

The Programmable Buttons

Programming the buttons is pretty straightforward. First, make sure the keyboard shortcuts of the commands you want to associate with the buttons are assigned in Revit. Next, open the 3DxWare software from the system tray (taskbar). In the 3Dconnexion Properties dialog box, click the Custom Functions button. In the Custom Functions dialog box, click New. This opens the User Macro Editor dialog box where a descriptive name can be typed in the Macro Name text field. In the User Macro panel, type the keyboard shortcut assigned in Revit then click Save. Click Done in the Custom Functions dialog box. Back in the 3Dconnexion Properties dialog box, the assigned Revit command becomes available at the bottom of all the drop-down lists. Choose the button you want to assign the command then select the Revit command from the drop-down list. Finally, save your configuration (Option>Save As).

Assigning which button activates a particular Revit command is subjective and depends on a user's preference. In my setup, I reprogrammed the QuickView buttons for frequently used commands in the family editor. Since I often switch from any view back to the Default 3D View, I assigned the Menu button to activate the Default 3D View. I also find it useful to assign the Alt key to invoke the common function of pressing the Esc key twice. The image below shows the Revit commands I assigned for the SMP.

At 3Dconnexion Shop, the SpaceMouse Pro is priced at $299.00, which is the same price as the SpaceExplorer. However, it is cheaper from two major outside vendors (as of the date of this writing):
  • Amazon: $286.06
  • B & H: $259.99
After having used a 3D mouse for about a year and a half, it has become an indispensable tool in my Revit modeling setup. Likewise when I'm editing images in PhotoShop. For any serious Revit modeler, a 3D mouse is a must. There are so many maneuvers you just can’t do with the mouse or ViewCube. You become more productive by using the programmable keys. You also become totally immersed and connected with your 3D model. The SpaceMouse Pro is definitely worth taking a look at. It is not quite as robust as the top of the line SpacePilot Pro but it's a step up from the SpaceExplorer!
Getting Rid of Excessive Materials from a Family
Before I get into the topic matter, let me clear up some issues concerning face based families. As you may know by now, I've contributed a few classic furniture at RevitCity. However, I forgot to mention that those families are face based families. I had assumed that users will quickly find that out after they load the families in a project. Apparently, a few users are not familiar with how face based families work, judging from a few comments I've read. I'll use the Mart Stam chair as an example:(
Here is is my reply to user luismendez (this is also applicable to the rest of the classic furniture I've uploaded at RevitCity):
The Mart Stam family is a face-based family that will attach to ANY surface. If you've loaded it to a project without a floor, the cursor will show a circle with a slash symbol and clicking will not place the family. If there is no floor or surface to attach to, it can still be placed by clicking the Place on Work Plane button from the Placement panel of the contextual tab. The family will then be placed at the default level which is Level 1. To pick a new host, simply click the Pick New button from the Work Plane panel of the contextual tab. You then have the option to either place it by Face or Work Plane by clicking the appropriate buttons from the Placement panel. In an existing project, face based families attaches to any surface (walls, floors, ceilings, soffits, etc. or even the top or side of an existing component).
Excessive Materials
I must apologize to RevitCity user pchan. In my haste to contribute this family to RevitCity, I simply forgot to purge the hundreds of materials that were on the MR Chaise lounge family:
Back in 2009, I was using a custom face based template that contained hundreds of materials. it was the template I used to experiment on complex family modeling.
Anyway, the good thing about this inadvertent mistake is the chance for me to explain how to get rid of excessive materials from a family. I know a lot of users have come across this dilemma. Well here's a fix for the MR Chaise family that shouldn't take more than five minutes (as opposed to deleting each material one at a time):
1. Open the MR Chaise family. Switch to the default 3D View. Select the MR Chaise family with the selection cursor (window selection method).
2. In the Create panel of the Modify | Multi-Select contextual tab, click the Create Group button. Type a name for the group. Keep this file open for the next step.
3. Open a new Generic Model face based template (Application>New>Family>Generic Model face based.rft). Save this file as MR Chaise_New (Application>Save As). Leave the view as is (Ref. Level view).
4. Switch to the MR Chaise family window (click the Switch Windows icon from the QAT). Select the group and click the Copy to Clipboard button from the Clipboard panel (or press Ctrl + C).
5. Switch to the MR Chaise_New window. Click the Paste drop-down button from the clipboard panel and select Aligned to Current view. The Properties palette shows the Origin Level as -0' 0 77/128". Change this to zero.
6. Switch to the default 3D view. Select the pasted group and click the Ungroup button from the Group panel. The family is now free from all those excessive materials from the Mr Chaise family. The material parameter is also transferred.
7. However, when families with voids are copied and pasted to another template, the voids become unjoined (see fig. 1).

Figure 1
In this family, voids were used to smooth the edges of the cushion's edges. There are fifteen voids on each side. Select the Cut geometry tool (Modify>Geometry). Click a void then click the leather cushion. Do this for the rest of the voids.
That's it! To those who downloaded this family, I apologize for the inconvenience. 
LDC Families Available from
Before I launched this website, I modeled a whole bunch of classic furniture designed by famous architects. Back in 2009, I needed challenging families to practice Revit with and so I chose this classic furniture category. This spawned the series of highly detailed Revit families that led to the creation of
Anyway, Revitcity has been a part of my Revit growth. I've downloaded a lot of families from this site and used them for various projects. And so as a way of giving back, I've donated these classic furniture series as free downloads. I want to thank Mr. Charled Reed for uploading the families for me. He is one of the great moderators at Please download them to see a glimpse of my early modeling techniques. Thanks.
Please click the images to get to the links.
Barrel Chair by Frank Lloyd Wright
Hill House Chiar by Rennie Mackintosh
LC2 by Le Corbusier
Mart Stam Chair by Mart Stam
MR Chaise Lounge by Ludwig Mies Van Der Rohe    
How to Create a Pyramid in the Massing Environment
Here is how to create a pyramid in the conceptual massing environment:
1. In the default 3D view of the mass family template, click on Level 1 work plane to make it active. In the Draw panel, select the Circumscribed Polygon tool. In the options bar, change the sides to 4.
2. Place and click the cursor at the intersection of the reference planes, hold down the shift key (to constraint the drawing direction) and click on a second point (see fig. 1):
Figure 1
3. Here's the result for a 200' x 200' square (see fig. 2):
Figure 2
4. Click on any of the vertical reference planes. In this case, let's click on the Center (Left/Right) reference plane to make it active (see fig. 3). Select the line tool from the Draw panel:
Figure 3
5. Draw a triangle (see fig. 4):
Figure 4
6.  Press the escape key twice to deselect the Line tool. Hold down the option key and select the square and the triangle shapes (see fig. 5):
Figure 5
7. Finally, click the Create Form button from the contextual menu>Form panel. You now have a pyramid (see fig. 6)!
Figure 6

You can also create parameters as you're sketching to control the height, angle and base dimensions. But I'll leave that up to you.

How to Create a Pyramid with the Family Editor
I came across a technical support forum with a discussion on how to create a pyramid. I don't usually participate in discussion threads but for this topic, I made an exception. I've seen a lot of Revit users offer various solutions on how to create a pyramid. Some of the methods they use are: using solid blends or using voids to carve the shape. Here is the solution I posted at
"A pyramid is a simple sweep in Revit. If you’ve used the sweep tool to generate say a baseboard, you’ll notice that when your path turns to a 90 degree angle, the corner of the sweep gets mitered. In effect, a pyramid is just a plain sweep with a triangular profile mitered at four sides on its square path."

Here is how it's done:

1. Using the solid sweep tool, create a square path in Plan view (Figure 1):

Figure 1

2. Go to the Front elevation view and draw a triangular profile (Figure 2). Click Finish.

Figure 2

That's it! Here's the 3D view (Figure 3):

Figure 3
If you want to get a parametric version I made, go to this Revitcity link:
Scroll down till you see my response to the thread and click on the 87807PyramidParametric.rfa hyperlink. Thanks. 
Most Challenging Revit Family So Far
From the thousands of small objects I've modeled, the Pasta Ladle is probably the most difficult. This lowly kitchen untensil has complex shapes that will keep you busy if you want to give it a try. The handle has a curved top shape and a curved side profile. The scoop itself has a kind of dome shape with round end prongs protruding upward and outward. The scoop morphs into another curved shape that connects to the handle.
I'm still not happy with the outcome although it's close enough. I will throw it for free with the Aluminum Colander. 
Another Challenging Revit Family
Included in our Kitchen-Dining accessories Part-2 is a manual gear-driven Can Opener. At first glance, its shape appears to be overly complex for Revit to handle. However, what makes it look complicated is seeing it as a single unit. If you disassemble the can opener's parts and lay it out in front of you, each part is really not that complicated to model. For this kitchen accessory, separate families were created without disassembling the unit (see exploded view below). Then from within each family, the parts were rotated just as they would appear in the final layout of the model. Here are images of the assembled and nested parts that make up this handy kitchen utensil:
Please click to enlarge
Parametric Carrel Family


A carrel (Figure-1 above) is a table or desk that is often partitioned and found in university or college libraries. In casinos, they are spread throughout the Race and Sports Book area and used for private betting.

The LDC carrel family shown in Figure-2 is a face-based family with Materials and Finishes parameters. A chair is also nested within this family.


In a project, you can change the carrel’s parameters through its Instance Properties as shown in Figure-3:


To change the material parameter of the nested chair, select the family and click Edit Family. This takes you to the Family Editor. Go to Create tab and Family Properties panel then click Types to change the values in the Materials and Finishes column. After that, reload the family back into the project.

Carrels_Rail-Based_R2010.rvt (Figure-4)

As the name implies, this family was created as a railing instead of a line based family. The railing tool has more flexibility than line based families as it allows you to draw curves using arcs. The idea is to substitute furniture parts for railing parts. In this case, the carrel sides and dividers were used as posts while the desktops and front panels, created as a profile, were used as railings. This method works particularly well in grandstand or theater seating where curved configurations are required.
Copy and paste the railing from the Carrels_Rail_Based_R2010.rvt file into your project to get this:
Please click to enlarge.

Note: When you copy then paste the Carrels_Rail-Based family by Paste Aligned method, the desktop and front panel finish defaults to gray color. This can be changed in the Edit Rail Structure dialog box (see Figure-11). However, if you use the keyboard shortcuts (control-c and control-v), the desktop and front panel comes in with the correct material.