2016-06-06 6 views
0

현재 열려있는 도면의 각 DBText 값에 대해 레이어, 위치, 값, 높이, 너비 및 스타일을 가져 오려고합니다. 지금까지 나는 objectID만을 얻을 수있었습니다.모든 DBText에 대한 모든 dxf 값 검색

Function SelectAllText(dbIn As Database) As ObjectIdCollection 
    Using doclock = Application.DocumentManager.MdiActiveDocument.LockDocument 
     Dim retIDs As New ObjectIdCollection 
     Using tr As Transaction = dbIn.TransactionManager.StartTransaction 
      Dim bt As BlockTable = dbIn.BlockTableId.GetObject(OpenMode.ForRead) 
      For Each btrID As ObjectId In bt 
       Dim btr As BlockTableRecord = TryCast(tr.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForRead), BlockTableRecord) 
       For Each TRefID As ObjectId In btr 
        Dim te = TryCast(tr.GetObject(TRefID, OpenMode.ForRead), DBText), 
         tid = te.ObjectId 
        retIDs.Add(tid) 
       Next 
      Next 
     End Using 
     Return retIDs 
    End Using 
End Function 
+0

... 당신에게 질문을 확대 할 수도 있습니다. 건배. –

+1

답변이 완벽하게 작동합니다. 투표가 완료된 이후 명확성을 제공하기 위해 내 게시물을 편집했습니다. – Wayne

답변

1

당신은 기본적으로 동일한 방식으로 작동합니다 제안 approache : 데이터베이스를 반복> BlockTable> BlockTableRecord (ModelSpace)> 모든 엔티티. 각각의 ObjectId가와

은 당신이 할 수있는 DBText :

Dim acText as DBText = tr.GetObject(dbTextId, OpenMode.ForRead) 
Dim positionPoint as Point3d = acText.Position 
Dim height as Double = acText.Height 
Dim content as String = acText.TextString 
내가 대답을 입력하는 동안 지금 나는 당신이 여기에서 필요로하는 무슨 확실하지 않다 ... 당신이 질문을 편집 한 것을 볼 수 있습니다