Wednesday, March 19, 2014

Creating Non-Hosted Families from Hosted Versions

I just recently discovered this gem and it seems there are a few people that know about it. Perhaps it was discussed in a forum or some other place, but since I never came across this nice little tip, I thought of sharing it here.

In this post, I talked about a “pseudo face-based family” and this week while I was not even thinking about Revit or anything work-related for that matter, I just had a thought and wondered whether the hosting extrusion could be deleted (I know, my brain is weird sometimes!). So I tested this out and then realized that the resulting family is no “pseudo-anything”, but simply built into a host-less template with the Work Plane-Based option enabled.

FamCat and Params

So the highly-intuitive process (sarcasm anyone?) of taking a family that is built in a hosted template such as face-based, wall-based, ceiling-based, etc. and produce a non-hosted copy is as follows:

  1. Place an instance of the family you want to hack in the drawing area. You can insert multiple ones at the same time;
  2. Save the file and close it;
  3. Open a new Revit file from no template. This ensures it is completely empty and Revit will thus create this hacked copy when we do step #6;
  4. Link the previously saved model into this new file;
  5. Go to the Collaborate Tab>Copy/Monitor>Select Link and pick the linked file. Once in C/M mode, click Coordination Settings and make sure that the family types you want to hack are set to “Copy Type”;
  6. Click the Copy button and pick the families you want to hack;
  7. Finish and exit from this mode when you’re done.

The copied families that Revit created are hacked versions and no longer built inside of hosted templates. Now simply edit the families, delete the extrusions, set them to not be work plane-based and save them…done!

Now I ask, if Revit is able to do all this, why not give us a stupid button instead of this frustratingly long and obtuse workaround?!



Anonymous said...

In Revit 2014 I do not appear to have a setting for COPY TYPE. I have settings behavior setting for COPY BEHAVIOR and MAPPING BEHAVIOR. Copy behavior has options for Individually, Allow Batch Copy, or Ignore Category. Mapping behavior has selections for Copy original or Specify Type Mapping.
Type mapping provides additional options under the In The Host Model of Copy original Type (I'm guessing this is the one to use), Don't copy this Type, or the Type Name.
I used the Copy Original Type. When editing the copied version I cannot delete the hosting extrusion or change the turn off Work Plane Based.

Any Thoughts

Jahzzy said...

that's a nice trick! I haven't tried that before. What I usually to achieve this same goal is 1) I open the hosted family file and in 3d view, I copy the objects without (of course) the dummy surface. I then 2) make them a group and 3) save group as... and save it to the corresponding folder. I can then load this group to any of my projects, or load it to a new non-hosted family file and save it as another family.

Dave Baldacchino said...

Sorry fo the late reply! You need to set the Type Mapping behavior. My post above assumes you are setting the Copy behavior to "Allow batch copy" and Mapping behavior to "Specify type mapping" (since it references a previous post). Then set the Type Mapping to "Copy original Type". I'm not sure if the terminology changed from Revit 2013 to 2014 but as of 2014, it says "Copy original Type". So either 2013 was slightly different or I made a small mistake in my post!

Dave Baldacchino said...

Hi Jahzzy, that's a good trick as well. I've used it in the past and posted on the AUGI forums about it. In fact that trick is the only way you can create a family template for a category that doesn't exist ;) (walls for example...try your technique on an in-place wall).

Dave Baldacchino said...

Actually I wrote about that here as well:

Steve Saltsman said...

Thank you for this post I learned a lot. One thing I did try was using copy monitor to get the location and family of (for instance) the Arch model's mech equipment (why is another topic). Which of course is wall hosted, then selecting the object to "stop the monitor" edit the a family. Add my parameters, connectors etc. Then reloading. The objects are in my model using the arch geometry orphaned from the wall but in the right place. I can schedule and move at my leisure.But I would have thought about it without your notes. Thank you

Dave Baldacchino said...

Hi Steve, glad it helped :)

That's a similar approach to one I experimeted with for lighting, which is how I came to find out about these details. When you need to replicate families in another model and the original onces are hosted families (ex: ceiling) and there's just a surface in the model you want to copy to, you cannot just copy & paste. So C/M in this case comes in handy with the batch options. I think I'll be experimenting a bit more with a Dynamo approach to do this in the future since you can get the location (XYZ) of each family, currently through custom Python nodes that use the API to retrieve that data. But that's a bit of an advanced topic for another day!

Unknown said...

I only think this is working for wall hosted families.
For example face host families in Revit 2015 i can get it converted

Dave Baldacchino said...

No, my examples are specifically from ceiling hosted families. I suppose it works for others too.

Unknown said...

Correction, it works with the hosted families ceiling/walls/roofs/floors
But i did not get it to work to convert a face host based to non host based

Dave Baldacchino said...

Hi Ramon, technically a face based family isn't a "hosted" family, in that it's not "married" to a category. I don't think it ever worked for that family type.

Unknown said...

Came across this post recently, thought I'd give it a go for some casework families, the users want them non-hosted. However in Revit 2015 (Architecture, not MEP) Coordination Settings (step #5) does not exist. Any other way to get to this or am I looking in the wrong place?

Dave Baldacchino said...

Hi Alice, not all categories are available for Copy/Monitoring unfortunately and casework is one of them. This means you cannot use the above technique to create "unhosted" versions.

Unknown said...

to Alice-- I found a workaround for casework was when the families are pasted into the first file.. edit family and change its category to plumbing.
Then proceed to copy/modify. Then when you edit the family (to delete the wall), you can change it back to casework!

The problem I have. . for some families, I still cannot delete the host wall (for a showerhead). I don't know what else to do.

Unknown said...

Does this work in Revit 2016. I am trying to "Unhost" MEP electrical fixtures. IE: Duplex Receptacle.

Dave Baldacchino said...

I don't see why not, but haven't tried specifically in that version.

Unknown said...

I can only see grids walls columns and floors in coordination options. I can't see any Coordination Settings button?

Dave Baldacchino said...

If you're in an older version of Revit that is discipline-specific (ex: Revit Architecture), you won't see the setting probably.

Nkosi said...

Had a bottle trap that the manufacturers (who shall remain nameless) hosted to a face. It would host to everything except the sink it should have attached to. I copied the elements excluding the host to a new family and saved it there. Problem solved after a few tweaks

Post a Comment