Need help developing a script

Our firm is debating currently over how best to create fire rating plans. I suggested using a Dynamo script to first identify walls that either have a smoke or fire rating or both. and apply a line based detail component to the centerline of the wall on our life safety plan. We have previously used color filters but often times the drawings do not get printed in color, now we are exploring use Revit Express Tools fire rating tool, but are having issues with 0 hour smoke walls.

If there is someone here that could help me through creating this script that would be awesome. I want to bring it to the table as a viable alternative to these other methods.

I am minimally familiar with Dynamo and have written a few scripts but nothing as complex as this.

I currently have 2 lines. The top selects an instance parameter that controls whether the wall is smoke tight. The bottom line shows the type parameter for Fire Rating that exists for all of the wall types in our template.

See next post.

Correct me if I am wrong but I think the next step would be to determine the Fire Rating and Smoke rating for each instance in the project.

How would I get the Fire Rating for each Instance in the project?

The different Fire Ratings and Smoke Ratings would then pull a line based detail component and apply it to the life safety plan.

I could only post 1 image per post

The second image shows each wall instance and the filter set up currently - Green is Smoke, Orange is 1 hour, Cyan is 1 hour smoke, Red is 2 hour, Blue is 2 hour smoke, Purple is 3 hour, and the second purple does not have a filter for it but would be a 3 hour smoke. The bottom wall is a normal wall.

Welcome to Dynamo! This sounds like a pretty specific to your firm workflow, which is sometimes difficult to get help on the forums for.

That being said: depending on how your firm identifies these partitions, this may get you started.

###This workflow is incomplete, but demonstrates how to get a type parameter from placed instance of wall.

So here is an update.

I added script to find the Wall Type of each of the instances.

How can I get the Fire Rating value for the 8 instances in my project.

Like I have shown above. Collect the instances, then get the wall type. Right now you are getting unplaced wall types


Thanks for the help. I am pulling the 8 instances of the walls straight from the model. However no modeled elements are showing up in dynamo

I believe this is more inline with what both of us were wanting.

How would I combine these so I get a list of Fire Rating and Smoke

Basically what I want to do now is this:

For each partition test if Smoke is Yes or No and What the fire Rating is

Depending on the result a different line based detail component will be placed on the centerline of that wall.

Is smoke an instance param?


We too are in the same process considering how to make our Fire Ratings show up.
First, we thought of making FireRating an instance parameter, because concrete walls are fire resistant just as they come. We than thought of placing line based families, but why not tag the families? You can make a tag with a symbol in it and let Dynamo do the rest. We would like to place these symbols according to view (scale is important here, smaller scale means wider apart).
Then there is the case of not cooperating project partners (construction). They too have to set the FireRating parameter, to make our compartiments closed in 3D. And we do want FireRating to show up in sections as well. Then there is the ommiting standard parameter for Fire Rating in Ceilings and Floors and Roofs. Ow i forgot the facades (vertical fire spread)
I am not at my computer right now, but i gave it a go in Dynamo, and its not that hard (i left the scale part out) . So all things considering, i think this can be done, but where not there yet.


FireRatingDetailLine.dyn (33.7 KB)

1 Like

Smoke is instance and Fire Rating is Type

1 Like


You are close to what I want. How can we incorporate the smoke parameter. so that we have the following

0hr - do nothing
0hr smoke - load smoke line family (smoke parameter is on)
1hr - load 1 hr line family (smoke parameter is off)
1hr smoke - load 1 hr smoke family (smoke is on)
2 hr - load 2 hr line family (smoke is off)
2 hr smoke - load 2hr smoke family (smoke is on)
3 hr - load 3 hr family (smoke is off)

It isn’t a matter of only getting the walls with the smoke rating, I need ones with and without because that determines if it gets the applicable smoke line.

Hmm, I will have to look later. I included the graph so you are very able to investigate it too. I believe I gave you a good starting point.

You have I will play around with it. Thanks for the help

That’s one of many ways showing how you can group them before you apply your final input.

then you can follow what @john_pierson did to place the lines

1 Like

3 posts were split to a new topic: Grouping Items by Bounding Box


I have attached my attempt at your method. A few things, I am getting dictionary errors I am assuming because my lists are combined lists and not single entries.

Second I do not have the FamilyInstance.byline node.

I need to load in the detail line families that I will be using. Any thoughts on what I need to do to get this to work.

Thanks again for the help

Check this quick and dirty workaround for this

hope it helps!

I got it to work, I just did a simple a+b code block