Тема: Работа со слоями с помощью Transaction на vb.net параметр IsFrozen
Работая со слоями я столкнулся с ещё одной небольшой проблемой
вот процедура замораживающая или размораживающая слои в зависимости от их состояния по нажатии на кнопку
Private Sub btnLayersON_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLayersON.Click Try Dim doc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument Dim db As Database = doc.Database Dim ed As Editor = doc.Editor Using lock As DocumentLock = doc.LockDocument() Using tr As Transaction = db.TransactionManager.StartTransaction() Dim acLyrTbl As LayerTable = TryCast(tr.GetObject(db.LayerTableId, OpenMode.ForRead), LayerTable) For Each objId As ObjectId In acLyrTbl Dim acLyrTblRec As LayerTableRecord = TryCast(tr.GetObject(objId, OpenMode.ForWrite), LayerTableRecord) If acLyrTblRec.ObjectId <> db.Clayer Then If acLyrTblRec.IsFrozen = False Then acLyrTblRec.IsFrozen = True Else acLyrTblRec.IsFrozen = False End If End If Next tr.Commit() End Using End Using ed.UpdateScreen() Catch ex As Autodesk.AutoCAD.Runtime.Exception Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(vbLf + ex.Message) End Try End Sub
но при разморозки слоев они не отображаются хотя фактически разморозка произошла это же подтверждает и менеджер слоев
мне удалось добиться отображения слоев с помощью команды
ed.Regen()
но согласитесь это не выход
не пойму чего же не хватает??