Thursday, August 09, 2007

Line Based Families 1: Kitchen Cabinets...OK, OK And a Trellis...

Firstly: these concepts and (maybe) all family methods can be transposed to many, many other families; at times exactly, at times similarly, at times just in spirit.

Consider, Plan, Think, Re-Consider, Re-Think, then Create.

Consider (what you want), Plan (the parametric needs), Think (about what is needed NOW... Remember you can always make the family progressively more complex), Re-Consider (how complex it needs to be), Re-Think (the final output needs...don't put in any more than you need but no less either), then Create (the best family you can). Also mix-in a conversation with others...this always helps prove or disprove perceived concepts and usually saves overall project time.

The Cabinet family we are about to create (well similar parameters to this, at least) can be used for many other families, one of which I will include a step-by-step of (in text format). It will be the main portions of a trellis.

More about the Trellis following the Cabinet below, so on with the Cabinet sheooow...(Yeah, I was watching a repeat of Elvis on the Ed Sullivan Show...sorry for that rhyme, etc.)

1) Create a new 'Generic Model Line Based' family.
2) Change the "Length" parameter to 8'-0" via the "Family Types..." button.

Just like this...
Good so far...

3) Load a Cabinet. (If you don't already know, this is what is called nesting a family. I like to call them bird families...) -yes that's a (bad) joke!

I am using the Double Door & 2 Drawer, as you can see.

Note how this cabinet comes in at it's default size...we'll be synchronizing and locking that to a parameter later but since we haven't created the parameter yet we'll do some other necessary work first...

Such as Locking the Cabinet to the Ref Planes. (Note: To get this line based family to work this time I did have to re-do this locking after I constrained the objects to the upcoming parameters, (last time I showed a colleague this it worked fine, without re-locking...It's all about process) so be ready for the family to potentially fight you as you go...Flex every step of the way so it's not too painful.)

Align/Lock to the start:

Align/Lock to the insertion point (Yes, the intersection of these Ref Planes is the insertion point, so if you need an offset insertion be aware of that):

Where are now, #4)? I think so...No matter, the next one may seem odd no matter the number.
Array the cabinet 3 times; constrained, grouped & associated. Then select one of the array group members
and select the Array Control Line, (the odd part is the Array Control Line disappears when you're able to select it) add the parameter "NUMBER OF CABINETS" (similar to the one that follows the next image) and it will then be associated to the array.

Below is an image of the Control Line selected...The oddity is that the Control Line seems to disappear or at least go invisible when hovering over it, so if you want to select it (and we do) and that control line disappears then click there, you are sure to select it since it looks like you can't. Yes that IS what I said. Perhaps at AU I can get an answer from a developer as to why this is the case....

Here's the "NUMBER OF CABINETS parameter's" parameters: (Nice use of the language/lingo -I think)...

5) -Or is it 11?...Anyways, again Via clicking the "Family Types..." button we can and must set up the following additional, necessary Parameters:

This last parameter I attributed to the dimension below:

Now, you should know that when I entered the formulas, per the
following image (which you can and really must consider as being the next step!!!) the dimension (shown above) needed to be deleted. I let that happen and didn't question it later on since the family works without it (as long as you don't set the overall length below 6'-0"... yes we could place more constraints via a conditional statement to allow for that but for this particular family I didn't find it necessary to have a multiple, double cabinet be so small...I say let it break in that case, it's just too illogical)

So now make the parameters be the following formulas and values, making sure to hit APPLY after inputting each formula. (Remember formulas ARE case sensitive!!!)

This time while I was creating this line based cabinet family (and after letting the dimension be deleted during the error/warning stage) the middle cabinet disappears...There is actually a good reason for that and I eluded to it earlier, way back in step #3... Even if you don't care to go back and look here is the 'fix'.

Step Whatever): Edit one of the Array Groups and select the cabinet and click the Properties button:

When you get down into it's Type Parameters look for the Width parameter and click the tiny little = (equal) button...(Actually I think Autodesk tried to hide that = button from us :-))

Now set that equivalence of the Length parameter to CABINET SPACING.

Now everything seems to work brilliantly!!!

So we can load it into a project and input them via the Component command.

One final note: We may (actually we do!!!) want to go to SETTINGS/FAMILY CATEGORY AND PARAMETERS...:

and set (unless we previously set this) Line Based Families' "Family Category to be Casework, like below... But if not we can do it anytime and then reload!!!

This goes for exposing materials, etc., etc., ...


I am only including the text of it since the step-by-step takes about an hour to demonstrate live (with talking :-)) and with screen captures added would take me a lot longer and enough is enough for tonight!!! Also note that the trellis recipe may require some interpretation, since it is purely a copy/paste of my personal notes, for demonstration purposes (By the way, this Demo kicked some ass and opened some eyes at the LA RUG meeting in July where I presented it for the more than 100 Rev-Heads in attendance). The reason that I say all this is that the directions are (mostly) in exact order, yet may possibly be in need of connecting some dots... In any case I hope those directions help and well, I am confident that they will, but if you need help just drop me a comment and I'll help you out further. See you soon!!! -J

1) New Family “Generic Model” (Square Column)

2) Create Shared Parameters: Type, Other (faster for this demo)

a. B Wd (B = Beam, C = Column, etc.)

b. B Ht

c. B Lng

d. C Wd

e. C Dp

f. C Top

3) Create Square Colum

a. Use the 3 shared Parameters: C Wd, C Dp, C Top

4) Create Round Column (Save As ???)

a. Use the 3 shared Parameters and Add:

b. C Rad (Make this equal the following formula)

i. = C Wd / 2

5) Make

a. B Wd =

b. B Ht = C Top+1.5

c. B Lng =

d. C Wd =

e. C Dp =

f. C Top =

6) New Family “Generic Model”

7) Create Beam

a. Use the 3 shared Parameters: B Wd, B Ht, B Lng

8) New Family “Generic Line Based”

a. Make Length 8’-0”

9) Insert Beam Perpendicularly to length line, Place it and Lock.

10) Copy it to the opposite end & Lock.

11) Add & Place Columns

12) Create a ‘Family Types’ Instance Parameter: Column Type and choose Generic Models. (or change column & beam families to their actual category and use those here)

a. Select all columns and set them to have the parameter Column Type.

13) Array 1st beam 2’-0”: Group & Associate, Move to 2nd, Constrain.

a. Select the Arrayed Beam and select the Array Control Line and add a Parameter: “Number of Beams”, Constraints, Instance and OK.

14) Dimension the 1st & 2nd Beams

a. Make it the Parameter “Beam Spacing”, Constraints, Instance and OK.

15) GoTo Family Types and add the following Parameter:

a. “Maximum Beam Spacing” , Constraints, Common, Length, Type OK in this dialog, then APPLY at the next; (Not OK…we want to stay in this dialog for a minute).

16) Make the Parameters the following Formulas:

a. Maximum Beam Spacing = 4’-0”

b. Number of Beams = Length / Maximum Beam Spacing

c. Beam Spacing = Length / Number of Beams

Functional Families Rule!!!


  1. Try to avoid spaces in parameter name.(and obviously special character)
    I use spaces for clarity instead like :
    CABINET SPACING / Length would be
    CabientSpacing / Length

  2. Thank you for posting such a useful, impressive and a wicked article./Wow.. looking good!

    Kitchen Cabinets