In my last post, I spoke about the importance of placing the symbolic line work of Pipe Fitting famlies on the correct subcategory (or in that case, that it was on the actual Family Category "Pipe Fitting.")
One of the ways to get the most control over the visibility of objects in Revit is to use various combinations of Graphic Overrides, View Templates and Filters that select objects by their "Family Category."
As mentioned before, every object in Revit belongs to a Family Category. Walls, Doors, Lighting Devices and Plumbing Fixtures are all Family Categories. So, if I want a view that displays Walls but hides Windows, I just check Walls and uncheck Windows. Simple enough.
However, what if I want to show Interior Doors but not Exterior Doors? Select an exterior door>right click> select all instances> and hide in view? Sure that would work, but it's time consuming. Especially if you have multiple types of exterior doors. Interior and Exterior Door Worksets? Maybe, but let's stay away from extensive lists of worksets. A filter? Sure, filter by something that all exterior doors have in common and is different from interior doors. Maybe you even have to add a parameter to doors to make it work. This has the advantage of being set as part of a view template and can be quickly applied to multiple views. All of the above are passable ways to turn on and off and change the graphics of different objects in Revit. But what if...
I wanted to control part of an object? Enter... Subcategories. You have probably dealt with them before. Say you want to turn off the elevation swing of doors in Elevation. Just uncheck that subcategory in the Visibility/Graphics Overrides Dialog of that view.
And the great thing about Subcategories is that you can great an infinite number of them, unlike Family Categories (where you're stuck with what Autodesk gives you.)
To apply these subcategories to different parts of your object, in the family editor you simply select the "part"(which can be a number of things, 3D Geometry, Lines, etc.)>open the part's element properties> and assign it to the appropriate subcategory (just use the drop down list.)
Now you have TONS more control over objects in Revit. We recently had a situation where we wanted to create a Plumbing Fixture family that was an in-wall rough-in. By making this a family (instead of just text in the view) we can tag it, and run piping to it. However, most views needed to hide the rough-in, but still show other Plumbing Fixtures. Sure we could have just selected it and hid it in the view, but we often do multiple instances of rough-ins and we wanted complete control of the family visibility in all views.
I'm sure by now you figured out that we created a rough-in subcategory and added the appropriate visibility/graphic overrides settings to our view templates.