This didn't break on acad 2010
[CommandMethod("l&vp")]
public static void Addvp()
{
LayoutManager lm=LayoutManager.Current;
ObjectId LayoutId = lm.GetLayoutId(lm.CurrentLayout);
int j=12, k=6;
for (int i = 0; i < 6; i++)
{
pViewport(LayoutId, j, k);
j += 4; k += 4;
}
} // end Addvp
private static ObjectId pViewport(ObjectId LayoutId, double wd, double ht)
{
Database db = HostApplicationServices.WorkingDatabase;
Editor ed = acadApp.DocumentManager.MdiActiveDocument.Editor;
ObjectId id=ObjectId.Null;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
Viewport vp =new Viewport();
vp.CenterPoint = new Point3d(0.5 * wd , 0.5 * ht, 0);
vp.Width = wd;
vp.Height = ht;
vp.SetDatabaseDefaults();
vp.CenterPoint = new Point3d(0.5 * wd, 0.5 * ht, 0);
vp.Width = wd;
vp.Height = ht;
Layout layout = tr.GetObject(LayoutId, OpenMode.ForRead) as Layout;
BlockTableRecord space = tr.GetObject(layout.BlockTableRecordId, OpenMode.ForWrite) as BlockTableRecord;
space.AppendEntity(vp);
tr.AddNewlyCreatedDBObject(vp, true);
vp.On = true;
ed.SwitchToModelSpace();
tr.Commit();
}
return id;
}