Revit Architecture Forum
Welcome to Autodesk’s Revit Architecture Forums. Share your knowledge, ask questions, and explore popular Revit Architecture topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Nested family parameter value into Host family

35 REPLIES 35
Reply
Message 1 of 36
rudolf.vyhnalek
16419 Views, 35 Replies

Nested family parameter value into Host family

Hi everyone,

I'm wondering if it is possible to get nested family parameter value (for example price) into host family. I'm trying to create doors which are composed from different panels, framing etc. where every component has its own price and the sum of them means price of the door. I tried to use shared families for those components but it seems it is hard to create schedules and have just doors with correct price inside.
If anyone knows how to propagate the value to host family I will appreciate if he/she shares it with me :).
Thank you

Regards
Rudolf
35 REPLIES 35
Message 2 of 36

Create parameters in your host model for each element called "Door Panel Cost", "Frame Cost" etc, then nest each component into your host family.

To link the parameters, click on the nested door panel then click on its Type properties. You will see the parameters from the door panel family including the cost. To the far right there is a small grey button, click that and associate the nested family’s parameter to a parameter in your host model.

You can then use some formula to calculate the based upon the original paramiter. Without the formular link back it wont work because your host model paramiters will overide your original (cost) paramiter, I think this is the step you may be missing.

Remember to uses 'shared' paramiters for your host paramiters, elese they will not apear in the schedules.

A better way to do this is to have all the cost options in the host model and associate them with the various conditions that affect the price. I have attached a quick "Work in progress" example that shows this based upon cost of diffrent materials and fire rating(door panel thickness). The example attached is only 10% complete but hopefully see what i am trying to do.

Hope the above makes sense, I will upload a video tutorial to www.revitspace.co.uk later this week showing this in action, along with some formula techniques.

Adam
www.Revitspace.co.uk

Edited by: revitspace on Jan 5, 2010 7:05 PM Edited by: revitspace on Jan 5, 2010 7:08 PM
Message 3 of 36

Hi Adam,

thank you for your response. I tried this approach once but it doesn't work as I need. If you create Parameters (shared or not shared) in the Host family as you say, then open type parameters of the nested family and assign each parameter via that grey rectangle, you will get an opposite effect then I need. Price which was written in the host family propagates to nested family and that's wrong. I need to do it contrariwise. To say to the host family: Get your number from the nested family.
I think I figure it out. You have to use SHARED nested families which has at least one share parameter common with the host family (for example door number). Important is that in nested family this shared parameter is a parameter of INSTANCE, in host family it is parameter of TYPE. Then in the host family you have to go to instance parameters of nested family and join it via that gray rectangle with the type parameter of the host. Then in schedules you can sort all parts using that shared parameter and you will get the right result. All components sorted under Host and the price can be calculated as a sum of all parts.
May this tip be useful for everyone who struggles with Revit 🙂

Cheers
Rudolf
Message 4 of 36
Anonymous
in reply to: rudolf.vyhnalek

6 years later, it still doesn't work. I cannot, for the life of me, figure out why. Anybody know how to Propagate a parameter FROM THE NESTED FAMILY INTO THE HOST FAMILY? It definitely shouldn't be rocket science, but somehow, it seems to be.

Message 5 of 36
L.Maas
in reply to: Anonymous

It is just that Revit does not work this way. The concept of Revit is that it is based parent-child relationship.

Louis

EESignature

Please mention Revit version, especially when uploading Revit files.

Message 6 of 36
Anonymous
in reply to: Anonymous

Wait so you're just trying to get a parameter from a nested family to be controlled in the family you're currently working in?

 

If so it's really pretty simple, and yes team Revit has dropped the ball badly in explaining this properly.

 

You need to create the same parameter that exists in the nested family in your current family. Once its there select the nested family and you will see a button on your top left labeled Type Properties (button with four cubes in it), in there you will see all the parameters from the nested family, on the right side a series of grey little unnamed buttons. Click those grey buttons to assign your parameters to the nested family. This will "connect" the two together, when finished the grey button should have an = sign in it.

 

This should be all you have to do.

 

 

Hope this helps...

 
 
 
Message 7 of 36
Alfredo_Medina
in reply to: Anonymous


  jeppsMX3UQ wrote:

...

If so it's really pretty simple, and yes team Revit has dropped the ball badly in explaining this properly.

 ... 


 

I disagree with that.

 

  • Please read again post # 3 above.
  • I agree with the response in post # 5. 

 


Alfredo Medina _________________________________________________________________ ______
Licensed Architect (Florida) | Freelance Instructor | Autodesk Expert Elite (on Revit) | Profile on Linkedin
Message 8 of 36
Anonymous
in reply to: L.Maas

First off, thank you all for the thoughtful answers.

@Anonymous they're right, what i'm looking for is propagating from the child to the parent. Parent to child, or host to nested is easy enough, and well explained indeed on your account. Thank you.

@L.Maas and @Alfredo_Medina By now I've figured indeed that there's no way to do that in Revit. I've also made some geometry in the nested family that follows the instance parameter I wanted to propagate from child to parent, and in the HOST family i've tried to measure that, assign the dimension a REPORTING instance parameter and use the further into a formula, but Revit stopped me right there and said Uh-uh - you can't reference stuff from other families in a reporting parameter and then go around using it like it's nobody's business. 

 

Still, though - i don't get why this has to be so rigid. I mean, you can use family parameters in the project, which is, to my understanding, the mother of all families, but a sort-of-family nonetheless. You can take the parameter's "slot" of "variable" (if it's an instance param) from the child to the parent and flex it (adapting the child to the parent's needs), so why in the name of parametric heavens can't we just READ a param value that a child has set?

 

We can read its geometry, we can flex that geometry, but we can't get something as simple as assembling a family sum-cost from various parts' assigned cost, or get various nested parts to match material to each other, or some pre-chosen, ready-made setting that the child-family might have baked in, that we want to pass onto the main family, or schedule etc? 

So maybe I don't get how Revit works, then my question is, how would you go about it to solve something like that?

Message 9 of 36
L.Maas
in reply to: Anonymous

The solution is as mentioned. You have to do this from the parent. In the parent you can set (for example) the material that is going to be used by the child (nested family).

In case of total cost for a family you can do it in the same way (setting it in the host) or you might get around it by using shared families.

 

You mention that you can read and flex the geometry. But this is still parent-child behaviour. Basically the child is not 'aware' of what is happening in the parent. He just gets told what to do.

 

I think the problem with getting information from the child into the parent would mean that it would construct a way of controlling the parent (e.g. using formulas based on values from the child). Than you would have both a parent-child and child parent relationship. Than who is controlling who?

I only can imagine how hugely complex this would make it all.

 

As mentioned above the normal solution would be to control things in the parent or to make use of shared nested families.

A third possible option could be to make use of programming. Here you could read some values and try to push it back into the families.

(even here it would follow the same rules as in the User Interface, only you can automate tasks like editing the nested families quickly).

Louis

EESignature

Please mention Revit version, especially when uploading Revit files.

Message 10 of 36
barryclark75
in reply to: L.Maas

So, if I understand this correctly, if I had a family that was an assembly of nested families, I CANNOT use a parameter value from one of the nested families to drive the value of a parameter in the a parent?

What I am looking to do is create a fire sprinkler escutcheon which will be nested in ceiling hosted family. In that escutcheon family there is a value that specifies the minimum size of the hole to be cut in the ceiling.

Once nested, I'd like to have a scenario where [Parent Hole Cut Size]=[Nested Hole Cut Size]

I know how to drive the value of a nested parameter but I am looking to have it go the other way.
AutoSPRINK RVT
Revit 12MEP/13MEP/14MEP/15MEP/16/17/18/19/20
Message 11 of 36
L.Maas
in reply to: barryclark75

No. As mentioned in my post no 5, Revit is based on a parent-child relationship.

So in the host you will set the hole size and you can link this to a hole size in the nested family.

The end result will be "[Parent Hole Cut Size]=[Nested Hole Cut Size]", however it is the parent who decides the value.

Louis

EESignature

Please mention Revit version, especially when uploading Revit files.

Message 12 of 36
renanrr3
in reply to: L.Maas

Sorry to revive the post, but this discussion is absolutely interesting. It does clear things very well of what it is impossible to do in Revit and what is something I just haven't heard of yet.
I am not any close to be an expert in OOP, but I can't see, yet, what would be the complexity of a parent having some parameters driving by child. With my limited programming experience, I can imagine that circular references could make this impossible, depending on the parameters and links between parent and child, but a simple numeric parameter like cost does not present any difficulties to me.

Of course, there must be a technical programming reason to that. Which is a shame, since in the construction design, I can think of many examples where nested (child) objects drive host (parents) objects.

Message 13 of 36
L.Maas
in reply to: renanrr3

I think the parent/child relationship is used/chosen as the concept for Revit. Once introduced it makes it difficult to change. I think adding the possibility to drive the parent by the child(ren) will add a whole level of complexity.

 

One example to consider. At the moment you have one parent (host) with one or more children (nested). Imagine the situation that the children also can control the parent. In the host you use two instances of the nested family with an instance parameter. For example host has value of 11, child 1 has a value of 21 and child 2 has a value of 100. What will happen to the value? Who and in what case takes precedence? 

I can see that this will add a lot of complexity to the program and also possible confusion for the user.

 

So yes I can see why you want it, but also can imagine the complexities to introduce it to Revit

 

 

Louis

EESignature

Please mention Revit version, especially when uploading Revit files.

Message 14 of 36
Anonymous
in reply to: rudolf.vyhnalek

Basically the same solution pointed out above, but explained by Autodesk:

 

https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2015/ENU/RevitLT-Customize/fil...

 

Message 15 of 36
mroble
in reply to: Anonymous

Here I am, 2 years later to pump life into this topic but....

What I have, is a tank I created. It's parametric. Works like a charm. I even have face-based nozzled nested in the tank family. I added parameters to those nested families specifiying "InletNozzle", "OutletNozzle", so on, so forth..

I have a type of nozzle for every size from 2" up to 24" in the tank family.

 

When I place the tank into a project, I go down to "InletNozzle" parameter, I toggle it to be a 8" nozzle. It works like gangbusters.

The connection I have ON the nozzle in the tank family, they all stay at 0'-2" because that's the input in the Value Column of my ND parameter. Even though if you switch it to a 6, and 8, a 12, a 3, whatever, that ND changes. But my connections will not.

 

Oddly enough, the originally DID work, I had an issue with two nozzles, so I tinkered with stuff, and now it doesn't work again.

 

So there's no workflow to have a connection, on a tank family, that reads the ND parameter of the nested family it's connected to?

Message 16 of 36
ToanDN
in reply to: mroble

Below is an example how to associate the parameters of the connection with the nested component.  Or, share the family if you are facing a different issue.

 

Capture.PNGCapture1.PNGCapture2.PNG

 

 

 

Message 17 of 36
mroble
in reply to: ToanDN

Here you go bud...

 

Keep in mind, this is my first go-around with creating something, moderately complex...

Actually, I'm relatively new to Revit in general. I've been using BIM for about 10 years, so the learning curve isn't terrible.

 

Attached are the Tank and the nozzle family. Nozzle family has an embedded Lookup Table.

Message 18 of 36
ToanDN
in reply to: mroble

The connections changed to 6" when ND = 6".  I don't see anything wrong.

 

Capture.PNG

 

 

Message 19 of 36
mroble
in reply to: ToanDN

Yeah, but if you look below, there's two 4" nozzles, one for a drain, one for a truck connection.

I bet they say 6" as well.

 

If you drop the tank into a project, and select it, go to "Edit Type", down at the bottom, you have the Parameters to change the physical size of the nozzles.

ie: InletNozzle ----> 8" Nozzle

OutletNozzle------>10" Nozzle

 

That is achieved by the ND parameter within the nozzle family types changing based on nozzle size type. 2", 8", etc... BUT, the ND parameter in the Tank family (probably the same ND seeing as I think I set it to be "Type" not "Instance") it just stays at whatever you type in. And subsequently ALL my nozzles will have the same connection size, despite dimensionally, all being different. A 6" here, a 4" there and there, a 8" over there.... etc..

Message 20 of 36
ToanDN
in reply to: mroble

I think you need more than one ND parameters if you have different nozzle sizes in the same family. Look at the example I posted above.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report


Autodesk Design & Make Report