Community
Public Shared Sub setactlay(ByVal lay_name As String)
Dim myDWG As ApplicationServices.Document
Dim myDB As DatabaseServices.Database
Dim myTransMan As DatabaseServices.TransactionManager
Dim myTrans As DatabaseServices.Transaction
Dim foundLayer As Boolean
myDWG = ApplicationServices.Application.DocumentManager.MdiActiveDocument
myDB = myDWG.Database
myTransMan = myDWG.TransactionManager
myTrans = myTransMan.StartTransaction
foundLayer = False
Try
Dim myLT As DatabaseServices.LayerTable
Dim myLayer As DatabaseServices.LayerTableRecord
Dim mySTE As DatabaseServices.SymbolTableEnumerator
myLayer = myDWG.Database.LayerZero.GetObject(OpenMode.ForRead) 'initializes the layer
myLT = myDB.LayerTableId.GetObject(DatabaseServices.OpenMode.ForRead)
mySTE = myLT.GetEnumerator
While mySTE.MoveNext
myLayer = mySTE.Current.GetObject(OpenMode.ForWrite)
If myLayer.Name = lay_name Then
If myLayer.IsFrozen Then myLayer.IsFrozen = False
If myLayer.IsOff Then myLayer.IsOff = False
foundLayer = True
Exit While
End If
End While
If foundLayer Then
myDB.Clayer = myLayer.ObjectId
End If
Catch ex As Exception
Debug.Print(ex.message)
End Try
myTrans.Commit()
myTrans.Dispose()
End Sub