根据文件位置获取对应的元素


每个DGN文件中的元素都有一个唯一不变的标识符ElementID,但有些老的程序还会用到一个老的概念叫做文件位置(FilePosition)。它在V7DGN时代确实是该元素在DGN文件中的文件位置(扇区数+该扇区中的偏移量)。但在V8DGN中,它仅仅是一个索引值。那么,在MVBA中如何根据一个已知的文件位置获取对应的元素呢?请看如下代码:

Sub GetElementFromFilePos()
    Dim index As Long
    Dim elemCache As ElementCache
    Dim el As Element
    Set elemCache = ActiveModelReference.GraphicalElementCache
    index = elemCache.IndexFromFilePosition(4000011)
    If elemCache.InElementValid(index) Then
        Set el = elemCache.GetElement(index)
    End If
End Sub