Interference of Solids and Boolean Mask

I have a series of solids which l am checking whether they interfere with structural foundations.

I have that interference list, but then wish to identify the cylinder solid type which are interfering, i.e. if a solid clashes with more than 1 foundation, then it returns a list of interfering elements.

I have generated the start of a script, but this portion l cannot get it to return the 3 offending solids, but it returns all 4 solids.

Here is my attempt thus far…

I am trying to identify which Family Type is interfering with the foundations, but only return a single Type or a list of offending Types, which interfere with the foundations, regardless if they interfere with multiple foundations.

How can a single element which through the routine have a parameter which changes, then apply the appropriate value along the routine to its appropriate intended host, rather than merely applying the latest value?

I’d say you already have information on what interferes with what. Notice, that interference check you run does contain information, which foundations clashes with which planting. Your list of intersection results contains 4 lists which contains 9 results. In tasks like this you need to pay attention so that you don’t loose elements, which don’t clash with anything. You’t boolean mask must match list structure. Now it doesn’t, and it is just the way Geometry.DoesIntersect produces results. You can try playing with List.NormalizeDepth to reduce the depth of your boolean mask produced by Geometry.DoesIntersect. That should help!