Nested family with Interchangeable components - Parameter to stretch extrusion

james5QGJE
Enthusiast
Enthusiast

Nested family with Interchangeable components - Parameter to stretch extrusion

james5QGJE
Enthusiast
Enthusiast

Hi all, 

 

Im reasonably new to Revit, and I'm using Revit 2016. I'm creating a computer workstation in a nested family (Families within families) with interchangeable components, i.e. desktop, partition screen, legs, using furniture instance parameters. When i switch back and forth between a short and long desktop length, the legs are tied to the edges so they move in and out with the change in desktop size. What I'm stuck with now is I have an extrusion (Desk beam, highlighted blue in my screenshot attached) that i need to tie to the desktop edge or leg so that it increases in length to match the new desktop size. When i try and lock it to anything it wont let me change the desktop size, with a warning saying the Constraints aren't satisfied. Can anyone help with this. I feel its something basic and i'm nearly there. 

 

0 Likes
Reply
Accepted solutions (2)
1,987 Views
13 Replies
Replies (13)

barthbradley
Consultant
Consultant

Don't align and lock beam's ends to the desktop. Instead, make the beam a nested family with a length parameter and then associate that parameter, in the host family, to the same parameter that drives the desktop length. In other words, one parameter drive both the desktop length and beam length.  

 

0 Likes

james5QGJE
Enthusiast
Enthusiast
Hi there thanks for your reply. However I don't have a parameter that directly changes the desktop length.. I have a desktop family with several size options interchangeable within the host family .. so should I be creating the desktop directly within the host family instead of nesting it, so that I can have that parameter changing the desktop length and beam?
Thanks again.
0 Likes

barthbradley
Consultant
Consultant

How are you changing desktop sizes? Is it a nested family controlled via a Family Types Parameter, or is it driven by parameter in the host? If the later, you have parameters to associate to. If the former, there are a couple of approaches. One would be to nest a family within another nested family.  

 

Perhaps, if you post the host family, will can better assist you. 

0 Likes

james5QGJE
Enthusiast
Enthusiast

Yes it is a nested family controlled via a Family Types Parameter. So you're meaning to maybe create the beam extrusion inside the nested desktop family so a beam is already in each desktop type when i change it in the host family, at the right size.. ? So there's no way i can leave it as a separate extrusion in the host family and tie it to anything so it stretches?  


0 Likes

ToanDN
Consultant
Consultant
Share the family here.
0 Likes

james5QGJE
Enthusiast
Enthusiast

Attached. Maybe ive over-complicated the whole family and set it up wrong. But i started out with individual files for each desktop, leg, partition screen, etc. so i'm making use of what i have already and hopefully i dont have to start from scratch again. 

Thanks, 

0 Likes

barthbradley
Consultant
Consultant

Okay, so here's what I suggest. 

 

Make all your parameters in the Host Family; TYPE Parameters. Then build and name different desk configurations as TYPES inside the Host.  This family is way  too confusing for the end-user to be able to "assemble" it inside the project via the right combination of Family Type instance parameters.  And because all the Family Types are of the Category "Furniture", the drop-down populates with every single Furniture Type. In other words, the user could pick a desk leg for a desktop or vice versa or worse. If there's another shared Furniture family in the project, the user could even accidentally pick a Bookcase for a Desktop.  The family is problematic at best.  

 

Frankly, I'd forget the Family Type parameters altogether. I don't really see a need for them. You can associate all the nested family parameters inside the Host and drive them there.  Much, much easier and stable in the long run. 

 

Sorry, for the critique.  

 

 

0 Likes

ToanDN
Consultant
Consultant

See attached.  I replaced the extrusion with a sweep and locked the two ends of the path to the faces of the legs.

 

0 Likes

james5QGJE
Enthusiast
Enthusiast

Thanks again, 

Yes i realised it was getting rather confusing especially with ALL of the furniture families showing up in the list. 
So there's a way of creating one parameter that changed the length of the desk and everything else changes with it? 

And how to still make it possible to change between different legs etc without the full list of furniture items showing?

It's all a bit out of my depth. 

This is what i tried to go by: https://knowledge.autodesk.com/support/revit-products/learn-explore/caas/CloudHelp/cloudhelp/2014/EN...

 

0 Likes

ToanDN
Consultant
Consultant
Accepted solution

In your particular case I think what you are doing is okay.  Picking stock components to assemble a piece of furniture is a common practice.

 

In general cases, my recommendations when working with nested families are:

- Nested family dimension parameters should be Instance, not Type.  There is no need to have any Types in the nested families.

- Create dimension Type parameters in the parent family and associate nested parameters with them

- Create Types in the parent family such as Desk Type 1 - 1600x800, Desk Type 1 - 2000x800, Desk Type 2 - 1600x800, etc... then assign the correct <Family Type> and dimension parameters for each Type.

- For Optioanal accessories you can keep them as Instance parameter so they can be varies within a Type.

- When you have more than one nested families used for Family Type label parameter, make sure you use the reference planes in those families consistently (use Left, Right, Centers, Front, Back where they can be used instead of weak, or strong references)

barthbradley
Consultant
Consultant
Accepted solution

@ToanDNwrote:

 

- Create Types in the parent family such as Desk Type 1 - 1600x800, Desk Type 1 - 2000x800, Desk Type 2 - 1600x800, etc... then assign the correct <Family Type> and dimension parameters for each Type.

 

That's actually what I said. Make the Family Types <Furniture> Parameters TYPE not Instance, and assemble the different desk configurations as desks TYPES in the Host Family -- so the end-user can select a predefined  configuration (Desk Type) in the Project -- without needing to reset a bunch of Instance Parameters each time it's placed.   

james5QGJE
Enthusiast
Enthusiast

Thanks so much for your help!

james5QGJE
Enthusiast
Enthusiast

Hi Again,

So now i have what i was after, the Host family with predefined configurations (Desk Types) so the customer can select these in the Project without needing to reset a bunch of Instance Parameters each time it's placed. However, in the project whenever i click on the component drop-down list it still has all the individual components available, i.e. all the individual desktops, legs etc.  The Host family wont let me add the nested components as non-shared families for some reason..

Appreciate your help in advance. 

0 Likes