Write property value by family


I am starting with Dynamo and don’t know a lot. I spent 3 days trying to figure this out before I gave up and decided to ask for help here.
I would like to write property value of labels that are visible on plan view. I would like these values to be assigned based on the family name. The idea behind it is to have ‘‘gauge’’ field for frames on the floor (not entire building) populated according to the gauge of the members used for frames. I’d like to add that there are frames of various gauges on one floor. Below screen grab of where I got so far after multiple attempts(sorry but I can upload only one file as a new user). Any insight would be appreciated and remember that I am a total noob in Dynamo.

1.Most successful so far
2.Plan view with frame labels
3.Frame members

Hi @Mariusz.Czupryna ,

First of all, welcome to the Dynamo community :slight_smile:
Could you maybe share what you have achieved so far and where you are stuck? (with some screenshots)

It is very difficult to understand what you are trying to accomplish.

How much experience do you have with Revit?

Hi guys,

Thanks for expressing interest in this post.
Let me explain it a little bit better (hopefully).
I am working with structural framings via MWF in Revit 2018-2020 (whatever client uses).
on the plan below you can see a plan view with frame elements and frame label F-39.
frame members and frame label are separate elements and connected only by parameter ‘‘BIMSF_Container’’ (also photo below).

Now, I need to manually add gauge to the label property.

This gauge is derived from the structural framing element thickness which is described by the code ‘‘F10020’’ in family type name where ‘‘20’’ at the end of the code means 2.0 thickness.

On the floor we may encounter frames made of various gauges between 1.2 - 3.0 but one frame is always made of one gauge. I hope you can see now how having 130 frames which you need to populate manually may become a tedious task after couple of years. I was hoping to somehow use Family type name of frame elements to populate ‘‘Gauge’’ field in label element.

So far I made nodes to extract some data that may/may not be useful (photo below)

And I started experimenting with picking frame labels from plan (we want to limit them to one floor and not entire building). Then I got stuck and wasn’t sure how or where to proceed so I changed approach and thought maybe trying to make solution for only one label which then may be scripted to re-run all remaining frames on the floor hence nodes for one and for all labels on the photo below.

Lastly to answer m.owen’s question, I work in Revit for couple of years now but its mostly limited to 2D frame drawings via MWF plugin. (obv I sometimes inspect frames in 3D to get the information for detailing where necessary).

So if I understand correctly:

The frame label is a group of elements representing… something… (a connection I think) including multiple framing members of varying gauge. The only thing connecting the group and the individual members is the frame label, BIMSF_Container. You want to write all the gauges of a given group back to its respective label.

In order to do that you’ll have to get the BIMSF_Container value for the labels and the members. You can then sort and group them by value. As long as you have exactly the same values in both lists (no extra or missing values) that’s all you’ll have to do for collecting the elements. With the members and groups now in sublists according to label, you can simply get the gauge values from the members and write them directly to the respective label.

1 Like

Yes labels and structural members are separate elements linked only by BIMSF_Container. I am going to do it from scratch later to try and replicate what you said. However, if you have any particular nodes on your mind feel free to share :smiley: Thanks to all for your input!