Hello!
I didn't test, but you can try:
Public Function CurveLength(ByVal ID As ObjectId, ByRef Len As Double) As Boolean
CurveLength = True
Dim DB As Database = HostApplicationServices.WorkingDatabase
Using Trans As Transaction = DB.TransactionManager.StartTransaction
Dim Ent As Entity = Trans.GetObject(ID, OpenMode.ForRead)
Try
Dim Cur As Curve =trycast( Ent,curve) 'Error?
Len = Cur.GetDistanceAtParameter(Cur.EndParam)
Catch ex As Exception
CurveLength = False
End Try
End Using
End Function