Maybe.
Here’s a sample that does what I think you are asking for:
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <!-- Copyright 1998-2020 by Northwoods Software Corporation. -->
  <script src="go.js"></script>
  <script>
    function init() {
      var $ = go.GraphObject.make;
      // initialize main Diagram
      myDiagram =
        $(go.Diagram, "myDiagramDiv",
          {
            contentAlignment: go.Spot.TopLeft,
            layout: $(go.GridLayout)
          });
      myDiagram.nodeTemplate =
        $(go.Node, "Auto",
          $(go.Shape,
            { fill: "white", stroke: "gray", strokeWidth: 2 },
            new go.Binding("stroke", "color")),
          $(go.TextBlock,
            {
              margin: new go.Margin(5, 5, 3, 5), font: "10pt sans-serif",
              minSize: new go.Size(16, 16), maxSize: new go.Size(120, NaN)
            },
            new go.Binding("text")),
          {
            click: function(e, node) {
              if (e.diagram instanceof go.Palette) {
                var color = node.data.color;
                myDiagram.commit(function(diag) {
                  diag.nodes.each(function(n) { n.visible = (n.data.color === color); })
                });
              }
            }
          }
        );
      // initialize Palette
      myPalette =
        $(go.Palette, "myPaletteDiv",
          {
            nodeTemplateMap: myDiagram.nodeTemplateMap,
            model: new go.GraphLinksModel([
              { text: "red node", color: "red" },
              { text: "green node", color: "green" },
              { text: "blue node", color: "blue" },
              { text: "orange node", color: "orange" }
            ]),
            click: function(e) {
              myDiagram.commit(function(diag) {
                diag.nodes.each(function(n) { n.visible = true; })
              });
            }
          });
      // initialize Overview
      myOverview =
        $(go.Overview, "myOverviewDiv",
          {
            observed: myDiagram,
            contentAlignment: go.Spot.Center
          });
      load();
    }
    // save a model to and load a model from Json text, displayed below the Diagram
    function save() {
      var str = myDiagram.model.toJson();
      document.getElementById("mySavedModel").value = str;
    }
    function load() {
      var str = document.getElementById("mySavedModel").value;
      myDiagram.model = go.Model.fromJson(str);
    }
  </script>
</head>
<body onload="init()">
  <div style="width: 100%; display: flex; justify-content: space-between">
    <div style="display: flex; flex-direction: column; margin: 0 2px 0 0">
      <div id="myPaletteDiv" style="flex-grow: 1; width: 100px; background-color: floralwhite; border: solid 1px black"></div>
      <div id="myOverviewDiv" style="margin: 2px 0 0 0; width: 100px; height: 100px; background-color: whitesmoke; border: solid 1px black"></div>
    </div>
    <div id="myDiagramDiv" style="flex-grow: 1; height: 400px; border: solid 1px black"></div>
  </div>
  <div id="buttons">
    <button id="loadModel" onclick="load()">Load</button>
    <button id="saveModel" onclick="save()">Save</button>
  </div>
  <textarea id="mySavedModel" style="width:100%;height:200px">
{ "class": "go.GraphLinksModel",
  "nodeDataArray": [
{"key":1, "text":"hello", "color":"green"},
{"key":2, "text":"world", "color":"red"},
{"key":3, "text":"how", "color":"blue"},
{"key":4, "text":"are", "color":"orange"},
{"key":5, "text":"you", "color":"green"},
{"key":6, "text":"today", "color":"red"}
        ]}
  </textarea>
</body>
</html>