public ObjectId Create(Point3d start, Point3d end)
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Transaction tr = db.TransactionManager.StartTransaction();
ObjectId edgeId = default;
using (tr)
{
BlockTable bt = (BlockTable)db.BlockTableId.GetObject(OpenMode.ForRead);
BlockTableRecord btr = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
Line edge = new Line();
edge.StartPoint = start;
edge.EndPoint = end;
edge.Layer = "Edges";
Polyline3d plineCrosshair1 = new Polyline3d();
// plineCrosshair1.SetDatabaseDefaults();
plineCrosshair1.AppendVertex(new PolylineVertex3d(start));
plineCrosshair1.AppendVertex(new PolylineVertex3d(edge.GetPointAtDist(0.25 * edge.Length)));
plineCrosshair1.AppendVertex(new PolylineVertex3d(end));
plineCrosshair1.Layer = "Edges";
btr.AppendEntity(plineCrosshair1);
tr.AddNewlyCreatedDBObject(plineCrosshair1, true);
edgeId = plineCrosshair1.ObjectId;
tr.Commit();
}
return edgeId;
}