Joining Geometry from Shared/Nested Family to Wall

I’ve gone through the search and while there were a few threads about joining geometry I didn’t really find an answer (I think), other than some python stuff that is a year or two old. I did find some help in the Auto Join Walls thread and one other (see below) but I’m still not having much luck.

That said - I’m trying join my window trim (GM, shared & nested in my window family) to the finish wall (walls are built in 2-parts, structure & finish.) I can collect all the elements and thanks to the 2nd link above, determine if they intersect but the actual join is not working. Manually joining the trim & wall in the model works just fine, so the issue is somewhere in my graph. I’ve tried both the Join Geometry node from Hot Gear and the Element.JoinGeometry from Clockwork and the end result is the same.


Result after running: (all the orange seems pertinent…)

Graph & Model if it helps:
JoinWindowTrim.dyn (12.2 KB)

JoinWindows.rvt (2.4 MB)

After some more work the error seems to be related to the Geometry.DoesIntersect section of the graph. If I take that chunk out it runs and joins the window trim to the wall, but also tries to join the walls to each other and the window trim to other walls that shouldn’t be joined.
There was also the issue where I was feeding the wrong list into the Filter.ByBool node which didn’t help…

The question now is - where am I going wrong with the Intersect section of the graph? I believe the end result of it should be a 1:1 relationship of WindowTrimA intersects WallA, WindowTrimB intersects WallB (but not A or C), and so on but I’m missing something… :persevere:

Took a little bit of a different approach but I think I got what you needed. I did have to use cross product but should not be slower than checking if two items intersect. I think there is a better way but my brain is fried for the week.

If you have any question let me know. I am about to leave for the week so probably wont be able to answer them until Monday.

Have a good weekend,


JoinWindowTrim.dyn (16.8 KB)

Thanks for taking a look. The problem with that solution, at least for me, is that my walls are put together as 2 parts - the core wall (gyp, structure, sheathing) and a finish wall (siding), so the host wall isn’t relevant. I’ll see if I can do anything with that FamilyInstance.SubComponent node though, a change in approach might help. :beers:

Sorry I missed that Chad,

Try this one.

JoinWindowTrim (1).dyn (15.4 KB)

Let me know if you have any questions,

That at least joins the trim to the siding, but still results in a bunch of errors (walls are joined but don’t intersect.) I’ll keep plugging away though. Haven’t had a chance to do much with the FamilyInstance.SubComponent node yet - I’ll try that next.

And the Selection.AllWallsOfType is from the Beaker package, apologies for not noting that earlier.

At the end do you have two walls or one in each list with the trim? I was thinking your method of collecting the walls was filtering to just the inside wall. If you change it to just grab the inside wall does it work?

Dont worry about not letting me know about the node. it does not have to do with your question.