Found this one in my codes, author unknown,
try it for current viewport in Paper space
<CommandMethod("VpLayersMan")> _
Public Sub TestLayerFreeze()
'' add layer names to freeze/ thaw in paperspace viewports separated by commas
Dim layers As List(Of String) = {"Wall", "ANNO-TEXT"}.ToList()''<-- layers for test
Dim doc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
Dim ed As Editor = doc.Editor
Dim db As Database = doc.Database
Dim idLay As ObjectId
Dim idLayTblRcd As ObjectId
Dim lt As LayerTableRecord
Dim layOut As Layout
Dim tm As Autodesk.AutoCAD.ApplicationServices.TransactionManager = db.TransactionManager
Dim ta As Transaction = tm.StartTransaction()
Try
Dim acLayoutMgr As LayoutManager
acLayoutMgr = LayoutManager.Current
Dim layDict As DBDictionary = DirectCast(ta.GetObject(db.LayoutDictionaryId, OpenMode.ForRead, False), DBDictionary)
For Each itmdict As DBDictionaryEntry In layDict
layOut = DirectCast(ta.GetObject(itmdict.Value, OpenMode.ForRead, False), Layout)
ed.WriteMessage(vbLf + "Layout: {0}" + vbLf, layOut.LayoutName)
If layOut.LayoutName <> "Model" Then
acLayoutMgr.CurrentLayout = layOut.LayoutName
Dim ltt As LayerTable = DirectCast(ta.GetObject(db.LayerTableId, OpenMode.ForRead, False), LayerTable)
For Each lname As String In layers
idLay = ltt(lname)
lt = ta.GetObject(idLay, OpenMode.ForRead)
If ltt.Has(lname) Then
idLayTblRcd = ltt.Item(lname)
Else
ed.WriteMessage("Layer: """ + lname + """ not available")
Return
End If
Dim idCol As ObjectIdCollection = New ObjectIdCollection
idCol.Add(idLayTblRcd)
' Check that we are in paper space
Dim vpid As ObjectId = ed.CurrentViewportObjectId
If vpid.IsNull() Then
ed.WriteMessage("No Viewport current.")
Return
End If
'VP need to be open for write
Dim oViewport As Viewport = DirectCast(tm.GetObject(vpid, OpenMode.ForWrite, False), Viewport)
If Not oViewport.IsLayerFrozenInViewport(idLayTblRcd) Then
oViewport.FreezeLayersInViewport(idCol.GetEnumerator())
Else
oViewport.ThawLayersInViewport(idCol.GetEnumerator())
End If
Next
End If
Next
ta.Commit()
Finally
ta.Dispose()
End Try
End Sub
_____________________________________
C6309D9E0751D165D0934D0621DFF27919