Private Sub CheckWALLSLayer()
Dim myTransMan As DatabaseServices.TransactionManager
Dim myDwg As Document
Dim myLT As LayerTable
Dim myLTR As LayerTableRecord
Try
myDwg = Application.DocumentManager.MdiActiveDocument
myTransMan = myDwg.TransactionManager
Using myTrans As DatabaseServices.Transaction = myTransMan.StartTransaction
myLT = myDwg.Database.LayerTableId.GetObject(OpenMode.ForRead)
Dim myWALLS As String = "WALLS"
'CHECK FOR THE LAYER BEFORE YOU BEGIN
If myLT.Has(myWALLS) = False Then
myLTR = New LayerTableRecord
myLTR.Name = myWALLS
myLTR.Color = Autodesk.AutoCAD.Colors.Color.FromColorIndex(ColorMethod.ByAci, 6) 'MAGENTA
myLT.UpgradeOpen()
myLT.Add(myLTR)
myTrans.AddNewlyCreatedDBObject(myLTR, True)
Else
myLTR = myTransMan.GetObject(myLT(myWALLS), OpenMode.ForWrite)
With myLTR
If .IsOff Then .IsOff = False
If .IsFrozen Then .IsFrozen = False
If .IsLocked Then .IsLocked = False
End With
End If
'TURN ON THE LAYERTABLE FOR WRITE
myTrans.Commit()
End Using
'MAKE SURE WALLS LAYER IS CURRENT
ApplicationServices.Application.SetSystemVariable("CLAYER", "WALLS")
Catch ex As Autodesk.AutoCAD.Runtime.Exception
MsgBox("Error during WALLS Layer setup - " & Err
.ToString) Finally
End Try
End Sub