Here's a testing command using the process I described upper (requires A2013+ for the GetGeCurve() method).
[CommandMethod("MinDist")]
public void GetMinimumDistance()
{
var doc = Application.DocumentManager.MdiActiveDocument;
var db = doc.Database;
var ed = doc.Editor;
var options = new PromptEntityOptions("\nSelect first object: ");
options.SetRejectMessage("Must be a curve.");
options.AddAllowedClass(typeof(Curve), false);
var result = ed.GetEntity(options);
if (result.Status != PromptStatus.OK)
return;
var id1 = result.ObjectId;
options.Message = "\nSelect second object: ";
result = ed.GetEntity(options);
if (result.Status != PromptStatus.OK)
return;
var id2 = result.ObjectId;
using (var tr = db.TransactionManager.StartTransaction())
{
var curve1 = (Curve)tr.GetObject(id1, OpenMode.ForRead);
var curve2 = (Curve)tr.GetObject(id2, OpenMode.ForRead);
var distance = curve1.GetGeCurve().GetDistanceTo(curve2.GetGeCurve());
ed.WriteMessage("\nDistance = {0}", distance);
tr.Commit();
}
}