At various points in a BIM project, Revit models may get passed from one consultant or contractor to the next. After this handover occurs, a change in project requirements may mean that the recommended modelling practice has now slightly shifted. For example, in healthcare and hospital projects, host and nested Revit family arrangements are often used to control repeating layouts, such as in wet areas and other typical rooms.
Often, many of these nested fixture families are also Shared families, meaning they can be scheduled and accurately counted in Revit schedules.
However, what if a contractor needs access to some of these nested families in their own model? For example, what if a plumbing contractor wants to copy all nested plumbing fixtures into their own model, perhaps to add parameters or generate maintenance schedules for FM?
There are a few different ways to go here, with varying degrees of hackiness and/or gracefulness. An extremely hacky way to go might be to export IFC, open IFC to get each of these nested families as their own instances. Or, you could use Copy/Monitor. When using Batch Copy, each family gets emancipated from its original host family. It certainly should be used with care, as some things don’t work especially well… Like instance parameters aren’t really copied across, and you may end up with some duplicated elements. But for the most part, as a built-in Revit solution, it can do a decent job. I put together a brief workflow on how you might go about this process, and you can download it here.
As usual, test the workflow thoroughly before implementing it, and use at your own risk.
Oh, I wanted to mention yet another way this could be done… with Dynamo. I recently developed a solution that can free nested families for an entire rvt at once, including:
- create new instances of all nested families of a desired category in correct locations
- set original element IDs to original and new instances
- set a parameter to determine if an element was ‘original’ or newly created by the script
- rotate instances to match original
- mirror or flip if necessary
- copy all parameters from original elements to new instances
- select top level elements for deletion
But that’s a subject for another post… 🙂