public List<Point3d> pointOffset(Point3d point1, Point3d point2,double offset) { Line line = new Line(point1,point2); List<Point3d> returnList = new List<Point3d>(); DBObjectCollection offsetLine = new DBObjectCollection(); try { offsetLine = line.GetOffsetCurves(offset); } catch { offsetLine.Add(new Line(point1, point2)); } if(offsetLine.Count == 1) { Line oLine = offsetLine[0] as Line; returnList.Add(oLine.StartPoint); returnList.Add(new LineSegment3d(oLine.StartPoint, oLine.EndPoint).MidPoint); returnList.Add(oLine.EndPoint); line.Dispose(); oLine.Dispose(); return returnList; } else { line.Dispose(); return null; } }