Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
Editor ed = doc.Editor;
Database db = HostApplicationServices.WorkingDatabase;
using (DocumentLock dl = doc.LockDocument())
{
using (Transaction tr = db.TransactionManager.StartTransaction())
{
BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead, false);
var blocks = bt.Cast<ObjectId>().Select(id => (BlockTableRecord)tr.GetObject(id, OpenMode.ForWrite, false));
blocks = blocks.Where(b => (!b.IsDependent && !b.IsResolved));
foreach (BlockTableRecord block in blocks)
{
IEnumerable<ObjectId> plineIds1 = block.Cast<ObjectId>().Where(id => !id.IsErased && id.ObjectClass.Name == "AcDbPolyline");
IEnumerable<Polyline> plines1 = plineIds1.Select(id => (Polyline)tr.GetObject(id, OpenMode.ForWrite, false, true));
}
tr.Commit();
}
}