I recently had a tricky little Revit problem to solve, so I thought I would share the workflow that I devised to achieve it. We have a "non-specific" joinery family that is basically just a box, that can be used quickly in early stages of modeling - it has a category of "Casework". The only problem is that it sometimes gets overused to represent boxy objects that should be of another category. A case in point occured when someone used it to represent solar panels on a roof. I actually have a solar panel family that has an adjustable angle for the top surface, and it calculates the top surface area so it can be scheduled to give a total panel area for the roof - it is of the category "Specialty Equipment". We needed to swap the wrongly placed casework boxes over for the specialty equipment panels - simple job I thought. Until I tried it and remembered that Revit won't even list the specialty equipment families when you select an already placed casework component, let alone allow you to swap it over. So, how to achieve it ?
There is a workaround that allows you to change the category of a family - just select one, edit family, change its family category and reload. But that would mess up all the legitimately placed joinery boxes in the project. So I took that process a step further:
- Select one of the boxes on the roof; edit its family;
- Save it with a temporary name;
- Set its default instance parameters as you wish to use on the solar panels (optional);
- Load it back into project (it will not overwrite anything);
- Select all the ones you want to change - eg, select 'all instances in view' on the roof plan;
- Swap all of them to the temp family.
- Go back to the family editor;
- Change its category using the "Family Category & Parameters" icon
- Load it back into project;
- It will overwrite the temporary family and in the process happily change its category to the one you selected (Specialty Equipment in this case);
- Select all instances of the temporary family and change to the other family/type of that category (eg Solar panels) – it will now let you do so as they are same category;
- NB. if the parameter names are the same, hopefully it won't mess with the instance values. If it does, try undo, and resetting the default values in the solar panel family to what you want before loading the family into the project.
- Delete/purge the temp family from project.
Here is another tip regarding categories (documented, but worth repeating):
If you plan to change categories of a family, it will appear to wipe out the sub-categories - but actually they are still there, hidden away; they may show up in the project listed under the old category in Visibility Graphics.
To avoid this:
- Go to Object Styles in the family editor – check for sub-category names; if you have any, make a note of them, then check which objects use that sub-category;
- Delete the sub-category from Object Styles (because otherwise it will vanish at next stage but stay in memory, hidden).
- Change the category of the family;
- Go to Object Styles again – add the sub-category name(s) back in, under the new category;
- Select the relevant elements and change them to that sub-category.