{
  "Uuid": "95915dc1-9897-4c95-af0a-012f02c54a64",
  "IsCustomNode": false,
  "Description": null,
  "Name": "Roofmaker",
  "ElementResolver": {
    "ResolutionMap": {}
  },
  "Inputs": [],
  "Outputs": [],
  "Nodes": [
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Solid.BySweep@Autodesk.DesignScript.Geometry.Curve,Autodesk.DesignScript.Geometry.Curve",
      "Id": "6a96289e103d4aac80d52405c186bc0b",
      "Inputs": [
        {
          "Id": "34e78b56ae604955887fc859bf235910",
          "Name": "profile",
          "Description": "Curve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "5b1358582af540ce9409cc71863c8b43",
          "Name": "path",
          "Description": "Curve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": true,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "757424f5d7664610a73b98a576c2d798",
          "Name": "Solid",
          "Description": "Solid",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Sweep a closed Curve along a path.\n\nSolid.BySweep (profile: Curve, path: Curve): Solid"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
      "Id": "effcf9d70542437980490b95efeee83b",
      "Inputs": [
        {
          "Id": "e14d185041724fe6907b1a95e911aa62",
          "Name": "startPoint",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "2eb1c0085c6f43f7baf42f2d47338070",
          "Name": "endPoint",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "5a2822c551264949a8208819fba96962",
          "Name": "Line",
          "Description": "Line",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Creates a straight Line between two input Points.\n\nLine.ByStartPointEndPoint (startPoint: Point, endPoint: Point): Line"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
      "Id": "aa8b9fec788448909f7e7215d73aafbb",
      "Inputs": [
        {
          "Id": "c93fba80b25e4f73a1cb28ce6d924cb6",
          "Name": "x",
          "Description": "double\nDefault value : 0",
          "UsingDefaultValue": true,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "c5ca1974c7664b7ea91da8167082a0a4",
          "Name": "y",
          "Description": "double\nDefault value : 0",
          "UsingDefaultValue": true,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "fba15e9d922b4ea5a348594f41f6680e",
          "Name": "z",
          "Description": "double\nDefault value : 0",
          "UsingDefaultValue": true,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "7272ba43a8b142b1bee8a681c11447cc",
          "Name": "Point",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
      "NodeType": "CodeBlockNode",
      "Code": "[0,20,0];\n[0,0,20];\n0;",
      "Id": "0e0398fa8f5e4f40ba2376c0a346c4d7",
      "Inputs": [],
      "Outputs": [
        {
          "Id": "313697ec3eb84414991fe5ad0dcf6599",
          "Name": "",
          "Description": "Value of expression at line 1",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "2aad250eeb874240bd627d0f3269defc",
          "Name": "",
          "Description": "Value of expression at line 2",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "e8ed4ae4c0e24eb4a11ac499954c1be0",
          "Name": "",
          "Description": "Value of expression at line 3",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Allows for DesignScript code to be authored directly"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "DSCore.List.ShiftIndices@var[]..[],int",
      "Id": "1a04d0d8ff8144bc91fa2f06a6ae61f2",
      "Inputs": [
        {
          "Id": "b6dfd3807cd54c69954135444e067a52",
          "Name": "list",
          "Description": "List to be shifted.\n\nvar[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "165bef78711044fc9d040a16bf79e66a",
          "Name": "amount",
          "Description": "Amount to shift indices by. If negative, indices will be shifted to the left.\n\nint",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "168b79bcedd54cc6b6b7880db4a1928c",
          "Name": "list",
          "Description": "Shifted list.",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Shifts indices in the list to the right by the given amount.\n\nList.ShiftIndices (list: var[]..[], amount: int): var[]..[]"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
      "NodeType": "CodeBlockNode",
      "Code": "1;",
      "Id": "bd9ca2a27b4b4dc88c84c9f1f16354ec",
      "Inputs": [],
      "Outputs": [
        {
          "Id": "826b15e701844c3e8a9bad92d2722d80",
          "Name": "",
          "Description": "Value of expression at line 1",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Allows for DesignScript code to be authored directly"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.Join@Autodesk.DesignScript.Geometry.Curve[]",
      "Id": "1a871ccd92394bd38c12f3fdb151aa4b",
      "Inputs": [
        {
          "Id": "f8ab9de6ceb34e4cab04419a59943813",
          "Name": "curve",
          "Description": "Autodesk.DesignScript.Geometry.Curve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "d38b166111a246558585c7243d8f95c0",
          "Name": "curves",
          "Description": "Curve[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "c93ad16d475f4341853f35023f5e3721",
          "Name": "PolyCurve",
          "Description": "A PolyCurve made up of the two curves",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Join this curve and the input curve into a new PolyCurve, maintaining the original curves exactly.\n\nCurve.Join (curves: Curve[]): PolyCurve"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves@Autodesk.DesignScript.Geometry.Curve[],double",
      "Id": "08792ca9be01478aae2600a15e6586d8",
      "Inputs": [
        {
          "Id": "3f10a82d60a44268a791b044e34c4636",
          "Name": "curves",
          "Description": "Curves to join into polycurve\n\nCurve[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "c942035a6682464688490fe8e01c3391",
          "Name": "joinTolerance",
          "Description": "Tolerance to determine size of gap allowed between curves to be joined\n\ndouble\nDefault value : 0.001",
          "UsingDefaultValue": true,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "e2ea1b6b139848eb8edd0108dbd64b2e",
          "Name": "PolyCurve",
          "Description": "PolyCurve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Make PolyCurve by joining curves. Flips curve as needed for connectivity. Choose a preferred join tolerance between 1e-6 and 1e-3 units.\n\nPolyCurve.ByJoinedCurves (curves: Curve[], joinTolerance: double = 0.001): PolyCurve"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.PerimeterCurves",
      "Id": "fc8bfefb37c64fe1a8b8db7020583ffa",
      "Inputs": [
        {
          "Id": "63edd4938ff44a448c5e1db4c81d3395",
          "Name": "surface",
          "Description": "Autodesk.DesignScript.Geometry.Surface",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "f31b1f3f8e3945b3864e0dc58779105a",
          "Name": "Curve[]",
          "Description": "Curve[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Return all the boundary Curves of the Surface.\n\nSurface.PerimeterCurves ( ): Curve[]"
    },
    {
      "ConcreteType": "Dynamo.Nodes.DSFaceSelection, DSRevitNodesUI",
      "NodeType": "ExtensionNode",
      "InstanceId": [
        "5fe9cfa0-1e24-45a5-8891-d90b7c87a3ad-000ca39a:0:INSTANCE:5fe9cfa0-1e24-45a5-8891-d90b7c87a3ad-000ca398:421:SURFACE"
      ],
      "Id": "e5ff430bb9eb4f99bf5c43d288662235",
      "Inputs": [],
      "Outputs": [
        {
          "Id": "4ed8e38c4fba4d42af07d9bd94ca1811",
          "Name": "Surface",
          "Description": "The selected elements.",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Solid.Volume",
      "Id": "a562b5f1639c4b1590e2576a67450f46",
      "Inputs": [
        {
          "Id": "7104a9b9f9cc42cca1db13f023d846a4",
          "Name": "solid",
          "Description": "Autodesk.DesignScript.Geometry.Solid",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "35511afbfbf34438a4152d28cbec239a",
          "Name": "double",
          "Description": "double",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "The total volume of the Solid\n\nSolid.Volume: double"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
      "NodeType": "CodeBlockNode",
      "Code": "0;",
      "Id": "48cb97c85683473c85b467a0a54baa66",
      "Inputs": [],
      "Outputs": [
        {
          "Id": "2d7d7832732040c9872f1b59d7b1bea0",
          "Name": "",
          "Description": "Value of expression at line 1",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Allows for DesignScript code to be authored directly"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.StartPoint",
      "Id": "510b11f76efb4e2fb2e7806bb3d089cf",
      "Inputs": [
        {
          "Id": "abf1b0704d0e46e8a681d536219bcf2a",
          "Name": "curve",
          "Description": "Autodesk.DesignScript.Geometry.Curve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "7dc500e1d840484ea7a2d231b52ce30f",
          "Name": "Point",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Get the start Point along the Curve\n\nCurve.StartPoint: Point"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointDirectionLength@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Vector,double",
      "Id": "8b035db7ce45448cbaa4d91a01db7812",
      "Inputs": [
        {
          "Id": "d3a9322f6a0a402b9132fbde3b3c4250",
          "Name": "startPoint",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "659fd780313a479f9075f4211be7e072",
          "Name": "direction",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "bdee61bb614a41c7aaf305ed08a35896",
          "Name": "length",
          "Description": "double\nDefault value : 1",
          "UsingDefaultValue": true,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "302992a0e35e40c2949152e1103538b6",
          "Name": "Line",
          "Description": "Line",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Create a straight Line starting at start Point, extending in Vector direction by specified length.\n\nLine.ByStartPointDirectionLength (startPoint: Point, direction: Vector, length: double = 1): Line"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
      "NodeType": "CodeBlockNode",
      "Code": "100;",
      "Id": "2e31b046d2124d3e8241e207cd2ffb25",
      "Inputs": [],
      "Outputs": [
        {
          "Id": "5a6f7df91f9840e2bbe435f0282475f2",
          "Name": "",
          "Description": "Value of expression at line 1",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Allows for DesignScript code to be authored directly"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.NormalAtParameter@double",
      "Id": "f06ff2debcdd4fed9fc3c274602a1b10",
      "Inputs": [
        {
          "Id": "d3eb058400974f20ab388ff7f3906464",
          "Name": "curve",
          "Description": "Autodesk.DesignScript.Geometry.Curve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "626561a0f3714f7c953bd5f6959c6d69",
          "Name": "param",
          "Description": "The parameter at which to evaluate\n\ndouble\nDefault value : 0",
          "UsingDefaultValue": true,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "977528c72f074b78b0a246681f3c09c3",
          "Name": "Vector",
          "Description": "A Vector perpendicular to the curve at param",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Get a Vector perpendicular to the curve at a specified parameter between StartParameter() and EndParameter()\n\nCurve.NormalAtParameter (param: double = 0): Vector"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointDirectionLength@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Vector,double",
      "Id": "2237f54cebad4ed39c6a42ac7b70d1da",
      "Inputs": [
        {
          "Id": "2fbf2299d3a1465eb0cfa35ee1510d9f",
          "Name": "startPoint",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "47d95c2000ec4a88b24dc0c6ccd0d7ae",
          "Name": "direction",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "4133cd740c164364b0a0b9db113ede77",
          "Name": "length",
          "Description": "double\nDefault value : 1",
          "UsingDefaultValue": true,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "76561074578d4d5093d867a46aca0363",
          "Name": "Line",
          "Description": "Line",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Create a straight Line starting at start Point, extending in Vector direction by specified length.\n\nLine.ByStartPointDirectionLength (startPoint: Point, direction: Vector, length: double = 1): Line"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.Add@Autodesk.DesignScript.Geometry.Vector",
      "Id": "98cf048209f3483ca6651c2725cc09fd",
      "Inputs": [
        {
          "Id": "b91adcaedf2f4518a046741a4b054803",
          "Name": "point",
          "Description": "Autodesk.DesignScript.Geometry.Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "03462d2ae6c444c08ff48555d738a132",
          "Name": "vectorToAdd",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "61e731d8e285409eaccc05cea55ff1f4",
          "Name": "Point",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Add a vector to a point. The same as Translate(Vector).\n\nPoint.Add (vectorToAdd: Vector): Point"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Rotate@Autodesk.DesignScript.Geometry.Vector,double",
      "Id": "e9c6b9d7752b423892acb5a461e972c1",
      "Inputs": [
        {
          "Id": "c3a27c8ca76644c3a36d2fdbbc2b5b7b",
          "Name": "vector",
          "Description": "Autodesk.DesignScript.Geometry.Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "e96ceeb664da48e1b33be7be420f1325",
          "Name": "axis",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "16c3dadac989480cb2262a9db95661b5",
          "Name": "degrees",
          "Description": "double\nDefault value : 0",
          "UsingDefaultValue": true,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "62ee5862dcdc4806b73d7e0d3d9abc73",
          "Name": "Vector",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Rotates a Vector around an axis by a specified number of degrees\n\nVector.Rotate (axis: Vector, degrees: double = 0): Vector"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ZAxis",
      "Id": "91adc31853fa4476837793dca7a6b8ae",
      "Inputs": [],
      "Outputs": [
        {
          "Id": "456804ed18644dad8a763de56379c146",
          "Name": "Vector",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Get the canonical Z axis Vector (0,0,1)\n\nVector.ZAxis ( ): Vector"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Scale@double",
      "Id": "babe94c0ee6344a2b1d0606f957128c4",
      "Inputs": [
        {
          "Id": "1135485cb87f47ebb960a28be4f449a1",
          "Name": "vector",
          "Description": "Autodesk.DesignScript.Geometry.Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "5904b6937421485fa5e66324f062e45a",
          "Name": "scale_factor",
          "Description": "double\nDefault value : 1",
          "UsingDefaultValue": true,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "578cb4190d6a4b8ca46347b4e2b4bd09",
          "Name": "Vector",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Scale Vector uniformly around the origin\n\nVector.Scale (scale_factor: double = 1): Vector"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
      "NodeType": "CodeBlockNode",
      "Code": "-100;",
      "Id": "1209924d92ad417e93253724deb3c6e7",
      "Inputs": [],
      "Outputs": [
        {
          "Id": "f56d632ab0154ef5be8d29f61a1a3ce6",
          "Name": "",
          "Description": "Value of expression at line 1",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Allows for DesignScript code to be authored directly"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.PolyCurve.CloseWithLine",
      "Id": "7d03ccab261a41dea2da977ba27bebb5",
      "Inputs": [
        {
          "Id": "43591c46f08a4db480722370c5518c9c",
          "Name": "polyCurve",
          "Description": "Autodesk.DesignScript.Geometry.PolyCurve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "268f2efffaaf4709a9a2286add7def45",
          "Name": "PolyCurve",
          "Description": "PolyCurve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Close polycurve by line connecting start and end points\n\nPolyCurve.CloseWithLine ( ): PolyCurve"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves@Autodesk.DesignScript.Geometry.Curve[],double",
      "Id": "9876f3b35acf4f618cf9dcd534280e7b",
      "Inputs": [
        {
          "Id": "bedea273ab404c24b3fad4a8fe89d800",
          "Name": "curves",
          "Description": "Curves to join into polycurve\n\nCurve[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "f240f98b3c8c49868d3c7f06ef0af828",
          "Name": "joinTolerance",
          "Description": "Tolerance to determine size of gap allowed between curves to be joined\n\ndouble\nDefault value : 0.001",
          "UsingDefaultValue": true,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "723e8c450e0f4f068b1f0f78efadf441",
          "Name": "PolyCurve",
          "Description": "PolyCurve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Make PolyCurve by joining curves. Flips curve as needed for connectivity. Choose a preferred join tolerance between 1e-6 and 1e-3 units.\n\nPolyCurve.ByJoinedCurves (curves: Curve[], joinTolerance: double = 0.001): PolyCurve"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "DSCore.List.Transpose@var[]..[]",
      "Id": "ca9b6bb22c59400690d7848477d2898c",
      "Inputs": [
        {
          "Id": "5c65b1b670594e20b127be66676364a5",
          "Name": "lists",
          "Description": "A list of lists to be transposed.\n\nvar[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "cb9a551106924f5e912dfff46884a3d8",
          "Name": "lists",
          "Description": "A list of transposed lists.",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Swaps rows and columns in a list of lists. If there are some rows that are shorter than others, null values are inserted as place holders in the resultant array such that it is always rectangular.\n\nList.Transpose (lists: var[]..[]): var[]..[]"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSVarArgFunction, DynamoCore",
      "FunctionSignature": "DSCore.List.Join@var[]..[]",
      "FunctionType": "VariableArgument",
      "NodeType": "FunctionNode",
      "Id": "8c4919e171ba4ca39a313acf8d7ba243",
      "Inputs": [
        {
          "Id": "00d093d9f45845128ec45973984c14d9",
          "Name": "list0",
          "Description": "Lists to join into one.\n\nvar[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "de2526709a9f4fd99afe9ec73620c0c1",
          "Name": "list1",
          "Description": "var[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "f3d5b44b273b40618fe8b6581a94b401",
          "Name": "list",
          "Description": "Joined list.",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Concatenates all given lists into a single list.\n\nList.Join (lists: var[]..[]): var[]..[]"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.PolyCurve.CloseWithLine",
      "Id": "fc784e9384eb48d8bc835ccf5ab45cd3",
      "Inputs": [
        {
          "Id": "66451447735d49aeaf8c6687de749580",
          "Name": "polyCurve",
          "Description": "Autodesk.DesignScript.Geometry.PolyCurve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "20935ead41e94ad7b2807b3ceb133f11",
          "Name": "PolyCurve",
          "Description": "PolyCurve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Close polycurve by line connecting start and end points\n\nPolyCurve.CloseWithLine ( ): PolyCurve"
    },
    {
      "ConcreteType": "Watch3DNodeModels.Watch3D, Watch3DNodeModels",
      "WatchWidth": 200.0,
      "WatchHeight": 200.0,
      "WasExecuted": true,
      "Camera": {
        "Name": "f1ff4d6b-6346-4f55-9040-5a91b4e76b00 Preview",
        "EyeX": 598.07924067288991,
        "EyeY": 8764.6363015013339,
        "EyeZ": -4919.0413780378858,
        "LookX": 29.446308522674258,
        "LookY": -10706.132877193158,
        "LookZ": -409.54304015442995,
        "UpX": 0.069407139686588223,
        "UpY": 0.25166120162157535,
        "UpZ": -0.96532341138030653
      },
      "NodeType": "ExtensionNode",
      "Id": "f1ff4d6b63464f5590405a91b4e76b00",
      "Inputs": [
        {
          "Id": "843cddde5593442b858d62807eb86e51",
          "Name": "",
          "Description": "Incoming geometry objects.",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "af937a0ed0ef4d12a8b76d89c82e89db",
          "Name": "",
          "Description": "Incoming geometry objects.",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Shows a dynamic preview of geometry."
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.PerimeterCurves",
      "Id": "ffb7601b4de34322965a4e77aee82bb0",
      "Inputs": [
        {
          "Id": "d1b5412811b5446d95ac05a000ecfce2",
          "Name": "surface",
          "Description": "Autodesk.DesignScript.Geometry.Surface",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "9bfcf3c1f53b430abbc49b27b76c7482",
          "Name": "Curve[]",
          "Description": "Curve[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Return all the boundary Curves of the Surface.\n\nSurface.PerimeterCurves ( ): Curve[]"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.StartPoint",
      "Id": "a078617656214e24afac9af7414cd3ed",
      "Inputs": [
        {
          "Id": "6579ae8ffcc64435b10fef3a385098df",
          "Name": "curve",
          "Description": "Autodesk.DesignScript.Geometry.Curve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "9363a0a207194b139f0049e0dadf08b2",
          "Name": "Point",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Get the start Point along the Curve\n\nCurve.StartPoint: Point"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.EndPoint",
      "Id": "df4fdbb948784686ae9dd56614aed2f2",
      "Inputs": [
        {
          "Id": "ef150604666d4b9190e4b11a7a3cad17",
          "Name": "curve",
          "Description": "Autodesk.DesignScript.Geometry.Curve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "fca861bca50348fdabd77e79fa479ec9",
          "Name": "Point",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Get the end Point along the Curve\n\nCurve.EndPoint: Point"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ByTwoPoints@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
      "Id": "f6a1e3ff32ff426f9e09ae3d8a8e30d9",
      "Inputs": [
        {
          "Id": "f123cf3f8c8f44b6bdeddc88b241a2fc",
          "Name": "start",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "981ecc887c2e47f7b6cb30dd3b690dc8",
          "Name": "end",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "801713ff70ca4b9ab94d9b76d5d75653",
          "Name": "Vector",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Form a Vector by two end points. The result is a vector from the start to the end point.\n\nVector.ByTwoPoints (start: Point, end: Point): Vector"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "DSCore.List.ShiftIndices@var[]..[],int",
      "Id": "5e43eed8df4d4a13a3ce0b5ac2f6836c",
      "Inputs": [
        {
          "Id": "f5f2b780c9e84e908c6d3dd64026d0ba",
          "Name": "list",
          "Description": "List to be shifted.\n\nvar[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "a77546ded6ac4410bee7eccfc47a41ad",
          "Name": "amount",
          "Description": "Amount to shift indices by. If negative, indices will be shifted to the left.\n\nint",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "445f5a634ad34217949f237bf1d28b37",
          "Name": "list",
          "Description": "Shifted list.",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Shifts indices in the list to the right by the given amount.\n\nList.ShiftIndices (list: var[]..[], amount: int): var[]..[]"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
      "NodeType": "CodeBlockNode",
      "Code": "1;",
      "Id": "e2a4dcc157004c91beae16e10593c945",
      "Inputs": [],
      "Outputs": [
        {
          "Id": "d4988de231c64ed399fd7207c6e34fdd",
          "Name": "",
          "Description": "Value of expression at line 1",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Allows for DesignScript code to be authored directly"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "DSCore.List.Flatten@var[]..[],int",
      "Id": "e881f5cf94be458fa46fc17ae9f86c91",
      "Inputs": [
        {
          "Id": "470d5577a59d44d98f16afeaadee5a9c",
          "Name": "list",
          "Description": "List to flatten.\n\nvar[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "e63a6ddeeb184b1aa8502b6afb2d2d79",
          "Name": "amt",
          "Description": "Layers of nesting to remove.\n\nint\nDefault value : -1",
          "UsingDefaultValue": true,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "1d2256d6363f414486b50ee08893a44f",
          "Name": "var[]..[]",
          "Description": "var[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Flattens a nested list of lists by a certain amount.\n\nList.Flatten (list: var[]..[], amt: int = -1): var[]..[]"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Rotate@Autodesk.DesignScript.Geometry.Vector,double",
      "Id": "0ee6dea05a7e4be7a5c1d2350ff9ea83",
      "Inputs": [
        {
          "Id": "f9e4c10be9814d228d77ef6ac448881f",
          "Name": "vector",
          "Description": "Autodesk.DesignScript.Geometry.Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "901830290bdc471bbb1a87f01f84d929",
          "Name": "axis",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "1225d11f01324afdb3145c33ba1a7376",
          "Name": "degrees",
          "Description": "double\nDefault value : 0",
          "UsingDefaultValue": true,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "4f52dfba71a74d2986c42a3bc708a874",
          "Name": "Vector",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Rotates a Vector around an axis by a specified number of degrees\n\nVector.Rotate (axis: Vector, degrees: double = 0): Vector"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ZAxis",
      "Id": "07a1597051d74f789667994584303362",
      "Inputs": [],
      "Outputs": [
        {
          "Id": "b30f83fb99724da3afe850331e317421",
          "Name": "Vector",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Get the canonical Z axis Vector (0,0,1)\n\nVector.ZAxis ( ): Vector"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
      "NodeType": "CodeBlockNode",
      "Code": "(a/2)-90;\n(a/2)+90;",
      "Id": "f8cd7f1b44f2405999bc3334adcc874a",
      "Inputs": [
        {
          "Id": "617eda489a6a4f289c27e663cf6f3e46",
          "Name": "a",
          "Description": "a",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "aa6616c612ba4334bb9cea80b196a5f5",
          "Name": "",
          "Description": "Value of expression at line 1",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "5acf5e9bc26d4a90ab1fb31010b4eb79",
          "Name": "",
          "Description": "Value of expression at line 2",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Allows for DesignScript code to be authored directly"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointDirectionLength@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Vector,double",
      "Id": "bb29f99a8e044577892c17e98a72f799",
      "Inputs": [
        {
          "Id": "5cee6a02c2824c3eb4af58bd7cbf7288",
          "Name": "startPoint",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "7f2b1517af784715b1a9a2cfc75bd694",
          "Name": "direction",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "671f26c7466348518ed68803d871a7f3",
          "Name": "length",
          "Description": "double\nDefault value : 1",
          "UsingDefaultValue": true,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "2848ca491c9c424b996900b6e606651a",
          "Name": "Line",
          "Description": "Line",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Create a straight Line starting at start Point, extending in Vector direction by specified length.\n\nLine.ByStartPointDirectionLength (startPoint: Point, direction: Vector, length: double = 1): Line"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
      "NodeType": "CodeBlockNode",
      "Code": "100;",
      "Id": "016ecfd06a764f6eb6df6fdac2d666a9",
      "Inputs": [],
      "Outputs": [
        {
          "Id": "c45776e62575416c9191e8624b75fc4b",
          "Name": "",
          "Description": "Value of expression at line 1",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Allows for DesignScript code to be authored directly"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.AngleAboutAxis@Autodesk.DesignScript.Geometry.Vector,Autodesk.DesignScript.Geometry.Vector",
      "Id": "eeed3ab5df6c4cebb7f1131d6ac3c96f",
      "Inputs": [
        {
          "Id": "c9492b48cde84385960dbf01d0137746",
          "Name": "vector",
          "Description": "Autodesk.DesignScript.Geometry.Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "42f3fee87f054edcbba2b37b943ee30b",
          "Name": "otherVector",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "c44cd0b6faf04a9b802acc1fde2f611a",
          "Name": "rotationAxis",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "f16683588a9c4b5aa227b845f1fcb445",
          "Name": "double",
          "Description": "double",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Returns the angle between the two Vectors, in the range [0, 360] degrees. It uses axis of rotation to determine the direction of the angle.\n\nVector.AngleAboutAxis (otherVector: Vector, rotationAxis: Vector): double"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "<@var[]..[],var[]..[]",
      "Id": "6a85ea6462cd4a5ba07596bfc7783c24",
      "Inputs": [
        {
          "Id": "e501d6de30a442c4b6369d8acbbd5513",
          "Name": "x",
          "Description": "x value.\n\nvar[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "28917b1d6905499c8217c262efe21aef",
          "Name": "y",
          "Description": "y value.\n\nvar[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "086cf3b682314561856c148f6aacf929",
          "Name": "var[]..[]",
          "Description": "var[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "x less y?\n\n< (x: var[]..[], y: var[]..[]): var[]..[]"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
      "NodeType": "CodeBlockNode",
      "Code": "180;",
      "Id": "4f38f716942342188607668821514a77",
      "Inputs": [],
      "Outputs": [
        {
          "Id": "2d857898279644f494759f2e08f912ab",
          "Name": "",
          "Description": "Value of expression at line 1",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Allows for DesignScript code to be authored directly"
    },
    {
      "ConcreteType": "CoreNodeModels.Logic.If, CoreNodeModels",
      "NodeType": "ExtensionNode",
      "Id": "064ed1859e524f9e95e3870e9c78df71",
      "Inputs": [
        {
          "Id": "69c39e38510745e59cae3cfa146516ef",
          "Name": "test",
          "Description": "Test block",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "06eb3ccaa3ba4c938c357db67b375a22",
          "Name": "true",
          "Description": "True block",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "1c2062f99c49419f97c1fd825982b52b",
          "Name": "false",
          "Description": "False block",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "9385818f44c344f7938acc9968a55a8b",
          "Name": "result",
          "Description": "result",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Conditional statement"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.Length",
      "Id": "a69370f86e674682b59ffb40d3aa26c6",
      "Inputs": [
        {
          "Id": "d01e083ab1c440b3a8ab941d7c69c359",
          "Name": "curve",
          "Description": "Autodesk.DesignScript.Geometry.Curve",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "0c7dd65b2b3e4926a31883072a0e666d",
          "Name": "double",
          "Description": "double",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "The total arc length of the curve\n\nCurve.Length: double"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "DSCore.List.MaximumItem@var[]",
      "Id": "442a0a97b1224b65be25580b81c3022c",
      "Inputs": [
        {
          "Id": "46c79149270047faae4cf499df2c0fdc",
          "Name": "list",
          "Description": "List to take the maximum value from.\n\nvar[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "b8f6185137894f2489f820c4e98f9629",
          "Name": "max",
          "Description": "Maximum value from the list.",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Returns the maximum value from a list.\n\nList.MaximumItem (list: var[]): var[]..[]"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "Curve.IntersectAll@Autodesk.DesignScript.Geometry.Curve[]",
      "Id": "d997d7784bc341f2b04ccb7080c2db69",
      "Inputs": [
        {
          "Id": "8ae1b163a777405ca4bc22d20edcb310",
          "Name": "curves",
          "Description": "Input a list of Curves to intersect\n\nCurve[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "b8fcf3ed7a814045b8ee47771a96fe60",
          "Name": "Point[]",
          "Description": "Point[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Finds and returns all intersection points between a set of curves and highly optimised for rapid results.\r\rVisit bimorph.com/bimorph-nodes for support\n\nCurve.IntersectAll (curves: Curve[]): Point[]"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "DSCore.List.FirstIndexOf@var[]..[],var",
      "Id": "d2ffbff9227440fcbc719969b22d8920",
      "Inputs": [
        {
          "Id": "a352a5953d324f039410178aa589c01c",
          "Name": "list",
          "Description": "List to search in. If this argument is null, -1 is returned.\n\nvar[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "35acf2054a44476088a1e9572b9e043c",
          "Name": "item",
          "Description": "Item to look for.\n\nvar",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "9cc191dd30554dc3bfd2777aff4cbe9f",
          "Name": "int",
          "Description": "Zero-based index of the item in the list, or -1 if it is not found.",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Given an item, returns the zero-based index of its first occurrence in the list. If the item cannot be found in the list, -1 is returned.\n\nList.FirstIndexOf (list: var[]..[], item: var): int"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
      "NodeType": "CodeBlockNode",
      "Code": "true;",
      "Id": "164bf648aa4b430394a7d65a1a0793b9",
      "Inputs": [],
      "Outputs": [
        {
          "Id": "ec5a137a33824046ac45cab5e876e3f9",
          "Name": "",
          "Description": "Value of expression at line 1",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Allows for DesignScript code to be authored directly"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "DSCore.List.ShiftIndices@var[]..[],int",
      "Id": "843ab18b729c45fe9a8303b83fa50b1f",
      "Inputs": [
        {
          "Id": "0663007c1ea840ae9a6467b4f6c193a6",
          "Name": "list",
          "Description": "List to be shifted.\n\nvar[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "5285665fc0294335b0ae1e6802464390",
          "Name": "amount",
          "Description": "Amount to shift indices by. If negative, indices will be shifted to the left.\n\nint",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "370a11a5cb8a42f69a375fabafd8cf79",
          "Name": "list",
          "Description": "Shifted list.",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Shifts indices in the list to the right by the given amount.\n\nList.ShiftIndices (list: var[]..[], amount: int): var[]..[]"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Function, DynamoCore",
      "FunctionSignature": "fda2ac23-82d4-43fe-9138-75255506e53e",
      "FunctionType": "Graph",
      "NodeType": "FunctionNode",
      "Id": "043a7c435ee84a9592220a68af1fbfe7",
      "Inputs": [
        {
          "Id": "d20c30928c75414ba21941593b93544c",
          "Name": "basePoint1",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "fe60e48384a84ffcad5ca6af2ffaa02f",
          "Name": "vector1",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "a903ca3cf9b041b582626e6d746c3c0b",
          "Name": "basePoint2",
          "Description": "Point",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "e887340c27a346ada326a5f8af112c4e",
          "Name": "vector2",
          "Description": "Vector",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "88801b54275a4a2199bad95d3d3a8023",
          "Name": "VectorsIntersect",
          "Description": "return value",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "c426b65eb86446a68e93698a3a3d9337",
          "Name": "ClosestPointOnVector1",
          "Description": "return value",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "a70bf3fdcfa34574834398536aae5e6f",
          "Name": "ClosestPointOnVector2",
          "Description": "return value",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "51502e7d84664ea9b1722ed9d8468102",
          "Name": "AveragePoint",
          "Description": "return value",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Determines if two vectors intersect and returns the closest points of intersection on both vectors."
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "DSCore.List.ShiftIndices@var[]..[],int",
      "Id": "78ee371db8c4421681a6ff7fb9e2bf24",
      "Inputs": [
        {
          "Id": "57bc9641361e40c48afd373a81ee07c8",
          "Name": "list",
          "Description": "List to be shifted.\n\nvar[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "04a966c95324434483e821e57d95b189",
          "Name": "amount",
          "Description": "Amount to shift indices by. If negative, indices will be shifted to the left.\n\nint",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "e219325b1703446d9e6d813c59065280",
          "Name": "list",
          "Description": "Shifted list.",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Shifts indices in the list to the right by the given amount.\n\nList.ShiftIndices (list: var[]..[], amount: int): var[]..[]"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
      "NodeType": "CodeBlockNode",
      "Code": "1;",
      "Id": "a9ce0ee795be4e17841d5f910e10b067",
      "Inputs": [],
      "Outputs": [
        {
          "Id": "ce55187ae943472b84f4e4e8ad7a94bd",
          "Name": "",
          "Description": "Value of expression at line 1",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Disabled",
      "Description": "Allows for DesignScript code to be authored directly"
    },
    {
      "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
      "NodeType": "FunctionNode",
      "FunctionSignature": "DSCore.List.ShiftIndices@var[]..[],int",
      "Id": "1759804ed7b84bcca3fd9787b6c0aee4",
      "Inputs": [
        {
          "Id": "cfe290ebfc694b52ab4570e2c6d4c765",
          "Name": "list",
          "Description": "List to be shifted.\n\nvar[]..[]",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        },
        {
          "Id": "eb298f537b184efa93ab0d6f5f5e12d0",
          "Name": "amount",
          "Description": "Amount to shift indices by. If negative, indices will be shifted to the left.\n\nint",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Outputs": [
        {
          "Id": "d3cb6a7db66f4e0abdf26f7abc2b44cb",
          "Name": "list",
          "Description": "Shifted list.",
          "UsingDefaultValue": false,
          "Level": 2,
          "UseLevels": false,
          "KeepListStructure": false
        }
      ],
      "Replication": "Auto",
      "Description": "Shifts indices in the list to the right by the given amount.\n\nList.ShiftIndices (list: var[]..[], amount: int): var[]..[]"
    }
  ],
  "Connectors": [
    {
      "Start": "757424f5d7664610a73b98a576c2d798",
      "End": "7104a9b9f9cc42cca1db13f023d846a4",
      "Id": "d86459dbb0774a35ba5054b9c770a405"
    },
    {
      "Start": "5a2822c551264949a8208819fba96962",
      "End": "3f10a82d60a44268a791b044e34c4636",
      "Id": "40a57944ef0d4decb68ce27d9d5ec6be"
    },
    {
      "Start": "7272ba43a8b142b1bee8a681c11447cc",
      "End": "e14d185041724fe6907b1a95e911aa62",
      "Id": "eaf1e65130ac47db925ba86225920494"
    },
    {
      "Start": "7272ba43a8b142b1bee8a681c11447cc",
      "End": "b6dfd3807cd54c69954135444e067a52",
      "Id": "22dcb36feedf4b17971f5e4e214ec062"
    },
    {
      "Start": "168b79bcedd54cc6b6b7880db4a1928c",
      "End": "2eb1c0085c6f43f7baf42f2d47338070",
      "Id": "b9c628c84e8d410690f10255b0ac3983"
    },
    {
      "Start": "826b15e701844c3e8a9bad92d2722d80",
      "End": "165bef78711044fc9d040a16bf79e66a",
      "Id": "8af1958c212542b2ac8c35603d9e3047"
    },
    {
      "Start": "f31b1f3f8e3945b3864e0dc58779105a",
      "End": "5b1358582af540ce9409cc71863c8b43",
      "Id": "d340203a17174c7fb839d0bc91aec13a"
    },
    {
      "Start": "f31b1f3f8e3945b3864e0dc58779105a",
      "End": "abf1b0704d0e46e8a681d536219bcf2a",
      "Id": "1983ef2237174259a86254dc79ff52a5"
    },
    {
      "Start": "f31b1f3f8e3945b3864e0dc58779105a",
      "End": "d3eb058400974f20ab388ff7f3906464",
      "Id": "182ceaf5272f4f179a703a7c38f308ae"
    },
    {
      "Start": "f31b1f3f8e3945b3864e0dc58779105a",
      "End": "843cddde5593442b858d62807eb86e51",
      "Id": "019fa90d83554e9c92ca0a069b82ead0"
    },
    {
      "Start": "4ed8e38c4fba4d42af07d9bd94ca1811",
      "End": "d1b5412811b5446d95ac05a000ecfce2",
      "Id": "ab75f9eaaafd432fb5e730fecbe4d63d"
    },
    {
      "Start": "2d7d7832732040c9872f1b59d7b1bea0",
      "End": "c942035a6682464688490fe8e01c3391",
      "Id": "f37c1ff3e7e04472834cfa4210f7648b"
    },
    {
      "Start": "7dc500e1d840484ea7a2d231b52ce30f",
      "End": "d3a9322f6a0a402b9132fbde3b3c4250",
      "Id": "9440938412204932ac13e1c811cd5a53"
    },
    {
      "Start": "7dc500e1d840484ea7a2d231b52ce30f",
      "End": "b91adcaedf2f4518a046741a4b054803",
      "Id": "920e841126fc4628b643dac540f17740"
    },
    {
      "Start": "302992a0e35e40c2949152e1103538b6",
      "End": "00d093d9f45845128ec45973984c14d9",
      "Id": "7adb0879b220445db5123ae15f11cdf9"
    },
    {
      "Start": "5a6f7df91f9840e2bbe435f0282475f2",
      "End": "bdee61bb614a41c7aaf305ed08a35896",
      "Id": "d2a3eea8180a4fdfa4fe7d1497c749b6"
    },
    {
      "Start": "5a6f7df91f9840e2bbe435f0282475f2",
      "End": "4133cd740c164364b0a0b9db113ede77",
      "Id": "751a992fb6da45e8ae791d1c69b6dfa3"
    },
    {
      "Start": "977528c72f074b78b0a246681f3c09c3",
      "End": "1135485cb87f47ebb960a28be4f449a1",
      "Id": "644690ce6b8447e69566d6579cf1fc69"
    },
    {
      "Start": "76561074578d4d5093d867a46aca0363",
      "End": "de2526709a9f4fd99afe9ec73620c0c1",
      "Id": "aa271f5f08c948c4823e0e8613aae405"
    },
    {
      "Start": "61e731d8e285409eaccc05cea55ff1f4",
      "End": "2fbf2299d3a1465eb0cfa35ee1510d9f",
      "Id": "afecff1300054fd5a23544e03c879adb"
    },
    {
      "Start": "456804ed18644dad8a763de56379c146",
      "End": "47d95c2000ec4a88b24dc0c6ccd0d7ae",
      "Id": "e3a0868d992b42239563f23adb452179"
    },
    {
      "Start": "578cb4190d6a4b8ca46347b4e2b4bd09",
      "End": "659fd780313a479f9075f4211be7e072",
      "Id": "571713eab1494e14a679da45935a4d49"
    },
    {
      "Start": "578cb4190d6a4b8ca46347b4e2b4bd09",
      "End": "03462d2ae6c444c08ff48555d738a132",
      "Id": "7e2398900bad46fcbadd2f32c388f2f2"
    },
    {
      "Start": "f56d632ab0154ef5be8d29f61a1a3ce6",
      "End": "5904b6937421485fa5e66324f062e45a",
      "Id": "cdd0277134ee4cda9493d56b63be014a"
    },
    {
      "Start": "723e8c450e0f4f068b1f0f78efadf441",
      "End": "66451447735d49aeaf8c6687de749580",
      "Id": "f227d57bb25d41d6b3aa747b3b1ab013"
    },
    {
      "Start": "cb9a551106924f5e912dfff46884a3d8",
      "End": "bedea273ab404c24b3fad4a8fe89d800",
      "Id": "931e6e5f611d4ffa964f581f6bda40f6"
    },
    {
      "Start": "f3d5b44b273b40618fe8b6581a94b401",
      "End": "5c65b1b670594e20b127be66676364a5",
      "Id": "d6efc77695b8416982072d2578404a56"
    },
    {
      "Start": "20935ead41e94ad7b2807b3ceb133f11",
      "End": "34e78b56ae604955887fc859bf235910",
      "Id": "c36aee99615941a0988638bb70a688a1"
    },
    {
      "Start": "9bfcf3c1f53b430abbc49b27b76c7482",
      "End": "470d5577a59d44d98f16afeaadee5a9c",
      "Id": "29e7cc814a184cbb8d1a12269bee6b96"
    },
    {
      "Start": "9363a0a207194b139f0049e0dadf08b2",
      "End": "f123cf3f8c8f44b6bdeddc88b241a2fc",
      "Id": "c40e9b3eb83d4ed18e28013d427f3129"
    },
    {
      "Start": "9363a0a207194b139f0049e0dadf08b2",
      "End": "5cee6a02c2824c3eb4af58bd7cbf7288",
      "Id": "1d715b18d25142389b5fc62d79f5db6f"
    },
    {
      "Start": "9363a0a207194b139f0049e0dadf08b2",
      "End": "d20c30928c75414ba21941593b93544c",
      "Id": "1a83eab695f54c23a40a5f9465ce1792"
    },
    {
      "Start": "9363a0a207194b139f0049e0dadf08b2",
      "End": "cfe290ebfc694b52ab4570e2c6d4c765",
      "Id": "93213b4a33d74674806c4d6f5f544068"
    },
    {
      "Start": "fca861bca50348fdabd77e79fa479ec9",
      "End": "981ecc887c2e47f7b6cb30dd3b690dc8",
      "Id": "1046faf5e9f8459b82c0333f2ab97926"
    },
    {
      "Start": "801713ff70ca4b9ab94d9b76d5d75653",
      "End": "f5f2b780c9e84e908c6d3dd64026d0ba",
      "Id": "efd0eb39fdbd45fe86f9826a1c0c22ba"
    },
    {
      "Start": "801713ff70ca4b9ab94d9b76d5d75653",
      "End": "f9e4c10be9814d228d77ef6ac448881f",
      "Id": "24bc136796c84b2cbeb408e8e7bda0b5"
    },
    {
      "Start": "801713ff70ca4b9ab94d9b76d5d75653",
      "End": "c9492b48cde84385960dbf01d0137746",
      "Id": "7537fc2ddf81482f9a4cdcc84ae9b006"
    },
    {
      "Start": "445f5a634ad34217949f237bf1d28b37",
      "End": "42f3fee87f054edcbba2b37b943ee30b",
      "Id": "34654d52da5e4755b1a331848aa0f631"
    },
    {
      "Start": "d4988de231c64ed399fd7207c6e34fdd",
      "End": "a77546ded6ac4410bee7eccfc47a41ad",
      "Id": "cef38924b96f4dd1a19c1c8860159667"
    },
    {
      "Start": "1d2256d6363f414486b50ee08893a44f",
      "End": "ef150604666d4b9190e4b11a7a3cad17",
      "Id": "1a200e5bff174baa88d57bfc7988dd1c"
    },
    {
      "Start": "1d2256d6363f414486b50ee08893a44f",
      "End": "6579ae8ffcc64435b10fef3a385098df",
      "Id": "afe6a8eb7e444848bbb35ee5bcb357cb"
    },
    {
      "Start": "1d2256d6363f414486b50ee08893a44f",
      "End": "d01e083ab1c440b3a8ab941d7c69c359",
      "Id": "981de00c99ae41609d1319eb0afa9a26"
    },
    {
      "Start": "4f52dfba71a74d2986c42a3bc708a874",
      "End": "7f2b1517af784715b1a9a2cfc75bd694",
      "Id": "564458805de7483da49a02aae26aa58a"
    },
    {
      "Start": "4f52dfba71a74d2986c42a3bc708a874",
      "End": "57bc9641361e40c48afd373a81ee07c8",
      "Id": "052285cb637446b8b1c5193e3b3248e6"
    },
    {
      "Start": "4f52dfba71a74d2986c42a3bc708a874",
      "End": "fe60e48384a84ffcad5ca6af2ffaa02f",
      "Id": "da966f7ce18a46a3aa2ebfd119e9bce7"
    },
    {
      "Start": "b30f83fb99724da3afe850331e317421",
      "End": "901830290bdc471bbb1a87f01f84d929",
      "Id": "e4e2d68bbaf940a29018f38905b882c5"
    },
    {
      "Start": "b30f83fb99724da3afe850331e317421",
      "End": "c44cd0b6faf04a9b802acc1fde2f611a",
      "Id": "8d6804f9bfa6450d9cb154c3a727a918"
    },
    {
      "Start": "aa6616c612ba4334bb9cea80b196a5f5",
      "End": "06eb3ccaa3ba4c938c357db67b375a22",
      "Id": "e3f07c67cea444798cbb3304269b6bd8"
    },
    {
      "Start": "5acf5e9bc26d4a90ab1fb31010b4eb79",
      "End": "1c2062f99c49419f97c1fd825982b52b",
      "Id": "5e2ffad8233a4e01a985549cdf5f7833"
    },
    {
      "Start": "f16683588a9c4b5aa227b845f1fcb445",
      "End": "28917b1d6905499c8217c262efe21aef",
      "Id": "44917bf3943e4a55b1f50370c98ba825"
    },
    {
      "Start": "f16683588a9c4b5aa227b845f1fcb445",
      "End": "617eda489a6a4f289c27e663cf6f3e46",
      "Id": "ae5545e5660844b7b7168941940adebe"
    },
    {
      "Start": "086cf3b682314561856c148f6aacf929",
      "End": "69c39e38510745e59cae3cfa146516ef",
      "Id": "8d26b450c53641ecab37fa56e6546b6d"
    },
    {
      "Start": "086cf3b682314561856c148f6aacf929",
      "End": "a352a5953d324f039410178aa589c01c",
      "Id": "abbf83a4a6d84e8c9ba7303057201666"
    },
    {
      "Start": "2d857898279644f494759f2e08f912ab",
      "End": "e501d6de30a442c4b6369d8acbbd5513",
      "Id": "71053b96bb234c89ade763d9bac3174c"
    },
    {
      "Start": "9385818f44c344f7938acc9968a55a8b",
      "End": "1225d11f01324afdb3145c33ba1a7376",
      "Id": "16c56a18d49a4276beceee5ba9bd4a23"
    },
    {
      "Start": "0c7dd65b2b3e4926a31883072a0e666d",
      "End": "46c79149270047faae4cf499df2c0fdc",
      "Id": "576dba0e634b4332b0601ef23933e90a"
    },
    {
      "Start": "b8f6185137894f2489f820c4e98f9629",
      "End": "671f26c7466348518ed68803d871a7f3",
      "Id": "1acfcfb7009c41aab3fb746d8a430900"
    },
    {
      "Start": "9cc191dd30554dc3bfd2777aff4cbe9f",
      "End": "5285665fc0294335b0ae1e6802464390",
      "Id": "f69e0caf048043869594efbdcd6fa844"
    },
    {
      "Start": "ec5a137a33824046ac45cab5e876e3f9",
      "End": "35acf2054a44476088a1e9572b9e043c",
      "Id": "6a2632af47df4583a778611ebd49b421"
    },
    {
      "Start": "370a11a5cb8a42f69a375fabafd8cf79",
      "End": "8ae1b163a777405ca4bc22d20edcb310",
      "Id": "6186329c2a3a40209134418fb873fe29"
    },
    {
      "Start": "e219325b1703446d9e6d813c59065280",
      "End": "e887340c27a346ada326a5f8af112c4e",
      "Id": "407e194a9a994487854d43a523849992"
    },
    {
      "Start": "ce55187ae943472b84f4e4e8ad7a94bd",
      "End": "04a966c95324434483e821e57d95b189",
      "Id": "00af5b6f70e84aa6b86dec2dd0a883fd"
    },
    {
      "Start": "ce55187ae943472b84f4e4e8ad7a94bd",
      "End": "eb298f537b184efa93ab0d6f5f5e12d0",
      "Id": "c68e491dd31b43e9abd60ccd6378411e"
    },
    {
      "Start": "d3cb6a7db66f4e0abdf26f7abc2b44cb",
      "End": "a903ca3cf9b041b582626e6d746c3c0b",
      "Id": "b8fcbf2a718d4e62a949da8add10c052"
    }
  ],
  "Dependencies": [
    "fda2ac23-82d4-43fe-9138-75255506e53e"
  ],
  "Bindings": [],
  "View": {
    "Dynamo": {
      "ScaleFactor": 1.0,
      "HasRunWithoutCrash": true,
      "IsVisibleInDynamoLibrary": true,
      "Version": "2.0.2.6826",
      "RunType": "Automatic",
      "RunPeriod": "1000"
    },
    "Camera": {
      "Name": "Background Preview",
      "EyeX": 2436.5646944945374,
      "EyeY": 8921.0122972569479,
      "EyeZ": -296.38016351079159,
      "LookX": -1037.6742936368264,
      "LookY": -10229.468444137397,
      "LookZ": -1026.4832903894021,
      "UpX": -0.66590833282942585,
      "UpY": 0.35020738125947304,
      "UpZ": -0.65872671296960372
    },
    "NodeViews": [
      {
        "ShowGeometry": true,
        "Name": "Solid.BySweep",
        "Id": "6a96289e103d4aac80d52405c186bc0b",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2812.8882303167834,
        "Y": 1067.5929831360802
      },
      {
        "ShowGeometry": true,
        "Name": "Line.ByStartPointEndPoint",
        "Id": "effcf9d70542437980490b95efeee83b",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 713.85459940652822,
        "Y": -76.255192878338221
      },
      {
        "ShowGeometry": true,
        "Name": "Point.ByCoordinates",
        "Id": "aa8b9fec788448909f7e7215d73aafbb",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 230.28189910979222,
        "Y": -149.3768545994065
      },
      {
        "ShowGeometry": true,
        "Name": "Code Block",
        "Id": "0e0398fa8f5e4f40ba2376c0a346c4d7",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": -117.49567007407649,
        "Y": -79.623505068469626
      },
      {
        "ShowGeometry": true,
        "Name": "List.ShiftIndices",
        "Id": "1a04d0d8ff8144bc91fa2f06a6ae61f2",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 417.28189910979222,
        "Y": 63.6231454005935
      },
      {
        "ShowGeometry": true,
        "Name": "Code Block",
        "Id": "bd9ca2a27b4b4dc88c84c9f1f16354ec",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 234.28189910979222,
        "Y": 110.6231454005935
      },
      {
        "ShowGeometry": true,
        "Name": "Curve.Join",
        "Id": "1a871ccd92394bd38c12f3fdb151aa4b",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 1178.0623145400591,
        "Y": -76.57566765578639
      },
      {
        "ShowGeometry": true,
        "Name": "PolyCurve.ByJoinedCurves",
        "Id": "08792ca9be01478aae2600a15e6586d8",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 1015.5788748644932,
        "Y": 186.78105485214343
      },
      {
        "ShowGeometry": true,
        "Name": "Surface.PerimeterCurves",
        "Id": "fc8bfefb37c64fe1a8b8db7020583ffa",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 201.27788326050864,
        "Y": 1650.3029651453312
      },
      {
        "ShowGeometry": false,
        "Name": "Select Face",
        "Id": "e5ff430bb9eb4f99bf5c43d288662235",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": -201.71793085100467,
        "Y": 1834.572302270539
      },
      {
        "ShowGeometry": true,
        "Name": "Solid.Volume",
        "Id": "a562b5f1639c4b1590e2576a67450f46",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 3175.0982327095589,
        "Y": 1234.946157103908
      },
      {
        "ShowGeometry": true,
        "Name": "Code Block",
        "Id": "48cb97c85683473c85b467a0a54baa66",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 823.94481303794555,
        "Y": 226.6331121772327
      },
      {
        "ShowGeometry": true,
        "Name": "Curve.StartPoint",
        "Id": "510b11f76efb4e2fb2e7806bb3d089cf",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 167.74425638809453,
        "Y": 1242.5463682816599
      },
      {
        "ShowGeometry": true,
        "Name": "Line.ByStartPointDirectionLength",
        "Id": "8b035db7ce45448cbaa4d91a01db7812",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 1214.5754268624191,
        "Y": 1214.952325700214
      },
      {
        "ShowGeometry": true,
        "Name": "Code Block",
        "Id": "2e31b046d2124d3e8241e207cd2ffb25",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 314.30977597276757,
        "Y": 962.31307625269369
      },
      {
        "ShowGeometry": true,
        "Name": "Curve.NormalAtParameter",
        "Id": "f06ff2debcdd4fed9fc3c274602a1b10",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 145.90343275073565,
        "Y": 1368.4488969669917
      },
      {
        "ShowGeometry": true,
        "Name": "Line.ByStartPointDirectionLength",
        "Id": "2237f54cebad4ed39c6a42ac7b70d1da",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 1253.3424474972571,
        "Y": 1416.5408330013709
      },
      {
        "ShowGeometry": true,
        "Name": "Point.Add",
        "Id": "98cf048209f3483ca6651c2725cc09fd",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 770.64233848186,
        "Y": 1292.3344424372383
      },
      {
        "ShowGeometry": true,
        "Name": "Vector.Rotate",
        "Id": "e9c6b9d7752b423892acb5a461e972c1",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 650.78146638813837,
        "Y": 1671.623119028977
      },
      {
        "ShowGeometry": true,
        "Name": "Vector.ZAxis",
        "Id": "91adc31853fa4476837793dca7a6b8ae",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 190.74615485472879,
        "Y": 1557.906525166786
      },
      {
        "ShowGeometry": true,
        "Name": "Vector.Scale",
        "Id": "babe94c0ee6344a2b1d0606f957128c4",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 441.88377311759166,
        "Y": 1387.9375343373622
      },
      {
        "ShowGeometry": true,
        "Name": "Code Block",
        "Id": "1209924d92ad417e93253724deb3c6e7",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 342.99521137548209,
        "Y": 1487.0320216402586
      },
      {
        "ShowGeometry": true,
        "Name": "PolyCurve.CloseWithLine",
        "Id": "7d03ccab261a41dea2da977ba27bebb5",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 984.17229526443248,
        "Y": 1542.9421971279951
      },
      {
        "ShowGeometry": true,
        "Name": "PolyCurve.ByJoinedCurves",
        "Id": "9876f3b35acf4f618cf9dcd534280e7b",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2268.0142840507133,
        "Y": 1358.5678460456993
      },
      {
        "ShowGeometry": true,
        "Name": "List.Transpose",
        "Id": "ca9b6bb22c59400690d7848477d2898c",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 1970.9566820134505,
        "Y": 1377.3868896126639
      },
      {
        "ShowGeometry": true,
        "Name": "List.Join",
        "Id": "8c4919e171ba4ca39a313acf8d7ba243",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 1683.5496053263419,
        "Y": 1319.0920580204674
      },
      {
        "ShowGeometry": true,
        "Name": "PolyCurve.CloseWithLine",
        "Id": "fc784e9384eb48d8bc835ccf5ab45cd3",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2642.1857612471367,
        "Y": 1372.1247836252799
      },
      {
        "ShowGeometry": true,
        "Name": "Watch 3D",
        "Id": "f1ff4d6b63464f5590405a91b4e76b00",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 1107.2667270928309,
        "Y": 1653.5430039355749
      },
      {
        "ShowGeometry": true,
        "Name": "Surface.PerimeterCurves",
        "Id": "ffb7601b4de34322965a4e77aee82bb0",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 64.080526339480286,
        "Y": 2693.0769752685164
      },
      {
        "ShowGeometry": true,
        "Name": "Curve.StartPoint",
        "Id": "a078617656214e24afac9af7414cd3ed",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 679.80201626418955,
        "Y": 2482.3810343746923
      },
      {
        "ShowGeometry": true,
        "Name": "Curve.EndPoint",
        "Id": "df4fdbb948784686ae9dd56614aed2f2",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 673.19026790950011,
        "Y": 2737.0845617895566
      },
      {
        "ShowGeometry": true,
        "Name": "Vector.ByTwoPoints",
        "Id": "f6a1e3ff32ff426f9e09ae3d8a8e30d9",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 948.88245185925189,
        "Y": 2642.1248604035541
      },
      {
        "ShowGeometry": true,
        "Name": "List.ShiftIndices",
        "Id": "5e43eed8df4d4a13a3ce0b5ac2f6836c",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 1324.931004103056,
        "Y": 2731.9315222526161
      },
      {
        "ShowGeometry": true,
        "Name": "Code Block",
        "Id": "e2a4dcc157004c91beae16e10593c945",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 1191.3288525283488,
        "Y": 2857.71956558862
      },
      {
        "ShowGeometry": true,
        "Name": "List.Flatten",
        "Id": "e881f5cf94be458fa46fc17ae9f86c91",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 377.08455187493848,
        "Y": 2674.8912783357996
      },
      {
        "ShowGeometry": true,
        "Name": "Vector.Rotate",
        "Id": "0ee6dea05a7e4be7a5c1d2350ff9ea83",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2558.331478614135,
        "Y": 2222.1256579601622
      },
      {
        "ShowGeometry": true,
        "Name": "Vector.ZAxis",
        "Id": "07a1597051d74f789667994584303362",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 1076.9230569333288,
        "Y": 2358.0060754535225
      },
      {
        "ShowGeometry": true,
        "Name": "Code Block",
        "Id": "f8cd7f1b44f2405999bc3334adcc874a",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2016.7625554516185,
        "Y": 2659.0349080788515
      },
      {
        "ShowGeometry": false,
        "Name": "Line.ByStartPointDirectionLength",
        "Id": "bb29f99a8e044577892c17e98a72f799",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2817.9713619715872,
        "Y": 3004.431626518764
      },
      {
        "ShowGeometry": true,
        "Name": "Code Block",
        "Id": "016ecfd06a764f6eb6df6fdac2d666a9",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2089.0,
        "Y": 1910.0
      },
      {
        "ShowGeometry": true,
        "Name": "Vector.AngleAboutAxis",
        "Id": "eeed3ab5df6c4cebb7f1131d6ac3c96f",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 1580.7972811162435,
        "Y": 2661.3892114377768
      },
      {
        "ShowGeometry": true,
        "Name": "<",
        "Id": "6a85ea6462cd4a5ba07596bfc7783c24",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2014.1988666847121,
        "Y": 2502.3595042623442
      },
      {
        "ShowGeometry": true,
        "Name": "Code Block",
        "Id": "4f38f716942342188607668821514a77",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 1776.0,
        "Y": 2386.0
      },
      {
        "ShowGeometry": true,
        "Name": "If",
        "Id": "064ed1859e524f9e95e3870e9c78df71",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2364.3120144788591,
        "Y": 2500.0148491720652
      },
      {
        "ShowGeometry": true,
        "Name": "Curve.Length",
        "Id": "a69370f86e674682b59ffb40d3aa26c6",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 833.09502183541349,
        "Y": 3257.1688487556271
      },
      {
        "ShowGeometry": true,
        "Name": "List.MaximumItem",
        "Id": "442a0a97b1224b65be25580b81c3022c",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 1108.5848152162712,
        "Y": 3250.0204401215296
      },
      {
        "ShowGeometry": true,
        "Name": "Curve.IntersectAll",
        "Id": "d997d7784bc341f2b04ccb7080c2db69",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 3620.7579319531897,
        "Y": 2808.6063152024349
      },
      {
        "ShowGeometry": true,
        "Name": "List.FirstIndexOf",
        "Id": "d2ffbff9227440fcbc719969b22d8920",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2374.0578854356322,
        "Y": 2731.6274263206019
      },
      {
        "ShowGeometry": true,
        "Name": "Code Block",
        "Id": "164bf648aa4b430394a7d65a1a0793b9",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2035.0,
        "Y": 2818.0
      },
      {
        "ShowGeometry": true,
        "Name": "List.ShiftIndices",
        "Id": "843ab18b729c45fe9a8303b83fa50b1f",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 3323.0884844912721,
        "Y": 2896.0388245709305
      },
      {
        "ShowGeometry": true,
        "Name": "Vector.IntersectWithVector",
        "Id": "043a7c435ee84a9592220a68af1fbfe7",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 3290.1759159015173,
        "Y": 2198.3704460268932
      },
      {
        "ShowGeometry": true,
        "Name": "List.ShiftIndices",
        "Id": "78ee371db8c4421681a6ff7fb9e2bf24",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2945.4332183035785,
        "Y": 2435.8706430817242
      },
      {
        "ShowGeometry": true,
        "Name": "Code Block",
        "Id": "a9ce0ee795be4e17841d5f910e10b067",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2638.0,
        "Y": 2452.0
      },
      {
        "ShowGeometry": true,
        "Name": "List.ShiftIndices",
        "Id": "1759804ed7b84bcca3fd9787b6c0aee4",
        "IsSetAsInput": false,
        "IsSetAsOutput": false,
        "Excluded": false,
        "X": 2932.9185134147838,
        "Y": 2554.7603395252763
      }
    ],
    "Annotations": [
      {
        "Id": "85dba266cebb4ef1b4d60e6877ddbbeb",
        "Title": "Start with a convex poly",
        "Nodes": [
          "843ab18b729c45fe9a8303b83fa50b1f"
        ],
        "Left": 3313.0884844912721,
        "Top": 2800.0388245709305,
        "Width": 204.0,
        "Height": 215.0,
        "FontSize": 36.0,
        "InitialTop": 2896.0388245709305,
        "InitialHeight": 149.0,
        "TextblockHeight": 86.0,
        "Background": "#FFC1D676"
      },
      {
        "Id": "ebe748a7c4ec4a81987b702b5bb2000d",
        "Title": "All curves",
        "Nodes": [
          "e881f5cf94be458fa46fc17ae9f86c91"
        ],
        "Left": 367.08455187493848,
        "Top": 2621.8912783357996,
        "Width": 206.0,
        "Height": 172.0,
        "FontSize": 36.0,
        "InitialTop": 2674.8912783357996,
        "InitialHeight": 149.0,
        "TextblockHeight": 43.0,
        "Background": "#FFC1D676"
      }
    ],
    "X": -2543.9300448223694,
    "Y": -1474.9911024726496,
    "Zoom": 0.92926906309292123
  }
}