PDA

View Full Version : 2017 Family parameter value to acquire host parameter value



ray_bongalon
2017-05-28, 11:28 PM
Hi Everyone,

Good day.
How would you create a simple generic face based box family (with b, d and h parameters) that once loaded in a project and placed on the face of a simple rectangular beam (with B and D parameters), the box's b value acquires the beam's B value (similarly with d and D)? In that case, my box family will have different b and d values depending on the beam they're placed on.
Thank you very much.

Cheers,
Ray

marmiketin
2017-05-29, 05:03 PM
This can be done using shared parameters. When the shared parameter is set in the project, any model elements and families that have the same shared parameter associated to them will take on that value.

david_peterson
2017-05-30, 01:22 PM
What exactly are you trying to accomplish?
Shared parameters won't work for what I think you're asking them to do. They won't pick up what the parameters of a host object.
I've seen some things done in Dynamo were after an object is placed, the script will pull the data from the host. Something like this could be used to then push the data back in to the scaleable box in theory.

damon.sidel
2017-05-30, 07:00 PM
I too would be interested to know what you are trying to accomplish.

ray_bongalon
2017-05-31, 02:11 AM
What exactly are you trying to accomplish?
Shared parameters won't work for what I think you're asking them to do. They won't pick up what the parameters of a host object.
I've seen some things done in Dynamo were after an object is placed, the script will pull the data from the host. Something like this could be used to then push the data back in to the scaleable box in theory.

Hi Dave,

I can't make the shared parameters working either, probably I am not doing it correctly. Anyway, what I want to achieve is this: Let's say I have multiple beams in a project with different width (B). I want to place a baseplate family (with instance parameter width b) on top of each beam. In the end, I will have multiple baseplates with each of their width b picking up the value of their host's width B.
Thank you.

Cheers,
Ray

- - - Updated - - -


This can be done using shared parameters. When the shared parameter is set in the project, any model elements and families that have the same shared parameter associated to them will take on that value.

Hi. Thank you for reply. I'll look into it.

Cheers,
Ray

david_peterson
2017-05-31, 01:12 PM
Ok I get what you're doing.
You want the hosting object to drive the size of the base plate object based on the host parameters.
I'm not sure you can do that without lots of magic. (ie Dynamo)
In fact, I'm rather certain of it.
And even with Dynamo, I'm not sure it's going to be an easy task.
Are your beams all type based objects or instance based?
Are your base plates all Type based parameters or instance based?
There's a method where you can assign a global parameter label to each beam with (B) and then assign that to the base plate with (B) and get that to work, but you'll need one per beam width to get it to work.

I get what you're trying to do, but I'm not really sure it's possible via traditional methods.

ray_bongalon
2017-06-01, 02:36 AM
Hi Dave,

The beams are all type based parameters and the base plates are instance based (or can be set to type based, whichever suits). I'll look into your last statement. I was speculative of the idea if a hosting element can drive values to an object. Thanks again.

Regards,
Ray

bogdan.a.matei
2017-06-13, 11:13 AM
Hi Dave,

The beams are all type based parameters and the base plates are instance based (or can be set to type based, whichever suits). I'll look into your last statement. I was speculative of the idea if a hosting element can drive values to an object. Thanks again.

Regards,
Ray

Hi, Ray,

You've probably found a way by now, but here goes something I would have done in this situation.
I would have made a generic model family for the plate with my needed parameters, then I would have nested the plate family in the beam family.
Then make formulas between the b and h of the beam to guide the b and h of the plate.
You can also add a visibility parameter on the plate to activate it only when needed.
If you want it to also schedule use shared parameters for family type (plate) and b and h.

BR,
Bogdan