Here's part of my module
the namespace for the myLayerId is:
"Autodesk.AutoCAD.DatabaseServices.ObjectId"
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.EditorInput
Sub SetMyLayer(ByVal LayerName As String, _
Optional ByVal LayOff As Boolean = False, _
Optional ByVal LayFrozen As Boolean = False, _
Optional ByVal LayLocked As Boolean = False, _
Optional ByVal ColorByACI As Integer = 7, _
Optional ByVal LayLType As String = "Continuous", _
Optional ByVal LayLWeight As DatabaseServices.LineWeight = _
DatabaseServices.LineWeight.ByLineWeightDefault, _
Optional ByVal LayIsPlottable As Boolean = True, _
Optional ByVal LayDescription As String = "", _
Optional ByVal SetCurrent As Boolean = True)
Dim myDWG As ApplicationServices.Document
Dim myDB As DatabaseServices.Database
Dim myTransMan As DatabaseServices.TransactionManager
Dim myTrans As DatabaseServices.Transaction
myDWG = ApplicationServices.Application.DocumentManager.MdiActiveDocument
myDB = myDWG.Database
myTransMan = myDWG.TransactionManager
myTrans = myTransMan.StartTransaction
Dim myLT As DatabaseServices.LayerTable
Dim myLayer As New DatabaseServices.LayerTableRecord
Dim myLayerId As ObjectId
' Verifica se il Layer Esiste
Try
' Se il Layer Esiste => Recupera il suo ID
myLT = CType(myTransMan.GetObject(myDB.LayerTableId, OpenMode.ForRead, True, True), LayerTable)
myLayerId = myLT.Item(LayerName)
' Se è stato cancellato => Recupera il Layer
If myLayerId.IsErased Then
myLT.UpgradeOpen()
myLT.Item(LayerName).GetObject(OpenMode.ForWrite, True, True).Erase(False)
End If
Catch ex As Exception
' Il Layer NON Esiste: Bisogna crearlo con tutte le sue caratteristiche
myLT = myDB.LayerTableId.GetObject(DatabaseServices.OpenMode.ForWrite, True, True)
myLayer.Name = LayerName
myLT.Add(myLayer)
'Aggiungere il Layer al Database del Disegno
myTrans.AddNewlyCreatedDBObject(myLayer, True)
' Recupera l'ID del Layer appena creato
myLT = CType(myTransMan.GetObject(myDB.LayerTableId, OpenMode.ForRead, False), LayerTable)
myLayerId = myLT.Item(LayerName)
End Try
' Impostazioni del Layer
Try
myLayer = myTransMan.GetObject(myLayerId, OpenMode.ForWrite, True, True)
Catch ex As Exception
End Try
myLayer.Color = Colors.Color.FromColorIndex(Colors.ColorMethod.ByAci, ColorByACI)
myLayer.LineWeight = LayLWeight
myLayer.IsOff = LayOff
myLayer.IsFrozen = LayFrozen
myLayer.IsLocked = LayLocked
myLayer.IsPlottable = LayIsPlottable
myLayer.LinetypeObjectId = GetLineTypeId(LayLType)
myLayer.Description = LayDescription
' Verifica se deve essere impostato come Layer Corrente
If SetCurrent Then myDB.Clayer = myLayerId
myTrans.Commit()
myTrans.Dispose()
myTransMan.Dispose()
End Sub ' Reset Layer
Hope it helps
René