每个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