<?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: IZAware in ArcGIS Pro SDK in ArcGIS Pro SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/izaware-in-arcgis-pro-sdk/m-p/1327046#M10360</link>
    <description>&lt;P&gt;Annette -&lt;/P&gt;&lt;P&gt;Pretty interesting.&amp;nbsp; &amp;nbsp;I will give this a try.&amp;nbsp; Thanks much!&lt;/P&gt;&lt;P&gt;Ed&lt;/P&gt;</description>
    <pubDate>Sat, 09 Sep 2023 01:53:03 GMT</pubDate>
    <dc:creator>EdwardBlair</dc:creator>
    <dc:date>2023-09-09T01:53:03Z</dc:date>
    <item>
      <title>IZAware in ArcGIS Pro SDK</title>
      <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/izaware-in-arcgis-pro-sdk/m-p/1326498#M10345</link>
      <description>&lt;P&gt;In ArcObjects there is the IZAware interface we can use to make an existing 2D geometry aware of Z-values.&amp;nbsp; &amp;nbsp;I can't find the equivalent in the ArcGIS Pro SDK -- but there must be a way to do this.&amp;nbsp; How can I, for example, change a polyline that may include a parametric curve from a 2D polyline to a 3D polyline?&lt;/P&gt;</description>
      <pubDate>Thu, 07 Sep 2023 17:32:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-sdk-questions/izaware-in-arcgis-pro-sdk/m-p/1326498#M10345</guid>
      <dc:creator>EdwardBlair</dc:creator>
      <dc:date>2023-09-07T17:32:41Z</dc:date>
    </item>
    <item>
      <title>Re: IZAware in ArcGIS Pro SDK</title>
      <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/izaware-in-arcgis-pro-sdk/m-p/1326507#M10346</link>
      <description>&lt;P&gt;geometries are immutable. to convert 2d to 3d u will need a builder. In your specific example,&amp;nbsp; you will need a&amp;nbsp;&lt;A href="https://prodev.arcgis.com/en/pro-app/latest/sdk/api-reference/topic72942.html" target="_blank" rel="noopener"&gt;PolygonBuilderEx&lt;/A&gt;&amp;nbsp;. Note that is has a&amp;nbsp;HasZ property which is get &lt;STRONG&gt;and set&lt;/STRONG&gt;. There is also a &lt;A href="https://pro.arcgis.com/en/pro-app/latest/sdk/api-reference/topic72946.html" target="_self"&gt;constructor overload that takes a polyline&lt;/A&gt; as its input.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Lots of examples here in the &lt;A href="https://github.com/Esri/arcgis-pro-sdk/wiki/ProSnippets-Geometry" target="_self"&gt;Geometry snippets&lt;/A&gt;. Ctrl-F "PolylineBuilderEx"&lt;/P&gt;</description>
      <pubDate>Thu, 07 Sep 2023 17:49:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-sdk-questions/izaware-in-arcgis-pro-sdk/m-p/1326507#M10346</guid>
      <dc:creator>CharlesMacleod</dc:creator>
      <dc:date>2023-09-07T17:49:04Z</dc:date>
    </item>
    <item>
      <title>Re: IZAware in ArcGIS Pro SDK</title>
      <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/izaware-in-arcgis-pro-sdk/m-p/1326511#M10347</link>
      <description>&lt;P&gt;Right.&amp;nbsp; &amp;nbsp;I've looked at the examples in the Geometry snippets, but none seems to completely satisfy the need to ensure all components are z-aware.&amp;nbsp; &amp;nbsp;I could get all the points from the source polyline, update them to 3-D and re-create the polyline as 3-D, but that would lose any parametric curves.&lt;/P&gt;</description>
      <pubDate>Thu, 07 Sep 2023 17:53:54 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-sdk-questions/izaware-in-arcgis-pro-sdk/m-p/1326511#M10347</guid>
      <dc:creator>EdwardBlair</dc:creator>
      <dc:date>2023-09-07T17:53:54Z</dc:date>
    </item>
    <item>
      <title>Re: IZAware in ArcGIS Pro SDK</title>
      <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/izaware-in-arcgis-pro-sdk/m-p/1327032#M10359</link>
      <description>&lt;P&gt;If you set HasZ = true in the builder, then all start and end points will have the HasZ property set to true too. Here is some code to set the z-values in the points while still preserving the curve segments.&amp;nbsp;&lt;/P&gt;&lt;P&gt;/////////////////////////////////&lt;/P&gt;&lt;P&gt;LineSegment line = LineBuilderEx.CreateLineSegment(new Coordinate2D(0, 0), new Coordinate2D(3, 3));&lt;/P&gt;&lt;P&gt;MapPoint start = MapPointBuilderEx.CreateMapPoint(3, 3);&lt;BR /&gt;MapPoint end = MapPointBuilderEx.CreateMapPoint(7, 3);&lt;BR /&gt;Coordinate2D center = new Coordinate2D(5, 5);&lt;BR /&gt;EllipticArcSegment arc = EllipticArcBuilderEx.CreateCircularArc(start, end, center, ArcOrientation.ArcCounterClockwise);&lt;/P&gt;&lt;P&gt;Polyline polyline = PolylineBuilderEx.CreatePolyline(new Segment[] { line, arc });&lt;BR /&gt;Assert.IsFalse(polyline.HasZ);&lt;/P&gt;&lt;P&gt;PolylineBuilderEx polylineBuilder = new PolylineBuilderEx(polyline);&lt;BR /&gt;polylineBuilder.HasZ = true;&lt;BR /&gt;Polyline polyline3D = polylineBuilder.ToGeometry();&lt;/P&gt;&lt;P&gt;var points = polyline3D.Points;&lt;BR /&gt;foreach (MapPoint p in points)&lt;BR /&gt;&amp;nbsp; Assert.IsTrue(p.HasZ);&lt;/P&gt;&lt;P&gt;var part = polyline3D.Parts[0];&lt;BR /&gt;int numSegments = part.Count;&lt;/P&gt;&lt;P&gt;for (int i = 0; i &amp;lt; numSegments; i++)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; Segment segment = part[i];&lt;/P&gt;&lt;P&gt;&amp;nbsp; MapPointBuilderEx pointBuilder = new MapPointBuilderEx(segment.StartPoint);&lt;BR /&gt;&amp;nbsp; pointBuilder.Z = i + 1;&lt;BR /&gt;&amp;nbsp; MapPoint startPoint = pointBuilder.ToGeometry();&lt;/P&gt;&lt;P&gt;&amp;nbsp; pointBuilder = new MapPointBuilderEx(segment.EndPoint);&lt;BR /&gt;&amp;nbsp; pointBuilder.Z = i + 2;&lt;BR /&gt;&amp;nbsp; MapPoint endPoint = pointBuilder.ToGeometry();&lt;/P&gt;&lt;P&gt;&amp;nbsp; SegmentType segmentType = segment.SegmentType;&lt;BR /&gt;&amp;nbsp; SegmentBuilderEx segmentBuilder = null;&lt;BR /&gt;&amp;nbsp; switch (segmentType)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; case SegmentType.Line:&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; segmentBuilder = new LineBuilderEx((LineSegment)segment);&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; break;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; case SegmentType.Bezier:&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; segmentBuilder = new CubicBezierBuilderEx((CubicBezierSegment)segment);&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; break;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; case SegmentType.EllipticArc:&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; segmentBuilder = new EllipticArcBuilderEx((EllipticArcSegment)segment);&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; break;&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; segmentBuilder.StartPoint = startPoint;&lt;BR /&gt;&amp;nbsp; segmentBuilder.EndPoint = endPoint;&lt;BR /&gt;&amp;nbsp; segment = segmentBuilder.ToSegment();&lt;/P&gt;&lt;P&gt;&amp;nbsp; polylineBuilder.ReplaceSegment(0, i, segment);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;polyline3D = polylineBuilder.ToGeometry();&lt;/P&gt;&lt;P&gt;/////////////////////////////////&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 08 Sep 2023 23:06:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-sdk-questions/izaware-in-arcgis-pro-sdk/m-p/1327032#M10359</guid>
      <dc:creator>AnnetteLocke</dc:creator>
      <dc:date>2023-09-08T23:06:42Z</dc:date>
    </item>
    <item>
      <title>Re: IZAware in ArcGIS Pro SDK</title>
      <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/izaware-in-arcgis-pro-sdk/m-p/1327046#M10360</link>
      <description>&lt;P&gt;Annette -&lt;/P&gt;&lt;P&gt;Pretty interesting.&amp;nbsp; &amp;nbsp;I will give this a try.&amp;nbsp; Thanks much!&lt;/P&gt;&lt;P&gt;Ed&lt;/P&gt;</description>
      <pubDate>Sat, 09 Sep 2023 01:53:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-sdk-questions/izaware-in-arcgis-pro-sdk/m-p/1327046#M10360</guid>
      <dc:creator>EdwardBlair</dc:creator>
      <dc:date>2023-09-09T01:53:03Z</dc:date>
    </item>
  </channel>
</rss>

