Taking a look but immediately I see a grafting issue on your Sweep1 component.
When sweeping multiple profiles and rails, always make sure both inputs are grafted or matching their data structure.
In this case, a single graft of the S input will work since the R input is already grafted.
I typically graft both to make sure:
I’ll check your boolean/wall subtraction in a moment.
Also, you don’t need the Move To Point component from Pufferfish, you can just use the native move component and feed a Vector 2pt component into it.
Your boolean fails because you are lofting two curves that was working previously with a flattened list, now that your doors are grafted in general you need to work within the data trees and should “almost never” flatten anything anymore.
Graph Space (Unflatten this):
Flatten your B input on your Solid Difference to ensure ALL cutters cut your wall regardless of data structure. (keep in mind if you have close walls to each other you would want to ensure it stays grafted as well so that a door cutter of one wall doesn’t cut a neighboring wall also) Think of data matching being buckets containing data/operations/logic. You get to choose when one bucket spills into another. With flattening a list/data tree, all buckets get dumped into the same area (sometimes good… mostly not)
You get an odd inverted door trim surface when you add another line… taking a look at why
The flipped surface normal of the door frame is coming from the Merge Faces and Cap component result:
Bypassing the Cap Holes component prevents the flipped surface. I think this may potentially be a bug with the component itself though I’m not sure.
“Behind Door Number One!”
Your updated grasshopper script
“Behind Door Number Two!”
“Behind Door Number Three!”
Also I wouldn’t use merge unless your data tree paths are exactly matching, it creates a mess otherwise.
If you want to combined multiple data streams into a new Data tree with simplified branch structure you can use the Entwine component set to Flatten or Graft (depending on what is needed)
I do agree with @Joseph_Oster that much of this can be simplified. Part of the fun is pouring over working code and looking at how you can reduce it to its most simple form but this should get you going for now!
Hope this helps you @Julien_B
20230831_Door_Response_01a.gh (40.8 KB)