using AcadApp = Autodesk.AutoCAD.ApplicationServices.Application;
public void Get3DPolylinesVertices()
{
Document doc = AcadApp.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Transaction tr = db.TransactionManager.StartTransaction();
using (tr)
{
BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
BlockTableRecord btr = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
foreach (ObjectId id in btr)
{
Entity ent = (Entity) tr.GetObject(id, OpenMode.ForRead);
if (ent is Polyline3d)
{
Polyline3d polyline3d = ent as Polyline3d;
foreach (ObjectId vertexId in polyline3d)
{
PolylineVertex3d vertex3d =
(PolylineVertex3d)tr.GetObject(vertexId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead);
vertex3d.Position // This is one vertices of 3d polyline...
}
}
}
tr.Commit();
}
}