Creating wall finishing with room height and room boundary

Hi everyone I am going to make a script to create all wall finishing by room.

I have set the parameter for ceiling height and wall type in the room.
However there are 2 issues and I really need help:

  1. walls are created in wall centerline but not wall face.
  2. linked model is not creating wall finishing.

First issue is major issue and I need to fix it asap. Any know how to fix this issue? Thank you.

Becuase I am new to Dynamo and all I use is the Wall finishing package from modelical. Only an easy node to input the ceiling height and wall type. That’s it. Please advise if there is any better way to create wall finishing.

You could get the thickness of the finish wall then move it by half that amount to position it correctly.

Second dependson how things are set up. Link rooms in a linked model? Rooms in active model but with boundaries from the link model? Depends on how exactly you’ve got things set up you may have to use slightly different methodologies to get the room boundaries.

1 Like

Thank you so much for answering!


It is the dynamo script I am using which is very basic. I just use the modelical package to setup this.

After I create the finishing, the wall finishing location is the wall centerline not finish face.

The column is from linked strutural model and there is no finishing.

What node should I add in order to fix it? Or should I create a dynomo without using this package node? Thank you!!

Get room. Get room boundaries. Plug these curves (and the other info you need) into Wall.ByCurveAndHeight. (Or use the node you’re currently using, it’s the same result with the wall aligned at centreline).

Get the width of the wall type. Get the Curve.NormalAtParameter 0.5, scale the resulting vector by half the width of the wall (you may also have to reverse the vector). You can then use this with Element.MoveByVector to get the wall to where you want it.

There are other packages had some useful tools for this too. I think WombatDynamo had quite a good one from memory that allowed you to choose the location line of the wall.

Hi Hamish
I have created a Dynamo by using room boundaries and width and offset the half of width.
However I cannot create a wall opening when there is a door or window.
Is it possible to auto create a door or window opening?
Thank you so much for answering me!

Hi @aecbcp2 here is an other way …could probably help…

2 Likes

But I have some error for the dynamo scripts. Could you please share yours for me? Thank you so much.

Ok try this one here …btw…
forum walls intersect rooms.dyn (25.2 KB)
dont know that warning, dont think i have seen before…

1 Like

Thanks for the help. I will try it.

If I were doing that without Dynamo I’d use the Join Geometry tool to join the 2 adjacent walls. This cuts any openings through the joined wall also. I’d do the same thing with Dynamo, I can’t recall the name of the node off the top of my head.

Thanks for the help.
I am now wondering is it possible to do a simple offset of the wall?

For example, now I got the wall from dynamo. You can see from picture. And what is the node I can use to offset the wall by -20? I tried different node to offset but it doesn’t work. It is my first time using dynamo and I feel sorry if this question is stupid. Please help me.

Generally speaking, the first 2 steps give me the correct wall but I need to offset the finishes for -20. How can I do it?

Thank you so much however the script is not working for me.
I just need a simple help.

Is it possible to make an offset after I generate the wall from a package?
Here is the photo of the script and I can get the correct wall from the first 2 steps. Now I hope I can offset the wall for -20. How can I achieve this? Thank you so much for helping me and I must solve it and it is my first time using Dynamo. Thank you so much!

You could get the walls’ location line curves. Offset the curves. Then setLocation on the walls with the new curves.

1 Like

Thanks so much.
After I use node “Element.GetLocation”. The output is geometry, how can I change geometry to curve? and how to change curve to geometry?

A curve (or a line) is geometry. If you hover over the ‘geometry’ output of the node you’ll see curves/lines/arcs/etc that correspond to your walls.

1 Like

Hi @aecbcp2 think yourr modelical node output surfaces [not sure dont use that one] and you try offset curves…just a thought could it work with the surface offset ?

1 Like


Thanks sovitek. I found that the node output is the return value. And I checked that the object type is something like Revit.Element.Wall. So is it possible the I can offset the wall? Thank you so much for spending you valuable time.

So I guess the output is wrong. I may need to change it and find another way to offset.