ModelAnnotation.GetDisplayGeometry Method
Parent Object: ModelAnnotationDescription
Method that returns simple linear geometry that represents the display geometry of the annotation. The result is returned as groups of connected lines (polylines). Groups can optionally be filled with internal voids.
Remarks
Below is an example of a feature control symbol. Like most annotations it consists of some geometry and some text. This method only returns the geometry which is shown in black below. You can get the textual information separately in one of two ways, as a description of the text or as graphics that represent the display of the text. As a description of the text you can use properties on the various annotations to determine the text that’s displayed. For the raw text graphics, use the GetDisplayText method.
FilledGroups (0) = True, The “A” is filled (1) = True, The “B” is filled (2) = True, The “C” is filled (3) = False, the center symbol is not filled
PolylineCount The polyline count is 9 in this case. This is the total number of polylines. This can also be computed by adding up the values returned by the PolylinesPerGroup argument.
PolylineLengths (0) = 9, The outer shape of the “A” (1) = 4, The inner shape of the “A” (2) = Many points because of the curved areas of the “B” (3) = Many points because of the curved areas of the “B” (4) = Many points because of the curved areas of the “B” (5) = Many points because of the curved areas of the “C” (6) = Many points because of the circle in the center symbol. (7) = 2, One of the lines of the center symbol. (8) = 2, The other line of the center symbol.
VertexCount The VertexCount is many and cannot be pre-determined because curves and arcs are stroked into line segments.
VertexCoordinates The number vertex coordinates is VertexCount * 3, These are the x,y,z coordintes of the vertices in model space.
Here’s another simpler example without any curves.

FilledGroups (0) = True, The first shape is filled (1) = False, The second shape is not filled (2) = False, The third shape is not filled (3) = True, the fourth shape is filled
PolylineCount The polyline count is 7 and is the total number of polylines in all groups.
PolylineLengths (0) = 4, The number of segments in the first shape. (1) = 4, The number of segments in the second shape. (2) = 4, The number of segments in the outer loop of the third shape. (3) = 4, The number of segments in the inner loop of the third shape. (4) = 4, The number of segments in the outer loop of the fourth shape. (5) = 4, The number of segments in the first inner loop of the fourth shape. (6) = 4, The number of segments in the second inner loop of the fourth shape.
VertexCount The vertex count is 35. There are 7 rectangles in the image above. Each polyline is represented by 5 points since the first and last coordinate is repeated for a closed shape. This results in 35 vertices.
VertexCoordinates (0) = 0.0, x coordinate of the 1st vertex of shape 1 (1) = 0.0, y coordinate of the 1st vertex of shape 1 (2) = 0.0, z coordinate of the 1st vertex of shape 1 (3) = 1.0, x coordinate of the 2nd vertex of shape 1 (4) = 0.0, y coordinate of the 2nd vertex of shape 1 (5) = 0.0, z coordinate of the 2nd vertex of shape 1 (6) = 1.0, x coordinate of the 3rd vertex of shape 1 (7) = 1.0, y coordinate of the 3rd vertex of shape 1 (8) = 0.0, z coordinate of the 3rd vertex of shape 1 (9) = 0.0, x coordinate of the 4th vertex of shape 1 (10) = 1.0, y coordinate of the 4th vertex of shape 1 (11) = 0.0, z coordinate of the 4th vertex of shape 1 (12) = 0.0, x coordinate of the 1st vertex of shape 1 (repeat) (13) = 0.0, y coordinate of the 1st vertex of shape 1 (repeat) (14) = 0.0, z coordinate of the 1st vertex of shape 1 (repeat) (15) = 1.5, x coordinate of the 1st vertex of shape 2 (16) = 0.0, y coordinate of the 1st vertex of shape 2 (17) = 0.0, z coordinate of the 1st vertex of shape 2
Syntax
ModelAnnotation.GetDisplayGeometry( Camera As Camera, GroupCount As Long, PolylinesPerGroup() As Long, FilledGroups() As Boolean, PolylineCount As Long, PolylineLengths() As Long, VertexCount As Long, VertexCoordinates() As Double )Parameters
Name | Type | Description |
Camera | Camera | Input Camera object that specifies the view orientation. This can either be a transient Camera object or that got from View object etc.. And the camera properties can be changed but not applied. |
GroupCount | Long | Output Long that indicates the number of groups. A group is a set of related polylines where there can be one outer and multiple inner polylines. Groups can optionally also be filled. |
PolylinesPerGroup | Long | Output array of Longs that indicates the number of polylines in each of the groups. The array size will be GroupCount where each value of this array indicates the number of polylines within each group. When reading the polylines within a group, the first polyline is the outer polyline and any additional closed polylines represent internal voids if the group is filled. |
FilledGroups | Boolean | Output array of Booleans that indicates which groups are filled. A value of True indicates the corresponding group is filled. The array size will be GroupCount. If a group is filled, the first polyline in the group defines the outer loop. Any other polylines for that group represent internal loops and voids in the fill. |
PolylineCount | Long | Output Long that indicates the total number of polylines. |
PolylineLengths | Long | Output array of Longs that indicates the number of vertices used in each polyline. |
VertexCount | Long | Output Long that indicates the total number of vertices. |
VertexCoordinates | Double | Output array of Doubles that contains the coordinates. |