Versions: MicroStation V8i 08.11.09.714, Geopak 08.11.09.845
My goal is to get a list of vertices that describe the surface so that I can create a triangulated mesh.
Question: What is the correct way is to get vertices from a DTMLinearFeature - and/or is there an easier way to get the vertices from the DTM directly?
Here's what I've been working on today and demo of where the code fails. dtm is retrieved earlier in the code using ClipByPointString(). The program will enumerate the DTM until I try to extract the vertices from the triangle.
Dim scDTM As DTMFeatureScanCriteria Dim eeDTM As DTMFeatureEnumerator Set scDTM = New DTMFeatureScanCriteria scDTM.ExcludeAllFeatureTypes scDTM.IncludeFeatureType (gpkDTMFeatureTypeTriangle) Set eeDTM = dtm.GetFeatures(scDTM) Dim df As dtmFeature Dim k As Integer k = 0 Do While eeDTM.MoveNext Set df = eeDTM.Current If df.IsDTMLinearFeature Then Dim lf As DTMLinearFeature Set lf = df.AsDTMLinearFeature ' Fails on VerticesCount and on GetVertices() ' Debug.Print "Vertex Count : " + Str(lf.VerticesCount) ' Dim p() As Point3d ' p = lf.GetVertices() ' . . . get vertices from the triangles . . . End If k = k + 1 Debug.Print "triangle " + Str(k) Loop