<?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: 4.7 sketchViewModel cannot pass graphic's attributes to updated graphic in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-sketchviewmodel-cannot-pass-graphic-s/m-p/359976#M33377</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could use update-start to capture the old graphics attributes and store them for the update-complete event.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 25 Apr 2018 12:32:19 GMT</pubDate>
    <dc:creator>RobertScheitlin__GISP</dc:creator>
    <dc:date>2018-04-25T12:32:19Z</dc:date>
    <item>
      <title>4.7 sketchViewModel cannot pass graphic's attributes to updated graphic</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-sketchviewmodel-cannot-pass-graphic-s/m-p/359975#M33376</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need to&amp;nbsp;pass graphic's attributes to new&amp;nbsp; graphic which&amp;nbsp;updated by&amp;nbsp;&lt;SPAN&gt;sketchViewModel in&lt;/SPAN&gt;&amp;nbsp;"update-complete" event of sketchViewModel.&amp;nbsp;&lt;SPAN&gt;because&amp;nbsp;&lt;SPAN style="background-color: #f6f6f6;"&gt;addGraphic function is adding new graphic on every&amp;nbsp;event and losing attributes.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i think that i need some code as below (red lines)&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;SPAN style="background-color: #f6f6f6;"&gt;switch (evt.type) {&lt;/SPAN&gt;&lt;BR style="background-color: #f6f6f6;" /&gt;&lt;SPAN style="background-color: #f6f6f6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case "draw-complete":&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR style="background-color: #f6f6f6;" /&gt;&lt;SPAN style="background-color: #f6f6f6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;graphic.attributes = {&lt;/SPAN&gt;&lt;BR style="background-color: #f6f6f6;" /&gt;&lt;SPAN style="background-color: #f6f6f6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"test": "testdata",&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"id":&amp;nbsp; mygraphicslayer.graphics.count()&lt;BR style="background-color: #f6f6f6;" /&gt;&lt;SPAN style="background-color: #f6f6f6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #f6f6f6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #f6f6f6; color: #ff0000;"&gt;case "update-complete":&amp;nbsp;&lt;/SPAN&gt;&lt;BR style="background-color: #f6f6f6;" /&gt;&lt;SPAN style="background-color: #f6f6f6; color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;graphic.attributes = OLDGRAPHIC'S.ATTRIBUTES;&lt;/SPAN&gt;&lt;BR style="background-color: #f6f6f6;" /&gt;&lt;SPAN style="background-color: #f6f6f6; color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;/SPAN&gt;&lt;BR style="background-color: #f6f6f6;" /&gt;&lt;SPAN style="background-color: #f6f6f6; color: #ff0000;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;addGraphic function code which i used below.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&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;&lt;/P&gt;&lt;P&gt;function addGraphic(evt) {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;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; &lt;BR /&gt; switch (evt.type) {&lt;BR /&gt; case "draw-complete": &lt;BR /&gt; graphic.attributes = {&lt;BR /&gt; "test": "testdata"&lt;BR /&gt; }&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; tempGraphicsLayer.add(graphic);&lt;BR /&gt; &lt;BR /&gt; console.log(graphic.attributes);&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;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Apr 2018 07:54:31 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-sketchviewmodel-cannot-pass-graphic-s/m-p/359975#M33376</guid>
      <dc:creator>TubaKumbara</dc:creator>
      <dc:date>2018-04-25T07:54:31Z</dc:date>
    </item>
    <item>
      <title>Re: 4.7 sketchViewModel cannot pass graphic's attributes to updated graphic</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-sketchviewmodel-cannot-pass-graphic-s/m-p/359976#M33377</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could use update-start to capture the old graphics attributes and store them for the update-complete event.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Apr 2018 12:32:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-sketchviewmodel-cannot-pass-graphic-s/m-p/359976#M33377</guid>
      <dc:creator>RobertScheitlin__GISP</dc:creator>
      <dc:date>2018-04-25T12:32:19Z</dc:date>
    </item>
    <item>
      <title>Re: 4.7 sketchViewModel cannot pass graphic's attributes to updated graphic</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-sketchviewmodel-cannot-pass-graphic-s/m-p/359977#M33378</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;Robert Scheitlin, GISP wrote:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You could use update-start to capture the old graphics attributes and store them for the update-complete event.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the answer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;sketchViewModel.on("update-start", getGraphic);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function &lt;SPAN&gt;getGraphic&lt;/SPAN&gt;(evt) {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(evt);&lt;BR /&gt; }&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is "evt" has attributes? because i can't see it.&amp;nbsp; "evt" has geometry, type and target.&lt;/P&gt;&lt;P&gt;target.graphic has no attributes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Whole code below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&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/MapView",&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; MapView, 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 MapView({&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;BR /&gt; sketchViewModel.on("update-start", getGraphic);&lt;/P&gt;&lt;P&gt;function getGraphic(evt) {&lt;BR /&gt; console.log(evt);&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; function addGraphic(evt) {&lt;BR /&gt; &lt;BR /&gt; &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; &lt;BR /&gt; switch (evt.type) {&lt;BR /&gt; case "draw-complete": &lt;BR /&gt; graphic.attributes = {&lt;BR /&gt; "test": "testdata"&lt;BR /&gt; }&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; tempGraphicsLayer.add(graphic);&lt;BR /&gt; &lt;BR /&gt; console.log(graphic.attributes);&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;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; var colorButton = document.getElementById("colorButton");&lt;BR /&gt; colorButton.onclick = function() {&lt;BR /&gt; // set the sketch to create a polygon geometry&lt;BR /&gt; polygonSymbol.color = "rgba(255,255,226, 0.8)"&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; &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; // 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; &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>Wed, 25 Apr 2018 13:43:14 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-sketchviewmodel-cannot-pass-graphic-s/m-p/359977#M33378</guid>
      <dc:creator>TubaKumbara</dc:creator>
      <dc:date>2018-04-25T13:43:14Z</dc:date>
    </item>
    <item>
      <title>Re: 4.7 sketchViewModel cannot pass graphic's attributes to updated graphic</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-sketchviewmodel-cannot-pass-graphic-s/m-p/359978#M33379</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Tuba,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;You would have to loop through the graphics in the map and find the graphic that has the same geometry as the update-start has and then copy those attributes to use latter. As you can see the sketch widget only works with the geometry. What you are wanting to do is full feature editing which has not been implemented yet so you will have to do a lot of coding manually to get what you want.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Apr 2018 13:48:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-sketchviewmodel-cannot-pass-graphic-s/m-p/359978#M33379</guid>
      <dc:creator>RobertScheitlin__GISP</dc:creator>
      <dc:date>2018-04-25T13:48:19Z</dc:date>
    </item>
    <item>
      <title>Re: 4.7 sketchViewModel cannot pass graphic's attributes to updated graphic</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-sketchviewmodel-cannot-pass-graphic-s/m-p/359979#M33380</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks for the answer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I solved my problem with below code sometihng like your recommend.&lt;/P&gt;&lt;P&gt;Assining graphic attributes to a variable before update started.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&amp;nbsp; var myatts;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;myatts = updateGraphic.attributes;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;/P&gt;&lt;P&gt;function addGraphic(evt) {&lt;BR /&gt; &lt;BR /&gt; &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; &lt;BR /&gt; switch (evt.type) {&lt;BR /&gt; case "draw-complete": &lt;BR /&gt; graphic.attributes = {&lt;BR /&gt; "test": "testdata"&lt;BR /&gt; }&lt;BR /&gt; break;&lt;BR /&gt; default :&lt;BR /&gt; console.log(myatts);&lt;BR /&gt; graphic.attributes = myatts;&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; tempGraphicsLayer.add(graphic);&lt;BR /&gt; &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;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Apr 2018 13:51:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-sketchviewmodel-cannot-pass-graphic-s/m-p/359979#M33380</guid>
      <dc:creator>TubaKumbara</dc:creator>
      <dc:date>2018-04-25T13:51:37Z</dc:date>
    </item>
    <item>
      <title>Re: 4.7 sketchViewModel cannot pass graphic's attributes to updated graphic</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-sketchviewmodel-cannot-pass-graphic-s/m-p/359980#M33381</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Don't forget to mark this question as answered by clicking on the "Mark Correct" link on the reply that answered your question.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 May 2018 14:58:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/4-7-sketchviewmodel-cannot-pass-graphic-s/m-p/359980#M33381</guid>
      <dc:creator>RobertScheitlin__GISP</dc:creator>
      <dc:date>2018-05-01T14:58:30Z</dc:date>
    </item>
  </channel>
</rss>

