<?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 4.7 API SketchViewModel on Sceneview (Update Geometries) in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-api-sketchviewmodel-on-sceneview-update/m-p/629134#M58746</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello.&lt;/P&gt;&lt;P&gt;Thanks for new 4.7 API. 4.7 has very good updates.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm drawing some geometries on sceneview. Is this possible to update / edit geometries on sceneview.&amp;nbsp; Below code working good on MapView but doesn't working on SceneView, I can't select for editing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks inadvance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;BR /&gt;&amp;lt;html&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;head&amp;gt;&lt;BR /&gt; &amp;lt;meta charset="utf-8"&amp;gt;&lt;BR /&gt; &amp;lt;meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no"&amp;gt;&lt;BR /&gt; &amp;lt;title&amp;gt;Sketch temporary geometries - 4.7&amp;lt;/title&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;lt;link rel="stylesheet" href="&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2Fjs.arcgis.com%2F4.7%2Fesri%2Fcss%2Fmain.css" rel="nofollow" target="_blank"&gt;https://js.arcgis.com/4.7/esri/css/main.css&lt;/A&gt;&lt;SPAN&gt;"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;script src="&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2Fjs.arcgis.com%2F4.7%2F" rel="nofollow" target="_blank"&gt;https://js.arcgis.com/4.7/&lt;/A&gt;&lt;SPAN&gt;"&amp;gt;&amp;lt;/script&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;style&amp;gt;&lt;BR /&gt; html,&lt;BR /&gt; body,&lt;BR /&gt; #viewDiv {&lt;BR /&gt; padding: 0;&lt;BR /&gt; margin: 0;&lt;BR /&gt; height: 100%;&lt;BR /&gt; width: 100%;&lt;BR /&gt; font-family: verdana;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;#topbar {&lt;BR /&gt; background: #fff;&lt;BR /&gt; position: absolute;&lt;BR /&gt; top: 15px;&lt;BR /&gt; right: 15px;&lt;BR /&gt; padding: 10px;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;.action-button {&lt;BR /&gt; font-size: 16px;&lt;BR /&gt; background-color: transparent;&lt;BR /&gt; border: 1px solid #D3D3D3;&lt;BR /&gt; color: #6e6e6e;&lt;BR /&gt; height: 32px;&lt;BR /&gt; width: 32px;&lt;BR /&gt; text-align: center;&lt;BR /&gt; box-shadow: 0 0 1px rgba(0, 0, 0, 0.3);&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;.action-button:hover,&lt;BR /&gt; .action-button:focus {&lt;BR /&gt; background: #0079c1;&lt;BR /&gt; color: #e4e4e4;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;.active {&lt;BR /&gt; background: #0079c1;&lt;BR /&gt; color: #e4e4e4;&lt;BR /&gt; }&lt;BR /&gt; &amp;lt;/style&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;script&amp;gt;&lt;BR /&gt; require([&lt;BR /&gt; "esri/views/SceneView",&lt;BR /&gt; "esri/Map",&lt;BR /&gt; "esri/widgets/Sketch/SketchViewModel",&lt;BR /&gt; "esri/Graphic",&lt;BR /&gt; "esri/layers/GraphicsLayer",&lt;BR /&gt; "dojo/domReady!"&lt;BR /&gt; ], function(&lt;BR /&gt; SceneView, Map,&lt;BR /&gt; SketchViewModel, Graphic, GraphicsLayer&lt;BR /&gt; ) {&lt;/P&gt;&lt;P&gt;// GraphicsLayer to hold graphics created via sketch view model&lt;BR /&gt; var tempGraphicsLayer = new GraphicsLayer();&lt;BR /&gt; var updateGraphic;&lt;/P&gt;&lt;P&gt;// Arctic Ocean Basemap&lt;BR /&gt; var map = new Map({&lt;BR /&gt; basemap: "gray",&lt;BR /&gt; layers: [tempGraphicsLayer]&lt;BR /&gt; });&lt;/P&gt;&lt;P&gt;var view = new SceneView({&lt;BR /&gt; container: "viewDiv",&lt;BR /&gt; map: map,&lt;BR /&gt; zoom: 3&lt;BR /&gt; });&lt;/P&gt;&lt;P&gt;var pointSymbol = { // symbol used for points&lt;BR /&gt; type: "simple-marker", // autocasts as new SimpleMarkerSymbol()&lt;BR /&gt; style: "square",&lt;BR /&gt; color: "#8A2BE2",&lt;BR /&gt; size: "16px",&lt;BR /&gt; outline: { // autocasts as new SimpleLineSymbol()&lt;BR /&gt; color: [255, 255, 255],&lt;BR /&gt; width: 3 // points&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; var polylineSymbol = { // symbol used for polylines&lt;BR /&gt; type: "simple-line", // autocasts as new SimpleMarkerSymbol()&lt;BR /&gt; color: "#8A2BE2",&lt;BR /&gt; width: "4",&lt;BR /&gt; style: "dash"&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;var polygonSymbol = { // symbol used for polygons&lt;BR /&gt; type: "simple-fill", // autocasts as new SimpleMarkerSymbol()&lt;BR /&gt; color: "rgba(138,43,226, 0.8)",&lt;BR /&gt; style: "solid",&lt;BR /&gt; outline: {&lt;BR /&gt; color: "white",&lt;BR /&gt; width: 1&lt;BR /&gt; }&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;view.when(function() {&lt;BR /&gt; // create a new sketch view model&lt;BR /&gt; var sketchViewModel = new SketchViewModel({&lt;BR /&gt; view: view,&lt;BR /&gt; layer: tempGraphicsLayer,&lt;BR /&gt; pointSymbol: pointSymbol,&lt;BR /&gt; polylineSymbol: polylineSymbol,&lt;BR /&gt; polygonSymbol: polygonSymbol&lt;BR /&gt; });&lt;/P&gt;&lt;P&gt;setUpClickHandler();&lt;BR /&gt; // ************************************************************&lt;BR /&gt; // Get the completed graphic from the event and add it to view.&lt;BR /&gt; // This event fires when user presses&lt;BR /&gt; // * "C" key to finish sketching point, polygon or polyline.&lt;BR /&gt; // * Double-clicks to finish sketching polyline or polygon.&lt;BR /&gt; // * Clicks to finish sketching a point geometry.&lt;BR /&gt; // ***********************************************************&lt;BR /&gt; sketchViewModel.on("draw-complete", addGraphic);&lt;BR /&gt; sketchViewModel.on("update-complete", addGraphic);&lt;BR /&gt; sketchViewModel.on("update-cancel", addGraphic);&lt;/P&gt;&lt;P&gt;function addGraphic(evt) {&lt;BR /&gt; var geometry = evt.geometry;&lt;BR /&gt; var symbol;&lt;/P&gt;&lt;P&gt;// Choose a valid symbol based on return geometry&lt;BR /&gt; switch (geometry.type) {&lt;BR /&gt; case "point":&lt;BR /&gt; symbol = pointSymbol;&lt;BR /&gt; break;&lt;BR /&gt; case "polyline":&lt;BR /&gt; symbol = polylineSymbol;&lt;BR /&gt; break;&lt;BR /&gt; default:&lt;BR /&gt; symbol = polygonSymbol;&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt; // Create a new graphic; add it to the GraphicsLayer&lt;BR /&gt; var graphic = new Graphic({&lt;BR /&gt; geometry: geometry,&lt;BR /&gt; symbol: symbol&lt;BR /&gt; });&lt;BR /&gt; tempGraphicsLayer.add(graphic);&lt;BR /&gt; // Remove stored reference to the updated graphic&lt;BR /&gt; // Required in 'update-complete' callback specifically&lt;BR /&gt; updateGraphic= null;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;// *************************************&lt;BR /&gt; // activate the sketch to create a point&lt;BR /&gt; // *************************************&lt;BR /&gt; var drawPointButton = document.getElementById("pointButton");&lt;BR /&gt; drawPointButton.onclick = function() {&lt;BR /&gt; // set the sketch to create a point geometry&lt;BR /&gt; sketchViewModel.create("point");&lt;BR /&gt; (this);&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;// ****************************************&lt;BR /&gt; // activate the sketch to create a polyline&lt;BR /&gt; // ****************************************&lt;BR /&gt; var drawLineButton = document.getElementById("polylineButton");&lt;BR /&gt; drawLineButton.onclick = function() {&lt;BR /&gt; // set the sketch to create a polyline geometry&lt;BR /&gt; sketchViewModel.create("polyline");&lt;BR /&gt; setActiveButton(this);&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;// ***************************************&lt;BR /&gt; // activate the sketch to create a polygon&lt;BR /&gt; // ***************************************&lt;BR /&gt; var drawPolygonButton = document.getElementById("polygonButton");&lt;BR /&gt; drawPolygonButton.onclick = function() {&lt;BR /&gt; // set the sketch to create a polygon geometry&lt;BR /&gt; sketchViewModel.create("polygon");&lt;BR /&gt; setActiveButton(this);&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;// ***************************************&lt;BR /&gt; // activate the sketch to create a rectangle&lt;BR /&gt; // ***************************************&lt;BR /&gt; var drawRectangleButton = document.getElementById(&lt;BR /&gt; "rectangleButton");&lt;BR /&gt; drawRectangleButton.onclick = function() {&lt;BR /&gt; // set the sketch to create a polygon geometry&lt;BR /&gt; sketchViewModel.create("rectangle");&lt;BR /&gt; setActiveButton(this);&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;// ***************************************&lt;BR /&gt; // activate the sketch to create a circle&lt;BR /&gt; // ***************************************&lt;BR /&gt; var drawCircleButton = document.getElementById("circleButton");&lt;BR /&gt; drawCircleButton.onclick = function() {&lt;BR /&gt; // set the sketch to create a polygon geometry&lt;BR /&gt; sketchViewModel.create("circle");&lt;BR /&gt; setActiveButton(this);&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;// **************&lt;BR /&gt; // reset button&lt;BR /&gt; // **************&lt;BR /&gt; document.getElementById("resetBtn").onclick = function() {&lt;BR /&gt; sketchViewModel.reset();&lt;BR /&gt; tempGraphicsLayer.removeAll();&lt;BR /&gt; setActiveButton();&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;function setActiveButton(selectedButton) {&lt;BR /&gt; // focus the view to activate keyboard shortcuts for sketching&lt;BR /&gt; view.focus();&lt;BR /&gt; var elements = document.getElementsByClassName("active");&lt;BR /&gt; for (var i = 0; i &amp;lt; elements.length; i++) {&lt;BR /&gt; elements&lt;I&gt;.classList.remove("active");&lt;BR /&gt; }&lt;BR /&gt; if (selectedButton) {&lt;BR /&gt; selectedButton.classList.add("active");&lt;BR /&gt; }&lt;BR /&gt; }&lt;/I&gt;&lt;/P&gt;&lt;P&gt;// ************************************************************************************&lt;BR /&gt; // set up logic to handle geometry update and reflect the update on "tempGraphicsLayer"&lt;BR /&gt; // ************************************************************************************&lt;BR /&gt; function setUpClickHandler() {&lt;BR /&gt; view.on("click", function(evt) {&lt;BR /&gt; view.hitTest(evt).then(function(response) {&lt;BR /&gt; var results = response.results;&lt;BR /&gt; console.log(results);&lt;BR /&gt; console.log(results.length);&lt;BR /&gt; &lt;BR /&gt; // Found a valid graphic&lt;BR /&gt; if (results.length &amp;amp;&amp;amp; results[results.length - 1]&lt;BR /&gt; .graphic) {&lt;BR /&gt; // Check if we're already editing a graphic&lt;BR /&gt; if (!updateGraphic) {&lt;BR /&gt; // Save a reference to the graphic we intend to update&lt;BR /&gt; updateGraphic = results[results.length - 1].graphic;&lt;BR /&gt; console.log("bla");&lt;BR /&gt; console.log(updateGraphic);&lt;BR /&gt; // Remove the graphic from the GraphicsLayer&lt;BR /&gt; // Sketch will handle displaying the graphic while being updated&lt;BR /&gt; tempGraphicsLayer.remove(updateGraphic);&lt;BR /&gt; sketchViewModel.update(updateGraphic.geometry);&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; });&lt;BR /&gt; });&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;});&lt;BR /&gt; });&lt;BR /&gt; &amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;/head&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;body&amp;gt;&lt;BR /&gt; &amp;lt;div id="viewDiv"&amp;gt;&lt;BR /&gt; &amp;lt;div id="topbar"&amp;gt;&lt;BR /&gt; &amp;lt;button class="action-button esri-icon-blank-map-pin" id="pointButton" type="button"&lt;BR /&gt; title="Draw point"&amp;gt;&amp;lt;/button&amp;gt;&lt;BR /&gt; &amp;lt;button class="action-button esri-icon-polyline" id="polylineButton" type="button"&lt;BR /&gt; title="Draw polyline"&amp;gt;&amp;lt;/button&amp;gt;&lt;BR /&gt; &amp;lt;button class="action-button esri-icon-polygon" id="polygonButton" type="button"&lt;BR /&gt; title="Draw polygon"&amp;gt;&amp;lt;/button&amp;gt;&lt;BR /&gt; &amp;lt;button class="action-button esri-icon-checkbox-unchecked" id="rectangleButton" type="button"&lt;BR /&gt; title="Draw rectangle"&amp;gt;&amp;lt;/button&amp;gt;&lt;BR /&gt; &amp;lt;button class="action-button esri-icon-radio-unchecked" id="circleButton" type="button"&lt;BR /&gt; title="Draw circle"&amp;gt;&amp;lt;/button&amp;gt;&lt;BR /&gt; &amp;lt;button class="action-button esri-icon-trash" id="resetBtn" type="button" title="Clear graphics"&amp;gt;&amp;lt;/button&amp;gt;&lt;BR /&gt; &amp;lt;/div&amp;gt;&lt;BR /&gt; &amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/body&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;/html&amp;gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 24 Apr 2018 06:37:29 GMT</pubDate>
    <dc:creator>TubaKumbara</dc:creator>
    <dc:date>2018-04-24T06:37:29Z</dc:date>
    <item>
      <title>4.7 API SketchViewModel on Sceneview (Update Geometries)</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-api-sketchviewmodel-on-sceneview-update/m-p/629134#M58746</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello.&lt;/P&gt;&lt;P&gt;Thanks for new 4.7 API. 4.7 has very good updates.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm drawing some geometries on sceneview. Is this possible to update / edit geometries on sceneview.&amp;nbsp; Below code working good on MapView but doesn't working on SceneView, I can't select for editing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks inadvance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;BR /&gt;&amp;lt;html&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;head&amp;gt;&lt;BR /&gt; &amp;lt;meta charset="utf-8"&amp;gt;&lt;BR /&gt; &amp;lt;meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no"&amp;gt;&lt;BR /&gt; &amp;lt;title&amp;gt;Sketch temporary geometries - 4.7&amp;lt;/title&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;lt;link rel="stylesheet" href="&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2Fjs.arcgis.com%2F4.7%2Fesri%2Fcss%2Fmain.css" rel="nofollow" target="_blank"&gt;https://js.arcgis.com/4.7/esri/css/main.css&lt;/A&gt;&lt;SPAN&gt;"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;script src="&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2Fjs.arcgis.com%2F4.7%2F" rel="nofollow" target="_blank"&gt;https://js.arcgis.com/4.7/&lt;/A&gt;&lt;SPAN&gt;"&amp;gt;&amp;lt;/script&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;style&amp;gt;&lt;BR /&gt; html,&lt;BR /&gt; body,&lt;BR /&gt; #viewDiv {&lt;BR /&gt; padding: 0;&lt;BR /&gt; margin: 0;&lt;BR /&gt; height: 100%;&lt;BR /&gt; width: 100%;&lt;BR /&gt; font-family: verdana;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;#topbar {&lt;BR /&gt; background: #fff;&lt;BR /&gt; position: absolute;&lt;BR /&gt; top: 15px;&lt;BR /&gt; right: 15px;&lt;BR /&gt; padding: 10px;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;.action-button {&lt;BR /&gt; font-size: 16px;&lt;BR /&gt; background-color: transparent;&lt;BR /&gt; border: 1px solid #D3D3D3;&lt;BR /&gt; color: #6e6e6e;&lt;BR /&gt; height: 32px;&lt;BR /&gt; width: 32px;&lt;BR /&gt; text-align: center;&lt;BR /&gt; box-shadow: 0 0 1px rgba(0, 0, 0, 0.3);&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;.action-button:hover,&lt;BR /&gt; .action-button:focus {&lt;BR /&gt; background: #0079c1;&lt;BR /&gt; color: #e4e4e4;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;.active {&lt;BR /&gt; background: #0079c1;&lt;BR /&gt; color: #e4e4e4;&lt;BR /&gt; }&lt;BR /&gt; &amp;lt;/style&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;script&amp;gt;&lt;BR /&gt; require([&lt;BR /&gt; "esri/views/SceneView",&lt;BR /&gt; "esri/Map",&lt;BR /&gt; "esri/widgets/Sketch/SketchViewModel",&lt;BR /&gt; "esri/Graphic",&lt;BR /&gt; "esri/layers/GraphicsLayer",&lt;BR /&gt; "dojo/domReady!"&lt;BR /&gt; ], function(&lt;BR /&gt; SceneView, Map,&lt;BR /&gt; SketchViewModel, Graphic, GraphicsLayer&lt;BR /&gt; ) {&lt;/P&gt;&lt;P&gt;// GraphicsLayer to hold graphics created via sketch view model&lt;BR /&gt; var tempGraphicsLayer = new GraphicsLayer();&lt;BR /&gt; var updateGraphic;&lt;/P&gt;&lt;P&gt;// Arctic Ocean Basemap&lt;BR /&gt; var map = new Map({&lt;BR /&gt; basemap: "gray",&lt;BR /&gt; layers: [tempGraphicsLayer]&lt;BR /&gt; });&lt;/P&gt;&lt;P&gt;var view = new SceneView({&lt;BR /&gt; container: "viewDiv",&lt;BR /&gt; map: map,&lt;BR /&gt; zoom: 3&lt;BR /&gt; });&lt;/P&gt;&lt;P&gt;var pointSymbol = { // symbol used for points&lt;BR /&gt; type: "simple-marker", // autocasts as new SimpleMarkerSymbol()&lt;BR /&gt; style: "square",&lt;BR /&gt; color: "#8A2BE2",&lt;BR /&gt; size: "16px",&lt;BR /&gt; outline: { // autocasts as new SimpleLineSymbol()&lt;BR /&gt; color: [255, 255, 255],&lt;BR /&gt; width: 3 // points&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; var polylineSymbol = { // symbol used for polylines&lt;BR /&gt; type: "simple-line", // autocasts as new SimpleMarkerSymbol()&lt;BR /&gt; color: "#8A2BE2",&lt;BR /&gt; width: "4",&lt;BR /&gt; style: "dash"&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;var polygonSymbol = { // symbol used for polygons&lt;BR /&gt; type: "simple-fill", // autocasts as new SimpleMarkerSymbol()&lt;BR /&gt; color: "rgba(138,43,226, 0.8)",&lt;BR /&gt; style: "solid",&lt;BR /&gt; outline: {&lt;BR /&gt; color: "white",&lt;BR /&gt; width: 1&lt;BR /&gt; }&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;view.when(function() {&lt;BR /&gt; // create a new sketch view model&lt;BR /&gt; var sketchViewModel = new SketchViewModel({&lt;BR /&gt; view: view,&lt;BR /&gt; layer: tempGraphicsLayer,&lt;BR /&gt; pointSymbol: pointSymbol,&lt;BR /&gt; polylineSymbol: polylineSymbol,&lt;BR /&gt; polygonSymbol: polygonSymbol&lt;BR /&gt; });&lt;/P&gt;&lt;P&gt;setUpClickHandler();&lt;BR /&gt; // ************************************************************&lt;BR /&gt; // Get the completed graphic from the event and add it to view.&lt;BR /&gt; // This event fires when user presses&lt;BR /&gt; // * "C" key to finish sketching point, polygon or polyline.&lt;BR /&gt; // * Double-clicks to finish sketching polyline or polygon.&lt;BR /&gt; // * Clicks to finish sketching a point geometry.&lt;BR /&gt; // ***********************************************************&lt;BR /&gt; sketchViewModel.on("draw-complete", addGraphic);&lt;BR /&gt; sketchViewModel.on("update-complete", addGraphic);&lt;BR /&gt; sketchViewModel.on("update-cancel", addGraphic);&lt;/P&gt;&lt;P&gt;function addGraphic(evt) {&lt;BR /&gt; var geometry = evt.geometry;&lt;BR /&gt; var symbol;&lt;/P&gt;&lt;P&gt;// Choose a valid symbol based on return geometry&lt;BR /&gt; switch (geometry.type) {&lt;BR /&gt; case "point":&lt;BR /&gt; symbol = pointSymbol;&lt;BR /&gt; break;&lt;BR /&gt; case "polyline":&lt;BR /&gt; symbol = polylineSymbol;&lt;BR /&gt; break;&lt;BR /&gt; default:&lt;BR /&gt; symbol = polygonSymbol;&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt; // Create a new graphic; add it to the GraphicsLayer&lt;BR /&gt; var graphic = new Graphic({&lt;BR /&gt; geometry: geometry,&lt;BR /&gt; symbol: symbol&lt;BR /&gt; });&lt;BR /&gt; tempGraphicsLayer.add(graphic);&lt;BR /&gt; // Remove stored reference to the updated graphic&lt;BR /&gt; // Required in 'update-complete' callback specifically&lt;BR /&gt; updateGraphic= null;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;// *************************************&lt;BR /&gt; // activate the sketch to create a point&lt;BR /&gt; // *************************************&lt;BR /&gt; var drawPointButton = document.getElementById("pointButton");&lt;BR /&gt; drawPointButton.onclick = function() {&lt;BR /&gt; // set the sketch to create a point geometry&lt;BR /&gt; sketchViewModel.create("point");&lt;BR /&gt; (this);&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;// ****************************************&lt;BR /&gt; // activate the sketch to create a polyline&lt;BR /&gt; // ****************************************&lt;BR /&gt; var drawLineButton = document.getElementById("polylineButton");&lt;BR /&gt; drawLineButton.onclick = function() {&lt;BR /&gt; // set the sketch to create a polyline geometry&lt;BR /&gt; sketchViewModel.create("polyline");&lt;BR /&gt; setActiveButton(this);&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;// ***************************************&lt;BR /&gt; // activate the sketch to create a polygon&lt;BR /&gt; // ***************************************&lt;BR /&gt; var drawPolygonButton = document.getElementById("polygonButton");&lt;BR /&gt; drawPolygonButton.onclick = function() {&lt;BR /&gt; // set the sketch to create a polygon geometry&lt;BR /&gt; sketchViewModel.create("polygon");&lt;BR /&gt; setActiveButton(this);&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;// ***************************************&lt;BR /&gt; // activate the sketch to create a rectangle&lt;BR /&gt; // ***************************************&lt;BR /&gt; var drawRectangleButton = document.getElementById(&lt;BR /&gt; "rectangleButton");&lt;BR /&gt; drawRectangleButton.onclick = function() {&lt;BR /&gt; // set the sketch to create a polygon geometry&lt;BR /&gt; sketchViewModel.create("rectangle");&lt;BR /&gt; setActiveButton(this);&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;// ***************************************&lt;BR /&gt; // activate the sketch to create a circle&lt;BR /&gt; // ***************************************&lt;BR /&gt; var drawCircleButton = document.getElementById("circleButton");&lt;BR /&gt; drawCircleButton.onclick = function() {&lt;BR /&gt; // set the sketch to create a polygon geometry&lt;BR /&gt; sketchViewModel.create("circle");&lt;BR /&gt; setActiveButton(this);&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;// **************&lt;BR /&gt; // reset button&lt;BR /&gt; // **************&lt;BR /&gt; document.getElementById("resetBtn").onclick = function() {&lt;BR /&gt; sketchViewModel.reset();&lt;BR /&gt; tempGraphicsLayer.removeAll();&lt;BR /&gt; setActiveButton();&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;function setActiveButton(selectedButton) {&lt;BR /&gt; // focus the view to activate keyboard shortcuts for sketching&lt;BR /&gt; view.focus();&lt;BR /&gt; var elements = document.getElementsByClassName("active");&lt;BR /&gt; for (var i = 0; i &amp;lt; elements.length; i++) {&lt;BR /&gt; elements&lt;I&gt;.classList.remove("active");&lt;BR /&gt; }&lt;BR /&gt; if (selectedButton) {&lt;BR /&gt; selectedButton.classList.add("active");&lt;BR /&gt; }&lt;BR /&gt; }&lt;/I&gt;&lt;/P&gt;&lt;P&gt;// ************************************************************************************&lt;BR /&gt; // set up logic to handle geometry update and reflect the update on "tempGraphicsLayer"&lt;BR /&gt; // ************************************************************************************&lt;BR /&gt; function setUpClickHandler() {&lt;BR /&gt; view.on("click", function(evt) {&lt;BR /&gt; view.hitTest(evt).then(function(response) {&lt;BR /&gt; var results = response.results;&lt;BR /&gt; console.log(results);&lt;BR /&gt; console.log(results.length);&lt;BR /&gt; &lt;BR /&gt; // Found a valid graphic&lt;BR /&gt; if (results.length &amp;amp;&amp;amp; results[results.length - 1]&lt;BR /&gt; .graphic) {&lt;BR /&gt; // Check if we're already editing a graphic&lt;BR /&gt; if (!updateGraphic) {&lt;BR /&gt; // Save a reference to the graphic we intend to update&lt;BR /&gt; updateGraphic = results[results.length - 1].graphic;&lt;BR /&gt; console.log("bla");&lt;BR /&gt; console.log(updateGraphic);&lt;BR /&gt; // Remove the graphic from the GraphicsLayer&lt;BR /&gt; // Sketch will handle displaying the graphic while being updated&lt;BR /&gt; tempGraphicsLayer.remove(updateGraphic);&lt;BR /&gt; sketchViewModel.update(updateGraphic.geometry);&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; });&lt;BR /&gt; });&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;});&lt;BR /&gt; });&lt;BR /&gt; &amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;/head&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;body&amp;gt;&lt;BR /&gt; &amp;lt;div id="viewDiv"&amp;gt;&lt;BR /&gt; &amp;lt;div id="topbar"&amp;gt;&lt;BR /&gt; &amp;lt;button class="action-button esri-icon-blank-map-pin" id="pointButton" type="button"&lt;BR /&gt; title="Draw point"&amp;gt;&amp;lt;/button&amp;gt;&lt;BR /&gt; &amp;lt;button class="action-button esri-icon-polyline" id="polylineButton" type="button"&lt;BR /&gt; title="Draw polyline"&amp;gt;&amp;lt;/button&amp;gt;&lt;BR /&gt; &amp;lt;button class="action-button esri-icon-polygon" id="polygonButton" type="button"&lt;BR /&gt; title="Draw polygon"&amp;gt;&amp;lt;/button&amp;gt;&lt;BR /&gt; &amp;lt;button class="action-button esri-icon-checkbox-unchecked" id="rectangleButton" type="button"&lt;BR /&gt; title="Draw rectangle"&amp;gt;&amp;lt;/button&amp;gt;&lt;BR /&gt; &amp;lt;button class="action-button esri-icon-radio-unchecked" id="circleButton" type="button"&lt;BR /&gt; title="Draw circle"&amp;gt;&amp;lt;/button&amp;gt;&lt;BR /&gt; &amp;lt;button class="action-button esri-icon-trash" id="resetBtn" type="button" title="Clear graphics"&amp;gt;&amp;lt;/button&amp;gt;&lt;BR /&gt; &amp;lt;/div&amp;gt;&lt;BR /&gt; &amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/body&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;/html&amp;gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Apr 2018 06:37:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-api-sketchviewmodel-on-sceneview-update/m-p/629134#M58746</guid>
      <dc:creator>TubaKumbara</dc:creator>
      <dc:date>2018-04-24T06:37:29Z</dc:date>
    </item>
    <item>
      <title>Re: 4.7 API SketchViewModel on Sceneview (Update Geometries)</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-api-sketchviewmodel-on-sceneview-update/m-p/629135#M58747</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi there,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch-SketchViewModel.html"&gt;SketchViewModel&lt;/A&gt; is&amp;nbsp;&lt;STRONG&gt;not&lt;/STRONG&gt;&amp;nbsp;&lt;STRONG&gt;supported in 3D&lt;/STRONG&gt;&amp;nbsp;at this time&lt;STRONG&gt;.&lt;/STRONG&gt;&amp;nbsp;It is designed to be used in 2D for now.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With that said, the intersecting graphic is not being returned from &lt;A href="https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#hitTest"&gt;SceneView.hitTest&lt;/A&gt;&amp;nbsp;as it is pointed out in the document:&amp;nbsp;&lt;EM&gt;&amp;nbsp;&lt;SPAN style="color: #4c4c4c; background-color: #ffffff;"&gt;Draped graphics (i.e. graphics in layers where the&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html#elevationInfo" style="color: #0079c1; background-color: #ffffff; text-decoration: none;"&gt;elevation mode&lt;/A&gt;&lt;SPAN style="color: #4c4c4c; background-color: #ffffff;"&gt;&amp;nbsp;is&amp;nbsp;&lt;/SPAN&gt;&lt;CODE style="color: #595959; background-color: #f8f8f8; border: 1px solid #efefef; font-size: 0.85em;"&gt;on-the-ground&lt;/CODE&gt;&lt;SPAN style="color: #4c4c4c; background-color: #ffffff;"&gt;) are currently&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #4c4c4c; background-color: #ffffff; font-weight: 500;"&gt;&lt;STRONG&gt;not&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #4c4c4c; background-color: #ffffff;"&gt;&amp;nbsp;returned from this method, even when they intersect the input screen point.&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps,&lt;/P&gt;&lt;P&gt;-Undral&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Apr 2018 15:29:54 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-api-sketchviewmodel-on-sceneview-update/m-p/629135#M58747</guid>
      <dc:creator>UndralBatsukh</dc:creator>
      <dc:date>2018-04-24T15:29:54Z</dc:date>
    </item>
    <item>
      <title>Re: 4.7 API SketchViewModel on Sceneview (Update Geometries)</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-api-sketchviewmodel-on-sceneview-update/m-p/629136#M58748</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;Hi&amp;nbsp;&lt;A _jive_internal="true" data-userid="6276" data-username="tubakumbara" href="https://community.esri.com/people/tubakumbara" style="color: #8ca9cd; background-color: #ffffff; border: 0px; font-weight: 600; text-decoration: none; font-size: 14.5707px;"&gt;Tuba Kumbara&lt;/A&gt;&amp;nbsp;and&amp;nbsp;&lt;A _jive_internal="true" data-userid="51882" data-username="ubatsukh-esristaff" href="https://community.esri.com/people/ubatsukh-esristaff"&gt;Undral Batsukh&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Am also facing similar problem with SketchViewModel in 3D sceneView..&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;So my question to both of you is, still its not supported in 4.9 JavaScript API of ArcGIS.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Please let me know if know any other options to make it happen.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Thank You&amp;nbsp;&lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/happy.png" /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2018 20:59:56 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-api-sketchviewmodel-on-sceneview-update/m-p/629136#M58748</guid>
      <dc:creator>Rocky_</dc:creator>
      <dc:date>2018-11-08T20:59:56Z</dc:date>
    </item>
    <item>
      <title>Re: 4.7 API SketchViewModel on Sceneview (Update Geometries)</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-api-sketchviewmodel-on-sceneview-update/m-p/629137#M58749</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi there,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sketching is still not available in 3D at 4.10. But we are looking into adding sketching capabilities in 3D for future release.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Dec 2018 17:51:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-api-sketchviewmodel-on-sceneview-update/m-p/629137#M58749</guid>
      <dc:creator>UndralBatsukh</dc:creator>
      <dc:date>2018-12-19T17:51:40Z</dc:date>
    </item>
  </channel>
</rss>

