This is complex (general case).

For a start use a double loop (Note: a more advanced way is to cluster your Curves by poximity):

for(int i = 0; i<cList.Count;i++){

Curve c1 = cList[i];

for(int j = i+1; j<cList.Count;j++){

Curve c2 = cList[j];

Point3d c1p, c2p; c1.ClosestPoints(c2, out c1p, out c2p);

double t1; c1.ClosestPoint(c1p, out t1);

double t2; c2.ClosestPoint(c2p, out t2);

/*

Then test if the LineCurve (cp1, cp2) yields ccx events with any Curve in the cList (if you skip this â€¦ things become quite challenging). If events == null then sample the LineCurve in a Tree (where the dims are i,j and j,i) and the t1,2 values in another Tree.

Then post your C# and weâ€™ll see ways to do the bridge and finish the job (but as I said the general case is complex).

*/

}

}

See an example with regard the bridge axis on Circles (where proximity on centers is used [and Point3dList]):

An another with crv/crv proximity (spot that youâ€™ll require another flag as well: accept or reject ccx events between the connections):

So the axis are the easy part â€¦ but what happens if a bridge â€śaffectsâ€ť other curves as well? Thatâ€™s the reason that this is a bit complex.