Depending on wether or not precision is an issue, you could try finding element intersecting the boundingbox of your element. I use this method to find collisions with an element. The only problem is, due to the fact that the BoundingBox is a rectangular box containing your element, it is bigger than the actual element. So you might think there's an intersection when there's not.
UIApplication uiApp2 = commandData.Application;
UIDocument uiDoc2 = uiApp2.ActiveUIDocument;
// Select something to use as base bounding box.
Reference r_2 = uiDoc2.Selection.PickObject(
ObjectType.Element, "Chose the element to check for collisions");
// Find the bounding box from the selected
// object and convert to outline.
Element f2 = doc.GetElement(r_2.ElementId);
BoundingBoxXYZ bb2 = f2.get_BoundingBox(
doc.ActiveView);
Outline outline2 = new Outline(bb2.Min, bb2.Max);
// Create a BoundingBoxIntersectsFilter to
// find everything intersecting the bounding
// box of the selected element.
BoundingBoxIntersectsFilter bbfilter2
= new BoundingBoxIntersectsFilter(outline2);
// Use a view to construct the filter so we
// get only visible elements. For example,
// the analytical model will be found otherwise.
FilteredElementCollector collector2
= new FilteredElementCollector(
doc, doc.ActiveView.Id);
// Lets also exclude the element selected.
ICollection<ElementId> idsExclude2
= new List<ElementId>();
idsExclude2.Add(f2.Id);
// Get the set of elements that pass the
// criteria. Note both filters are quick,
// so order is not so important.
collector2.Excluding(idsExclude2)
.WherePasses(bbfilter2);
// Generate a report to display in the dialog.
int nCount2 = 0;
string report2 = string.Empty;
foreach (Element e in collector2)
{
string name = e.Name;
report2 += "\nName= " + name
+ " Element Id: " + e.Id.ToString();
nCount2++;
}
string aux2 = "There are " + nCount2.ToString()
+ " elements with possible collisions" +
report2;
TaskDialog.Show("Rapport", aux2);
Depending on the element you want to find intersection with (maybe only model lines in your case) you might want to add a filter to only keep model lines.
If I remember correctly, my code is actually from Jeremy who just answered to you. If you haven't checked out his blog yet you should, it's full of useful informations.
Hope this helps.
Jordi