Пока я вижу, что ты не очень понимаешь что делаешь.
Попробуй так:
static void FinishedProcessing()
{
AcAp.Document doc = AcAp.Application.DocumentManager.MdiActiveDocument;
using (AcAp.DocumentLock locDoc = doc.LockDocument())
{
AcDb.ObjectId spaceId = doc.Database.CurrentSpaceId;
using (AcDb.BlockTableRecord btr = spaceId.Open(AcDb.OpenMode.ForWrite) as AcDb.BlockTableRecord)
{
using (AcDb.Polyline3d poly = new AcDb.Polyline3d())
{
AcGe.Point3d pt = new AcGe.Point3d(r.NextDouble() * 100, r.NextDouble() * 100, r.NextDouble() * 100);
poly.SetDatabaseDefaults();
poly.ColorIndex = c_color;
btr.AppendEntity(poly);
for (int i = 0; i < n_vertexies; i++)
{
using (AcDb.PolylineVertex3d pv3d = new AcDb.PolylineVertex3d(pt))
{
poly.AppendVertex(pv3d);
}
}
}
}
}
}
В том коде, который я дал тебе в качестве образца, вершины к 3D-полилинии добавлялись после указания пользователем и там каждый раз нужно было "открывать" 3D-полилинию по её ObjectId и добавлять новую вершину. В этом же коде ты создаешь полилинию сразу и соответственно тебе не нужно её каждый раз открывать.