PDA

View Full Version : Help?! Fully Parametric Cupboard base on input length and number of CBD required?



Richard McCarthy
2008-09-11, 06:12 AM
Howdy gangs!!

How's it going everyone?
I got a question, I am kinda stumped (brain not functioning in late afternoon..)
I am creating a fully parametric cupboard base on input length and number of CBD required, but I can't seem to get my head around it to create it.

This is how I am doing it right now. Assuming if I want a full length cupboard above the kitchen bench, let's say 3100mm full length (I set this to be "total length of the cupboards), and then I set about to create door panels for the cupboards (these should be parametric since I want all door panels width to be equal distance across) so I am arraying one panel from beginning to the end and set the array parameter to "number of cupboards", but now I can't control the panel width to be equal across the total length of the cupboards as higher number of cupboard will start overlapping each other.

Any one with more sober brain can shed some light on this?

Richard McCarthy
2008-09-11, 06:37 AM
After another cup of coffee I am thinking more clearly now.
Basically, it requires two variables.

X - total length of the cabinet
Y - number of cupboard door panels

The two variable has to read off each other - when you put in 10 cupboard door panels, it has to conform and EQ to the Total length of the cabinet...

So does anyone know how to feed two variable into each other in Revit?

Richard McCarthy
2008-09-11, 06:48 AM
Okay, coffee is working its magic.
Although it still didn't work.

I now set the dimensioning on the first CBD door panel to be "CBD Door Panel Width", and set the formulae for it as :

"Total lenght of Overhead CBD / Number of CBD panels (array)"

The above are all defined. But it still refuse to work.

Error message is :
"Constraints are not satisfied"

I don't understand what is causing this constraint problem... it seems constraint stems from the fact I am arraying. If I remove array, then I lost the ability to specify number of parametric panels I want.

Richard McCarthy
2008-09-11, 11:38 PM
I think I will have to try using Model Line approach instead of modeling the whole door panel of cupboard.

The Model Line *should* allow me to snap at EQ naturally without needing any formulaes.

Richard McCarthy
2008-09-12, 05:44 AM
I don't believe this, after struggling for long hours, I finally got it !! And it is so simple !!!

I was pretty close yesterday. The trick is to make a new family for the door panels, expose the variables (door width) so it is shared in the main Kitchen family (so it can be read/write to...by the result from total length of the overhead cabinet)

eg.
CBD Door Panel Width = Total Length Overhead CBD / Number of CBD Panels
CBD Door Panel = a newly created family imported into the main project family - Door Width Parameter must be defined and then "linked" when imported in - eg. select the panel after imported into the project, and on the width parameter "square" click on it and assign or create a new parameter in the main family also called the same name "CBD Door Panel Width"

Also remember to use linear array, define the linear array as "Number of CBD Panels".

Hope this help anyone stumbling across same problem

Steve_Stafford
2008-09-12, 06:12 AM
I don't think anyone dared reply because you seemed to be on a "roll"? :smile: Glad you got it sorted :beer:

twiceroadsfool
2008-09-12, 01:17 PM
Awesome that you got it figured out! What i tend to do with things like this, is build them in the Line Based Generic Model Family.... But only in situations where youre going to be dictating a total length, and dividing it up from there. Then if you really want to go nuts (the masochistic thing i enjoy that most people here would probably call overdoing it), you can stick in a few formulas of parameters to make sure it uses a modular or certain sized unit, and then have the "filler piece" at the ends...

But i would say its only worth a LBGM and all that work if you do a LOT of kitchens... :)

william.lcampo
2008-09-12, 02:11 PM
Nesting families is a good way.

Now (and just because I've gone through it), what happens if the overall length becomes too short for two doors of the specified lenght? Your Array will break if it has less than 2 elements...

My answer tomorrow... (I bet many of you already know it!)
Regards,
William.

twiceroadsfool
2008-09-12, 03:47 PM
My array has a seperate input value, from the actual array value. The array value is driven by an IF statement. If the input value is less than two, the if statement makes the array value 2, so it doesnt break.
Consequently, a similar if statement drives the visibility of the array. If the input value is less than 2, the entire array (which has 2 elements from previous statement) doesnt show up at all. A single non arrayed element shows up, when the array doesnt, driven by a visibility parameter that is equal to NOT (arrayvis).

It sounds worse than it is, and it lets users input a value of one without giving them a hard time...

william.lcampo
2008-09-12, 04:37 PM
I got to the same conclusion. I knew someone would have it sorted out.

I've made some families where both length and quantity of panels are entered and IF the panel length is zero the quantity is used. They are quite useful and versatile!

Regards,
William.