Creating Wall finish depending on Wall Type

My goal is to create a script that creates wall finishes in a selection of rooms, depending on the wall type.
Concrete walls get a thick plaster, masonry walls get a thin plaster.
I was able to match a finish wall type to the already existing construction walls (still need to do some more work on this and also look for walls that don’t need a finish) but I ran into some problems…
The finish walls that are created are created on the middle of the interior face of the construction wall, so that means there is an overlap.

I can go 2 ways from here:
Offset the curves before creating the finish walls
OR
Offsetting/moving the finish walls after they are created.

Either way this has to do with coordinate systems and vectors in order to move them in the correct direction. And I have no clue nor understand this part and how to do it.

Any advice and help on how to move the geometry in the correct direction is very welcome.
DYN_wall_finishes.dyn (130.4 KB)

An idea: add 1/2 of the thickness of the plaster to the distance of the offset in the code previously discussed here Wall location curve - #24 by jacob.small ?

@jacob.small Yes this worked.

My savior once again, thank you! :slight_smile:

1 Like

Looking forward to that OG thread update… or even better an AU or Community Conversation proposal. :slight_smile:

@jacob.small Haha when and where?

But about the script, I’m going to need to switch to the room boundaries for the curves since walls usually span multiple rooms so the wall faces are not gonna work…
But I have no idea how to move the curves from the room boundaries in the correct direction to compensate for the thickness of the finish…

Autodesk University is here: https://www.autodesk.com/autodesk-university/conference/call-for-proposals
Community Conversations proposal is here: https://autodeskfeedback.az1.qualtrics.com/jfe/form/SV_6ofmUCJ943S4BBI

For the room boundaries method, I’d take the curves, build a polycurve, explode that polycurve, and then offset by -1/2 of the thickness. You’ll have faces partially overlapping which could cause some issues, but since they are all walls and aligned to each other Revit’s built in cleanup utilities may resolve it (we can hope so anyway). If not you’ll have to offset, then trim/extend as needed to get a closed loop.

I’ll take a look at it.

I was able to do the polycurve and explode it.
I’m able to get the offset value.
Joining in the corners I also already have covered, but trimming would be better, is this possible in dynamo?

But I have no idea how to offset the curves in the right direction - towards the interior/middle of the room…

Using the negative value should work once you make the polycurve. :slight_smile:

So offset the polycurve before exploding?

Never mind, kinda figured it out:
I fed the roomboundary curves into the node instead but they match with the direction of the room bounding elements that create the curves and removed the distance, so this works!

1 Like

Okay so I didn’t figure it out, as I’m testing the script on a bigger scale I’m running into more trouble/problems…

So first thing, right now the script can only use walls, and not columns… So I’m gonna have to throw them into the mix somewhere/somehow…

Second, offset for freestanding/interior walls is not correct, because they have both an interior and exterior side so the offset on the exterior side is not correct…

Thirdly, the end off freestanding walls is not generated since the curve is apparently not linked to the wall element.

Most of this can be solved if I can just get all the room boundary curves to offset into the direction of the interior/middle of the room. Only the offset distance should depend on the room bounding element, but the offset direction should not… :weary:

Apparently this node from Wombat package does the trick!
image

1 Like

Starting with the rooms is easier for the direction of curves as you can just use the Room.FinishBoundaries node which returns a consistent direction. However that means you lose the capability to drive the offset from the substrate type. You also risk putting a finish where you don’t need it (ie: over a typical stud wall).

A better solution might be to go back to the wall, offset by the relative thickness both inside and outside, test if those curves intersect the room and discard any which do not. That won’t ‘cap’ your walls though, but I think y here are alternative solutions there.