From ba1ec608bf6c81c2f2ce5c22654524c080a52576 Mon Sep 17 00:00:00 2001 From: Chloepeg Date: Tue, 30 Jun 2026 09:53:08 +0100 Subject: [PATCH 1/3] Add definition folder and dyf add a Definitions folder for custom node .dyf files, similar to how templates are already shipped from doc/distrib/Templates. The new Curve_Validate.dyf file is copied into the build output definitions folder, and Dynamo now includes that shipped folder when scanning for custom node definitions at startup. DynamoCore.csproj now treats doc/distrib/Definitions as a source folder for shipped custom node definitions and copies it to the runtime definitions folder. PathManager.DefinitionDirectories now includes the shipped definitions folder if it exists, while keeping the existing user/package definition paths unchanged. The related test now allows the extra shipped definitions path when that folder is present. --- doc/distrib/Definitions/Curve_Validate.dyf | 2523 +++++++++++++++++ src/DynamoCore/Configuration/PathManager.cs | 14 +- src/DynamoCore/DynamoCore.csproj | 2 + .../PackageManagerTests/PackageLoaderTests.cs | 8 +- 4 files changed, 2545 insertions(+), 2 deletions(-) create mode 100644 doc/distrib/Definitions/Curve_Validate.dyf diff --git a/doc/distrib/Definitions/Curve_Validate.dyf b/doc/distrib/Definitions/Curve_Validate.dyf new file mode 100644 index 00000000000..742e8d472d1 --- /dev/null +++ b/doc/distrib/Definitions/Curve_Validate.dyf @@ -0,0 +1,2523 @@ +{ + "Uuid": "53ada2b0-5178-45ab-9346-72cb13065dfc", + "IsCustomNode": true, + "Category": "Standards.Curve", + "Description": "Validates curve geometry by checking nulls, type, length tolerance, and optional closure. Returns valid/invalid curves, boolean mask, and failure reasons.", + "Name": "Curve_Validate", + "ElementResolver": { + "ResolutionMap": {} + }, + "Inputs": [], + "Outputs": [], + "Nodes": [ + { + "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", + "ElementResolver": null, + "Symbol": " // Curves that failed validation\r\n // These should not be used for modelling\r\n invalidCurves : var[]..[]", + "Id": "374c7e6c03db439c91a377e3f2842d01", + "NodeType": "OutputNode", + "Inputs": [ + { + "Id": "715f107ff96e439bb8cb53fc760d5101", + "Name": "", + "Description": "Output Data", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [], + "Replication": "Disabled", + "Description": "A function output, use with custom nodes" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", + "ElementResolver": null, + "Symbol": " // Curves that passed all validation checks\r\n // These are safe to use for modelling and automation\r\n validCurves : var[]..[]", + "Id": "5bb2a370018247d6b29e9de87fa36323", + "NodeType": "OutputNode", + "Inputs": [ + { + "Id": "b4a49eb285584851aafa6022727a209a", + "Name": "", + "Description": "Output Data", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [], + "Replication": "Disabled", + "Description": "A function output, use with custom nodes" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", + "Parameter": { + "Name": "minLength", + "TypeName": "double", + "TypeRank": 0, + "DefaultValue": "0.01", + "Description": " Minimum allowed curve length\nCurves shorter than this value will be marked invalid" + }, + "Id": "65cf7f4a00b84589bb1ab75c87ca2259", + "NodeType": "InputNode", + "Inputs": [], + "Outputs": [ + { + "Id": "5897fa14632442ce931387a588e52667", + "Name": "", + "Description": "Input Data", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", + "Parameter": { + "Name": "requireClosed", + "TypeName": "bool", + "TypeRank": 0, + "DefaultValue": "false", + "Description": "Closed rule\ntrue = closed curves allowed\nfalse = open curves allowed" + }, + "Id": "01aea9183a734898b9d37e5efadd0919", + "NodeType": "InputNode", + "Inputs": [], + "Outputs": [ + { + "Id": "84a142d57f224411b5b2986e11bda055", + "Name": "", + "Description": "Input Data", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "Id": "32d1dafa69ea416ba20e25499fbe803e", + "NodeType": "FunctionNode", + "Inputs": [ + { + "Id": "b13fe90be86d417083baa7e95b2bff9c", + "Name": "list", + "Description": "List to filter.\n\nvar[]..[]", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "ff39af4dca4c42f8a027febedfc94ec2", + "Name": "mask", + "Description": "List of booleans representing a mask.\n\nvar[]..[]", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "9f8d4f2ae255496ea1668ab5eb7959a8", + "Name": "in", + "Description": "Items whose mask index is true.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "f64703916aa24177b131ab6bf92e7a83", + "Name": "out", + "Description": "Items whose mask index is false.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "FunctionSignature": "DSCore.List.FilterByBoolMask@var[]..[],var[]..[]", + "Replication": "Auto", + "Description": "Filters a sequence by looking up corresponding indices in a separate list of booleans.\n\nList.FilterByBoolMask (list: var[]..[], mask: var[]..[]): var[]..[]" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "Id": "818ac1db64db47f0a4cdc21080920dbe", + "NodeType": "FunctionNode", + "Inputs": [ + { + "Id": "d3e7d0f6fd3f4e6d8a848a0b2b895ad0", + "Name": "x", + "Description": "boolean to reverse.\n\nvar[]..[]", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "77652f30109143f2bf582455fb75a326", + "Name": "bool", + "Description": "type var[]..[] (reversed boolean)", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "FunctionSignature": "Not@var[]..[]", + "Replication": "Auto", + "Description": "Negates the input, e.g. returns false when the input is true.\n\nNot (x: var[]..[]): var[]..[]" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "Id": "572d64bd67dc4fc9b3557662a5cfbaf6", + "NodeType": "FunctionNode", + "Inputs": [ + { + "Id": "704df4d3eb084837b45ab85859778d62", + "Name": "list", + "Description": "List to filter.\n\nvar[]..[]", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "bc59d40ed2624ef3a18dc24b619af3b4", + "Name": "mask", + "Description": "List of booleans representing a mask.\n\nvar[]..[]", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "49dbf21c5617430f92f67f59df1189eb", + "Name": "in", + "Description": "Items whose mask index is true.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "b0303c9c9a914e03b9a7fde7189d1f1d", + "Name": "out", + "Description": "Items whose mask index is false.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "FunctionSignature": "DSCore.List.FilterByBoolMask@var[]..[],var[]..[]", + "Replication": "Auto", + "Description": "Filters a sequence by looking up corresponding indices in a separate list of booleans.\n\nList.FilterByBoolMask (list: var[]..[], mask: var[]..[]): var[]..[]" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "Id": "b545cc20c0c2417a962ee100527ffbbf", + "NodeType": "FunctionNode", + "Inputs": [ + { + "Id": "0b432150c7004cc2a2c5d2b123a12230", + "Name": "curve", + "Description": "Autodesk.DesignScript.Geometry.Curve", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "62a0c458869145e98c15cda2bed49a48", + "Name": "double", + "Description": "double", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.Length", + "Replication": "Auto", + "Description": "Returns the total arc length of the curve\n\nCurve.Length: double" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "Id": "6ed8fedacc5a419883d1d4a4299dd19a", + "NodeType": "FunctionNode", + "Inputs": [ + { + "Id": "6a462cd4102d4b518c75936bc7227d2d", + "Name": "x", + "Description": "Integer or double value\n\nvar[]..[]", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "597e23f135884a3a9372ee16da38f620", + "Name": "y", + "Description": "Integer or double value\n\nvar[]..[]", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "70a48900f65d4a5b8616822af93cc992", + "Name": "bool", + "Description": "True if x is equal or greater than y, false if not", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "FunctionSignature": ">=@var[]..[],var[]..[]", + "Replication": "Auto", + "Description": "Compares if x is greater or equals to y\n\n>= (x: var[]..[], y: var[]..[]): var[]..[]" + }, + { + "ConcreteType": "CoreNodeModels.Logic.And, CoreNodeModels", + "VariableInputPorts": true, + "Id": "258052d1869d4aa98981061ea9785f7f", + "NodeType": "ExtensionNode", + "Inputs": [ + { + "Id": "cb98ecd9242040b4aea8ba45915efe54", + "Name": "bool0", + "Description": "Boolean #0", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "e98880858bed46b98082092759a6f82d", + "Name": "bool1", + "Description": "Boolean #1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "a33a0ed5beac45b5b7d7694d5403e10d", + "Name": "bool", + "Description": "Result block produced", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Auto", + "Description": "Boolean AND: Returns True only if all of the inputs are true. If any is false, returns False." + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "Id": "4ff72efe366d482791fd387733eff295", + "NodeType": "FunctionNode", + "Inputs": [ + { + "Id": "7cd925b2ae094909ac45f311189a8359", + "Name": "curve", + "Description": "Autodesk.DesignScript.Geometry.Curve", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "9c452086520a4828a0d03ac40f915bb2", + "Name": "bool", + "Description": "bool", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.IsClosed", + "Replication": "Auto", + "Description": "Returns True if a curve is closed, False otherwise.\n\nCurve.IsClosed: bool" + }, + { + "ConcreteType": "CoreNodeModels.Logic.RefactoredIf, CoreNodeModels", + "Id": "402f74e8a10a419aaf9bd2878f334ebb", + "NodeType": "ExtensionNode", + "Inputs": [ + { + "Id": "5882be942bc642328480f4288dbf56a2", + "Name": "test", + "Description": "Boolean test", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "7c44ba85994f43dab3578e64012ebd53", + "Name": "true", + "Description": "Returned if test is true", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "2f40fe958f184170bd010c24b0ef78c9", + "Name": "false", + "Description": "Returned if test is false", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "0aa82d7ed7d0484c8dbe54294ee6feae", + "Name": "result", + "Description": "Result block produced", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Auto", + "Description": "Returns the result of either True or False input depending on what boolean value is toggled in the test input. Supports recursion which requires that only a single branch be executed. It's critical that that both True and False branches are isolated and do not interact with each other!" + }, + { + "ConcreteType": "CoreNodeModels.Input.BoolSelector, CoreNodeModels", + "Id": "486e11d267104c3da19e23adefeb60ac", + "NodeType": "BooleanInputNode", + "Inputs": [], + "Outputs": [ + { + "Id": "811e7dc194cd4d96bc04dd9d12cab474", + "Name": "", + "Description": "Boolean", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Enables selection between True and False", + "InputValue": true + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "Id": "cc1c6606a66645f09832abe2d23eca69", + "NodeType": "FunctionNode", + "Inputs": [ + { + "Id": "d544e15f0424466098972492238bc5aa", + "Name": "string", + "Description": "String to search in\n\nstring", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "0ab5f7066bce4689b111fd5f78a62408", + "Name": "searchFor", + "Description": "Substring to search for\n\nstring", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "6ab0373edc8645eb97f06c3a5be89d14", + "Name": "ignoreCase", + "Description": "Whether or not comparison takes case into account\n\nbool\nDefault value : false", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "596ce849c39d4107bcf21660edb19ca8", + "Name": "bool", + "Description": "Whether the string contains the substring", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "FunctionSignature": "DSCore.String.Contains@string,string,bool", + "Replication": "Auto", + "Description": "Determines if the given string contains the given substring.\n\nString.Contains (string: string, searchFor: string, ignoreCase: bool = false): bool" + }, + { + "ConcreteType": "CoreNodeModels.Input.StringInput, CoreNodeModels", + "Id": "2d705db6df46496cb771a0751fb1100a", + "NodeType": "StringInputNode", + "Inputs": [], + "Outputs": [ + { + "Id": "354e5e9d524e4d5483d7dd146941a3d4", + "Name": "", + "Description": "String", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Creates a string", + "InputValue": "Arc" + }, + { + "ConcreteType": "CoreNodeModels.Input.StringInput, CoreNodeModels", + "Id": "06f58025564948d8b2cf87914cb37af5", + "NodeType": "StringInputNode", + "Inputs": [], + "Outputs": [ + { + "Id": "1cf89edc9dc34e128fa8913dccc6de0d", + "Name": "", + "Description": "String", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Creates a string", + "InputValue": "PolyCurve" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "Id": "0205316f59c9406d9edfc2ce74261192", + "NodeType": "FunctionNode", + "Inputs": [ + { + "Id": "718adb1f5c844bb6b18894228e12626d", + "Name": "string", + "Description": "String to search in\n\nstring", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "edf0d22a2dd54b8c823f2839b50ece47", + "Name": "searchFor", + "Description": "Substring to search for\n\nstring", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "d9f4aaa42892475c895c30414662f6e2", + "Name": "ignoreCase", + "Description": "Whether or not comparison takes case into account\n\nbool\nDefault value : false", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "02d229d642c148678d24ba3e96598307", + "Name": "bool", + "Description": "Whether the string contains the substring", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "FunctionSignature": "DSCore.String.Contains@string,string,bool", + "Replication": "Auto", + "Description": "Determines if the given string contains the given substring.\n\nString.Contains (string: string, searchFor: string, ignoreCase: bool = false): bool" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "Id": "8fa911bb9d244581bfc7b1183c7cb46b", + "NodeType": "FunctionNode", + "Inputs": [ + { + "Id": "05257de1915d4da1b95d5ef0dff7646d", + "Name": "list", + "Description": "List to flatten.\n\nvar[]..[]", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "22f21ea1324944f9a2a75dc99fa722df", + "Name": "amount", + "Description": "Layers of list nesting to remove (-1 will remove all list nestings)\n\nint\nDefault value : -1", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "1f3ef7fcd43e4c04bd87db5ac22b1ecc", + "Name": "list", + "Description": "Flattened list by amount", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "FunctionSignature": "DSCore.List.Flatten@var[]..[],int", + "Replication": "Auto", + "Description": "Flattens a nested list of lists by a certain amount.\n\nList.Flatten (list: var[]..[], amount: int = -1): var[]..[]" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "Id": "40f4fc3eca7d4a9e80750c4cc385dacc", + "NodeType": "FunctionNode", + "Inputs": [ + { + "Id": "4ae36139161d491aa36d01553373689a", + "Name": "object", + "Description": "Object to test.\n\nvar", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "8c82019e047f4a008ca54bb4d70dcbd5", + "Name": "bool", + "Description": "Whether object is null.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "FunctionSignature": "DSCore.Object.IsNull@var", + "Replication": "Auto", + "Description": "Determines if the given object is null.\n\nObject.IsNull (object: var): bool" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "Id": "cee07624b8044b63bb629dc049a70388", + "NodeType": "FunctionNode", + "Inputs": [ + { + "Id": "bfbcc6d7d6c144f8960139cc83bf2a9e", + "Name": "object", + "Description": "Object to query type\n\nvar", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "175f5ad429734cf2b88b38fec91a69a8", + "Name": "string", + "Description": "Type of object.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "FunctionSignature": "DSCore.Object.Type@var", + "Replication": "Auto", + "Description": "Returns the type of object represented as string.\n\nObject.Type (object: var): string" + }, + { + "ConcreteType": "CoreNodeModels.Logic.And, CoreNodeModels", + "VariableInputPorts": true, + "Id": "d15df8a3fc7341a18e14d0762e22bfed", + "NodeType": "ExtensionNode", + "Inputs": [ + { + "Id": "4606d188d643453083bd61b18fbc4cb0", + "Name": "bool0", + "Description": "Boolean #0", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "6b1b39a0bdb7477ea4de1436865d547b", + "Name": "bool1", + "Description": "Boolean #1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "3c5813c9da794b0997961166d859f672", + "Name": "bool", + "Description": "Result block produced", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Auto", + "Description": "Boolean AND: Returns True only if all of the inputs are true. If any is false, returns False." + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", + "ElementResolver": null, + "Symbol": " // Boolean mask of validation results\r\n // true = valid curve\r\n // false = invalid curve\r\n maskValid : bool[]..[]", + "Id": "374a52c848b14e2c9ec65647f7677094", + "NodeType": "OutputNode", + "Inputs": [ + { + "Id": "b638bcc8c7a74b3a9fc9775c06e81c56", + "Name": "", + "Description": "Output Data", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [], + "Replication": "Disabled", + "Description": "A function output, use with custom nodes" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "Id": "09e71c722a5b4f0aab8c6b24dcdbf38c", + "NodeType": "FunctionNode", + "Inputs": [ + { + "Id": "009e302c52fa4a8cad11b2f8c85f79a3", + "Name": "string", + "Description": "String to search in\n\nstring", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "1f91f1dae4d94c829b6221846422c5fd", + "Name": "searchFor", + "Description": "Substring to search for\n\nstring", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "a2c07d5301de4651b374ec6cdd07aae9", + "Name": "ignoreCase", + "Description": "Whether or not comparison takes case into account\n\nbool\nDefault value : false", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "4f943b953605419392fd98d59313c055", + "Name": "bool", + "Description": "Whether the string contains the substring", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "FunctionSignature": "DSCore.String.Contains@string,string,bool", + "Replication": "Auto", + "Description": "Determines if the given string contains the given substring.\n\nString.Contains (string: string, searchFor: string, ignoreCase: bool = false): bool" + }, + { + "ConcreteType": "CoreNodeModels.Logic.Or, CoreNodeModels", + "VariableInputPorts": true, + "Id": "6c601505e6d04040a596df4b990bd8ec", + "NodeType": "ExtensionNode", + "Inputs": [ + { + "Id": "c80d62e20a714b78be041fdf5dd2aeaa", + "Name": "bool0", + "Description": "Boolean #0", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "719a7857214647e196b856f60533b898", + "Name": "bool1", + "Description": "Boolean #1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "a42f85bc593d4d539b95f05be9e7bb4f", + "Name": "bool2", + "Description": "Boolean #2", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "b03a56a2424b47f48dfa440b0b60e806", + "Name": "bool3", + "Description": "Boolean #3", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "0be3905cde0a49b79741e2e48b4660b0", + "Name": "bool", + "Description": "Result block produced", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Auto", + "Description": "Boolean OR: Returns True if any of the inputs are true. If none are true, returns False." + }, + { + "ConcreteType": "CoreNodeModels.Input.StringInput, CoreNodeModels", + "Id": "751b9345aca44ec9bd7577eca30d7ec0", + "NodeType": "StringInputNode", + "Inputs": [], + "Outputs": [ + { + "Id": "3333b66211d843418a36c9e9d355623d", + "Name": "", + "Description": "String", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Creates a string", + "InputValue": "Line" + }, + { + "ConcreteType": "CoreNodeModels.Input.StringInput, CoreNodeModels", + "Id": "8a0207a60fa649c295f3141ba33e850c", + "NodeType": "StringInputNode", + "Inputs": [], + "Outputs": [ + { + "Id": "073a087262774e66999dcbb4ec23e890", + "Name": "", + "Description": "String", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Creates a string", + "InputValue": "Curve" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "Id": "cfbd70811fc0457bafa60c0c5d65d9b1", + "NodeType": "FunctionNode", + "Inputs": [ + { + "Id": "a4c4b10d873f44cdb8bfd3ebc945be1a", + "Name": "string", + "Description": "String to search in\n\nstring", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "18b6791069cd4000b3fc99b0c8b613fc", + "Name": "searchFor", + "Description": "Substring to search for\n\nstring", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "5abfe09aa0f94229a8180d9767ba6023", + "Name": "ignoreCase", + "Description": "Whether or not comparison takes case into account\n\nbool\nDefault value : false", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "ded027159b574012afbc89cab7f8f928", + "Name": "bool", + "Description": "Whether the string contains the substring", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "FunctionSignature": "DSCore.String.Contains@string,string,bool", + "Replication": "Auto", + "Description": "Determines if the given string contains the given substring.\n\nString.Contains (string: string, searchFor: string, ignoreCase: bool = false): bool" + }, + { + "ConcreteType": "CoreNodeModels.Input.BoolSelector, CoreNodeModels", + "Id": "b47b0de9380d48c3b977f50646c95d36", + "NodeType": "BooleanInputNode", + "Inputs": [], + "Outputs": [ + { + "Id": "ea66b8a8fba042329f93cddb5b32527b", + "Name": "", + "Description": "Boolean", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Enables selection between True and False", + "InputValue": true + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", + "Parameter": { + "Name": "curveLikeGeometry", + "TypeName": "var", + "TypeRank": -1, + "DefaultValue": null, + "Description": "Curves to check and validate\nYou can connect lines, arcs, polycurves, or any curve geometry" + }, + "Id": "4653dbe1c8e84b12a1e79049bb6d79c5", + "NodeType": "InputNode", + "Inputs": [], + "Outputs": [ + { + "Id": "c172b9ccf939472da74f75863b75df68", + "Name": "", + "Description": "Input Data", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", + "Parameter": { + "Name": "flattenDepth", + "TypeName": "int", + "TypeRank": 0, + "DefaultValue": "-1", + "Description": "List structure control\n-1 fully flatten all nested lists\n0 no flatten\n1 flatten one level" + }, + "Id": "4512efc5eab8445aae2969f139554ace", + "NodeType": "InputNode", + "Inputs": [], + "Outputs": [ + { + "Id": "880242d54a474dfc9b90e4efac2b397f", + "Name": "", + "Description": "Input Data", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" + } + ], + "Connectors": [ + { + "Start": "5897fa14632442ce931387a588e52667", + "End": "597e23f135884a3a9372ee16da38f620", + "Id": "58620fbdc62d41f9bbf78698f0191920", + "IsHidden": "False" + }, + { + "Start": "84a142d57f224411b5b2986e11bda055", + "End": "5882be942bc642328480f4288dbf56a2", + "Id": "492dd6b8c4934f2f9401b8d2807ab340", + "IsHidden": "False" + }, + { + "Start": "9f8d4f2ae255496ea1668ab5eb7959a8", + "End": "b4a49eb285584851aafa6022727a209a", + "Id": "da1e762f123b43c996fe7838fef43cc9", + "IsHidden": "False" + }, + { + "Start": "f64703916aa24177b131ab6bf92e7a83", + "End": "715f107ff96e439bb8cb53fc760d5101", + "Id": "d16c24c768fc40d08640d73a792e6767", + "IsHidden": "False" + }, + { + "Start": "77652f30109143f2bf582455fb75a326", + "End": "e98880858bed46b98082092759a6f82d", + "Id": "009e8a0dad0e4de1aaece3c13ac8b0c9", + "IsHidden": "False" + }, + { + "Start": "49dbf21c5617430f92f67f59df1189eb", + "End": "b13fe90be86d417083baa7e95b2bff9c", + "Id": "c58e62c6cebb458cb6795c914bfa6f83", + "IsHidden": "False" + }, + { + "Start": "49dbf21c5617430f92f67f59df1189eb", + "End": "7cd925b2ae094909ac45f311189a8359", + "Id": "d87a1ba5532a445f9febd65c8210a0fc", + "IsHidden": "False" + }, + { + "Start": "49dbf21c5617430f92f67f59df1189eb", + "End": "0b432150c7004cc2a2c5d2b123a12230", + "Id": "692e558d556243aa8f47bec4d01b4375", + "IsHidden": "False" + }, + { + "Start": "62a0c458869145e98c15cda2bed49a48", + "End": "6a462cd4102d4b518c75936bc7227d2d", + "Id": "f76163f622fe4fd5a11669509ef7f746", + "IsHidden": "False" + }, + { + "Start": "70a48900f65d4a5b8616822af93cc992", + "End": "4606d188d643453083bd61b18fbc4cb0", + "Id": "9372f3c1f6a447e7a5bc59de26df0b55", + "IsHidden": "False" + }, + { + "Start": "a33a0ed5beac45b5b7d7694d5403e10d", + "End": "bc59d40ed2624ef3a18dc24b619af3b4", + "Id": "cd7f8a58acd8476e8d798b5fe376e3ba", + "IsHidden": "False" + }, + { + "Start": "9c452086520a4828a0d03ac40f915bb2", + "End": "7c44ba85994f43dab3578e64012ebd53", + "Id": "afa5b34700e74803a34dc66c88a84fb3", + "IsHidden": "False" + }, + { + "Start": "0aa82d7ed7d0484c8dbe54294ee6feae", + "End": "6b1b39a0bdb7477ea4de1436865d547b", + "Id": "e9cec2a363b24bc28b0ade1d9bbf8941", + "IsHidden": "False" + }, + { + "Start": "811e7dc194cd4d96bc04dd9d12cab474", + "End": "2f40fe958f184170bd010c24b0ef78c9", + "Id": "513d0b14b2b24c41a73b3bbdc29079af", + "IsHidden": "False" + }, + { + "Start": "596ce849c39d4107bcf21660edb19ca8", + "End": "a42f85bc593d4d539b95f05be9e7bb4f", + "Id": "df120c76fc6a4a9e93a87331515e398d", + "IsHidden": "False" + }, + { + "Start": "354e5e9d524e4d5483d7dd146941a3d4", + "End": "0ab5f7066bce4689b111fd5f78a62408", + "Id": "e2db92e004f04039aa6781b171d64417", + "IsHidden": "False" + }, + { + "Start": "1cf89edc9dc34e128fa8913dccc6de0d", + "End": "edf0d22a2dd54b8c823f2839b50ece47", + "Id": "18acd9abef9b4ee0beabfbbd4345b613", + "IsHidden": "False" + }, + { + "Start": "02d229d642c148678d24ba3e96598307", + "End": "b03a56a2424b47f48dfa440b0b60e806", + "Id": "94dda96e56ca47dfb3272a159e404675", + "IsHidden": "False" + }, + { + "Start": "1f3ef7fcd43e4c04bd87db5ac22b1ecc", + "End": "704df4d3eb084837b45ab85859778d62", + "Id": "1b04f71a66054bbc820e7e16dc0d9928", + "IsHidden": "False" + }, + { + "Start": "1f3ef7fcd43e4c04bd87db5ac22b1ecc", + "End": "4ae36139161d491aa36d01553373689a", + "Id": "a3e084915e5248058484e4969dd5ce52", + "IsHidden": "False" + }, + { + "Start": "1f3ef7fcd43e4c04bd87db5ac22b1ecc", + "End": "bfbcc6d7d6c144f8960139cc83bf2a9e", + "Id": "6b2f1a6570c842c3944ecf61f350faa8", + "IsHidden": "False" + }, + { + "Start": "8c82019e047f4a008ca54bb4d70dcbd5", + "End": "d3e7d0f6fd3f4e6d8a848a0b2b895ad0", + "Id": "f500dc0e647d4f2b96e848a09eed85a0", + "IsHidden": "False" + }, + { + "Start": "175f5ad429734cf2b88b38fec91a69a8", + "End": "d544e15f0424466098972492238bc5aa", + "Id": "f3b9d73987174fffa3ce6102b900252f", + "IsHidden": "False" + }, + { + "Start": "175f5ad429734cf2b88b38fec91a69a8", + "End": "718adb1f5c844bb6b18894228e12626d", + "Id": "ecd5932dea9f49aca7612a9112971898", + "IsHidden": "False" + }, + { + "Start": "175f5ad429734cf2b88b38fec91a69a8", + "End": "009e302c52fa4a8cad11b2f8c85f79a3", + "Id": "d23c383f75db4fc7b3bc554ccac45193", + "IsHidden": "False" + }, + { + "Start": "175f5ad429734cf2b88b38fec91a69a8", + "End": "a4c4b10d873f44cdb8bfd3ebc945be1a", + "Id": "cf51c098cf53472681821b47d0c09dcd", + "IsHidden": "False" + }, + { + "Start": "3c5813c9da794b0997961166d859f672", + "End": "ff39af4dca4c42f8a027febedfc94ec2", + "Id": "a6d0aaf2eedb47c893484fb9a919e0ad", + "IsHidden": "False" + }, + { + "Start": "3c5813c9da794b0997961166d859f672", + "End": "b638bcc8c7a74b3a9fc9775c06e81c56", + "Id": "45027cd2bc144434966db924f67b52b9", + "IsHidden": "False" + }, + { + "Start": "4f943b953605419392fd98d59313c055", + "End": "c80d62e20a714b78be041fdf5dd2aeaa", + "Id": "c2e9859ca5f94e33b0f9546c3e46a5a3", + "IsHidden": "False" + }, + { + "Start": "0be3905cde0a49b79741e2e48b4660b0", + "End": "cb98ecd9242040b4aea8ba45915efe54", + "Id": "ff70dfcb01ae4eaea85e30bda57a0451", + "IsHidden": "False" + }, + { + "Start": "3333b66211d843418a36c9e9d355623d", + "End": "1f91f1dae4d94c829b6221846422c5fd", + "Id": "331bce8807b3407fa77170f52994c1a1", + "IsHidden": "False" + }, + { + "Start": "073a087262774e66999dcbb4ec23e890", + "End": "18b6791069cd4000b3fc99b0c8b613fc", + "Id": "a36ebee2f7624a79b3869ea17538f62c", + "IsHidden": "False" + }, + { + "Start": "ded027159b574012afbc89cab7f8f928", + "End": "719a7857214647e196b856f60533b898", + "Id": "d8405d35e9334668861c922a0b8a2910", + "IsHidden": "False" + }, + { + "Start": "ea66b8a8fba042329f93cddb5b32527b", + "End": "6ab0373edc8645eb97f06c3a5be89d14", + "Id": "11eda958292642e2b096b198dcb68e3b", + "IsHidden": "False" + }, + { + "Start": "ea66b8a8fba042329f93cddb5b32527b", + "End": "d9f4aaa42892475c895c30414662f6e2", + "Id": "d9d1e631d31e4227bf50cc6d0025d091", + "IsHidden": "False" + }, + { + "Start": "ea66b8a8fba042329f93cddb5b32527b", + "End": "a2c07d5301de4651b374ec6cdd07aae9", + "Id": "06c6880b5ae0456fb6a751ea5fb3e42f", + "IsHidden": "False" + }, + { + "Start": "ea66b8a8fba042329f93cddb5b32527b", + "End": "5abfe09aa0f94229a8180d9767ba6023", + "Id": "83532f38d05e43b7b6f4f7d30c6d2bde", + "IsHidden": "False" + }, + { + "Start": "c172b9ccf939472da74f75863b75df68", + "End": "05257de1915d4da1b95d5ef0dff7646d", + "Id": "7b26ad0cc1324780a3568451a0f94fcc", + "IsHidden": "False" + }, + { + "Start": "880242d54a474dfc9b90e4efac2b397f", + "End": "22f21ea1324944f9a2a75dc99fa722df", + "Id": "1735bf5294174249a5f9bdf0e8ceff6f", + "IsHidden": "False" + } + ], + "Dependencies": [], + "NodeLibraryDependencies": [], + "Author": "None provided", + "Bindings": [], + "View": { + "Dynamo": { + "ScaleFactor": 1.0, + "HasRunWithoutCrash": false, + "IsVisibleInDynamoLibrary": true, + "Version": "3.0.3.7597", + "RunType": "Manual", + "RunPeriod": "1000" + }, + "Camera": { + "Name": "_Background Preview", + "EyeX": -17.0, + "EyeY": 24.0, + "EyeZ": 50.0, + "LookX": 12.0, + "LookY": -13.0, + "LookZ": -58.0, + "UpX": 0.0, + "UpY": 1.0, + "UpZ": 0.0 + }, + "ConnectorPins": [], + "NodeViews": [ + { + "Id": "374c7e6c03db439c91a377e3f2842d01", + "Name": "Output", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 15051.21445375908, + "Y": -98.7753600612698 + }, + { + "Id": "5bb2a370018247d6b29e9de87fa36323", + "Name": "Output", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 15054.370534376923, + "Y": -296.1822705154069 + }, + { + "Id": "65cf7f4a00b84589bb1ab75c87ca2259", + "Name": "Input", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 12917.791253108337, + "Y": -231.0772318080892 + }, + { + "Id": "01aea9183a734898b9d37e5efadd0919", + "Name": "Input", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 11915.67888836061, + "Y": -231.0772318080892 + }, + { + "Id": "32d1dafa69ea416ba20e25499fbe803e", + "Name": "List.FilterByBoolMask", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 14435.062778455687, + "Y": -251.23178039488516 + }, + { + "Id": "818ac1db64db47f0a4cdc21080920dbe", + "Name": "Not", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 10220.226912152484, + "Y": -159.1724670683144 + }, + { + "Id": "572d64bd67dc4fc9b3557662a5cfbaf6", + "Name": "List.FilterByBoolMask", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 11053.933325392347, + "Y": -231.0772318080892 + }, + { + "Id": "b545cc20c0c2417a962ee100527ffbbf", + "Name": "Curve.Length", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 12625.52890156899, + "Y": -790.4964433474283 + }, + { + "Id": "6ed8fedacc5a419883d1d4a4299dd19a", + "Name": ">=", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 13478.191597792445, + "Y": -794.0292298127654 + }, + { + "Id": "258052d1869d4aa98981061ea9785f7f", + "Name": "And", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 10661.797765336123, + "Y": -198.88922531653907 + }, + { + "Id": "4ff72efe366d482791fd387733eff295", + "Name": "Curve.IsClosed", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 11915.67888836061, + "Y": -950.3299845786933 + }, + { + "Id": "402f74e8a10a419aaf9bd2878f334ebb", + "Name": "If", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 12634.834144932627, + "Y": -993.9261548898146 + }, + { + "Id": "486e11d267104c3da19e23adefeb60ac", + "Name": "Boolean", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 11915.67888836061, + "Y": -794.9586945551989 + }, + { + "Id": "cc1c6606a66645f09832abe2d23eca69", + "Name": "String.Contains", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 10285.055245948593, + "Y": -973.9634763066905 + }, + { + "Id": "2d705db6df46496cb771a0751fb1100a", + "Name": "String", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 9989.604791877522, + "Y": -937.5620657059769 + }, + { + "Id": "06f58025564948d8b2cf87914cb37af5", + "Name": "String", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 9989.604791877522, + "Y": -726.9634763066905 + }, + { + "Id": "0205316f59c9406d9edfc2ce74261192", + "Name": "String.Contains", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 10285.055245948593, + "Y": -760.9634763066905 + }, + { + "Id": "8fa911bb9d244581bfc7b1183c7cb46b", + "Name": "List.Flatten", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 9303.57832358829, + "Y": -212.21418255730532 + }, + { + "Id": "40f4fc3eca7d4a9e80750c4cc385dacc", + "Name": "Object.IsNull", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 9767.291691182974, + "Y": -156.20760738031754 + }, + { + "Id": "cee07624b8044b63bb629dc049a70388", + "Name": "Object.Type", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 9771.683694342511, + "Y": -320.3120964063319 + }, + { + "Id": "d15df8a3fc7341a18e14d0762e22bfed", + "Name": "And", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 13747.727004442839, + "Y": -1029.6953785515693 + }, + { + "Id": "374a52c848b14e2c9ec65647f7677094", + "Name": "Output", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 15060.715868250327, + "Y": -1032.2281999573022 + }, + { + "Id": "09e71c722a5b4f0aab8c6b24dcdbf38c", + "Name": "String.Contains", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 10285.055245948593, + "Y": -1398.9634763066904 + }, + { + "Id": "6c601505e6d04040a596df4b990bd8ec", + "Name": "Or", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 10606.055245948593, + "Y": -1130.9634763066904 + }, + { + "Id": "751b9345aca44ec9bd7577eca30d7ec0", + "Name": "String", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 9989.604791877522, + "Y": -1364.9634763066904 + }, + { + "Id": "8a0207a60fa649c295f3141ba33e850c", + "Name": "String", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 9989.604791877522, + "Y": -1150.8623653227623 + }, + { + "Id": "cfbd70811fc0457bafa60c0c5d65d9b1", + "Name": "String.Contains", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 10285.055245948593, + "Y": -1185.9634763066904 + }, + { + "Id": "b47b0de9380d48c3b977f50646c95d36", + "Name": "Boolean", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 9587.829014190798, + "Y": -1039.3148385199038 + }, + { + "Id": "4653dbe1c8e84b12a1e79049bb6d79c5", + "Name": "Input", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 7863.797344812867, + "Y": -203.5325369099039 + }, + { + "Id": "4512efc5eab8445aae2969f139554ace", + "Name": "Input", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "ShowGeometry": true, + "X": 7861.600795952214, + "Y": -20.648630157883872 + } + ], + "Annotations": [ + { + "Id": "5c6d55cc3a454993847a0cdd347c92ee", + "Title": "Outputs", + "DescriptionText": "validCurves: curves that passed validation\n\ninvalidCurves: curves that failed validation\n\nmaskValid: boolean mask for filtering elsewhere", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "5bb2a370018247d6b29e9de87fa36323", + "374c7e6c03db439c91a377e3f2842d01", + "374a52c848b14e2c9ec65647f7677094" + ], + "HasNestedGroups": false, + "Left": 15041.21445375908, + "Top": -1157.2281999573022, + "Width": 531.156080617844, + "Height": 1216.4528398960324, + "FontSize": 36.0, + "GroupStyleId": "07655dc1-2d65-4fed-8d6a-37235d3e3a8d", + "InitialTop": -1032.2281999573022, + "InitialHeight": 1121.4528398960324, + "TextblockHeight": 115.0, + "Background": "#FFFFC999" + }, + { + "Id": "85d4ff7db6a14cb987d7ff73e3f3d8a6", + "Title": "Inputs", + "DescriptionText": "Use these controls to define what “valid” means.\r\nminLength is a minimum curve length threshold.\nSet requireClosed to true if curves must be closed (loops)", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "65cf7f4a00b84589bb1ab75c87ca2259", + "01aea9183a734898b9d37e5efadd0919" + ], + "HasNestedGroups": false, + "Left": 11905.67888836061, + "Top": -327.0772318080892, + "Width": 1545.112364747727, + "Height": 270.0, + "FontSize": 36.0, + "GroupStyleId": "883066aa-1fe2-44a4-9bd1-c3df86bfe9f6", + "InitialTop": -231.0772318080892, + "InitialHeight": 204.0, + "TextblockHeight": 86.0, + "Background": "#FFFFB8D8" + }, + { + "Id": "6a8b5c1250654edd9263953862de2843", + "Title": "2", + "DescriptionText": "", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "1eac80dc7b20477aa1b07dc6d307ee9b" + ], + "HasNestedGroups": false, + "Left": 11822.921761399757, + "Top": -322.0726086243335, + "Width": 70.0, + "Height": 151.0, + "FontSize": 60.0, + "GroupStyleId": "883066aa-1fe2-44a4-9bd1-c3df86bfe9f6", + "InitialTop": -220.0726086243335, + "InitialHeight": 145.0, + "TextblockHeight": 92.0, + "Background": "#FFFFB8D8" + }, + { + "Id": "b9b81da291664b5ab483c9b4d211a5c9", + "Title": "Split Valid And Invalid Curves", + "DescriptionText": "Uses the final boolean mask to separate curves into valid and invalid lists.", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "32d1dafa69ea416ba20e25499fbe803e" + ], + "HasNestedGroups": false, + "Left": 14425.062778455687, + "Top": -390.23178039488516, + "Width": 255.0, + "Height": 306.0, + "FontSize": 36.0, + "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", + "InitialTop": -251.23178039488516, + "InitialHeight": 197.0, + "TextblockHeight": 129.0, + "Background": "#FFB9F9E1" + }, + { + "Id": "88e730d8681646febb94a8edfcb92bc5", + "Title": "4", + "DescriptionText": "", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "57ab668a89b84ac9a4337be16ab93b13" + ], + "HasNestedGroups": false, + "Left": 14326.567652945854, + "Top": -389.23909479862994, + "Width": 70.0, + "Height": 151.0, + "FontSize": 60.0, + "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", + "InitialTop": -287.23909479862994, + "InitialHeight": 145.0, + "TextblockHeight": 92.0, + "Background": "#FFB9F9E1" + }, + { + "Id": "28bda4ea6f4d4c2791cb1d51b5f9f9f7", + "Title": "Null And Type Validation", + "DescriptionText": "Filters out nulls and non-curve objects before running curve geometry checks.\nThis prevents warnings and makes the node safer for mixed inputs.", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "8fa911bb9d244581bfc7b1183c7cb46b", + "40f4fc3eca7d4a9e80750c4cc385dacc", + "818ac1db64db47f0a4cdc21080920dbe", + "cee07624b8044b63bb629dc049a70388", + "572d64bd67dc4fc9b3557662a5cfbaf6", + "258052d1869d4aa98981061ea9785f7f" + ], + "HasNestedGroups": false, + "Left": 9293.57832358829, + "Top": -402.3120964063319, + "Width": 2005.3550018040569, + "Height": 378.10448902601433, + "FontSize": 36.0, + "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", + "InitialTop": -320.3120964063319, + "InitialHeight": 326.10448902601433, + "TextblockHeight": 72.0, + "Background": "#FFB9F9E1" + }, + { + "Id": "d53a47b336e34575ab7f72e009118609", + "Title": "Geometry Checks (Length And Closure)", + "DescriptionText": "Applies curve rules:\n\nlength must be ≥ minLength\n\nif requireClosed is true, curve must be closed", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "b545cc20c0c2417a962ee100527ffbbf", + "6ed8fedacc5a419883d1d4a4299dd19a", + "4ff72efe366d482791fd387733eff295", + "402f74e8a10a419aaf9bd2878f334ebb", + "486e11d267104c3da19e23adefeb60ac", + "d15df8a3fc7341a18e14d0762e22bfed", + "b2f8f5c0d96f4a889aeb5c7fd91376e9" + ], + "HasNestedGroups": false, + "Left": 11905.67888836061, + "Top": -1154.6953785515693, + "Width": 2089.048116082229, + "Height": 522.6661487388039, + "FontSize": 36.0, + "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", + "InitialTop": -1029.6953785515693, + "InitialHeight": 427.66614873880394, + "TextblockHeight": 115.0, + "Background": "#FFB9F9E1" + }, + { + "Id": "92f11577efe84c6fb256f49740a87e66", + "Title": "Type Of Geometry To Consider", + "DescriptionText": "Curve like geometry ", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "09e71c722a5b4f0aab8c6b24dcdbf38c", + "6c601505e6d04040a596df4b990bd8ec", + "751b9345aca44ec9bd7577eca30d7ec0", + "8a0207a60fa649c295f3141ba33e850c", + "cfbd70811fc0457bafa60c0c5d65d9b1", + "cc1c6606a66645f09832abe2d23eca69", + "2d705db6df46496cb771a0751fb1100a", + "06f58025564948d8b2cf87914cb37af5", + "b47b0de9380d48c3b977f50646c95d36", + "0205316f59c9406d9edfc2ce74261192" + ], + "HasNestedGroups": false, + "Left": 9577.829014190798, + "Top": -1471.9634763066904, + "Width": 1275.2262317577952, + "Height": 907.9999999999999, + "FontSize": 36.0, + "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", + "InitialTop": -1398.9634763066904, + "InitialHeight": 864.9999999999999, + "TextblockHeight": 63.0, + "Background": "#FFB9F9E1" + }, + { + "Id": "705357a74b074197a4a5259964e58b18", + "Title": "1", + "DescriptionText": "", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "e3cd4920b4264225a720d1ae78f79e57" + ], + "HasNestedGroups": false, + "Left": 9200.7344581669, + "Top": -405.88996831689394, + "Width": 70.0, + "Height": 151.0, + "FontSize": 60.0, + "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", + "InitialTop": -303.88996831689394, + "InitialHeight": 145.0, + "TextblockHeight": 92.0, + "Background": "#FFB9F9E1" + }, + { + "Id": "20f5eebe88f84e14952081da820b4877", + "Title": "Inputs", + "DescriptionText": "Use these controls to define what “valid” means.\r\ncurves can be a list of Lines, Arcs, PolyCurves, or mixed curve types.\r\nUse flattenDepth to control how nested lists are handled.", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "4653dbe1c8e84b12a1e79049bb6d79c5", + "4512efc5eab8445aae2969f139554ace", + "64b6ead851a642a6aca58962632a4985" + ], + "HasNestedGroups": false, + "Left": 7851.600795952214, + "Top": -372.5325369099039, + "Width": 615.1965488606529, + "Height": 542.88390675202, + "FontSize": 36.0, + "GroupStyleId": "883066aa-1fe2-44a4-9bd1-c3df86bfe9f6", + "InitialTop": -276.5325369099039, + "InitialHeight": 403.88390675202004, + "TextblockHeight": 86.0, + "Background": "#FFFFB8D8" + }, + { + "Id": "a87d48b78d034adeb52893dc7d21ade9", + "Title": "3", + "DescriptionText": "", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "b3d231f93ded477f97c47cfd2d7677ce" + ], + "HasNestedGroups": false, + "Left": 11823.517345672519, + "Top": -1152.8175710713324, + "Width": 70.0, + "Height": 151.0, + "FontSize": 60.0, + "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", + "InitialTop": -1050.8175710713324, + "InitialHeight": 145.0, + "TextblockHeight": 92.0, + "Background": "#FFB9F9E1" + }, + { + "Id": "d5c611966ddd48cd861c9d011c42bfb2", + "Title": "1", + "DescriptionText": "", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "44b85762d70b4b05ad75b676ea5d3a25" + ], + "HasNestedGroups": false, + "Left": 14949.434749575756, + "Top": -1154.1341114748154, + "Width": 70.0, + "Height": 151.0, + "FontSize": 60.0, + "GroupStyleId": "07655dc1-2d65-4fed-8d6a-37235d3e3a8d", + "InitialTop": -1052.1341114748154, + "InitialHeight": 145.0, + "TextblockHeight": 92.0, + "Background": "#FFFFC999" + }, + { + "Id": "c0196c3d52774ffab8f7f6f70ae3d2f1", + "Title": "2", + "DescriptionText": "", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "8d1a3e08d9c2457090d835e885e97e01" + ], + "HasNestedGroups": false, + "Left": 9486.640227535094, + "Top": -1472.1067188913555, + "Width": 70.0, + "Height": 151.0, + "FontSize": 60.0, + "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", + "InitialTop": -1370.1067188913555, + "InitialHeight": 145.0, + "TextblockHeight": 92.0, + "Background": "#FFB9F9E1" + }, + { + "Id": "3fbeacc04a0843938cf1cc8f88718993", + "Title": "1", + "DescriptionText": "", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "5927b7659d0d4bf9b0f7104c00041a9e" + ], + "HasNestedGroups": false, + "Left": 7758.300711191827, + "Top": -370.1234584677146, + "Width": 70.0, + "Height": 151.0, + "FontSize": 60.0, + "GroupStyleId": "883066aa-1fe2-44a4-9bd1-c3df86bfe9f6", + "InitialTop": -268.1234584677146, + "InitialHeight": 145.0, + "TextblockHeight": 92.0, + "Background": "#FFFFB8D8" + }, + { + "Id": "d0f46c72c3584af4a46619d586ed002f", + "Title": "Annotations", + "DescriptionText": "", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "0ee667faa0674478b3506098425d1e8c" + ], + "HasNestedGroups": false, + "Left": 7332.671980649975, + "Top": 425.4291036958864, + "Width": 267.0, + "Height": 137.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 498.4291036958864, + "InitialHeight": 145.0, + "TextblockHeight": 63.0, + "Background": "#FFB5B5B5" + }, + { + "Id": "c3d779ef51ef402ba1b69c01433e09f0", + "Title": "Review", + "DescriptionText": "DEBUG AND CHECK OUTPUTS, USED TO VERIFY RESULTS WITHOUT AFFECTING THE MAIN OUTPUTS", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "2f5020edb6a54a9b816d4886d93d6f22" + ], + "HasNestedGroups": false, + "Left": 7331.0321333666, + "Top": 202.77506546921882, + "Width": 314.0, + "Height": 203.0, + "FontSize": 36.0, + "GroupStyleId": "bc688959-ce34-4bf5-90f8-6ddd23f80989", + "InitialTop": 298.7750654692188, + "InitialHeight": 145.0, + "TextblockHeight": 86.0, + "Background": "#FFA4E1FF" + }, + { + "Id": "29214f2627d24b61a077526ed57d79f6", + "Title": "Graph Information", + "DescriptionText": "metadata, colour code legend, naming rules ", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "5a2adad0b6924801b93736f84f3b0f94", + "ad09761f3df84a6cbac62aec5616bc36", + "28ac4f633da44a3992959913d26f90a7", + "365ba3f265fb4792b4eaf810918f8f8a", + "b4601a5eef5c46d9b8f7076cfef48b63", + "02869392bcb8455dbab018296030c397", + "a4e7bab50f804226a58b34748879b6eb", + "2a1de44aed9f4967bab98ca6cfcc0ecf" + ], + "HasNestedGroups": false, + "Left": 6666.415285455862, + "Top": -372.46387245013756, + "Width": 625.1583808086598, + "Height": 755.6623795843702, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": -299.46387245013756, + "InitialHeight": 518.6623795843702, + "TextblockHeight": 63.0, + "Background": "#FFB5B5B5" + }, + { + "Id": "4d24ed21caf24364b33f8f0a32694bae", + "Title": "Outputs", + "DescriptionText": "FINAL RESULTS PRODUCED BY THE GRAPH, READY FOR EXPORT OR DOWNSTREAM USE", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "005fd4a2a54b459aaa7f7d026b632aab" + ], + "HasNestedGroups": false, + "Left": 7328.052254356241, + "Top": 12.183835435131925, + "Width": 312.0, + "Height": 175.0, + "FontSize": 36.0, + "GroupStyleId": "07655dc1-2d65-4fed-8d6a-37235d3e3a8d", + "InitialTop": 94.18383543513193, + "InitialHeight": 145.0, + "TextblockHeight": 72.0, + "Background": "#FFFFC999" + }, + { + "Id": "8423375ace484864bbd82032dabdf7dc", + "Title": "Actions", + "DescriptionText": "CORE OPERATIONS THAT PROCESS THE INPUTS", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "83fffb316f35420cb84b62d692209a5f" + ], + "HasNestedGroups": false, + "Left": 7324.818292792628, + "Top": -170.72684691468766, + "Width": 319.0, + "Height": 166.0, + "FontSize": 36.0, + "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", + "InitialTop": -97.72684691468766, + "InitialHeight": 145.0, + "TextblockHeight": 63.0, + "Background": "#FFB9F9E1" + }, + { + "Id": "0eef5eff602a498bba8972c9f2133cce", + "Title": "Inputs", + "DescriptionText": "USER-CONTROLLED VALUES THAT DEFINE THE TARGET DATA AND SETTINGS BEFORE ANY PROCESSING OCCURS", + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [ + "13b87d3bbfc8414d8c15724654c1a6dd" + ], + "HasNestedGroups": false, + "Left": 7327.058961352788, + "Top": -372.5455358078304, + "Width": 317.0, + "Height": 189.0, + "FontSize": 36.0, + "GroupStyleId": "883066aa-1fe2-44a4-9bd1-c3df86bfe9f6", + "InitialTop": -276.5455358078304, + "InitialHeight": 145.0, + "TextblockHeight": 86.0, + "Background": "#FFFFB8D8" + }, + { + "Id": "64b6ead851a642a6aca58962632a4985", + "Title": "Curves can be a single curve or a list. Nested lists are supported via flattenDepth.", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 8011.297344812867, + "Top": -268.5325369099039, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676", + "PinnedNode": "4653dbe1c8e84b12a1e79049bb6d79c5" + }, + { + "Id": "385a318060734660b731c104880771b0", + "Title": "To create inputs and outputs of a custom node, type its definition directly into the Input or Output node.\n\nDouble-click the Input (or Output) node\n\nType the definition as text\n\nUse // to write comments\n\nWrite the name, type, and default value\n\nThat text becomes the input/output port of the custom node", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 7851.244141764677, + "Top": 204.62554834735454, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "b2f878d8a9f7472fb539eb89dc9ef59b", + "Title": "Typical example of input/output :\n\ndouble → number (decimal)\r\nint → integer\r\nbool → true/false\r\nstring → text\r\nvar → any type\r\nvar[] → list\r\nvar[]..[] → nested lists (any depth)\r\n", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 8160.960581311854, + "Top": 207.74966072273708, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "1eac80dc7b20477aa1b07dc6d307ee9b", + "Title": "", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 11832.921761399757, + "Top": -212.0726086243335, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "57ab668a89b84ac9a4337be16ab93b13", + "Title": "", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 14336.567652945854, + "Top": -279.23909479862994, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "b2f8f5c0d96f4a889aeb5c7fd91376e9", + "Title": "Curves shorter than min length are invalid.", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 13436.191597792445, + "Top": -844.0292298127654, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676", + "PinnedNode": "6ed8fedacc5a419883d1d4a4299dd19a" + }, + { + "Id": "e3cd4920b4264225a720d1ae78f79e57", + "Title": "", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 9210.7344581669, + "Top": -295.88996831689394, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "b3d231f93ded477f97c47cfd2d7677ce", + "Title": "", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 11833.517345672519, + "Top": -1042.8175710713324, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "44b85762d70b4b05ad75b676ea5d3a25", + "Title": "", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 14959.434749575756, + "Top": -1044.1341114748154, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "8d1a3e08d9c2457090d835e885e97e01", + "Title": "", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 9496.640227535094, + "Top": -1362.1067188913555, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "5927b7659d0d4bf9b0f7104c00041a9e", + "Title": "", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 7768.300711191827, + "Top": -260.1234584677146, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "0ee667faa0674478b3506098425d1e8c", + "Title": "USE:\r\nFOR COMMENTS AND SCRIPT INFO ", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 7342.671980649975, + "Top": 506.4291036958864, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "2f5020edb6a54a9b816d4886d93d6f22", + "Title": "USE : Human-readable checks so you can verify the graph is doing what you expect, without changing results such as :Watch nodes, List.Count, summary strings, “PASS/FAIL” flags, error lists, preview geometry (Watch3D), sample outputs.", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 7341.0321333666, + "Top": 306.7750654692188, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "b4601a5eef5c46d9b8f7076cfef48b63", + "Title": "REQUIRED DYNAMO PACKAGES\n_____________________________________________________ \n\nN/A\n", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 6982.573666264522, + "Top": -32.86662580148976, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "a4e7bab50f804226a58b34748879b6eb", + "Title": "ADDITIONAL COMMENTS\n_____________________________________________________ \n\nCustom nodes are typically found in the Add-ons section of the Library.\r\nThis custom node is located under:\r\nAdd-ons → Standards → Curve → Curve_Validate\r\n\r\nIf it does not appear:\r\n\r\nCheck that the .dyf file is in your custom nodes folder\r\n\r\nGo to:\r\nPackages → Package Manager → Package Settings → Package/Lirary Search Paths\r\nVerify the folder path is listed or add a new path\r\nRestart Dynamo after adding new custom nodes\n", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 6982.573666264522, + "Top": 82.19850713423267, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "005fd4a2a54b459aaa7f7d026b632aab", + "Title": "USE: Final results intended to be used downstream (exported, plugged into another graph) such as : Final lists, formatted strings, calculated values, dictionaries/tables, export-ready data", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 7338.052254356241, + "Top": 102.18383543513193, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "02869392bcb8455dbab018296030c397", + "Title": "AUTHOR(S) / CREATION DATE\n_____________________________________________________ \n\nArchilizer for Dynamo Team / Feb. 4 2026\n", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 6677.346915258799, + "Top": -33.10912375770221, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "2a1de44aed9f4967bab98ca6cfcc0ecf", + "Title": "DESCRIPTION\n_____________________________________________________ \n\nThis document will help you get familiarised with the creation of Custom node.\n\nTo keep Dynamo scripts neat and readable, we recommend following a clear\nstructure when creating graphs.\n\nRead more on the Dynamo Primer page about Creating a Custom Node:\nhttps://primer.dynamobim.org/10_Custom-Nodes/10-2_Creating.html", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 6677.346915258799, + "Top": 82.09380354446358, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "83fffb316f35420cb84b62d692209a5f", + "Title": "USE: The main processing pipeline that transforms inputs into results. This is where the “work” happens such as : List cleaning, mapping, filtering, string logic, geometry operations, formatting, conversions.", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 7334.818292792628, + "Top": -89.72684691468766, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "5a2adad0b6924801b93736f84f3b0f94", + "Title": "DYNAMO PROJECT\n_____________________________________________________ \n\nTemplate_02_DynamoWorkflowCustomNode\n", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 6677.109066153209, + "Top": -291.46387245013756, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "ad09761f3df84a6cbac62aec5616bc36", + "Title": "DYNAMO VERSION\n_____________________________________________________ \n\n4.1.0\n", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 6981.642036461585, + "Top": -290.94578576103794, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "28ac4f633da44a3992959913d26f90a7", + "Title": "HOST APPLICATION VERSION\n_____________________________________________________ \n\nN/A\n", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 6981.642036461585, + "Top": -175.8806528253155, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "365ba3f265fb4792b4eaf810918f8f8a", + "Title": "ASSOCIATED FILE(S)\n_____________________________________________________ \n\n\n", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 6676.415285455862, + "Top": -176.26094514797177, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + }, + { + "Id": "13b87d3bbfc8414d8c15724654c1a6dd", + "Title": "USE: All user-controlled values that define what the graph will process and how it should behave.\r\nsuch as : Number sliders, strings, file paths, boolean toggles, dropdowns, initial lists.", + "DescriptionText": null, + "IsExpanded": true, + "WidthAdjustment": 0.0, + "HeightAdjustment": 0.0, + "Nodes": [], + "HasNestedGroups": false, + "Left": 7337.058961352788, + "Top": -268.5455358078304, + "Width": 0.0, + "Height": 0.0, + "FontSize": 36.0, + "GroupStyleId": "00000000-0000-0000-0000-000000000000", + "InitialTop": 0.0, + "InitialHeight": 0.0, + "TextblockHeight": 0.0, + "Background": "#FFC1D676" + } + ], + "X": -3128.1873758585198, + "Y": 566.8799320435132, + "Zoom": 0.31346715436956224 + } +} \ No newline at end of file diff --git a/src/DynamoCore/Configuration/PathManager.cs b/src/DynamoCore/Configuration/PathManager.cs index e018ce793c8..04c21722c45 100644 --- a/src/DynamoCore/Configuration/PathManager.cs +++ b/src/DynamoCore/Configuration/PathManager.cs @@ -215,7 +215,19 @@ public string DefaultUserDefinitions public IEnumerable DefinitionDirectories { - get { return RootDirectories.Select(path => TransformPath(path, DefinitionsDirectoryName)); } + get + { + var definitionDirectories = RootDirectories.Select(path => TransformPath(path, DefinitionsDirectoryName)).ToList(); + var commonDefinitionsDirectory = Path.Combine(commonDataDir, DefinitionsDirectoryName); + + if (Directory.Exists(commonDefinitionsDirectory) && + !definitionDirectories.Contains(commonDefinitionsDirectory, StringComparer.OrdinalIgnoreCase)) + { + definitionDirectories.Add(commonDefinitionsDirectory); + } + + return definitionDirectories; + } } [Obsolete("This property will be removed in a future version of Dynamo.", false)] diff --git a/src/DynamoCore/DynamoCore.csproj b/src/DynamoCore/DynamoCore.csproj index 25b5d25e6cc..faf0358a636 100644 --- a/src/DynamoCore/DynamoCore.csproj +++ b/src/DynamoCore/DynamoCore.csproj @@ -131,6 +131,7 @@ + @@ -223,6 +224,7 @@ + diff --git a/test/Libraries/PackageManagerTests/PackageLoaderTests.cs b/test/Libraries/PackageManagerTests/PackageLoaderTests.cs index 5a5e376d32b..f14bab650a5 100644 --- a/test/Libraries/PackageManagerTests/PackageLoaderTests.cs +++ b/test/Libraries/PackageManagerTests/PackageLoaderTests.cs @@ -1430,6 +1430,8 @@ public void BuiltInPackagesIsNotExposedInPathManager() var packageDirectories = pathManager.PackagesDirectories; var defaultUserDefinitions = pathManager.DefaultUserDefinitions; var userDefinitions = pathManager.DefinitionDirectories; + var commonDefinitions = Path.Combine(pathManager.CommonDataDirectory, PathManager.DefinitionsDirectoryName); + var expectedDefinitionDirectoryCount = Directory.Exists(commonDefinitions) ? 3 : 2; // Assert const string ExpectedToken = @"%BuiltInPackages%"; @@ -1438,9 +1440,13 @@ public void BuiltInPackagesIsNotExposedInPathManager() Assert.IsFalse(packageDirectories.Contains(ExpectedToken)); Assert.IsTrue(packageDirectories.Contains(PathManager.BuiltinPackagesDirectory)); Assert.AreNotEqual(ExpectedToken, defaultUserDefinitions); - Assert.AreEqual(2, userDefinitions.Count()); + Assert.AreEqual(expectedDefinitionDirectoryCount, userDefinitions.Count()); Assert.IsFalse(userDefinitions.Contains(ExpectedToken)); Assert.IsTrue(userDefinitions.Contains(PathManager.BuiltinPackagesDirectory)); + if (Directory.Exists(commonDefinitions)) + { + Assert.IsTrue(userDefinitions.Contains(commonDefinitions)); + } } [Test] From 499b317b16e97d78fafbbfc01a76cb1b313c7e16 Mon Sep 17 00:00:00 2001 From: Chloepeg Date: Tue, 7 Jul 2026 14:16:51 +0100 Subject: [PATCH 2/3] Address Pr comments - Make definition directories test assert shipped definitions folder exists - Clarify requireClosed description in Curve_Validate.dyf - Fix Package/Library Search Paths typo in Curve_Validate note --- doc/distrib/Definitions/Curve_Validate.dyf | 4 ++-- .../PackageManagerTests/PackageLoaderTests.cs | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/doc/distrib/Definitions/Curve_Validate.dyf b/doc/distrib/Definitions/Curve_Validate.dyf index 742e8d472d1..c354b4960a2 100644 --- a/doc/distrib/Definitions/Curve_Validate.dyf +++ b/doc/distrib/Definitions/Curve_Validate.dyf @@ -85,7 +85,7 @@ "TypeName": "bool", "TypeRank": 0, "DefaultValue": "false", - "Description": "Closed rule\ntrue = closed curves allowed\nfalse = open curves allowed" + "Description": "Closed rule\ntrue = curves must be closed\nfalse = open curves allowed" }, "Id": "01aea9183a734898b9d37e5efadd0919", "NodeType": "InputNode", @@ -2317,7 +2317,7 @@ }, { "Id": "a4e7bab50f804226a58b34748879b6eb", - "Title": "ADDITIONAL COMMENTS\n_____________________________________________________ \n\nCustom nodes are typically found in the Add-ons section of the Library.\r\nThis custom node is located under:\r\nAdd-ons → Standards → Curve → Curve_Validate\r\n\r\nIf it does not appear:\r\n\r\nCheck that the .dyf file is in your custom nodes folder\r\n\r\nGo to:\r\nPackages → Package Manager → Package Settings → Package/Lirary Search Paths\r\nVerify the folder path is listed or add a new path\r\nRestart Dynamo after adding new custom nodes\n", + "Title": "ADDITIONAL COMMENTS\n_____________________________________________________ \n\nCustom nodes are typically found in the Add-ons section of the Library.\r\nThis custom node is located under:\r\nAdd-ons → Standards → Curve → Curve_Validate\r\n\r\nIf it does not appear:\r\n\r\nCheck that the .dyf file is in your custom nodes folder\r\n\r\nGo to:\r\nPackages → Package Manager → Package Settings → Package/Library Search Paths\r\nVerify the folder path is listed or add a new path\r\nRestart Dynamo after adding new custom nodes\n", "DescriptionText": null, "IsExpanded": true, "WidthAdjustment": 0.0, diff --git a/test/Libraries/PackageManagerTests/PackageLoaderTests.cs b/test/Libraries/PackageManagerTests/PackageLoaderTests.cs index f14bab650a5..d881bf233b6 100644 --- a/test/Libraries/PackageManagerTests/PackageLoaderTests.cs +++ b/test/Libraries/PackageManagerTests/PackageLoaderTests.cs @@ -1431,7 +1431,6 @@ public void BuiltInPackagesIsNotExposedInPathManager() var defaultUserDefinitions = pathManager.DefaultUserDefinitions; var userDefinitions = pathManager.DefinitionDirectories; var commonDefinitions = Path.Combine(pathManager.CommonDataDirectory, PathManager.DefinitionsDirectoryName); - var expectedDefinitionDirectoryCount = Directory.Exists(commonDefinitions) ? 3 : 2; // Assert const string ExpectedToken = @"%BuiltInPackages%"; @@ -1440,13 +1439,12 @@ public void BuiltInPackagesIsNotExposedInPathManager() Assert.IsFalse(packageDirectories.Contains(ExpectedToken)); Assert.IsTrue(packageDirectories.Contains(PathManager.BuiltinPackagesDirectory)); Assert.AreNotEqual(ExpectedToken, defaultUserDefinitions); - Assert.AreEqual(expectedDefinitionDirectoryCount, userDefinitions.Count()); + Assert.IsTrue(Directory.Exists(commonDefinitions), + "Shipped definitions folder should be copied to the DynamoCore output directory during build."); + Assert.AreEqual(3, userDefinitions.Count()); Assert.IsFalse(userDefinitions.Contains(ExpectedToken)); Assert.IsTrue(userDefinitions.Contains(PathManager.BuiltinPackagesDirectory)); - if (Directory.Exists(commonDefinitions)) - { - Assert.IsTrue(userDefinitions.Contains(commonDefinitions)); - } + Assert.IsTrue(userDefinitions.Contains(commonDefinitions)); } [Test] From 9fe0aee70e9a9b897b53ce68101f48db82bc5125 Mon Sep 17 00:00:00 2001 From: Chloepeg Date: Tue, 7 Jul 2026 16:32:05 +0100 Subject: [PATCH 3/3] Clear en-US Import & Export template file paths and sample data Remove user-specific File Path values, set associated files note to N/A, and delete unused Templates/Data sample files. --- doc/distrib/Templates/Data/CSV_Export_Example | 1 - .../Templates/Data/CSV_Import_Example.csv | 7 - doc/distrib/Templates/Data/CurveValidate.dyf | 2794 ----------------- .../Data/Geometry_Export_Example.sat | 151 - .../Data/Geometry_Import_Example.sat | 156 - .../en-US/Import & Export Workflow.dyn | 30 +- doc/distrib/xml/en-US/ProtoGeometry.XML | 2 +- 7 files changed, 16 insertions(+), 3125 deletions(-) delete mode 100644 doc/distrib/Templates/Data/CSV_Export_Example delete mode 100644 doc/distrib/Templates/Data/CSV_Import_Example.csv delete mode 100644 doc/distrib/Templates/Data/CurveValidate.dyf delete mode 100644 doc/distrib/Templates/Data/Geometry_Export_Example.sat delete mode 100644 doc/distrib/Templates/Data/Geometry_Import_Example.sat diff --git a/doc/distrib/Templates/Data/CSV_Export_Example b/doc/distrib/Templates/Data/CSV_Export_Example deleted file mode 100644 index 33458cac40d..00000000000 --- a/doc/distrib/Templates/Data/CSV_Export_Example +++ /dev/null @@ -1 +0,0 @@ -S-STRUCT diff --git a/doc/distrib/Templates/Data/CSV_Import_Example.csv b/doc/distrib/Templates/Data/CSV_Import_Example.csv deleted file mode 100644 index a8a69d201a3..00000000000 --- a/doc/distrib/Templates/Data/CSV_Import_Example.csv +++ /dev/null @@ -1,7 +0,0 @@ -Type,Name -A-WALL,Wall-01 -D_DET,Mullion-02 -A-DOOR,Door-01 -A-DOOR,Door-01 -S-STRUCT,Struct-01 -S_STRUCT,Struct-02 diff --git a/doc/distrib/Templates/Data/CurveValidate.dyf b/doc/distrib/Templates/Data/CurveValidate.dyf deleted file mode 100644 index 7a1ba5e5f42..00000000000 --- a/doc/distrib/Templates/Data/CurveValidate.dyf +++ /dev/null @@ -1,2794 +0,0 @@ -{ - "Uuid": "53ada2b0-5178-45ab-9346-72cb13065dfc", - "IsCustomNode": true, - "Category": "Standards.Curve", - "Description": "Validates curve geometry by checking nulls, type, length tolerance, and optional closure. Returns valid/invalid curves, boolean mask, and failure reasons.", - "Name": "Curve_Validate", - "ElementResolver": { - "ResolutionMap": {} - }, - "Inputs": [], - "Outputs": [], - "Nodes": [ - { - "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", - "ElementResolver": null, - "Symbol": " // Curves that failed validation\r\n // These should not be used for modelling\r\n invalidCurves : var[]..[]", - "Id": "374c7e6c03db439c91a377e3f2842d01", - "NodeType": "OutputNode", - "Inputs": [ - { - "Id": "715f107ff96e439bb8cb53fc760d5101", - "Name": "", - "Description": "Output Data", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [], - "Replication": "Disabled", - "Description": "A function output, use with custom nodes" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", - "ElementResolver": null, - "Symbol": " // Curves that passed all validation checks\r\n // These are safe to use for modelling and automation\r\n validCurves : var[]..[]", - "Id": "5bb2a370018247d6b29e9de87fa36323", - "NodeType": "OutputNode", - "Inputs": [ - { - "Id": "b4a49eb285584851aafa6022727a209a", - "Name": "", - "Description": "Output Data", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [], - "Replication": "Disabled", - "Description": "A function output, use with custom nodes" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", - "Parameter": { - "Name": "minLength", - "TypeName": "double", - "TypeRank": 0, - "DefaultValue": "0.01", - "Description": " Minimum allowed curve length\nCurves shorter than this value will be marked invalid" - }, - "Id": "65cf7f4a00b84589bb1ab75c87ca2259", - "NodeType": "InputNode", - "Inputs": [], - "Outputs": [ - { - "Id": "5897fa14632442ce931387a588e52667", - "Name": "", - "Description": "Input Data", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Disabled", - "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", - "Parameter": { - "Name": "requireClosed", - "TypeName": "bool", - "TypeRank": 0, - "DefaultValue": "false", - "Description": "Closed rule\ntrue = closed curves allowed\nfalse = open curves allowed" - }, - "Id": "01aea9183a734898b9d37e5efadd0919", - "NodeType": "InputNode", - "Inputs": [], - "Outputs": [ - { - "Id": "84a142d57f224411b5b2986e11bda055", - "Name": "", - "Description": "Input Data", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Disabled", - "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", - "Id": "32d1dafa69ea416ba20e25499fbe803e", - "NodeType": "FunctionNode", - "Inputs": [ - { - "Id": "b13fe90be86d417083baa7e95b2bff9c", - "Name": "list", - "Description": "List to filter.\n\nvar[]..[]", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "ff39af4dca4c42f8a027febedfc94ec2", - "Name": "mask", - "Description": "List of booleans representing a mask.\n\nvar[]..[]", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "9f8d4f2ae255496ea1668ab5eb7959a8", - "Name": "in", - "Description": "Items whose mask index is true.", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "f64703916aa24177b131ab6bf92e7a83", - "Name": "out", - "Description": "Items whose mask index is false.", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "FunctionSignature": "DSCore.List.FilterByBoolMask@var[]..[],var[]..[]", - "Replication": "Auto", - "Description": "Filters a sequence by looking up corresponding indices in a separate list of booleans.\n\nList.FilterByBoolMask (list: var[]..[], mask: var[]..[]): var[]..[]" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", - "Id": "818ac1db64db47f0a4cdc21080920dbe", - "NodeType": "FunctionNode", - "Inputs": [ - { - "Id": "d3e7d0f6fd3f4e6d8a848a0b2b895ad0", - "Name": "x", - "Description": "boolean to reverse.\n\nvar[]..[]", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "77652f30109143f2bf582455fb75a326", - "Name": "bool", - "Description": "type var[]..[] (reversed boolean)", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "FunctionSignature": "Not@var[]..[]", - "Replication": "Auto", - "Description": "Negates the input, e.g. returns false when the input is true.\n\nNot (x: var[]..[]): var[]..[]" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", - "Id": "572d64bd67dc4fc9b3557662a5cfbaf6", - "NodeType": "FunctionNode", - "Inputs": [ - { - "Id": "704df4d3eb084837b45ab85859778d62", - "Name": "list", - "Description": "List to filter.\n\nvar[]..[]", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "bc59d40ed2624ef3a18dc24b619af3b4", - "Name": "mask", - "Description": "List of booleans representing a mask.\n\nvar[]..[]", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "49dbf21c5617430f92f67f59df1189eb", - "Name": "in", - "Description": "Items whose mask index is true.", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "b0303c9c9a914e03b9a7fde7189d1f1d", - "Name": "out", - "Description": "Items whose mask index is false.", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "FunctionSignature": "DSCore.List.FilterByBoolMask@var[]..[],var[]..[]", - "Replication": "Auto", - "Description": "Filters a sequence by looking up corresponding indices in a separate list of booleans.\n\nList.FilterByBoolMask (list: var[]..[], mask: var[]..[]): var[]..[]" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", - "Id": "b545cc20c0c2417a962ee100527ffbbf", - "NodeType": "FunctionNode", - "Inputs": [ - { - "Id": "0b432150c7004cc2a2c5d2b123a12230", - "Name": "curve", - "Description": "Autodesk.DesignScript.Geometry.Curve", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "62a0c458869145e98c15cda2bed49a48", - "Name": "double", - "Description": "double", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.Length", - "Replication": "Auto", - "Description": "Returns the total arc length of the curve\n\nCurve.Length: double" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", - "Id": "6ed8fedacc5a419883d1d4a4299dd19a", - "NodeType": "FunctionNode", - "Inputs": [ - { - "Id": "6a462cd4102d4b518c75936bc7227d2d", - "Name": "x", - "Description": "Integer or double value\n\nvar[]..[]", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "597e23f135884a3a9372ee16da38f620", - "Name": "y", - "Description": "Integer or double value\n\nvar[]..[]", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "70a48900f65d4a5b8616822af93cc992", - "Name": "bool", - "Description": "True if x is equal or greater than y, false if not", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "FunctionSignature": ">=@var[]..[],var[]..[]", - "Replication": "Auto", - "Description": "Compares if x is greater or equals to y\n\n>= (x: var[]..[], y: var[]..[]): var[]..[]" - }, - { - "ConcreteType": "CoreNodeModels.Logic.And, CoreNodeModels", - "VariableInputPorts": true, - "Id": "258052d1869d4aa98981061ea9785f7f", - "NodeType": "ExtensionNode", - "Inputs": [ - { - "Id": "cb98ecd9242040b4aea8ba45915efe54", - "Name": "bool0", - "Description": "Boolean #0", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "e98880858bed46b98082092759a6f82d", - "Name": "bool1", - "Description": "Boolean #1", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "a33a0ed5beac45b5b7d7694d5403e10d", - "Name": "bool", - "Description": "Result block produced", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Auto", - "Description": "Boolean AND: Returns True only if all of the inputs are true. If any is false, returns False." - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", - "Id": "4ff72efe366d482791fd387733eff295", - "NodeType": "FunctionNode", - "Inputs": [ - { - "Id": "7cd925b2ae094909ac45f311189a8359", - "Name": "curve", - "Description": "Autodesk.DesignScript.Geometry.Curve", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "9c452086520a4828a0d03ac40f915bb2", - "Name": "bool", - "Description": "bool", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.IsClosed", - "Replication": "Auto", - "Description": "Returns True if a curve is closed, False otherwise.\n\nCurve.IsClosed: bool" - }, - { - "ConcreteType": "CoreNodeModels.Logic.RefactoredIf, CoreNodeModels", - "Id": "402f74e8a10a419aaf9bd2878f334ebb", - "NodeType": "ExtensionNode", - "Inputs": [ - { - "Id": "5882be942bc642328480f4288dbf56a2", - "Name": "test", - "Description": "Boolean test", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "7c44ba85994f43dab3578e64012ebd53", - "Name": "true", - "Description": "Returned if test is true", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "2f40fe958f184170bd010c24b0ef78c9", - "Name": "false", - "Description": "Returned if test is false", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "0aa82d7ed7d0484c8dbe54294ee6feae", - "Name": "result", - "Description": "Result block produced", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Auto", - "Description": "Returns the result of either True or False input depending on what boolean value is toggled in the test input. Supports recursion which requires that only a single branch be executed. It's critical that that both True and False branches are isolated and do not interact with each other!" - }, - { - "ConcreteType": "CoreNodeModels.Input.BoolSelector, CoreNodeModels", - "Id": "486e11d267104c3da19e23adefeb60ac", - "NodeType": "BooleanInputNode", - "Inputs": [], - "Outputs": [ - { - "Id": "811e7dc194cd4d96bc04dd9d12cab474", - "Name": "", - "Description": "Boolean", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Disabled", - "Description": "Enables selection between True and False", - "InputValue": true - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", - "Id": "cc1c6606a66645f09832abe2d23eca69", - "NodeType": "FunctionNode", - "Inputs": [ - { - "Id": "d544e15f0424466098972492238bc5aa", - "Name": "string", - "Description": "String to search in\n\nstring", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "0ab5f7066bce4689b111fd5f78a62408", - "Name": "searchFor", - "Description": "Substring to search for\n\nstring", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "6ab0373edc8645eb97f06c3a5be89d14", - "Name": "ignoreCase", - "Description": "Whether or not comparison takes case into account\n\nbool\nDefault value : false", - "UsingDefaultValue": true, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "596ce849c39d4107bcf21660edb19ca8", - "Name": "bool", - "Description": "Whether the string contains the substring", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "FunctionSignature": "DSCore.String.Contains@string,string,bool", - "Replication": "Auto", - "Description": "Determines if the given string contains the given substring.\n\nString.Contains (string: string, searchFor: string, ignoreCase: bool = false): bool" - }, - { - "ConcreteType": "CoreNodeModels.Input.StringInput, CoreNodeModels", - "Id": "2d705db6df46496cb771a0751fb1100a", - "NodeType": "StringInputNode", - "Inputs": [], - "Outputs": [ - { - "Id": "354e5e9d524e4d5483d7dd146941a3d4", - "Name": "", - "Description": "String", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Disabled", - "Description": "Creates a string", - "InputValue": "Arc" - }, - { - "ConcreteType": "CoreNodeModels.Input.StringInput, CoreNodeModels", - "Id": "06f58025564948d8b2cf87914cb37af5", - "NodeType": "StringInputNode", - "Inputs": [], - "Outputs": [ - { - "Id": "1cf89edc9dc34e128fa8913dccc6de0d", - "Name": "", - "Description": "String", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Disabled", - "Description": "Creates a string", - "InputValue": "PolyCurve" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", - "Id": "0205316f59c9406d9edfc2ce74261192", - "NodeType": "FunctionNode", - "Inputs": [ - { - "Id": "718adb1f5c844bb6b18894228e12626d", - "Name": "string", - "Description": "String to search in\n\nstring", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "edf0d22a2dd54b8c823f2839b50ece47", - "Name": "searchFor", - "Description": "Substring to search for\n\nstring", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "d9f4aaa42892475c895c30414662f6e2", - "Name": "ignoreCase", - "Description": "Whether or not comparison takes case into account\n\nbool\nDefault value : false", - "UsingDefaultValue": true, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "02d229d642c148678d24ba3e96598307", - "Name": "bool", - "Description": "Whether the string contains the substring", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "FunctionSignature": "DSCore.String.Contains@string,string,bool", - "Replication": "Auto", - "Description": "Determines if the given string contains the given substring.\n\nString.Contains (string: string, searchFor: string, ignoreCase: bool = false): bool" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", - "Id": "8fa911bb9d244581bfc7b1183c7cb46b", - "NodeType": "FunctionNode", - "Inputs": [ - { - "Id": "05257de1915d4da1b95d5ef0dff7646d", - "Name": "list", - "Description": "List to flatten.\n\nvar[]..[]", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "22f21ea1324944f9a2a75dc99fa722df", - "Name": "amount", - "Description": "Layers of list nesting to remove (-1 will remove all list nestings)\n\nint\nDefault value : -1", - "UsingDefaultValue": true, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "1f3ef7fcd43e4c04bd87db5ac22b1ecc", - "Name": "list", - "Description": "Flattened list by amount", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "FunctionSignature": "DSCore.List.Flatten@var[]..[],int", - "Replication": "Auto", - "Description": "Flattens a nested list of lists by a certain amount.\n\nList.Flatten (list: var[]..[], amount: int = -1): var[]..[]" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", - "Id": "40f4fc3eca7d4a9e80750c4cc385dacc", - "NodeType": "FunctionNode", - "Inputs": [ - { - "Id": "4ae36139161d491aa36d01553373689a", - "Name": "object", - "Description": "Object to test.\n\nvar", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "8c82019e047f4a008ca54bb4d70dcbd5", - "Name": "bool", - "Description": "Whether object is null.", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "FunctionSignature": "DSCore.Object.IsNull@var", - "Replication": "Auto", - "Description": "Determines if the given object is null.\n\nObject.IsNull (object: var): bool" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", - "Id": "cee07624b8044b63bb629dc049a70388", - "NodeType": "FunctionNode", - "Inputs": [ - { - "Id": "bfbcc6d7d6c144f8960139cc83bf2a9e", - "Name": "object", - "Description": "Object to query type\n\nvar", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "175f5ad429734cf2b88b38fec91a69a8", - "Name": "string", - "Description": "Type of object.", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "FunctionSignature": "DSCore.Object.Type@var", - "Replication": "Auto", - "Description": "Returns the type of object represented as string.\n\nObject.Type (object: var): string" - }, - { - "ConcreteType": "CoreNodeModels.Logic.And, CoreNodeModels", - "VariableInputPorts": true, - "Id": "d15df8a3fc7341a18e14d0762e22bfed", - "NodeType": "ExtensionNode", - "Inputs": [ - { - "Id": "4606d188d643453083bd61b18fbc4cb0", - "Name": "bool0", - "Description": "Boolean #0", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "6b1b39a0bdb7477ea4de1436865d547b", - "Name": "bool1", - "Description": "Boolean #1", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "3c5813c9da794b0997961166d859f672", - "Name": "bool", - "Description": "Result block produced", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Auto", - "Description": "Boolean AND: Returns True only if all of the inputs are true. If any is false, returns False." - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", - "ElementResolver": null, - "Symbol": " // Boolean mask of validation results\r\n // true = valid curve\r\n // false = invalid curve\r\n maskValid : bool[]..[]", - "Id": "374a52c848b14e2c9ec65647f7677094", - "NodeType": "OutputNode", - "Inputs": [ - { - "Id": "b638bcc8c7a74b3a9fc9775c06e81c56", - "Name": "", - "Description": "Output Data", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [], - "Replication": "Disabled", - "Description": "A function output, use with custom nodes" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", - "Id": "09e71c722a5b4f0aab8c6b24dcdbf38c", - "NodeType": "FunctionNode", - "Inputs": [ - { - "Id": "009e302c52fa4a8cad11b2f8c85f79a3", - "Name": "string", - "Description": "String to search in\n\nstring", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "1f91f1dae4d94c829b6221846422c5fd", - "Name": "searchFor", - "Description": "Substring to search for\n\nstring", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "a2c07d5301de4651b374ec6cdd07aae9", - "Name": "ignoreCase", - "Description": "Whether or not comparison takes case into account\n\nbool\nDefault value : false", - "UsingDefaultValue": true, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "4f943b953605419392fd98d59313c055", - "Name": "bool", - "Description": "Whether the string contains the substring", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "FunctionSignature": "DSCore.String.Contains@string,string,bool", - "Replication": "Auto", - "Description": "Determines if the given string contains the given substring.\n\nString.Contains (string: string, searchFor: string, ignoreCase: bool = false): bool" - }, - { - "ConcreteType": "CoreNodeModels.Logic.Or, CoreNodeModels", - "VariableInputPorts": true, - "Id": "6c601505e6d04040a596df4b990bd8ec", - "NodeType": "ExtensionNode", - "Inputs": [ - { - "Id": "c80d62e20a714b78be041fdf5dd2aeaa", - "Name": "bool0", - "Description": "Boolean #0", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "719a7857214647e196b856f60533b898", - "Name": "bool1", - "Description": "Boolean #1", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "a42f85bc593d4d539b95f05be9e7bb4f", - "Name": "bool2", - "Description": "Boolean #2", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "b03a56a2424b47f48dfa440b0b60e806", - "Name": "bool3", - "Description": "Boolean #3", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "0be3905cde0a49b79741e2e48b4660b0", - "Name": "bool", - "Description": "Result block produced", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Auto", - "Description": "Boolean OR: Returns True if any of the inputs are true. If none are true, returns False." - }, - { - "ConcreteType": "CoreNodeModels.Input.StringInput, CoreNodeModels", - "Id": "751b9345aca44ec9bd7577eca30d7ec0", - "NodeType": "StringInputNode", - "Inputs": [], - "Outputs": [ - { - "Id": "3333b66211d843418a36c9e9d355623d", - "Name": "", - "Description": "String", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Disabled", - "Description": "Creates a string", - "InputValue": "Line" - }, - { - "ConcreteType": "CoreNodeModels.Input.StringInput, CoreNodeModels", - "Id": "8a0207a60fa649c295f3141ba33e850c", - "NodeType": "StringInputNode", - "Inputs": [], - "Outputs": [ - { - "Id": "073a087262774e66999dcbb4ec23e890", - "Name": "", - "Description": "String", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Disabled", - "Description": "Creates a string", - "InputValue": "Curve" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", - "Id": "cfbd70811fc0457bafa60c0c5d65d9b1", - "NodeType": "FunctionNode", - "Inputs": [ - { - "Id": "a4c4b10d873f44cdb8bfd3ebc945be1a", - "Name": "string", - "Description": "String to search in\n\nstring", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "18b6791069cd4000b3fc99b0c8b613fc", - "Name": "searchFor", - "Description": "Substring to search for\n\nstring", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - }, - { - "Id": "5abfe09aa0f94229a8180d9767ba6023", - "Name": "ignoreCase", - "Description": "Whether or not comparison takes case into account\n\nbool\nDefault value : false", - "UsingDefaultValue": true, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Outputs": [ - { - "Id": "ded027159b574012afbc89cab7f8f928", - "Name": "bool", - "Description": "Whether the string contains the substring", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "FunctionSignature": "DSCore.String.Contains@string,string,bool", - "Replication": "Auto", - "Description": "Determines if the given string contains the given substring.\n\nString.Contains (string: string, searchFor: string, ignoreCase: bool = false): bool" - }, - { - "ConcreteType": "CoreNodeModels.Input.BoolSelector, CoreNodeModels", - "Id": "b47b0de9380d48c3b977f50646c95d36", - "NodeType": "BooleanInputNode", - "Inputs": [], - "Outputs": [ - { - "Id": "ea66b8a8fba042329f93cddb5b32527b", - "Name": "", - "Description": "Boolean", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Disabled", - "Description": "Enables selection between True and False", - "InputValue": true - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", - "Parameter": { - "Name": "curveLikeGeometry", - "TypeName": "var", - "TypeRank": -1, - "DefaultValue": null, - "Description": "Curves to check and validate\nYou can connect lines, arcs, polycurves, or any curve geometry" - }, - "Id": "4653dbe1c8e84b12a1e79049bb6d79c5", - "NodeType": "InputNode", - "Inputs": [], - "Outputs": [ - { - "Id": "c172b9ccf939472da74f75863b75df68", - "Name": "", - "Description": "Input Data", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Disabled", - "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" - }, - { - "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", - "Parameter": { - "Name": "flattenDepth", - "TypeName": "int", - "TypeRank": 0, - "DefaultValue": "-1", - "Description": "List structure control\n-1 fully flatten all nested lists\n0 no flatten\n1 flatten one level" - }, - "Id": "4512efc5eab8445aae2969f139554ace", - "NodeType": "InputNode", - "Inputs": [], - "Outputs": [ - { - "Id": "880242d54a474dfc9b90e4efac2b397f", - "Name": "", - "Description": "Input Data", - "UsingDefaultValue": false, - "Level": 2, - "UseLevels": false, - "KeepListStructure": false - } - ], - "Replication": "Disabled", - "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" - } - ], - "Connectors": [ - { - "Start": "5897fa14632442ce931387a588e52667", - "End": "597e23f135884a3a9372ee16da38f620", - "Id": "58620fbdc62d41f9bbf78698f0191920", - "IsHidden": "False" - }, - { - "Start": "84a142d57f224411b5b2986e11bda055", - "End": "5882be942bc642328480f4288dbf56a2", - "Id": "492dd6b8c4934f2f9401b8d2807ab340", - "IsHidden": "False" - }, - { - "Start": "9f8d4f2ae255496ea1668ab5eb7959a8", - "End": "b4a49eb285584851aafa6022727a209a", - "Id": "da1e762f123b43c996fe7838fef43cc9", - "IsHidden": "False" - }, - { - "Start": "f64703916aa24177b131ab6bf92e7a83", - "End": "715f107ff96e439bb8cb53fc760d5101", - "Id": "d16c24c768fc40d08640d73a792e6767", - "IsHidden": "False" - }, - { - "Start": "77652f30109143f2bf582455fb75a326", - "End": "e98880858bed46b98082092759a6f82d", - "Id": "009e8a0dad0e4de1aaece3c13ac8b0c9", - "IsHidden": "False" - }, - { - "Start": "49dbf21c5617430f92f67f59df1189eb", - "End": "b13fe90be86d417083baa7e95b2bff9c", - "Id": "c58e62c6cebb458cb6795c914bfa6f83", - "IsHidden": "False" - }, - { - "Start": "49dbf21c5617430f92f67f59df1189eb", - "End": "7cd925b2ae094909ac45f311189a8359", - "Id": "d87a1ba5532a445f9febd65c8210a0fc", - "IsHidden": "False" - }, - { - "Start": "49dbf21c5617430f92f67f59df1189eb", - "End": "0b432150c7004cc2a2c5d2b123a12230", - "Id": "692e558d556243aa8f47bec4d01b4375", - "IsHidden": "False" - }, - { - "Start": "62a0c458869145e98c15cda2bed49a48", - "End": "6a462cd4102d4b518c75936bc7227d2d", - "Id": "f76163f622fe4fd5a11669509ef7f746", - "IsHidden": "False" - }, - { - "Start": "70a48900f65d4a5b8616822af93cc992", - "End": "4606d188d643453083bd61b18fbc4cb0", - "Id": "9372f3c1f6a447e7a5bc59de26df0b55", - "IsHidden": "False" - }, - { - "Start": "a33a0ed5beac45b5b7d7694d5403e10d", - "End": "bc59d40ed2624ef3a18dc24b619af3b4", - "Id": "cd7f8a58acd8476e8d798b5fe376e3ba", - "IsHidden": "False" - }, - { - "Start": "9c452086520a4828a0d03ac40f915bb2", - "End": "7c44ba85994f43dab3578e64012ebd53", - "Id": "afa5b34700e74803a34dc66c88a84fb3", - "IsHidden": "False" - }, - { - "Start": "0aa82d7ed7d0484c8dbe54294ee6feae", - "End": "6b1b39a0bdb7477ea4de1436865d547b", - "Id": "e9cec2a363b24bc28b0ade1d9bbf8941", - "IsHidden": "False" - }, - { - "Start": "811e7dc194cd4d96bc04dd9d12cab474", - "End": "2f40fe958f184170bd010c24b0ef78c9", - "Id": "513d0b14b2b24c41a73b3bbdc29079af", - "IsHidden": "False" - }, - { - "Start": "596ce849c39d4107bcf21660edb19ca8", - "End": "a42f85bc593d4d539b95f05be9e7bb4f", - "Id": "df120c76fc6a4a9e93a87331515e398d", - "IsHidden": "False" - }, - { - "Start": "354e5e9d524e4d5483d7dd146941a3d4", - "End": "0ab5f7066bce4689b111fd5f78a62408", - "Id": "e2db92e004f04039aa6781b171d64417", - "IsHidden": "False" - }, - { - "Start": "1cf89edc9dc34e128fa8913dccc6de0d", - "End": "edf0d22a2dd54b8c823f2839b50ece47", - "Id": "18acd9abef9b4ee0beabfbbd4345b613", - "IsHidden": "False" - }, - { - "Start": "02d229d642c148678d24ba3e96598307", - "End": "b03a56a2424b47f48dfa440b0b60e806", - "Id": "94dda96e56ca47dfb3272a159e404675", - "IsHidden": "False" - }, - { - "Start": "1f3ef7fcd43e4c04bd87db5ac22b1ecc", - "End": "704df4d3eb084837b45ab85859778d62", - "Id": "1b04f71a66054bbc820e7e16dc0d9928", - "IsHidden": "False" - }, - { - "Start": "1f3ef7fcd43e4c04bd87db5ac22b1ecc", - "End": "4ae36139161d491aa36d01553373689a", - "Id": "a3e084915e5248058484e4969dd5ce52", - "IsHidden": "False" - }, - { - "Start": "1f3ef7fcd43e4c04bd87db5ac22b1ecc", - "End": "bfbcc6d7d6c144f8960139cc83bf2a9e", - "Id": "6b2f1a6570c842c3944ecf61f350faa8", - "IsHidden": "False" - }, - { - "Start": "8c82019e047f4a008ca54bb4d70dcbd5", - "End": "d3e7d0f6fd3f4e6d8a848a0b2b895ad0", - "Id": "f500dc0e647d4f2b96e848a09eed85a0", - "IsHidden": "False" - }, - { - "Start": "175f5ad429734cf2b88b38fec91a69a8", - "End": "d544e15f0424466098972492238bc5aa", - "Id": "f3b9d73987174fffa3ce6102b900252f", - "IsHidden": "False" - }, - { - "Start": "175f5ad429734cf2b88b38fec91a69a8", - "End": "718adb1f5c844bb6b18894228e12626d", - "Id": "ecd5932dea9f49aca7612a9112971898", - "IsHidden": "False" - }, - { - "Start": "175f5ad429734cf2b88b38fec91a69a8", - "End": "009e302c52fa4a8cad11b2f8c85f79a3", - "Id": "d23c383f75db4fc7b3bc554ccac45193", - "IsHidden": "False" - }, - { - "Start": "175f5ad429734cf2b88b38fec91a69a8", - "End": "a4c4b10d873f44cdb8bfd3ebc945be1a", - "Id": "cf51c098cf53472681821b47d0c09dcd", - "IsHidden": "False" - }, - { - "Start": "3c5813c9da794b0997961166d859f672", - "End": "ff39af4dca4c42f8a027febedfc94ec2", - "Id": "a6d0aaf2eedb47c893484fb9a919e0ad", - "IsHidden": "False" - }, - { - "Start": "3c5813c9da794b0997961166d859f672", - "End": "b638bcc8c7a74b3a9fc9775c06e81c56", - "Id": "45027cd2bc144434966db924f67b52b9", - "IsHidden": "False" - }, - { - "Start": "4f943b953605419392fd98d59313c055", - "End": "c80d62e20a714b78be041fdf5dd2aeaa", - "Id": "c2e9859ca5f94e33b0f9546c3e46a5a3", - "IsHidden": "False" - }, - { - "Start": "0be3905cde0a49b79741e2e48b4660b0", - "End": "cb98ecd9242040b4aea8ba45915efe54", - "Id": "ff70dfcb01ae4eaea85e30bda57a0451", - "IsHidden": "False" - }, - { - "Start": "3333b66211d843418a36c9e9d355623d", - "End": "1f91f1dae4d94c829b6221846422c5fd", - "Id": "331bce8807b3407fa77170f52994c1a1", - "IsHidden": "False" - }, - { - "Start": "073a087262774e66999dcbb4ec23e890", - "End": "18b6791069cd4000b3fc99b0c8b613fc", - "Id": "a36ebee2f7624a79b3869ea17538f62c", - "IsHidden": "False" - }, - { - "Start": "ded027159b574012afbc89cab7f8f928", - "End": "719a7857214647e196b856f60533b898", - "Id": "d8405d35e9334668861c922a0b8a2910", - "IsHidden": "False" - }, - { - "Start": "ea66b8a8fba042329f93cddb5b32527b", - "End": "6ab0373edc8645eb97f06c3a5be89d14", - "Id": "11eda958292642e2b096b198dcb68e3b", - "IsHidden": "False" - }, - { - "Start": "ea66b8a8fba042329f93cddb5b32527b", - "End": "d9f4aaa42892475c895c30414662f6e2", - "Id": "d9d1e631d31e4227bf50cc6d0025d091", - "IsHidden": "False" - }, - { - "Start": "ea66b8a8fba042329f93cddb5b32527b", - "End": "a2c07d5301de4651b374ec6cdd07aae9", - "Id": "06c6880b5ae0456fb6a751ea5fb3e42f", - "IsHidden": "False" - }, - { - "Start": "ea66b8a8fba042329f93cddb5b32527b", - "End": "5abfe09aa0f94229a8180d9767ba6023", - "Id": "83532f38d05e43b7b6f4f7d30c6d2bde", - "IsHidden": "False" - }, - { - "Start": "c172b9ccf939472da74f75863b75df68", - "End": "05257de1915d4da1b95d5ef0dff7646d", - "Id": "7b26ad0cc1324780a3568451a0f94fcc", - "IsHidden": "False" - }, - { - "Start": "880242d54a474dfc9b90e4efac2b397f", - "End": "22f21ea1324944f9a2a75dc99fa722df", - "Id": "1735bf5294174249a5f9bdf0e8ceff6f", - "IsHidden": "False" - } - ], - "Dependencies": [], - "NodeLibraryDependencies": [], - "Author": "None provided", - "Bindings": [], - "View": { - "Dynamo": { - "ScaleFactor": 1.0, - "HasRunWithoutCrash": false, - "IsVisibleInDynamoLibrary": true, - "Version": "3.0.3.7597", - "RunType": "Manual", - "RunPeriod": "1000" - }, - "Camera": { - "Name": "_Background Preview", - "EyeX": -17.0, - "EyeY": 24.0, - "EyeZ": 50.0, - "LookX": 12.0, - "LookY": -13.0, - "LookZ": -58.0, - "UpX": 0.0, - "UpY": 1.0, - "UpZ": 0.0 - }, - "ConnectorPins": [], - "NodeViews": [ - { - "Id": "374c7e6c03db439c91a377e3f2842d01", - "Name": "Output", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 15051.21445375908, - "Y": -98.7753600612698 - }, - { - "Id": "5bb2a370018247d6b29e9de87fa36323", - "Name": "Output", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 15054.370534376923, - "Y": -296.1822705154069 - }, - { - "Id": "65cf7f4a00b84589bb1ab75c87ca2259", - "Name": "Input", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 12917.791253108337, - "Y": -231.0772318080892 - }, - { - "Id": "01aea9183a734898b9d37e5efadd0919", - "Name": "Input", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 11915.67888836061, - "Y": -231.0772318080892 - }, - { - "Id": "32d1dafa69ea416ba20e25499fbe803e", - "Name": "List.FilterByBoolMask", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 14435.062778455687, - "Y": -251.23178039488516 - }, - { - "Id": "818ac1db64db47f0a4cdc21080920dbe", - "Name": "Not", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 10220.226912152484, - "Y": -159.1724670683144 - }, - { - "Id": "572d64bd67dc4fc9b3557662a5cfbaf6", - "Name": "List.FilterByBoolMask", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 11053.933325392347, - "Y": -231.0772318080892 - }, - { - "Id": "b545cc20c0c2417a962ee100527ffbbf", - "Name": "Curve.Length", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 12625.52890156899, - "Y": -790.4964433474283 - }, - { - "Id": "6ed8fedacc5a419883d1d4a4299dd19a", - "Name": ">=", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 13478.191597792445, - "Y": -794.0292298127654 - }, - { - "Id": "258052d1869d4aa98981061ea9785f7f", - "Name": "And", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 10661.797765336123, - "Y": -198.88922531653907 - }, - { - "Id": "4ff72efe366d482791fd387733eff295", - "Name": "Curve.IsClosed", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 11915.67888836061, - "Y": -950.3299845786933 - }, - { - "Id": "402f74e8a10a419aaf9bd2878f334ebb", - "Name": "If", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 12634.834144932627, - "Y": -993.9261548898146 - }, - { - "Id": "486e11d267104c3da19e23adefeb60ac", - "Name": "Boolean", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 11915.67888836061, - "Y": -794.9586945551989 - }, - { - "Id": "cc1c6606a66645f09832abe2d23eca69", - "Name": "String.Contains", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 10285.055245948593, - "Y": -973.9634763066905 - }, - { - "Id": "2d705db6df46496cb771a0751fb1100a", - "Name": "String", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 9989.604791877522, - "Y": -937.5620657059769 - }, - { - "Id": "06f58025564948d8b2cf87914cb37af5", - "Name": "String", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 9989.604791877522, - "Y": -726.9634763066905 - }, - { - "Id": "0205316f59c9406d9edfc2ce74261192", - "Name": "String.Contains", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 10285.055245948593, - "Y": -760.9634763066905 - }, - { - "Id": "8fa911bb9d244581bfc7b1183c7cb46b", - "Name": "List.Flatten", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 9303.57832358829, - "Y": -212.21418255730532 - }, - { - "Id": "40f4fc3eca7d4a9e80750c4cc385dacc", - "Name": "Object.IsNull", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 9767.291691182974, - "Y": -156.20760738031754 - }, - { - "Id": "cee07624b8044b63bb629dc049a70388", - "Name": "Object.Type", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 9771.683694342511, - "Y": -320.3120964063319 - }, - { - "Id": "d15df8a3fc7341a18e14d0762e22bfed", - "Name": "And", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 13747.727004442839, - "Y": -1029.6953785515693 - }, - { - "Id": "374a52c848b14e2c9ec65647f7677094", - "Name": "Output", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 15060.715868250327, - "Y": -1032.2281999573022 - }, - { - "Id": "09e71c722a5b4f0aab8c6b24dcdbf38c", - "Name": "String.Contains", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 10285.055245948593, - "Y": -1398.9634763066904 - }, - { - "Id": "6c601505e6d04040a596df4b990bd8ec", - "Name": "Or", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 10606.055245948593, - "Y": -1130.9634763066904 - }, - { - "Id": "751b9345aca44ec9bd7577eca30d7ec0", - "Name": "String", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 9989.604791877522, - "Y": -1364.9634763066904 - }, - { - "Id": "8a0207a60fa649c295f3141ba33e850c", - "Name": "String", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 9989.604791877522, - "Y": -1150.8623653227623 - }, - { - "Id": "cfbd70811fc0457bafa60c0c5d65d9b1", - "Name": "String.Contains", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 10285.055245948593, - "Y": -1185.9634763066904 - }, - { - "Id": "b47b0de9380d48c3b977f50646c95d36", - "Name": "Boolean", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 9587.829014190798, - "Y": -1039.3148385199038 - }, - { - "Id": "4653dbe1c8e84b12a1e79049bb6d79c5", - "Name": "Input", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 7863.797344812867, - "Y": -203.5325369099039 - }, - { - "Id": "4512efc5eab8445aae2969f139554ace", - "Name": "Input", - "IsSetAsInput": false, - "IsSetAsOutput": false, - "Excluded": false, - "ShowGeometry": true, - "X": 7861.600795952214, - "Y": -20.648630157883872 - } - ], - "Annotations": [ - { - "Id": "5c6d55cc3a454993847a0cdd347c92ee", - "Title": "Outputs", - "DescriptionText": "validCurves: curves that passed validation\n\ninvalidCurves: curves that failed validation\n\nmaskValid: boolean mask for filtering elsewhere", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "5bb2a370018247d6b29e9de87fa36323", - "374c7e6c03db439c91a377e3f2842d01", - "374a52c848b14e2c9ec65647f7677094" - ], - "HasNestedGroups": false, - "Left": 15041.21445375908, - "Top": -1157.2281999573022, - "Width": 531.156080617844, - "Height": 1216.4528398960324, - "FontSize": 36.0, - "GroupStyleId": "07655dc1-2d65-4fed-8d6a-37235d3e3a8d", - "InitialTop": -1032.2281999573022, - "InitialHeight": 1078.4528398960324, - "TextblockHeight": 115.0, - "Background": "#FFFFC999" - }, - { - "Id": "85d4ff7db6a14cb987d7ff73e3f3d8a6", - "Title": "Inputs", - "DescriptionText": "Use these controls to define what “valid” means.\r\nminLength is a minimum curve length threshold.\nSet requireClosed to true if curves must be closed (loops)", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "65cf7f4a00b84589bb1ab75c87ca2259", - "01aea9183a734898b9d37e5efadd0919" - ], - "HasNestedGroups": false, - "Left": 11905.67888836061, - "Top": -327.0772318080892, - "Width": 1545.112364747727, - "Height": 270.0, - "FontSize": 36.0, - "GroupStyleId": "883066aa-1fe2-44a4-9bd1-c3df86bfe9f6", - "InitialTop": -231.0772318080892, - "InitialHeight": 145.0, - "TextblockHeight": 86.0, - "Background": "#FFFFB8D8" - }, - { - "Id": "6a8b5c1250654edd9263953862de2843", - "Title": "2", - "DescriptionText": "", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "1eac80dc7b20477aa1b07dc6d307ee9b" - ], - "HasNestedGroups": false, - "Left": 11822.921761399757, - "Top": -322.0726086243335, - "Width": 70.0, - "Height": 151.0, - "FontSize": 60.0, - "GroupStyleId": "883066aa-1fe2-44a4-9bd1-c3df86bfe9f6", - "InitialTop": -220.0726086243335, - "InitialHeight": 145.0, - "TextblockHeight": 92.0, - "Background": "#FFFFB8D8" - }, - { - "Id": "b9b81da291664b5ab483c9b4d211a5c9", - "Title": "Split Valid And Invalid Curves", - "DescriptionText": "Uses the final boolean mask to separate curves into valid and invalid lists.", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "32d1dafa69ea416ba20e25499fbe803e" - ], - "HasNestedGroups": false, - "Left": 14425.062778455687, - "Top": -390.23178039488516, - "Width": 255.0, - "Height": 306.0, - "FontSize": 36.0, - "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", - "InitialTop": -251.23178039488516, - "InitialHeight": 145.0, - "TextblockHeight": 129.0, - "Background": "#FFB9F9E1" - }, - { - "Id": "88e730d8681646febb94a8edfcb92bc5", - "Title": "4", - "DescriptionText": "", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "57ab668a89b84ac9a4337be16ab93b13" - ], - "HasNestedGroups": false, - "Left": 14326.567652945854, - "Top": -389.23909479862994, - "Width": 70.0, - "Height": 151.0, - "FontSize": 60.0, - "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", - "InitialTop": -287.23909479862994, - "InitialHeight": 145.0, - "TextblockHeight": 92.0, - "Background": "#FFB9F9E1" - }, - { - "Id": "28bda4ea6f4d4c2791cb1d51b5f9f9f7", - "Title": "Null And Type Validation", - "DescriptionText": "Filters out nulls and non-curve objects before running curve geometry checks.\nThis prevents warnings and makes the node safer for mixed inputs.", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "8fa911bb9d244581bfc7b1183c7cb46b", - "40f4fc3eca7d4a9e80750c4cc385dacc", - "818ac1db64db47f0a4cdc21080920dbe", - "cee07624b8044b63bb629dc049a70388", - "572d64bd67dc4fc9b3557662a5cfbaf6", - "258052d1869d4aa98981061ea9785f7f" - ], - "HasNestedGroups": false, - "Left": 9293.57832358829, - "Top": -402.3120964063319, - "Width": 2005.3550018040569, - "Height": 378.10448902601433, - "FontSize": 36.0, - "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", - "InitialTop": -320.3120964063319, - "InitialHeight": 309.10448902601433, - "TextblockHeight": 72.0, - "Background": "#FFB9F9E1" - }, - { - "Id": "d53a47b336e34575ab7f72e009118609", - "Title": "Geometry Checks (Length And Closure)", - "DescriptionText": "Applies curve rules:\n\nlength must be ≥ minLength\n\nif requireClosed is true, curve must be closed", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "b545cc20c0c2417a962ee100527ffbbf", - "6ed8fedacc5a419883d1d4a4299dd19a", - "4ff72efe366d482791fd387733eff295", - "402f74e8a10a419aaf9bd2878f334ebb", - "486e11d267104c3da19e23adefeb60ac", - "d15df8a3fc7341a18e14d0762e22bfed", - "b2f8f5c0d96f4a889aeb5c7fd91376e9" - ], - "HasNestedGroups": false, - "Left": 11905.67888836061, - "Top": -1154.6953785515693, - "Width": 2089.048116082229, - "Height": 522.6661487388039, - "FontSize": 36.0, - "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", - "InitialTop": -1029.6953785515693, - "InitialHeight": 384.198935204141, - "TextblockHeight": 115.0, - "Background": "#FFB9F9E1" - }, - { - "Id": "92f11577efe84c6fb256f49740a87e66", - "Title": "Type Of Geometry To Consider", - "DescriptionText": "Curve like geometry ", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "09e71c722a5b4f0aab8c6b24dcdbf38c", - "6c601505e6d04040a596df4b990bd8ec", - "751b9345aca44ec9bd7577eca30d7ec0", - "8a0207a60fa649c295f3141ba33e850c", - "cfbd70811fc0457bafa60c0c5d65d9b1", - "cc1c6606a66645f09832abe2d23eca69", - "2d705db6df46496cb771a0751fb1100a", - "06f58025564948d8b2cf87914cb37af5", - "b47b0de9380d48c3b977f50646c95d36", - "0205316f59c9406d9edfc2ce74261192" - ], - "HasNestedGroups": false, - "Left": 9577.829014190798, - "Top": -1471.9634763066904, - "Width": 1275.2262317577952, - "Height": 907.9999999999999, - "FontSize": 36.0, - "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", - "InitialTop": -1398.9634763066904, - "InitialHeight": 816.9999999999999, - "TextblockHeight": 63.0, - "Background": "#FFB9F9E1" - }, - { - "Id": "20f5eebe88f84e14952081da820b4877", - "Title": "Inputs", - "DescriptionText": "Use these controls to define what “valid” means.\r\ncurves can be a list of Lines, Arcs, PolyCurves, or mixed curve types.\r\nUse flattenDepth to control how nested lists are handled.", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "4653dbe1c8e84b12a1e79049bb6d79c5", - "4512efc5eab8445aae2969f139554ace", - "64b6ead851a642a6aca58962632a4985" - ], - "HasNestedGroups": false, - "Left": 7851.600795952214, - "Top": -372.5325369099039, - "Width": 615.1965488606529, - "Height": 542.88390675202, - "FontSize": 36.0, - "GroupStyleId": "883066aa-1fe2-44a4-9bd1-c3df86bfe9f6", - "InitialTop": -276.5325369099039, - "InitialHeight": 400.88390675202004, - "TextblockHeight": 86.0, - "Background": "#FFFFB8D8" - }, - { - "Id": "a87d48b78d034adeb52893dc7d21ade9", - "Title": "3", - "DescriptionText": "", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "b3d231f93ded477f97c47cfd2d7677ce" - ], - "HasNestedGroups": false, - "Left": 11823.517345672519, - "Top": -1152.8175710713324, - "Width": 70.0, - "Height": 151.0, - "FontSize": 60.0, - "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", - "InitialTop": -1050.8175710713324, - "InitialHeight": 145.0, - "TextblockHeight": 92.0, - "Background": "#FFB9F9E1" - }, - { - "Id": "d5c611966ddd48cd861c9d011c42bfb2", - "Title": "1", - "DescriptionText": "", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "44b85762d70b4b05ad75b676ea5d3a25" - ], - "HasNestedGroups": false, - "Left": 14949.434749575756, - "Top": -1154.1341114748154, - "Width": 70.0, - "Height": 151.0, - "FontSize": 60.0, - "GroupStyleId": "07655dc1-2d65-4fed-8d6a-37235d3e3a8d", - "InitialTop": -1052.1341114748154, - "InitialHeight": 145.0, - "TextblockHeight": 92.0, - "Background": "#FFFFC999" - }, - { - "Id": "c0196c3d52774ffab8f7f6f70ae3d2f1", - "Title": "2", - "DescriptionText": "", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "8d1a3e08d9c2457090d835e885e97e01" - ], - "HasNestedGroups": false, - "Left": 9486.640227535094, - "Top": -1472.1067188913555, - "Width": 70.0, - "Height": 151.0, - "FontSize": 60.0, - "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", - "InitialTop": -1370.1067188913555, - "InitialHeight": 145.0, - "TextblockHeight": 92.0, - "Background": "#FFB9F9E1" - }, - { - "Id": "3fbeacc04a0843938cf1cc8f88718993", - "Title": "1", - "DescriptionText": "", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "5927b7659d0d4bf9b0f7104c00041a9e" - ], - "HasNestedGroups": false, - "Left": 7758.300711191827, - "Top": -370.1234584677146, - "Width": 70.0, - "Height": 151.0, - "FontSize": 60.0, - "GroupStyleId": "883066aa-1fe2-44a4-9bd1-c3df86bfe9f6", - "InitialTop": -268.1234584677146, - "InitialHeight": 145.0, - "TextblockHeight": 92.0, - "Background": "#FFFFB8D8" - }, - { - "Id": "29214f2627d24b61a077526ed57d79f6", - "Title": "Graph Information", - "DescriptionText": "metadata, colour code legend, naming rules ", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "5a2adad0b6924801b93736f84f3b0f94", - "ad09761f3df84a6cbac62aec5616bc36", - "28ac4f633da44a3992959913d26f90a7", - "365ba3f265fb4792b4eaf810918f8f8a", - "b4601a5eef5c46d9b8f7076cfef48b63", - "02869392bcb8455dbab018296030c397", - "a4e7bab50f804226a58b34748879b6eb", - "2a1de44aed9f4967bab98ca6cfcc0ecf" - ], - "HasNestedGroups": false, - "Left": 6666.415285455862, - "Top": -372.46387245013756, - "Width": 625.1583808086598, - "Height": 755.6623795843702, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": -299.46387245013756, - "InitialHeight": 518.6623795843702, - "TextblockHeight": 63.0, - "Background": "#FFB5B5B5" - }, - { - "Id": "28426dcffed74769833326bb84bc03d9", - "Title": "Geometry Checks (Length And Closure)", - "DescriptionText": "Applies curve rules:\n\nlength must be ≥ minLength\n\nif requireClosed is true, curve must be closed", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "b41c77f05dab4e3cbba5bc114911875d" - ], - "HasNestedGroups": false, - "Left": 13426.191597792445, - "Top": -1078.0292298127654, - "Width": 268.0, - "Height": 275.0, - "FontSize": 36.0, - "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", - "InitialTop": -852.0292298127654, - "InitialHeight": 145.0, - "TextblockHeight": 216.0, - "Background": "#FFB9F9E1" - }, - { - "Id": "10584e32fab3478892b5975a9bb97e6b", - "Title": "Graph Information", - "DescriptionText": "metadata, colour code legend, naming rules ", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "a74c9bb59df74ca18cde9ee5afbd2cac", - "58a43d34f9a7447fb3600a092a1715cc", - "cf1772c2cb554dac91aa0f8d5d34d5a2", - "9ab27b786c11439da3c242bcf45e4871", - "1134b6f6cf7a4ae0a4357b08c06e645a", - "3db25b04bf3c467d91bb39c1c9eafb96", - "8a485827c55849b880b1209329983f3b", - "440942bd73984eeaaa49f8723dfd1e28" - ], - "HasNestedGroups": false, - "Left": 6666.415285455862, - "Top": -372.46387245013756, - "Width": 625.1583808086598, - "Height": 755.6623795843702, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": -299.46387245013756, - "InitialHeight": 518.6623795843702, - "TextblockHeight": 63.0, - "Background": "#FFB5B5B5" - }, - { - "Id": "705357a74b074197a4a5259964e58b18", - "Title": "1", - "DescriptionText": "", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "e3cd4920b4264225a720d1ae78f79e57" - ], - "HasNestedGroups": false, - "Left": 9200.7344581669, - "Top": -405.88996831689394, - "Width": 70.0, - "Height": 151.0, - "FontSize": 60.0, - "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", - "InitialTop": -303.88996831689394, - "InitialHeight": 145.0, - "TextblockHeight": 92.0, - "Background": "#FFB9F9E1" - }, - { - "Id": "2ffffed94e1e4a4bb0e08b456a30b469", - "Title": "Annotations", - "DescriptionText": "", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "4075daa7baee4454a3d3064216a366dc" - ], - "HasNestedGroups": false, - "Left": 7345.450645234694, - "Top": 430.06584630909083, - "Width": 263.0, - "Height": 137.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 503.06584630909083, - "InitialHeight": 145.0, - "TextblockHeight": 63.0, - "Background": "#FFB5B5B5" - }, - { - "Id": "4bc3cb623b9649c9b23ecbb5975b5bae", - "Title": "Review", - "DescriptionText": "DEBUG AND CHECK OUTPUTS, USED TO VERIFY RESULTS WITHOUT AFFECTING THE MAIN OUTPUTS", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "e00004cf0efa400b9ec7bfa40ddf4e47" - ], - "HasNestedGroups": false, - "Left": 7337.8510399306015, - "Top": 209.5358451093398, - "Width": 314.0, - "Height": 203.0, - "FontSize": 36.0, - "GroupStyleId": "bc688959-ce34-4bf5-90f8-6ddd23f80989", - "InitialTop": 305.5358451093398, - "InitialHeight": 145.0, - "TextblockHeight": 86.0, - "Background": "#FFA4E1FF" - }, - { - "Id": "7dad243292544b6b8e69ebdfd2a99615", - "Title": "Outputs", - "DescriptionText": "FINAL RESULTS PRODUCED BY THE GRAPH, READY FOR EXPORT OR DOWNSTREAM USE", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "a3a6f848a73c4c4d982cc51bf5c41788" - ], - "HasNestedGroups": false, - "Left": 7337.8510399306015, - "Top": 21.92449408561106, - "Width": 320.0, - "Height": 175.0, - "FontSize": 36.0, - "GroupStyleId": "07655dc1-2d65-4fed-8d6a-37235d3e3a8d", - "InitialTop": 103.92449408561106, - "InitialHeight": 145.0, - "TextblockHeight": 72.0, - "Background": "#FFFFC999" - }, - { - "Id": "5f204d4948da4892ac39ee97091cb097", - "Title": "Actions", - "DescriptionText": "CORE OPERATIONS THAT PROCESS THE INPUTS", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "f6a2c06d65d14573b9ce9c39aa69d2a0" - ], - "HasNestedGroups": false, - "Left": 7335.6103713704415, - "Top": -157.0130162503974, - "Width": 319.0, - "Height": 166.0, - "FontSize": 36.0, - "GroupStyleId": "4d68be4a-a04d-4945-9dd5-cdf61079d790", - "InitialTop": -84.01301625039741, - "InitialHeight": 145.0, - "TextblockHeight": 63.0, - "Background": "#FFB9F9E1" - }, - { - "Id": "5d8f16c051e24aff92fa6882c3c69092", - "Title": "Inputs", - "DescriptionText": "USER-CONTROLLED VALUES THAT DEFINE THE TARGET DATA AND SETTINGS BEFORE ANY PROCESSING OCCURS", - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [ - "19af0e28fc074ebeb84981e91ad15605" - ], - "HasNestedGroups": false, - "Left": 7335.43364224685, - "Top": -368.23981678960536, - "Width": 315.0, - "Height": 189.0, - "FontSize": 36.0, - "GroupStyleId": "883066aa-1fe2-44a4-9bd1-c3df86bfe9f6", - "InitialTop": -272.23981678960536, - "InitialHeight": 145.0, - "TextblockHeight": 86.0, - "Background": "#FFFFB8D8" - }, - { - "Id": "64b6ead851a642a6aca58962632a4985", - "Title": "Curves can be a single curve or a list. Nested lists are supported via flattenDepth.", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 8011.297344812867, - "Top": -268.5325369099039, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676", - "PinnedNode": "4653dbe1c8e84b12a1e79049bb6d79c5" - }, - { - "Id": "385a318060734660b731c104880771b0", - "Title": "To create inputs and outputs of a custom node, type its definition directly into the Input or Output node.\n\nDouble-click the Input (or Output) node\n\nType the definition as text\n\nUse // or /* */ to write comments\n\nWrite the name, type, and default value\n\nThat text becomes the input/output port of the custom node", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 7851.244141764677, - "Top": 204.62554834735454, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "b2f878d8a9f7472fb539eb89dc9ef59b", - "Title": "Typical example of input/output :\n\ndouble → number (decimal)\r\nint → integer\r\nbool → true/false\r\nstring → text\r\nvar → any type\r\nvar[] → list\r\nvar[]..[] → nested lists (any depth)\r\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 8160.960581311854, - "Top": 207.74966072273708, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "1eac80dc7b20477aa1b07dc6d307ee9b", - "Title": "", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 11832.921761399757, - "Top": -212.0726086243335, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "57ab668a89b84ac9a4337be16ab93b13", - "Title": "", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 14336.567652945854, - "Top": -279.23909479862994, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "b2f8f5c0d96f4a889aeb5c7fd91376e9", - "Title": "Curves shorter than min length are invalid.", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 13436.191597792445, - "Top": -844.0292298127654, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676", - "PinnedNode": "6ed8fedacc5a419883d1d4a4299dd19a" - }, - { - "Id": "b3d231f93ded477f97c47cfd2d7677ce", - "Title": "", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 11833.517345672519, - "Top": -1042.8175710713324, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "44b85762d70b4b05ad75b676ea5d3a25", - "Title": "", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 14959.434749575756, - "Top": -1044.1341114748154, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "8d1a3e08d9c2457090d835e885e97e01", - "Title": "", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 9496.640227535094, - "Top": -1362.1067188913555, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "5927b7659d0d4bf9b0f7104c00041a9e", - "Title": "", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 7768.300711191827, - "Top": -260.1234584677146, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "b4601a5eef5c46d9b8f7076cfef48b63", - "Title": "REQUIRED DYNAMO PACKAGES\n_____________________________________________________ \n\nN/A\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6982.573666264522, - "Top": -32.86662580148976, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "a4e7bab50f804226a58b34748879b6eb", - "Title": "ADDITIONAL COMMENTS\n_____________________________________________________ \n\nCustom nodes are typically found in the Add-ons section of the Library.\r\nThis custom node is located under:\r\nAdd-ons → Standards → Curve → Curve_Validate\r\n\r\nIf it does not appear:\r\n\r\nCheck that the .dyf file is in your custom nodes folder\r\n\r\nGo to:\r\nPackages → Package Manager → Package Settings → Package/Lirary Search Paths\r\nVerify the folder path is listed or add a new path\r\nRestart Dynamo after adding new custom nodes\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6982.573666264522, - "Top": 82.19850713423267, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "02869392bcb8455dbab018296030c397", - "Title": "AUTHOR(S) / CREATION DATE\n_____________________________________________________ \n\nArchilizer for Dynamo Team / Feb. 4 2026\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6677.346915258799, - "Top": -33.10912375770221, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "2a1de44aed9f4967bab98ca6cfcc0ecf", - "Title": "DESCRIPTION\n_____________________________________________________ \n\nThis document will help you get familiarised with the creation of Custom node.\n\nTo keep Dynamo scripts neat and readable, we recommend following a clear\nstructure when creating graphs.\n\nRead more on the Dynamo Primer page about Creating a Custom Node:\nhttps://primer.dynamobim.org/10_Custom-Nodes/10-2_Creating.html", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6677.346915258799, - "Top": 82.09380354446358, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "5a2adad0b6924801b93736f84f3b0f94", - "Title": "DYNAMO PROJECT\n_____________________________________________________ \n\nTemplate_02_DynamoWorkflowCustomNode\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6677.109066153209, - "Top": -291.46387245013756, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "ad09761f3df84a6cbac62aec5616bc36", - "Title": "DYNAMO VERSION\n_____________________________________________________ \n\n4.1.0\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6981.642036461585, - "Top": -290.94578576103794, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "28ac4f633da44a3992959913d26f90a7", - "Title": "HOST APPLICATION VERSION\n_____________________________________________________ \n\nN/A\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6981.642036461585, - "Top": -175.8806528253155, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "365ba3f265fb4792b4eaf810918f8f8a", - "Title": "ASSOCIATED FILE(S)\n_____________________________________________________ \n\n\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6676.415285455862, - "Top": -176.26094514797177, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "462f83f12166493da8ace0ce84efb926", - "Title": "To create inputs and outputs of a custom node, type its definition directly into the Input or Output node.\n\nDouble-click the Input (or Output) node\n\nType the definition as text\n\nUse // to write comments\n\nWrite the name, type, and default value\n\nThat text becomes the input/output port of the custom node", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 7851.244141764677, - "Top": 204.62554834735454, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "ebe735f6c52f4f93841afffcd0a6e83a", - "Title": "Typical example of input/output :\n\ndouble → number (decimal)\r\nint → integer\r\nbool → true/false\r\nstring → text\r\nvar → any type\r\nvar[] → list\r\nvar[]..[] → nested lists (any depth)\r\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 8160.960581311854, - "Top": 207.74966072273708, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "b41c77f05dab4e3cbba5bc114911875d", - "Title": "Curves shorter than min length are invalid.", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 13436.191597792445, - "Top": -844.0292298127654, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "1134b6f6cf7a4ae0a4357b08c06e645a", - "Title": "REQUIRED DYNAMO PACKAGES\n_____________________________________________________ \n\nN/A\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6982.573666264522, - "Top": -32.86662580148976, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "8a485827c55849b880b1209329983f3b", - "Title": "ADDITIONAL COMMENTS\n_____________________________________________________ \n\nCustom nodes are typically found in the Add-ons section of the Library.\r\nThis custom node is located under:\r\nAdd-ons → Standards → Curve → Curve_Validate\r\n\r\nIf it does not appear:\r\n\r\nCheck that the .dyf file is in your custom nodes folder\r\n\r\nGo to:\r\nPackages → Package Manager → Package Settings → Package/Lirary Search Paths\r\nVerify the folder path is listed or add a new path\r\nRestart Dynamo after adding new custom nodes\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6982.573666264522, - "Top": 82.19850713423267, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "3db25b04bf3c467d91bb39c1c9eafb96", - "Title": "AUTHOR(S) / CREATION DATE\n_____________________________________________________ \n\nArchilizer for Dynamo Team / Feb. 4 2026\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6677.346915258799, - "Top": -33.10912375770221, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "440942bd73984eeaaa49f8723dfd1e28", - "Title": "DESCRIPTION\n_____________________________________________________ \n\nThis document will help you get familiarised with the creation of Custom node.\n\nTo keep Dynamo scripts neat and readable, we recommend following a clear\nstructure when creating graphs.\n\nRead more on the Dynamo Primer page about Creating a Custom Node:\nhttps://primer2.dynamobim.org/6_custom_nodes_and_packages/6-1_custom-nodes/2-creating", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6677.346915258799, - "Top": 82.09380354446358, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "a74c9bb59df74ca18cde9ee5afbd2cac", - "Title": "DYNAMO PROJECT\n_____________________________________________________ \n\nTemplate_02_DynamoWorkflowCustomNode\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6677.109066153209, - "Top": -291.46387245013756, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "58a43d34f9a7447fb3600a092a1715cc", - "Title": "DYNAMO VERSION\n_____________________________________________________ \n\n4.1.0\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6981.642036461585, - "Top": -290.94578576103794, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "cf1772c2cb554dac91aa0f8d5d34d5a2", - "Title": "HOST APPLICATION VERSION\n_____________________________________________________ \n\nN/A\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6981.642036461585, - "Top": -175.8806528253155, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "9ab27b786c11439da3c242bcf45e4871", - "Title": "ASSOCIATED FILE(S)\n_____________________________________________________ \n\n\n", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 6676.415285455862, - "Top": -176.26094514797177, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "e3cd4920b4264225a720d1ae78f79e57", - "Title": "", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 9210.7344581669, - "Top": -295.88996831689394, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "4075daa7baee4454a3d3064216a366dc", - "Title": "USE:\r\nFOR COMMENTS AND SCRIPT INFO. ", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 7355.450645234694, - "Top": 511.06584630909083, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "e00004cf0efa400b9ec7bfa40ddf4e47", - "Title": "USE : Human-readable checks so you can verify the graph is doing what you expect, without changing results such as watch nodes, List.Count, summary strings, “PASS/FAIL” flags, error lists, preview geometry (Watch3D) and sample outputs.", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 7347.8510399306015, - "Top": 313.5358451093398, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "a3a6f848a73c4c4d982cc51bf5c41788", - "Title": "USE: Final results intended to be used downstream (exported, plugged into another graph) such as final lists, formatted strings, calculated values, dictionaries/tables and export-ready data.", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 7347.8510399306015, - "Top": 111.92449408561106, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "f6a2c06d65d14573b9ce9c39aa69d2a0", - "Title": "USE: The main processing pipeline that transforms inputs into results. This is where the “work” happens such as list cleaning, mapping, filtering, string logic, geometry operations, formatting and conversions.", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 7345.6103713704415, - "Top": -76.01301625039741, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - }, - { - "Id": "19af0e28fc074ebeb84981e91ad15605", - "Title": "USE: All user-controlled values that define what the graph will process and how it should behave.\r\nsuch as : number sliders, strings, file paths, boolean toggles, dropdowns and initial lists.", - "DescriptionText": null, - "IsExpanded": true, - "WidthAdjustment": 0.0, - "HeightAdjustment": 0.0, - "Nodes": [], - "HasNestedGroups": false, - "Left": 7345.43364224685, - "Top": -264.23981678960536, - "Width": 0.0, - "Height": 0.0, - "FontSize": 36.0, - "GroupStyleId": "00000000-0000-0000-0000-000000000000", - "InitialTop": 0.0, - "InitialHeight": 0.0, - "TextblockHeight": 0.0, - "Background": "#FFC1D676" - } - ], - "X": -4361.956247350007, - "Y": 425.96332407015484, - "Zoom": 0.7176994647589638 - } -} \ No newline at end of file diff --git a/doc/distrib/Templates/Data/Geometry_Export_Example.sat b/doc/distrib/Templates/Data/Geometry_Export_Example.sat deleted file mode 100644 index 919abe4c3d7..00000000000 --- a/doc/distrib/Templates/Data/Geometry_Export_Example.sat +++ /dev/null @@ -1,151 +0,0 @@ -700 0 5 0 -4 LibG 20 ASM 231.3.1.65535 NT 24 Thu Jan 29 12:06:54 2026 -1000 9.999999999999999547e-07 1.000000000000000036e-10 -body $-1 -1 $-1 $5 $-1 $-1 # -body $-1 -1 $-1 $6 $-1 $-1 # -body $-1 -1 $-1 $7 $-1 $-1 # -body $-1 -1 $-1 $8 $-1 $-1 # -body $-1 -1 $-1 $9 $-1 $-1 # -lump $-1 -1 $-1 $-1 $10 $0 # -lump $-1 -1 $-1 $-1 $11 $1 # -lump $-1 -1 $-1 $-1 $12 $2 # -lump $-1 -1 $-1 $-1 $13 $3 # -lump $-1 -1 $-1 $-1 $14 $4 # -shell $-1 -1 $-1 $-1 $-1 $-1 $15 $5 # -shell $-1 -1 $-1 $-1 $-1 $-1 $16 $6 # -shell $-1 -1 $-1 $-1 $-1 $-1 $17 $7 # -shell $-1 -1 $-1 $-1 $-1 $-1 $18 $8 # -shell $-1 -1 $-1 $-1 $-1 $19 $-1 $9 # -wire $-1 -1 $-1 $-1 $20 $10 $-1 out # -wire $-1 -1 $-1 $-1 $21 $11 $-1 out # -wire $-1 -1 $-1 $-1 $22 $12 $-1 out # -wire $-1 -1 $-1 $-1 $23 $13 $-1 out # -face $24 -1 $-1 $25 $26 $14 $-1 $27 forward single # -coedge $-1 -1 $-1 $20 $20 $-1 $28 forward $15 $-1 # -coedge $-1 -1 $-1 $21 $21 $-1 $29 forward $16 $-1 # -coedge $-1 -1 $-1 $22 $22 $-1 $30 forward $17 $-1 # -coedge $-1 -1 $-1 $23 $23 $-1 $31 forward $18 $-1 # -DXID-attrib $-1 -1 $-1 $-1 $19 @10 Revit:Face @6 Face:9 # -face $32 -1 $-1 $33 $34 $14 $-1 $35 forward single # -loop $-1 -1 $-1 $-1 $36 $19 # -plane-surface $-1 -1 $-1 -28.05198389518810487 24.77429733943328927 50 0 0 1 -1.524000000000000465 0 0 forward_v I I I I # -edge $-1 -1 $-1 $37 0 $38 16.6666666666666643 $20 $39 forward @7 unknown # -edge $-1 -1 $-1 $40 0 $41 16.66666666666696628 $21 $42 forward @7 unknown # -edge $-1 -1 $-1 $43 0 $44 16.6666666666666643 $22 $45 forward @7 unknown # -edge $-1 -1 $-1 $46 0 $47 16.66666666666696628 $23 $48 forward @7 unknown # -DXID-attrib $-1 -1 $-1 $-1 $25 @10 Revit:Face @7 Face:14 # -face $49 -1 $-1 $50 $51 $14 $-1 $52 forward single # -loop $-1 -1 $-1 $-1 $53 $25 # -plane-surface $-1 -1 $-1 -28.05198389518810487 24.77429733943328927 0 -0 -0 -1 1.524000000000000465 0 0 forward_v I I I I # -coedge $-1 -1 $-1 $54 $55 $56 $57 forward $26 $-1 # -vertex $-1 -1 $-1 $28 $58 # -vertex $-1 -1 $-1 $28 $59 # -straight-curve $-1 -1 $-1 12.70000000000009521 -12.69999999999999751 0 0 1.524000000000000465 0 F 0 F 16.6666666666666643 # -vertex $-1 -1 $-1 $29 $60 # -vertex $-1 -1 $-1 $29 $61 # -straight-curve $-1 -1 $-1 -12.70000000000036167 -12.69999999999999751 0 1.524000000000000465 0 0 F 0 F 16.66666666666696628 # -vertex $-1 -1 $-1 $30 $62 # -vertex $-1 -1 $-1 $30 $63 # -straight-curve $-1 -1 $-1 12.70000000000009521 -12.69999999999999751 20 0 1.524000000000000465 0 F 0 F 16.6666666666666643 # -vertex $-1 -1 $-1 $31 $64 # -vertex $-1 -1 $-1 $31 $65 # -straight-curve $-1 -1 $-1 -12.70000000000036167 -12.69999999999999751 20 1.524000000000000465 0 0 F 0 F 16.66666666666696628 # -DXID-attrib $-1 -1 $-1 $-1 $33 @10 Revit:Face @7 Face:19 # -face $66 -1 $-1 $67 $68 $14 $-1 $69 forward single # -loop $-1 -1 $-1 $-1 $56 $33 # -plane-surface $-1 -1 $-1 21.94801610481189513 24.77429733943328927 50 0 1 0 0 0 -1.524000000000000465 forward_v I I I I # -coedge $-1 -1 $-1 $70 $71 $72 $73 forward $34 $-1 # -coedge $-1 -1 $-1 $74 $36 $75 $76 forward $26 $-1 # -coedge $-1 -1 $-1 $36 $74 $77 $78 forward $26 $-1 # -coedge $-1 -1 $-1 $79 $80 $36 $57 reversed $51 $-1 # -edge $81 -1 $-1 $82 0 $83 32.80839895013123453 $36 $84 forward @7 unknown # -point $-1 -1 $-1 12.70000000000009521 -12.69999999999999751 0 # -point $-1 -1 $-1 12.70000000000009521 12.70000000000000284 0 # -point $-1 -1 $-1 -12.70000000000036167 -12.69999999999999751 0 # -point $-1 -1 $-1 12.70000000000010232 -12.69999999999999751 0 # -point $-1 -1 $-1 12.70000000000009521 -12.69999999999999751 20 # -point $-1 -1 $-1 12.70000000000009521 12.70000000000000284 20 # -point $-1 -1 $-1 -12.70000000000036167 -12.69999999999999751 20 # -point $-1 -1 $-1 12.70000000000010232 -12.69999999999999751 20 # -DXID-attrib $-1 -1 $-1 $-1 $50 @10 Revit:Face @7 Face:22 # -face $85 -1 $-1 $86 $87 $14 $-1 $88 forward single # -loop $-1 -1 $-1 $-1 $75 $50 # -plane-surface $-1 -1 $-1 -28.05198389518810487 24.77429733943328927 50 -1 -0 -0 0 0 -1.524000000000000465 forward_v I I I I # -coedge $-1 -1 $-1 $89 $53 $90 $91 forward $34 $-1 # -coedge $-1 -1 $-1 $53 $89 $92 $93 forward $34 $-1 # -coedge $-1 -1 $-1 $94 $95 $53 $73 reversed $96 $-1 # -edge $97 -1 $-1 $98 0 $99 32.80839895013123453 $53 $100 forward @7 unknown # -coedge $-1 -1 $-1 $55 $54 $101 $102 forward $26 $-1 # -coedge $-1 -1 $-1 $103 $104 $54 $76 reversed $68 $-1 # -edge $105 -1 $-1 $83 0 $106 32.80839895013123453 $54 $107 forward @7 unknown # -coedge $-1 -1 $-1 $95 $94 $55 $78 reversed $96 $-1 # -edge $108 -1 $-1 $109 0 $82 32.80839895013123453 $55 $110 forward @7 unknown # -coedge $-1 -1 $-1 $92 $56 $94 $111 forward $51 $-1 # -coedge $-1 -1 $-1 $56 $92 $103 $112 forward $51 $-1 # -DXID-attrib $-1 -1 $-1 $-1 $57 @10 Revit:Edge @7 Edge:10 # -vertex $-1 -1 $-1 $57 $113 # -vertex $-1 -1 $-1 $57 $114 # -straight-curve $-1 -1 $-1 21.94801610481189513 24.77429733943328927 50 -1.524000000000000465 0 0 F 0 F 32.80839895013123453 # -DXID-attrib $-1 -1 $-1 $-1 $67 @10 Revit:Face @7 Face:24 # -face $115 -1 $-1 $-1 $96 $14 $-1 $116 forward single # -loop $-1 -1 $-1 $-1 $101 $67 # -plane-surface $-1 -1 $-1 -28.05198389518810487 -25.22570266056671429 50 0 -1 0 0 0 -1.524000000000000465 forward_v I I I I # -coedge $-1 -1 $-1 $71 $70 $117 $118 forward $34 $-1 # -coedge $-1 -1 $-1 $119 $120 $70 $91 reversed $87 $-1 # -edge $121 -1 $-1 $99 0 $122 32.80839895013123453 $70 $123 forward @7 unknown # -coedge $-1 -1 $-1 $80 $79 $71 $93 reversed $51 $-1 # -edge $124 -1 $-1 $125 0 $98 32.80839895013123453 $71 $126 forward @7 unknown # -coedge $-1 -1 $-1 $77 $72 $79 $111 reversed $96 $-1 # -coedge $-1 -1 $-1 $72 $77 $119 $127 reversed $96 $-1 # -loop $-1 -1 $-1 $-1 $77 $86 # -DXID-attrib $-1 -1 $-1 $-1 $73 @10 Revit:Edge @7 Edge:15 # -vertex $-1 -1 $-1 $73 $128 # -vertex $-1 -1 $-1 $73 $129 # -straight-curve $-1 -1 $-1 21.94801610481189513 24.77429733943328927 0 0 -1.524000000000000465 0 F 0 F 32.80839895013123453 # -coedge $-1 -1 $-1 $120 $119 $74 $102 reversed $87 $-1 # -edge $130 -1 $-1 $106 0 $109 32.80839895013123453 $74 $131 forward @7 unknown # -coedge $-1 -1 $-1 $117 $75 $80 $112 reversed $68 $-1 # -coedge $-1 -1 $-1 $75 $117 $120 $132 forward $68 $-1 # -DXID-attrib $-1 -1 $-1 $-1 $76 @10 Revit:Edge @7 Edge:11 # -vertex $-1 -1 $-1 $76 $133 # -straight-curve $-1 -1 $-1 -28.05198389518810487 24.77429733943328927 50 0 -1.524000000000000465 0 F 0 F 32.80839895013123453 # -DXID-attrib $-1 -1 $-1 $-1 $78 @10 Revit:Edge @7 Edge:13 # -vertex $-1 -1 $-1 $102 $134 # -straight-curve $-1 -1 $-1 21.94801610481189513 -25.22570266056671429 50 0 1.524000000000000465 0 F 0 F 32.80839895013123453 # -edge $135 -1 $-1 $82 0 $98 32.80839895013123453 $79 $136 forward @7 unknown # -edge $137 -1 $-1 $125 -32.80839895013123453 $83 0 $80 $138 forward @7 unknown # -point $-1 -1 $-1 21.94801610481189513 24.77429733943328927 50 # -point $-1 -1 $-1 -28.05198389518810487 24.77429733943328927 50 # -DXID-attrib $-1 -1 $-1 $-1 $86 @10 Revit:Face @7 Face:26 # -plane-surface $-1 -1 $-1 21.94801610481189513 -25.22570266056671429 50 1 0 0 0 0 -1.524000000000000465 forward_v I I I I # -coedge $-1 -1 $-1 $104 $103 $89 $118 reversed $68 $-1 # -edge $139 -1 $-1 $122 0 $125 32.80839895013123453 $89 $140 forward @7 unknown # -coedge $-1 -1 $-1 $101 $90 $95 $127 forward $87 $-1 # -coedge $-1 -1 $-1 $90 $101 $104 $132 reversed $87 $-1 # -DXID-attrib $-1 -1 $-1 $-1 $91 @10 Revit:Edge @7 Edge:16 # -vertex $-1 -1 $-1 $91 $141 # -straight-curve $-1 -1 $-1 21.94801610481189513 -25.22570266056671429 0 -1.524000000000000465 0 0 F 0 F 32.80839895013123453 # -DXID-attrib $-1 -1 $-1 $-1 $93 @10 Revit:Edge @7 Edge:18 # -vertex $-1 -1 $-1 $118 $142 # -straight-curve $-1 -1 $-1 -28.05198389518810487 24.77429733943328927 0 1.524000000000000465 0 0 F 0 F 32.80839895013123453 # -edge $143 -1 $-1 $99 -32.80839895013123453 $109 0 $119 $144 forward @7 unknown # -point $-1 -1 $-1 21.94801610481189513 24.77429733943328927 0 # -point $-1 -1 $-1 21.94801610481189513 -25.22570266056671429 0 # -DXID-attrib $-1 -1 $-1 $-1 $102 @10 Revit:Edge @7 Edge:12 # -straight-curve $-1 -1 $-1 -28.05198389518810487 -25.22570266056671429 50 1.524000000000000465 0 0 F 0 F 32.80839895013123453 # -edge $145 -1 $-1 $122 -32.80839895013123453 $106 0 $104 $146 forward @7 unknown # -point $-1 -1 $-1 -28.05198389518810487 -25.22570266056671429 50 # -point $-1 -1 $-1 21.94801610481189513 -25.22570266056671429 50 # -DXID-attrib $-1 -1 $-1 $-1 $111 @10 Revit:Edge @7 Edge:20 # -straight-curve $-1 -1 $-1 21.94801610481189513 24.77429733943328927 50 0 0 -1.524000000000000465 F 0 F 32.80839895013123453 # -DXID-attrib $-1 -1 $-1 $-1 $112 @10 Revit:Edge @7 Edge:21 # -straight-curve $-1 -1 $-1 -28.05198389518810487 24.77429733943328927 50 0 0 1.524000000000000465 F -32.80839895013123453 F 0 # -DXID-attrib $-1 -1 $-1 $-1 $118 @10 Revit:Edge @7 Edge:17 # -straight-curve $-1 -1 $-1 -28.05198389518810487 -25.22570266056671429 0 0 1.524000000000000465 0 F 0 F 32.80839895013123453 # -point $-1 -1 $-1 -28.05198389518810487 -25.22570266056671429 0 # -point $-1 -1 $-1 -28.05198389518810487 24.77429733943328927 0 # -DXID-attrib $-1 -1 $-1 $-1 $127 @10 Revit:Edge @7 Edge:25 # -straight-curve $-1 -1 $-1 21.94801610481189513 -25.22570266056671429 50 0 0 1.524000000000000465 F -32.80839895013123453 F 0 # -DXID-attrib $-1 -1 $-1 $-1 $132 @10 Revit:Edge @7 Edge:23 # -straight-curve $-1 -1 $-1 -28.05198389518810487 -25.22570266056671429 50 0 0 1.524000000000000465 F -32.80839895013123453 F 0 # -End-of-ACIS-data \ No newline at end of file diff --git a/doc/distrib/Templates/Data/Geometry_Import_Example.sat b/doc/distrib/Templates/Data/Geometry_Import_Example.sat deleted file mode 100644 index 6330e8e89f1..00000000000 --- a/doc/distrib/Templates/Data/Geometry_Import_Example.sat +++ /dev/null @@ -1,156 +0,0 @@ -700 0 5 0 -30 Autodesk Translation Framework 20 ASM 230.1.0.65535 NT 24 Fri Jan 16 15:31:43 2026 -1 9.999999999999999547e-07 1.000000000000000036e-10 -body $-1 -1 $-1 $5 $-1 $6 # -body $-1 -1 $-1 $7 $-1 $8 # -body $-1 -1 $-1 $9 $-1 $10 # -body $-1 -1 $-1 $11 $-1 $12 # -body $-1 -1 $-1 $13 $-1 $14 # -lump $-1 -1 $-1 $-1 $15 $0 # -transform $-1 -1 1 0 0 0 1 0 0 0 1 0 0 0 1 no_rotate no_reflect no_shear # -lump $-1 -1 $-1 $-1 $16 $1 # -transform $-1 -1 1 0 0 0 1 0 0 0 1 0 0 0 1 no_rotate no_reflect no_shear # -lump $-1 -1 $-1 $-1 $17 $2 # -transform $-1 -1 1 0 0 0 1 0 0 0 1 0 0 0 1 no_rotate no_reflect no_shear # -lump $-1 -1 $-1 $-1 $18 $3 # -transform $-1 -1 1 0 0 0 1 0 0 0 1 0 0 0 1 no_rotate no_reflect no_shear # -lump $-1 -1 $-1 $-1 $19 $4 # -transform $-1 -1 1 0 0 0 1 0 0 0 1 0 0 0 1 no_rotate no_reflect no_shear # -shell $-1 -1 $-1 $-1 $-1 $-1 $20 $5 # -shell $-1 -1 $-1 $-1 $-1 $-1 $21 $7 # -shell $-1 -1 $-1 $-1 $-1 $-1 $22 $9 # -shell $-1 -1 $-1 $-1 $-1 $-1 $23 $11 # -shell $-1 -1 $-1 $-1 $-1 $24 $-1 $13 # -wire $-1 -1 $-1 $-1 $25 $15 $-1 out # -wire $-1 -1 $-1 $-1 $26 $16 $-1 out # -wire $-1 -1 $-1 $-1 $27 $17 $-1 out # -wire $-1 -1 $-1 $-1 $28 $18 $-1 out # -face $29 -1 $-1 $30 $31 $19 $-1 $32 forward single # -coedge $-1 -1 $-1 $25 $25 $-1 $33 forward $20 $-1 # -coedge $-1 -1 $-1 $26 $26 $-1 $34 forward $21 $-1 # -coedge $-1 -1 $-1 $27 $27 $-1 $35 forward $22 $-1 # -coedge $-1 -1 $-1 $28 $28 $-1 $36 forward $23 $-1 # -DXID-attrib $-1 -1 $-1 $-1 $24 @10 Revit:Face @6 Face:9 # -face $37 -1 $-1 $38 $39 $19 $-1 $40 forward single # -loop $-1 -1 $-1 $-1 $41 $24 # -plane-surface $-1 -1 $-1 -5610.396779037620945 4954.859467886657512 10000 0 0 1 -304.8000000000000114 0 0 forward_v I I I I # -edge $-1 -1 $-1 $42 0 $43 16.6666666666666643 $25 $44 forward @7 unknown # -edge $-1 -1 $-1 $45 0 $46 16.66666666666696628 $26 $47 forward @7 unknown # -edge $-1 -1 $-1 $48 0 $49 16.6666666666666643 $27 $50 forward @7 unknown # -edge $-1 -1 $-1 $51 0 $52 16.66666666666696628 $28 $53 forward @7 unknown # -DXID-attrib $-1 -1 $-1 $-1 $30 @10 Revit:Face @7 Face:14 # -face $54 -1 $-1 $55 $56 $19 $-1 $57 forward single # -loop $-1 -1 $-1 $-1 $58 $30 # -plane-surface $-1 -1 $-1 -5610.396779037620945 4954.859467886657512 0 -0 -0 -1 304.8000000000000114 0 0 forward_v I I I I # -coedge $-1 -1 $-1 $59 $60 $61 $62 forward $31 $-1 # -vertex $-1 -1 $-1 $33 $63 # -vertex $-1 -1 $-1 $33 $64 # -straight-curve $-1 -1 $-1 2540.000000000019099 -2539.999999999999545 0 0 304.8000000000000114 0 F 0 F 16.6666666666666643 # -vertex $-1 -1 $-1 $34 $65 # -vertex $-1 -1 $-1 $34 $66 # -straight-curve $-1 -1 $-1 -2540.000000000072305 -2539.999999999999545 0 304.8000000000000114 0 0 F 0 F 16.66666666666696628 # -vertex $-1 -1 $-1 $35 $67 # -vertex $-1 -1 $-1 $35 $68 # -straight-curve $-1 -1 $-1 2540.000000000019099 -2539.999999999999545 3999.999999999999545 0 304.8000000000000114 0 F 0 F 16.6666666666666643 # -vertex $-1 -1 $-1 $36 $69 # -vertex $-1 -1 $-1 $36 $70 # -straight-curve $-1 -1 $-1 -2540.000000000072305 -2539.999999999999545 3999.999999999999545 304.8000000000000114 0 0 F 0 F 16.66666666666696628 # -DXID-attrib $-1 -1 $-1 $-1 $38 @10 Revit:Face @7 Face:19 # -face $71 -1 $-1 $72 $73 $19 $-1 $74 forward single # -loop $-1 -1 $-1 $-1 $61 $38 # -plane-surface $-1 -1 $-1 4389.603220962379055 4954.859467886657512 10000 0 1 0 0 0 -304.8000000000000114 forward_v I I I I # -coedge $-1 -1 $-1 $75 $76 $77 $78 forward $39 $-1 # -coedge $-1 -1 $-1 $79 $41 $80 $81 forward $31 $-1 # -coedge $-1 -1 $-1 $41 $79 $82 $83 forward $31 $-1 # -coedge $-1 -1 $-1 $84 $85 $41 $62 reversed $56 $-1 # -edge $86 -1 $-1 $87 0 $88 32.80839895013123453 $41 $89 forward @7 unknown # -point $-1 -1 $-1 2540.000000000019099 -2539.999999999999545 0 # -point $-1 -1 $-1 2540.000000000019099 2539.999999999999545 0 # -point $-1 -1 $-1 -2540.000000000072305 -2539.999999999999545 0 # -point $-1 -1 $-1 2540.000000000019554 -2539.999999999999545 0 # -point $-1 -1 $-1 2540.000000000019099 -2539.999999999999545 3999.999999999999545 # -point $-1 -1 $-1 2540.000000000019099 2539.999999999999545 3999.999999999999545 # -point $-1 -1 $-1 -2540.000000000072305 -2539.999999999999545 3999.999999999999545 # -point $-1 -1 $-1 2540.000000000019554 -2539.999999999999545 3999.999999999999545 # -DXID-attrib $-1 -1 $-1 $-1 $55 @10 Revit:Face @7 Face:22 # -face $90 -1 $-1 $91 $92 $19 $-1 $93 forward single # -loop $-1 -1 $-1 $-1 $80 $55 # -plane-surface $-1 -1 $-1 -5610.396779037620945 4954.859467886657512 10000 -1 -0 -0 0 0 -304.8000000000000114 forward_v I I I I # -coedge $-1 -1 $-1 $94 $58 $95 $96 forward $39 $-1 # -coedge $-1 -1 $-1 $58 $94 $97 $98 forward $39 $-1 # -coedge $-1 -1 $-1 $99 $100 $58 $78 reversed $101 $-1 # -edge $102 -1 $-1 $103 0 $104 32.80839895013123453 $58 $105 forward @7 unknown # -coedge $-1 -1 $-1 $60 $59 $106 $107 forward $31 $-1 # -coedge $-1 -1 $-1 $108 $109 $59 $81 reversed $73 $-1 # -edge $110 -1 $-1 $88 0 $111 32.80839895013123453 $59 $112 forward @7 unknown # -coedge $-1 -1 $-1 $100 $99 $60 $83 reversed $101 $-1 # -edge $113 -1 $-1 $114 0 $87 32.80839895013123453 $60 $115 forward @7 unknown # -coedge $-1 -1 $-1 $97 $61 $99 $116 forward $56 $-1 # -coedge $-1 -1 $-1 $61 $97 $108 $117 forward $56 $-1 # -DXID-attrib $-1 -1 $-1 $-1 $62 @10 Revit:Edge @7 Edge:10 # -vertex $-1 -1 $-1 $62 $118 # -vertex $-1 -1 $-1 $62 $119 # -straight-curve $-1 -1 $-1 4389.603220962379055 4954.859467886657512 10000 -304.8000000000000114 0 0 F 0 F 32.80839895013123453 # -DXID-attrib $-1 -1 $-1 $-1 $72 @10 Revit:Face @7 Face:24 # -face $120 -1 $-1 $-1 $101 $19 $-1 $121 forward single # -loop $-1 -1 $-1 $-1 $106 $72 # -plane-surface $-1 -1 $-1 -5610.396779037620945 -5045.140532113342488 10000 0 -1 0 0 0 -304.8000000000000114 forward_v I I I I # -coedge $-1 -1 $-1 $76 $75 $122 $123 forward $39 $-1 # -coedge $-1 -1 $-1 $124 $125 $75 $96 reversed $92 $-1 # -edge $126 -1 $-1 $104 0 $127 32.80839895013123453 $75 $128 forward @7 unknown # -coedge $-1 -1 $-1 $85 $84 $76 $98 reversed $56 $-1 # -edge $129 -1 $-1 $130 0 $103 32.80839895013123453 $76 $131 forward @7 unknown # -coedge $-1 -1 $-1 $82 $77 $84 $116 reversed $101 $-1 # -coedge $-1 -1 $-1 $77 $82 $124 $132 reversed $101 $-1 # -loop $-1 -1 $-1 $-1 $82 $91 # -DXID-attrib $-1 -1 $-1 $-1 $78 @10 Revit:Edge @7 Edge:15 # -vertex $-1 -1 $-1 $78 $133 # -vertex $-1 -1 $-1 $78 $134 # -straight-curve $-1 -1 $-1 4389.603220962379055 4954.859467886657512 0 0 -304.8000000000000114 0 F 0 F 32.80839895013123453 # -coedge $-1 -1 $-1 $125 $124 $79 $107 reversed $92 $-1 # -edge $135 -1 $-1 $111 0 $114 32.80839895013123453 $79 $136 forward @7 unknown # -coedge $-1 -1 $-1 $122 $80 $85 $117 reversed $73 $-1 # -coedge $-1 -1 $-1 $80 $122 $125 $137 forward $73 $-1 # -DXID-attrib $-1 -1 $-1 $-1 $81 @10 Revit:Edge @7 Edge:11 # -vertex $-1 -1 $-1 $81 $138 # -straight-curve $-1 -1 $-1 -5610.396779037620945 4954.859467886657512 10000 0 -304.8000000000000114 0 F 0 F 32.80839895013123453 # -DXID-attrib $-1 -1 $-1 $-1 $83 @10 Revit:Edge @7 Edge:13 # -vertex $-1 -1 $-1 $107 $139 # -straight-curve $-1 -1 $-1 4389.603220962379055 -5045.140532113342488 10000 0 304.8000000000000114 0 F 0 F 32.80839895013123453 # -edge $140 -1 $-1 $87 0 $103 32.80839895013123453 $84 $141 forward @7 unknown # -edge $142 -1 $-1 $130 -32.80839895013123453 $88 0 $85 $143 forward @7 unknown # -point $-1 -1 $-1 4389.603220962379055 4954.859467886657512 10000 # -point $-1 -1 $-1 -5610.396779037620945 4954.859467886657512 10000 # -DXID-attrib $-1 -1 $-1 $-1 $91 @10 Revit:Face @7 Face:26 # -plane-surface $-1 -1 $-1 4389.603220962379055 -5045.140532113342488 10000 1 0 0 0 0 -304.8000000000000114 forward_v I I I I # -coedge $-1 -1 $-1 $109 $108 $94 $123 reversed $73 $-1 # -edge $144 -1 $-1 $127 0 $130 32.80839895013123453 $94 $145 forward @7 unknown # -coedge $-1 -1 $-1 $106 $95 $100 $132 forward $92 $-1 # -coedge $-1 -1 $-1 $95 $106 $109 $137 reversed $92 $-1 # -DXID-attrib $-1 -1 $-1 $-1 $96 @10 Revit:Edge @7 Edge:16 # -vertex $-1 -1 $-1 $96 $146 # -straight-curve $-1 -1 $-1 4389.603220962379055 -5045.140532113342488 0 -304.8000000000000114 0 0 F 0 F 32.80839895013123453 # -DXID-attrib $-1 -1 $-1 $-1 $98 @10 Revit:Edge @7 Edge:18 # -vertex $-1 -1 $-1 $123 $147 # -straight-curve $-1 -1 $-1 -5610.396779037620945 4954.859467886657512 0 304.8000000000000114 0 0 F 0 F 32.80839895013123453 # -edge $148 -1 $-1 $104 -32.80839895013123453 $114 0 $124 $149 forward @7 unknown # -point $-1 -1 $-1 4389.603220962379055 4954.859467886657512 0 # -point $-1 -1 $-1 4389.603220962379055 -5045.140532113342488 0 # -DXID-attrib $-1 -1 $-1 $-1 $107 @10 Revit:Edge @7 Edge:12 # -straight-curve $-1 -1 $-1 -5610.396779037620945 -5045.140532113342488 10000 304.8000000000000114 0 0 F 0 F 32.80839895013123453 # -edge $150 -1 $-1 $127 -32.80839895013123453 $111 0 $109 $151 forward @7 unknown # -point $-1 -1 $-1 -5610.396779037620945 -5045.140532113342488 10000 # -point $-1 -1 $-1 4389.603220962379055 -5045.140532113342488 10000 # -DXID-attrib $-1 -1 $-1 $-1 $116 @10 Revit:Edge @7 Edge:20 # -straight-curve $-1 -1 $-1 4389.603220962379055 4954.859467886657512 10000 0 0 -304.8000000000000114 F 0 F 32.80839895013123453 # -DXID-attrib $-1 -1 $-1 $-1 $117 @10 Revit:Edge @7 Edge:21 # -straight-curve $-1 -1 $-1 -5610.396779037620945 4954.859467886657512 10000 0 0 304.8000000000000114 F -32.80839895013123453 F 0 # -DXID-attrib $-1 -1 $-1 $-1 $123 @10 Revit:Edge @7 Edge:17 # -straight-curve $-1 -1 $-1 -5610.396779037620945 -5045.140532113342488 0 0 304.8000000000000114 0 F 0 F 32.80839895013123453 # -point $-1 -1 $-1 -5610.396779037620945 -5045.140532113342488 0 # -point $-1 -1 $-1 -5610.396779037620945 4954.859467886657512 0 # -DXID-attrib $-1 -1 $-1 $-1 $132 @10 Revit:Edge @7 Edge:25 # -straight-curve $-1 -1 $-1 4389.603220962379055 -5045.140532113342488 10000 0 0 304.8000000000000114 F -32.80839895013123453 F 0 # -DXID-attrib $-1 -1 $-1 $-1 $137 @10 Revit:Edge @7 Edge:23 # -straight-curve $-1 -1 $-1 -5610.396779037620945 -5045.140532113342488 10000 0 0 304.8000000000000114 F -32.80839895013123453 F 0 # -End-of-ACIS-data \ No newline at end of file diff --git a/doc/distrib/Templates/en-US/Import & Export Workflow.dyn b/doc/distrib/Templates/en-US/Import & Export Workflow.dyn index 15b144c59bc..e9a0c5f6c77 100644 --- a/doc/distrib/Templates/en-US/Import & Export Workflow.dyn +++ b/doc/distrib/Templates/en-US/Import & Export Workflow.dyn @@ -148,7 +148,7 @@ "Replication": "Disabled", "Description": "Allows you to select a file on the system and returns its file path", "HintPath": null, - "InputValue": "..\\..\\..\\..\\..\\..\\Desktop\\Excel_Export_Example.xlsx" + "InputValue": "" }, { "ConcreteType": "CoreNodeModels.Input.BoolSelector, CoreNodeModels", @@ -382,8 +382,8 @@ ], "Replication": "Disabled", "Description": "Allows you to select a file on the system and returns its file path", - "HintPath": "C:\\Users\\ChloePegeot\\Desktop\\Excel_Import_Example.xlsx", - "InputValue": "..\\..\\..\\..\\..\\..\\Desktop\\Excel_Import_Example.xlsx" + "HintPath": null, + "InputValue": "" }, { "ConcreteType": "CoreNodeModels.Input.StringInput, CoreNodeModels", @@ -1090,8 +1090,8 @@ ], "Replication": "Disabled", "Description": "Allows you to select a file on the system and returns its file path", - "HintPath": "..\\Data\\CSV_Import_Example.csv", - "InputValue": "..\\Data\\CSV_Import_Example.csv" + "HintPath": null, + "InputValue": "" }, { "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", @@ -1527,7 +1527,7 @@ "Replication": "Disabled", "Description": "Allows you to select a file on the system and returns its file path", "HintPath": null, - "InputValue": "..\\..\\..\\..\\..\\..\\Desktop\\CSV_Export_Example" + "InputValue": "" }, { "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", @@ -2142,7 +2142,7 @@ "Replication": "Disabled", "Description": "Allows you to select a file on the system and returns its file path", "HintPath": null, - "InputValue": "..\\..\\..\\..\\..\\..\\Desktop\\Geometry_Import_Example.sat" + "InputValue": "" }, { "ConcreteType": "CoreNodeModels.Input.FileObject, CoreNodeModels", @@ -2230,8 +2230,8 @@ ], "Replication": "Disabled", "Description": "Allows you to select a file on the system and returns its file path", - "HintPath": "C:\\Users\\ChloePegeot\\Desktop\\Geometry_Export_Example.sat", - "InputValue": "..\\..\\..\\..\\..\\..\\Desktop\\Geometry_Export_Example.sat" + "HintPath": null, + "InputValue": "" }, { "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", @@ -3879,13 +3879,13 @@ "34cba3ead253497689eea54feb2ef3be" ], "HasNestedGroups": false, - "Left": 6668.52380924283, - "Top": -46.48516317177496, + "Left": 6582.3071161198895, + "Top": -47.98616824402609, "Width": 70.0, "Height": 151.0, "FontSize": 60.0, "GroupStyleId": "07655dc1-2d65-4fed-8d6a-37235d3e3a8d", - "InitialTop": 55.51483682822504, + "InitialTop": 54.01383175597391, "InitialHeight": 145.0, "TextblockHeight": 92.0, "IsOptionalInPortsCollapsed": false, @@ -5486,8 +5486,8 @@ "UserSetHeight": 0.0, "Nodes": [], "HasNestedGroups": false, - "Left": 6678.52380924283, - "Top": 63.51483682822504, + "Left": 6592.3071161198895, + "Top": 62.01383175597391, "Width": 0.0, "Height": 0.0, "FontSize": 36.0, @@ -6313,7 +6313,7 @@ }, { "Id": "ca89f1011618458fb63a13fef8ca2241", - "Title": "ASSOCIATED FILE(S)\n_____________________________________________________ \n\nExcel_Import_Example.xlsx\nCSV_Import_Example.csv\nGeometry_Import_Example.sat\n", + "Title": "ASSOCIATED FILE(S)\n_____________________________________________________ \n\nN/A\n", "DescriptionText": null, "IsExpanded": true, "WidthAdjustment": 0.0, diff --git a/doc/distrib/xml/en-US/ProtoGeometry.XML b/doc/distrib/xml/en-US/ProtoGeometry.XML index de9e83e8c89..6a00b65cf80 100644 --- a/doc/distrib/xml/en-US/ProtoGeometry.XML +++ b/doc/distrib/xml/en-US/ProtoGeometry.XML @@ -3866,7 +3866,7 @@ - Create a Solid Sphere cetered at the input Point, with given radius. + Create a Solid Sphere centered at the input Point, with given radius. Brep,brep