首页 > 其他 > 详细

添加和读取扩展数据

时间:2020-02-14 09:57:21      阅读:78      评论:0      收藏:0      [点我收藏+]

1、添加扩展数据

 Private Sub 添加扩展数据(ByVal ent As Entity, ByVal DictName As String, ByVal TypedValue As TypedValue)

        If ent.ExtensionDictionary = Nothing Then
            ent.CreateExtensionDictionary()
        End If

        Using tr As Transaction = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction
            Dim xDict As DatabaseServices.DBDictionary = tr.GetObject(ent.ExtensionDictionary, OpenMode.ForWrite)
            If Not xDict.Contains(DictName) Then
                xDict.UpgradeOpen()
                Dim xrec As New Xrecord
                Dim rb As New ResultBuffer
                rb.Add(TypedValue)
                xrec.Data = rb
                xDict.SetAt(DictName, xrec)
                tr.AddNewlyCreatedDBObject(xrec, True)
            End If
        End Using
    End Sub

2、读取扩展数据

Private Function 读取扩展数据(ByVal ent As Entity, ByVal DictName As String) As Object
        Dim doc As Autodesk.AutoCAD.ApplicationServices.Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
        Using TR As Autodesk.AutoCAD.DatabaseServices.Transaction = doc.TransactionManager.StartTransaction
            If ent.ExtensionDictionary.IsNull Then
                Return Nothing
            Else
                Dim xDict As DBDictionary = CType(Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.TransactionManager.GetObject(ent.ExtensionDictionary, DatabaseServices.OpenMode.ForRead), DBDictionary)
                If xDict.Contains(DictName) Then
                    Dim xRecId As ObjectId = xDict.GetAt(DictName)
                    Dim xRec As Xrecord = CType(TR.GetObject(xRecId, DatabaseServices.OpenMode.ForRead), Xrecord)
                    Return xRec.Data.AsArray(0).Value
                Else
                    Return Nothing
                End If
            End If
        End Using
    End Function

 

添加和读取扩展数据

原文:https://www.cnblogs.com/rf8862/p/12306121.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!