Here's a little C# sample (if needed, google for convert C# VB")
{code}using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Colors;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
namespace ClassLibrary1
{
public class Class1
{
[CommandMethod("TEST")]
public static void Test()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
// Create a new layer named "Test" color 30
LayerTable lt = (LayerTable)tr.GetObject(db.LayerTableId, OpenMode.ForWrite);
if (!lt.Has("Test"))
{
LayerTableRecord ltr = new LayerTableRecord();
ltr.Color = Color.FromColorIndex(ColorMethod.ByAci, 30);
ltr.Name = "Test";
ObjectId layerId = lt.Add(ltr);
tr.AddNewlyCreatedDBObject(ltr, true);
}
// Freeze "Test" layer in all viewports
ObjectId[] ids = new ObjectId[1] { layerId };
DBDictionary layoutDict = (DBDictionary)tr.GetObject(db.LayoutDictionaryId, OpenMode.ForRead);
foreach (DBDictionaryEntry entry in layoutDict)
{
if (entry.Key != "Model")
{
Layout lay = (Layout)tr.GetObject(entry.Value, OpenMode.ForRead);
foreach (ObjectId vpId in lay.GetViewports())
{
Viewport vp = (Viewport)tr.GetObject(vpId, OpenMode.ForWrite);
vp.FreezeLayersInViewport(ids.GetEnumerator());
}
}
}
tr.Commit();
}
}
}
}
{code}