LayoutManager.Current.GetLayoutId(layoutName) 结果为空


AutoCAD2016 LayoutManager.Current.GetLayoutId(layoutName) 结果为空

https://blog.csdn.net/qqider/article/details/71124601

程序代码:

Public Shared Function GetLayoutId(db As Database, name As String) As ObjectId
    Dim layoutId As New ObjectId()
    Dim bt As BlockTable = TryCast(db.BlockTableId.GetObject(OpenMode.ForRead), BlockTable)
    For Each btrId As ObjectId In bt
        Dim btr As BlockTableRecord = CType(btrId.GetObject(OpenMode.ForRead), BlockTableRecord)
        If btr.IsLayout Then
            Dim layout As Layout = CType(btr.LayoutId.GetObject(OpenMode.ForRead), Layout)
            If layout.LayoutName.CompareTo(name) = 0 Then
                layoutId = btr.LayoutId
                Exit For
            End If
        End If
    Next
    Return layoutId
End Function


程序代码:

   Public Shared Function GetLayoutId(Name As String) As ObjectId
        Dim acDoc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
        Dim acCurDb As Database = acDoc.Database
        Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
            Dim lays As DBDictionary = acTrans.GetObject(acCurDb.LayoutDictionaryId, OpenMode.ForRead)
            For Each item As DBDictionaryEntry In lays
                If item.Key = Name Then
                    Return item.Value
                End If
            Next
            acTrans.Abort()
        End Using
    End Function




黄芪,HuangQi

评标委员会人数到5人以上单数,到底含不含5人

欢迎关注微信公众账号ByCAD