Wall Finishes

Hee all…

I’m trying to get a finish at the wall but it won’t work.
What i’m doing wrong with my script??

Famlily.Name : Warning: Internal error, please report: Dereferencing a non-pointer
String.Contains: Warning: String.Contains operation failed
List.FilterbyBoolmask: Warning: List.FilterbyBoolmaskt operation failed. Value cannot be null. Parameter name: source
WallType.Name: Warning: Internal error, please report: Dereferencing a non-pointer
Wall.ByVurceAndHeigt: Wall.ByCurveAndHeight operation failed. Value cannot be be null. Paramater name: source
Element.SetParameterByName: Warning: Internal error, please report: Dereferencing a non-pointer
LunchBox Wall Element Collector: Warning: Converting object to a function pointer is not allowed
Python Script: Warning: IronPythonEvaluator.EvaluateIronPythonScript operation failed. Unexpected indent.

Hi @Jasperbru

There is no way anybody would be able to figure out your problem with the information provided. Please provide complete screenshots with list previews and error messages expanded. Thanks :slight_smile:

Yea i know, but that was the problem, it was 5 o’clock and my pc didn’t work any more… oeps.

I will post them now.

Hi @Jasperbru,

Seems in the first screenshot you are trying to filter by Family name. Unfortunately, you can’t plug an “Element” into a “Family” node. Typically, whatever the output label says you need to plug it into an input on another node that says the same (like dominos… Dynamos… hmm oddly similar). So, the all “ElementsOfCategory” node returns “Elements” not Families, but the “Family.Name” node is expecting a “Family”… you see where I’m going. However, there is a good tool in the Rhythm Package called Element.ParentFamily which returns a “String” or in other words just text of the family name which you need for plugging into the “String.Contains” node. This part will start working now.

For the second Screenshot you are having a similar problem. You are trying to pass a string (which i assume is the walls type name) to a WallType.Name node (this requires a WallType and returns the text value of the Wall Types Name). Instead of doing this, just use the “WallType.ByName” node or use the “Wall Types” node (uses a dropdown selection method).

Another thing, I’m not sure wha the “Transaction.End” node is doing there and I’m not sure what the Python Script is either. That part of the script is a bit of a mystery. :slight_smile:

Hope this helps some.


1 Like

Hi @Daniel_Woodcock1

Thank you very much!! :slight_smile:
The adjustments that you told me worked :blush:

I have only a few problems.
1 My materials will go through the doors and windows

2 My Wall Finish has de location on the center line, I wan’t it on the Finish Face: Interior. If I change it on the properties in Revit it won’t change.

3 If I have different wall types, example I have in a room a brickwall but also a metal stud wall. How could I join the Finish only on the brickwall or only on the metal stud wall??

4 And If i draw the wall types in different phases?

Thank you, :slight_smile:

ps. On the pc at work the screenshot won’t upload :disappointed_relieved:
EDIT: Screenshots
EDIT: New question.

Try this. It has worked for me, but setting the wall height is a little awkward since you have to input the wall heights individually, separated by a comma (I can’t imagine using this for a large project - need to figure out a better way to do it).
Wall-Finishes_By Room Schedule.dyn (47.5 KB)

Just add the wall finish into your Room Schedule and make sure to make the wall finish name match whatever you put on your room wall finish parameter.

Hope this helps!

Thank you @Francisco_Farias

I’ll try this. I looked this morgen at you script but i din’t understand everything of it.
I’ll look at it again.

@Francisco_Farias Do you have a example with your script and your schedule?? I don’t understand why your scripts isn’t working at my schedule :flushed:


There you have: a test file. The beauty of this script is that you can later move walls, doors and windows, and you will not have to re-model opening on your wall finishes, because it will keep track of any changes if you keep Dynamo open. However, remember to run it in MANUAL mode!

Now, still it’s not perfect:

1.- Some windows and door families will not cut through the wall finishes, probably because of the way that particular family is made. One of the problematic families I have come across, is because they don’t have a proper opening cut in the wall, but partial void extrusions on each side. You would have to manually edit the profile on some walls or change the families if you come across this issue.
2.-Another issue is that if you run the script again, it will re-create the walls, so you will have duplicates. I haven’t manage to make the “Eliminate Duplicates” part of the script work.
3.- In order to make it usable for large projects, I need to find a way of more generally specifying the wall heights, rather than one by one.

If someone can help me improve it, I would highly appreciate it! And hope this helps you somehow…

Have you tried the add in for Revit called Room Finishes. I think it may be a solution for you to add your wall finishes by room without using Dynamo (unless getting it right with Dynamo is part of the challenge). You can download it free from https://apps.autodesk.com/RVT/en/Detail/Index?id=5641957956279354474&appLang=en&os=Win64
Using the Skirting option with a full wall height to apply wall finishes by room.

1 Like

Thanks for the suggestions Jessica! It works, but in a weird way… When you define the skirting, you are actually defining the wall type that will act in disguise of a skirting, by setting up its height. Another better way to do it, is to make a wall type finish that includes a skirting on its own family (by sweep, with a proper skirting profile embedded). If you just want the skirting to appear, set the height up to the skirting level…

The other issue is that if you move a wall, it will not update the position of the skirting, so you still will have to re-do them. One of the advantage of the Dynamo script is that it can update the model when it changes. I just need to make the “delete duplicates” work!

Will keep trying it in larger projects and see how it performs.

@Jessica_Ashworth & @Francisco_Farias

But this is not the solution for my problem :wink:
I don’t need a skirting board but I need only the finishes on the wall. Like plaster or something.

And than there are my problems.
I have run the dynamo script. he won’t cut out the windows or doors and the location line of the finishes is on the middel and not on the interior site.
That are the two most important problems that i have.

If someone could help me it would be nice


Hi Jasper

I realize you need wall finishes - the “skirting” tool actually creates walls (to be used to represent skirtings but are actually Revit walls) so you can very easily use them to represent wall finishes - the add-in then automatically joins the new wall finish to the old one and then doors and windows cut through both of them.

in terms of you dynamo script - you’d have to create something to join the 2 walls together - I am also relatively new to dyanmo so can’t offer much there.

Hi @Jessica_Ashworth

The tool that you use is very easy indeed, but if I have a large project with a lot of different rooms, it’s a lot of work if I have to clip every room separately.

That is why I want a script in dynamo.
The only problem is that I don’t know how to cut the doors and windows out of the wall finishes in dynamo. Which nodes i have to use.

And if somebody could help me with that problem i’m very happy :slight_smile:

Did you try the solution of Francisco_Farias. It has a python node that joins the walls.

Hi @viktor_kuzev

I have tried the solution of @Francisco_Farias
I have build my own test case. and copied the wall finishes and the settings from the .rvt file but it won’t work.

Do you know what i’m doing wrong??

The Lunchbox room element collector gifs a list: 9 time null
And the polyCurve.ByJoinedCurves gifs a warning: Value cannot be null & parameter name: source

Make sure the Lunchbox Room Collector node has the Boolean Toggle as True.
I assume you have the rooms enclosed properly?
Also, make sure every room in your room schedule has a Wall finish specified, and that that specification matches the wall finish type you created in Revit.

Also, if you read the notes, you will see that the wall heights have to be added manually (separated by a comma), in the same order as the room numbers. Other than this, I don’t know why it is not working for you…

I am updating the script with nodes that eliminate the duplicates, but haven’t had the time to finish it. Will do when I can.

Okee, Thank you i will try this.

Have you seen these: