<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How does IZ.InterpolateFromSurface work? in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656262#M17581</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks Alexsander, I followed your instructions and coded it again. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This code creates some polygons, but there are tintriangles that return again the error "The geometry has null Z values" when the line "Set pFeat.Shape = pPolygon" runs.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I don't know enough about the geometry of TINs. I suppose the definition of those tintriangles is wrong. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the new code: Any idea???&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Private Sub Tin2Poly_Click()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pSxDoc As ISxDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pSxDoc = ThisDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pScene As IScene&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pScene = pSxDoc.Scene&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTinLayer As ITinLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTinLayer = pScene.Layer(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTin As ITin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTin = pTinLayer.Dataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTinAdv As ITinAdvanced2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTinAdv = pTin&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pTinTriangle As ITinTriangle&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPoint1 As IPoint&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPoint2 As IPoint&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPoint3 As IPoint&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pSide1 As ILine&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pSide2 As ILine&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pSide3 As ILine&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pSidesColl As ISegmentCollection&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pRing As IRing2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pGCollRings As IGeometryCollection&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPolygon As IPolygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pZAwarePoly As IZAware&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPolyLayer As IFeatureLayer2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPolyFC As IFeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pFeat As IFeature&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim i As Long&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 1 To pTinAdv.TriangleCount&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pTinTriangle = pTinAdv.GetTriangle(i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPoint1 = New Point&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPoint2 = New Point&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPoint3 = New Point&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint1.x = pTinTriangle.Node(0).x&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint1.y = pTinTriangle.Node(0).y&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint1.Z = pTinTriangle.Node(0).Z&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint2.x = pTinTriangle.Node(1).x&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint2.y = pTinTriangle.Node(1).y&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint2.Z = pTinTriangle.Node(1).Z&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint3.x = pTinTriangle.Node(2).x&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint3.y = pTinTriangle.Node(2).y&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint3.Z = pTinTriangle.Node(2).Z&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSide1 = New Line&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSide2 = New Line&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSide3 = New Line&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSide1.PutCoords pPoint1, pPoint2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSide2.PutCoords pPoint2, pPoint3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSide3.PutCoords pPoint3, pPoint1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSidesColl = New Ring&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSidesColl.AddSegment pSide1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSidesColl.AddSegment pSide2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSidesColl.AddSegment pSide3&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRing = pSidesColl&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRing.Close&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pGCollRings = New polygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pGCollRings.AddGeometry pRing&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPolygon = pGCollRings&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pZAwarePoly = pPolygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pZAwarePoly.ZAware = True&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPolyLayer = pScene.Layer(1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPolyFC = pPolyLayer.FeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFeat = pPolyFC.CreateFeature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFeat.Shape = pPolygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pFeat.Store&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pSxDoc.UpdateContents&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;pSxDoc.Scene.SceneGraph.Invalidate pPolyLayer, True, True&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pSxDoc.Scene.SceneGraph.RefreshViewers&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;End Sub&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 01 Dec 2011 15:50:58 GMT</pubDate>
    <dc:creator>MarAlcaraz1</dc:creator>
    <dc:date>2011-12-01T15:50:58Z</dc:date>
    <item>
      <title>How does IZ.InterpolateFromSurface work?</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656260#M17579</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi, I am trying to convert a tin to a 3D polygon feature class. Could someone help me with this code? I am not sure it is correct. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I got this error "The geometry has null Z values" on the line&amp;nbsp; "Set pFeat.Shape = pPoly"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope Neil to be there!!! Thanks, Mar&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pSxDoc As ISxDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pSxDoc = ThisDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pScene As IScene&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pScene = pSxDoc.Scene&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTinLayer As ITinLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTinLayer = pScene.Layer(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTin As ITin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTin = pTinLayer.Dataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTinAdv As ITinAdvanced2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTinAdv = pTin&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTinTriangle As ITinTriangle&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTinPoly As ITinPolygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pPoly As IPolygon5&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pZAware As IZAware&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pPolyLayer As IFeatureLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pPolyFC As IFeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pFeat As IFeature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pFunSurf As IFunctionalSurface&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pIZ As IZ&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim i As Long&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;For i = 1 To pTinAdv.TriangleCount&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTinTriangle = pTinAdv.GetTriangle(i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTinPoly = pTinAdv.ExtractPolygon(pTinTriangle, Nothing, False)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pPoly = pTinPoly.AsPolygon(Nothing, True)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pPolyLayer = pScene.Layer(1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pPolyFC = pPolyLayer.FeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pZAware = pPoly&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pZAware.ZAware = True&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pFunSurf = pTin&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pIZ = pPoly&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pIZ.InterpolateFromSurface pFunSurf&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pFeat = pPolyFC.CreateFeature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pFeat.Shape = pPoly&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "The geometry has null Z values"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pFeat.Store&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Next&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Dec 2011 08:28:49 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656260#M17579</guid>
      <dc:creator>MarAlcaraz1</dc:creator>
      <dc:date>2011-12-01T08:28:49Z</dc:date>
    </item>
    <item>
      <title>Re: How does IZ.InterpolateFromSurface work?</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656261#M17580</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The polygon extracted doesn't contain Z values, you have to apply them by overlaying it with the surface.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It also concerns me that you are looping through all the triangles and calling extract polygon with the triangle and no filter and stop at edge false.&amp;nbsp; That means that if your TIN is a continuous surface, you will get a polygon representing the entire surface for each call to extract polygon.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If your intention is to create a triangular polygon for each triangle of the TIN, I think you are better off creating a new polygon for each triangle and adding the three nodes of the triangle as points to that polygon.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Dec 2011 13:51:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656261#M17580</guid>
      <dc:creator>AlexanderGray</dc:creator>
      <dc:date>2011-12-01T13:51:55Z</dc:date>
    </item>
    <item>
      <title>Re: How does IZ.InterpolateFromSurface work?</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656262#M17581</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks Alexsander, I followed your instructions and coded it again. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This code creates some polygons, but there are tintriangles that return again the error "The geometry has null Z values" when the line "Set pFeat.Shape = pPolygon" runs.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I don't know enough about the geometry of TINs. I suppose the definition of those tintriangles is wrong. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the new code: Any idea???&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Private Sub Tin2Poly_Click()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pSxDoc As ISxDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pSxDoc = ThisDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pScene As IScene&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pScene = pSxDoc.Scene&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTinLayer As ITinLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTinLayer = pScene.Layer(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTin As ITin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTin = pTinLayer.Dataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTinAdv As ITinAdvanced2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTinAdv = pTin&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pTinTriangle As ITinTriangle&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPoint1 As IPoint&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPoint2 As IPoint&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPoint3 As IPoint&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pSide1 As ILine&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pSide2 As ILine&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pSide3 As ILine&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pSidesColl As ISegmentCollection&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pRing As IRing2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pGCollRings As IGeometryCollection&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPolygon As IPolygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pZAwarePoly As IZAware&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPolyLayer As IFeatureLayer2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPolyFC As IFeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pFeat As IFeature&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim i As Long&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 1 To pTinAdv.TriangleCount&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pTinTriangle = pTinAdv.GetTriangle(i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPoint1 = New Point&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPoint2 = New Point&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPoint3 = New Point&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint1.x = pTinTriangle.Node(0).x&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint1.y = pTinTriangle.Node(0).y&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint1.Z = pTinTriangle.Node(0).Z&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint2.x = pTinTriangle.Node(1).x&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint2.y = pTinTriangle.Node(1).y&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint2.Z = pTinTriangle.Node(1).Z&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint3.x = pTinTriangle.Node(2).x&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint3.y = pTinTriangle.Node(2).y&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint3.Z = pTinTriangle.Node(2).Z&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSide1 = New Line&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSide2 = New Line&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSide3 = New Line&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSide1.PutCoords pPoint1, pPoint2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSide2.PutCoords pPoint2, pPoint3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSide3.PutCoords pPoint3, pPoint1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSidesColl = New Ring&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSidesColl.AddSegment pSide1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSidesColl.AddSegment pSide2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSidesColl.AddSegment pSide3&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRing = pSidesColl&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRing.Close&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pGCollRings = New polygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pGCollRings.AddGeometry pRing&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPolygon = pGCollRings&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pZAwarePoly = pPolygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pZAwarePoly.ZAware = True&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPolyLayer = pScene.Layer(1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPolyFC = pPolyLayer.FeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFeat = pPolyFC.CreateFeature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFeat.Shape = pPolygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pFeat.Store&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pSxDoc.UpdateContents&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;pSxDoc.Scene.SceneGraph.Invalidate pPolyLayer, True, True&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pSxDoc.Scene.SceneGraph.RefreshViewers&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;End Sub&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Dec 2011 15:50:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656262#M17581</guid>
      <dc:creator>MarAlcaraz1</dc:creator>
      <dc:date>2011-12-01T15:50:58Z</dc:date>
    </item>
    <item>
      <title>Re: How does IZ.InterpolateFromSurface work?</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656263#M17582</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Either the geometry doesn't have Z values, which it looks like it does or the target featureclass does not allow Z values.&amp;nbsp; Can you check if the polygon featureclass allows for Z values?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As far as the rest of your code, I think there are some inefficiencies.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In ITinNode.QueryAsPoint there are some remarks about how it is faster than creating a new point in each iteration (you need to create your point before the loop)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Secondly, creating, points, then lines, then rings, then polygons is probably not efficient.&amp;nbsp; You can declare a new polygon, cast it to an IPointCollection, add the points to it, and user simplify on the ipolygon (inherited from IGeometry.)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Dec 2011 17:18:46 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656263#M17582</guid>
      <dc:creator>AlexanderGray</dc:creator>
      <dc:date>2011-12-01T17:18:46Z</dc:date>
    </item>
    <item>
      <title>Re: How does IZ.InterpolateFromSurface work?</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656264#M17583</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Alexander, I tried to follow your instructions, but I had some problems. I make some changes in order to simplify the code and this is the new one. This time the feature class contains polygons without shape, it constructs a row for each triangle, but I can't see them. Maybe I am not using properly the itinadvanced.extractpolygon method, or itinpolygon.aspolygon...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Some idea?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pSxDoc As ISxDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pSxDoc = ThisDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pScene As IScene&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pScene = pSxDoc.Scene&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTinLayer As ITinLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTinLayer = pScene.Layer(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTin As ITin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTin = pTinLayer.Dataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTinAdv As ITinAdvanced2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTinAdv = pTin&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTinTriangle As ITinTriangle&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTinPoly As ITinPolygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pPolygon As IPolygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pZAwarePoly As IZAware&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pPolyLayer As IFeatureLayer2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pPolyFC As IFeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pFeat As IFeature&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim i As Integer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;For i = 1 To pTinAdv.TriangleCount&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTinTriangle = pTinAdv.GetTriangle(i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTinPoly = pTinAdv.ExtractPolygon(pTinTriangle, Nothing, True)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pPolygon = pTinPoly.AsPolygon(Nothing, True)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pZAwarePoly = pPolygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pZAwarePoly.ZAware = True&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pPolyLayer = pScene.Layer(1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pPolyFC = pPolyLayer.FeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pFeat = pPolyFC.CreateFeature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;On Error Resume Next&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pFeat.Shape = pPolygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pFeat.Store&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Next&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Dec 2011 17:34:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656264#M17583</guid>
      <dc:creator>MarAlcaraz1</dc:creator>
      <dc:date>2011-12-06T17:34:48Z</dc:date>
    </item>
    <item>
      <title>Re: How does IZ.InterpolateFromSurface work?</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656265#M17584</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I was thinking more along the lines (this is approximate code)&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
Dim i As Integer
For i = 0 To pTinAdv.TriangleCount -1

Set pTinTriangle = pTinAdv.GetTriangle(i)

dim poly as IPolygon
set poly = new polygon
'set polygon spatial reference
dim polyPtColl as IPointCollection
set polyPtColl = poly
dim pt as IPoint
set pt = new Point
'set point spatial reference (same as TIN)
dim j as integer
for j = 0 to 2
&amp;nbsp; pTinTriangle.Node(j).QueryAsPoint pt
&amp;nbsp; polyPtColl.AddPoint(pt)

next

poly.Simplify

Set pPolyLayer = pScene.Layer(1)
Set pPolyFC = pPolyLayer.FeatureClass
Set pFeat = pPolyFC.CreateFeature
On Error Resume Next
Set pFeat.Shape = poly
pFeat.Store

Next 

You may also write something like this:


Set pTinTriangle = pTinAdv.GetTriangle(i)
dim ring as Iring
pTinTriangle.QueryAsRing ring

dim poly as IPolygon
set poly = new polygon
'set poly spatial reference (same as TIN)
dim polyGeoColl as IgeometryCollection
set polyGeoColl = poly
polyGeoColl.AddGeometry(ring)
poly.simplify

'set shape on feature


&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 03:47:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656265#M17584</guid>
      <dc:creator>AlexanderGray</dc:creator>
      <dc:date>2021-12-12T03:47:02Z</dc:date>
    </item>
    <item>
      <title>Re: How does IZ.InterpolateFromSurface work?</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656266#M17585</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks very much for your advice Alexander!!!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the final code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;Dim pSxDoc As ISxDocument
Set pSxDoc = ThisDocument

Dim pScene As IScene
Set pScene = pSxDoc.Scene

Dim pTinLayer As ITinLayer
Set pTinLayer = pScene.Layer(0)

Dim pTin As ITin
Set pTin = pTinLayer.Dataset

Dim pTinAdv As ITinAdvanced2
Set pTinAdv = pTin

&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pTinTriangle As ITinTriangle
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pZAwarePoly As IZAware
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPolyLayer As IFeatureLayer2
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPolyFC As IFeatureClass
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pFeat As IFeature
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim i As Integer
&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 1 To pTinAdv.TriangleCount
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pTinTriangle = pTinAdv.GetTriangle(i)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPolygon As IPolygon
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPolygon = New polygon
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pZAwarePoly = pPolygon
&amp;nbsp;&amp;nbsp;&amp;nbsp; pZAwarePoly.ZAware = True
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPointColl As IPointCollection4
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPointColl = pPolygon
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPoint As IPoint
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPoint = New Point
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim j As Integer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For j = 0 To 2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pTinTriangle.Node(j).QueryAsPoint pPoint
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPointColl.AddPoint pPoint
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; pPolygon.SimplifyPreserveFromTo
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPolyLayer = pScene.Layer(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPolyFC = pPolyLayer.FeatureClass
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFeat = pPolyFC.CreateFeature
&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFeat.Shape = pPolygon
&amp;nbsp;&amp;nbsp;&amp;nbsp; pFeat.Store
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Next
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
pSxDoc.UpdateContents

pSxDoc.Scene.SceneGraph.Invalidate pPolyLayer, True, True
pSxDoc.Scene.SceneGraph.RefreshViewers&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 03:47:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/how-does-iz-interpolatefromsurface-work/m-p/656266#M17585</guid>
      <dc:creator>MarAlcaraz1</dc:creator>
      <dc:date>2021-12-12T03:47:04Z</dc:date>
    </item>
  </channel>
</rss>

