[GIS] arcobjects update geometry Z values of line vertices with a given number

arcgis-10.0arcobjectsgeometryupdate

I am trying to develop arcgis 10.0 addin to update Z values of vertices of a selected line.
Scenario: The tool scans all features in a given shape file and populates the list of features which has at least one vertex with a Z vlaue = 0. User then selects a feature from the list and clicks a button to update Z values to a given height – this last part does not work.

I have tried the following for updating Z values of a selected polyline feature with no luck:

    Dim pFeatureSelection As IFeatureSelection
            pFeatureSelection = pFLayer
            Dim pEnumID As IEnumIDs
            pEnumID = pFeatureSelection.SelectionSet.IDs
            Dim id As Long
            id = pEnumID.Next
            Dim pPointCollection As IPointCollection
            Dim pFeature As IFeature
            Do While Not id = -1
                pFeature = pFLayer.FeatureClass.GetFeature(id)
                pPointCollection = pFeature.Shape

                For lPnt = 0 To (pPointCollection.PointCount - 1)
                     SetZValueOnPoint(pPointCollection.Point(lPnt), Convert.ToDouble(txtZValue.Text))

                Next

                id = pEnumID.Next
            Loop

Best Answer

Thanks to Jeff's help we got the answer via the ArcGIS Discussion Forum:

Public Sub SetZValueOnPoint(ByVal point As ESRI.ArcGIS.Geometry.IPoint, ByVal zValue As System.Double)  

   If point Is Nothing OrElse point.IsEmpty Then  
       Return  
   End If  

   Dim zAware As ESRI.ArcGIS.Geometry.IZAware = CType(point, ESRI.ArcGIS.Geometry.IZAware) ' Explicit Cast  
    zAware.ZAware = True  
    point.Z = zValue  

End Sub  
Related Question