From 3ee9c881964eea68d763f133481829c6786d6409 Mon Sep 17 00:00:00 2001 From: Roberto T <61755417+RobertGlobant20@users.noreply.github.com> Date: Wed, 10 Jan 2024 12:11:09 -0800 Subject: [PATCH] DYN-5791 Fixing Renaming Tool (#14812) * DYN-5791 Fixing Renaming Tool If the md file name contains empty spaces then the img file name will also contain %20 instead of empty space so in this way will be loaded by DocumentationBrowser correctly. So my fix is to remove the %20 when renaming the files and the md file content so matches the expected hashed img name. * DYN-5791 Fixing Renaming Tool Code Review Adding unit test that will validate that the files are correctly renamed in a folder and that the md file content is updated correctly. --- .../Commands/RenameCommand.cs | 2 +- .../MarkdownGeneratorCommandTests.cs | 56 ++ ...inVectors(origin, xAxis, yAxis, zAxis).dyn | 510 ++++++++++++++++++ ...ginVectors(origin, xAxis, yAxis, zAxis).md | 10 + ...ctors(origin, xAxis, yAxis, zAxis)_img.jpg | Bin 0 -> 97499 bytes 5 files changed, 577 insertions(+), 1 deletion(-) create mode 100644 test/Tools/docGeneratorTestFiles/fallback_docs/LongNameFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis).dyn create mode 100644 test/Tools/docGeneratorTestFiles/fallback_docs/LongNameFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis).md create mode 100644 test/Tools/docGeneratorTestFiles/fallback_docs/LongNameFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis)_img.jpg diff --git a/src/Tools/NodeDocumentationMarkdownGenerator/Commands/RenameCommand.cs b/src/Tools/NodeDocumentationMarkdownGenerator/Commands/RenameCommand.cs index 3d6a8f1ee69..88ec090c2b6 100644 --- a/src/Tools/NodeDocumentationMarkdownGenerator/Commands/RenameCommand.cs +++ b/src/Tools/NodeDocumentationMarkdownGenerator/Commands/RenameCommand.cs @@ -61,7 +61,7 @@ private static void RenameFile(string file) private static void RenameFile(string file, string baseName, string shortName) { - var content = File.ReadAllText(file); + var content = HttpUtility.UrlDecode(File.ReadAllText(file)); content = content.Replace(baseName, shortName); var path = Path.GetDirectoryName(file); var newFile = Path.Combine(path, shortName + ".md"); diff --git a/test/Tools/NodeDocumentationMarkdownGeneratorTests/MarkdownGeneratorCommandTests.cs b/test/Tools/NodeDocumentationMarkdownGeneratorTests/MarkdownGeneratorCommandTests.cs index aa591f752ae..371a0afcce3 100644 --- a/test/Tools/NodeDocumentationMarkdownGeneratorTests/MarkdownGeneratorCommandTests.cs +++ b/test/Tools/NodeDocumentationMarkdownGeneratorTests/MarkdownGeneratorCommandTests.cs @@ -520,6 +520,62 @@ public void CanRenameFile() Assert.IsTrue(content.Contains("CoreNodeModels.HigherOrder.Map")); } + [Test] + public void CanRenameFileLongName() + { + // Arrange + var originalOutDirName = "fallback_docs"; + var filesDirectory = "LongNameFiles"; + var emptySpaceChar = "%20"; + var originalOutDir = new DirectoryInfo(Path.Combine(toolsTestFilesDirectory, originalOutDirName, filesDirectory)); + + tempDirectory = CreateTempOutputDirectory(); + Assert.That(tempDirectory.Exists); + + CopyFilesRecursively(originalOutDir, tempDirectory); + + var originalMdFile = tempDirectory.GetFiles("*.md", SearchOption.TopDirectoryOnly) + .Select(x => x.Name).FirstOrDefault(); + Assert.IsNotNull(originalMdFile); + + //Check that the original MD file contains space characters URL encoded + var originalMdFileContent = Path.Combine(tempDirectory.FullName, originalMdFile); + Assert.IsTrue(File.ReadAllText(originalMdFileContent).Contains(emptySpaceChar)); + + // Act + var opts = new RenameOptions + { + InputMdDirectory = tempDirectory.FullName, + MaxLength = 90 + }; + + //Rename all the files in the temp directory + RenameCommand.HandleRename(opts); + + // Assert + var finalMdFile = tempDirectory.GetFiles("*.md", SearchOption.TopDirectoryOnly) + .Select(x => x.Name).FirstOrDefault(); + Assert.IsNotNull(finalMdFile); + + var hashedName = Path.GetFileNameWithoutExtension(finalMdFile); + + //Validates that all the renamed files start with the hashed name + var allFiles = tempDirectory.GetFiles("*.*", SearchOption.TopDirectoryOnly).Select(x => x.Name); + foreach(var file in allFiles) + { + Assert.IsTrue(file.StartsWith(hashedName)); + } + + //Get the image file name renamed + var imageFile = tempDirectory.GetFiles("*.jpg", SearchOption.TopDirectoryOnly) + .Select(x => x.Name).FirstOrDefault(); + Assert.IsNotNull(imageFile); + + //Validates that the image file name is present inside the md file content. + var finalMdFileContent = Path.Combine(tempDirectory.FullName, finalMdFile); + Assert.IsTrue(File.ReadAllText(finalMdFileContent).Contains(imageFile)); + } + [Test] public void CanRenameFilesInADirectory() { diff --git a/test/Tools/docGeneratorTestFiles/fallback_docs/LongNameFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis).dyn b/test/Tools/docGeneratorTestFiles/fallback_docs/LongNameFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis).dyn new file mode 100644 index 00000000000..09737eb966d --- /dev/null +++ b/test/Tools/docGeneratorTestFiles/fallback_docs/LongNameFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis).dyn @@ -0,0 +1,510 @@ +{ + "Uuid": "3c9d0464-8643-5ffe-96e5-ab1769818209", + "IsCustomNode": false, + "Description": "", + "Name": "ByOriginVectors", + "ElementResolver": { + "ResolutionMap": {} + }, + "Inputs": [], + "Outputs": [], + "Nodes": [ + { + "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels", + "NodeType": "ExtensionNode", + "Id": "d86188a165304a8385aae4a9531e3672", + "Inputs": [ + { + "Id": "2d914730ea324f958e05f99ad7952c22", + "Name": "", + "Description": "Node to evaluate.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "8620e90e3be94bf5a7b4b9f49e6278bb", + "Name": "", + "Description": "Watch contents.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Visualize the output of node." + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore", + "NodeType": "CodeBlockNode", + "Code": "2;", + "Id": "72602684b1b64b16b05cabb5f77a6fbd", + "Inputs": [], + "Outputs": [ + { + "Id": "819b341b89d540fcaa862b8852010a32", + "Name": "", + "Description": "Value of expression at line 1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Allows for DesignScript code to be authored directly" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "NodeType": "FunctionNode", + "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double", + "Id": "11569a47bcb346c2b834bfefb91a4f57", + "Inputs": [ + { + "Id": "6e5e58012cb44ce0a9d3a268ff89b2fb", + "Name": "x", + "Description": "double\nDefault value : 0", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "13aac907e6184fde9a22193bd1331c54", + "Name": "y", + "Description": "double\nDefault value : 0", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "02e941da59054ada87e616a7f9182e04", + "Name": "z", + "Description": "double\nDefault value : 0", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "704c425506fa41478db1cf48e07bfd19", + "Name": "Point", + "Description": "Point", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Auto", + "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "NodeType": "FunctionNode", + "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ByCoordinates@double,double,double", + "Id": "337978e8b98c4d868e808205abf40de3", + "Inputs": [ + { + "Id": "8fc91f5adc894bca89899a3736dd164d", + "Name": "x", + "Description": "X coordinate\n\ndouble\nDefault value : 0", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "4b3c68dad3c94a1e92fb98540f756647", + "Name": "y", + "Description": "Y coordinate\n\ndouble\nDefault value : 0", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "44c159a2127e4f20be880f29b8894540", + "Name": "z", + "Description": "Z coordinate\n\ndouble\nDefault value : 0", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "94773d257847429fa2cabf6d55700157", + "Name": "Vector", + "Description": "Vector", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Auto", + "Description": "Form a Vector by 3 Euclidean coordinates\n\nVector.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Vector" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore", + "NodeType": "CodeBlockNode", + "Code": "2;", + "Id": "8fb6380247b448baab7de14761320dce", + "Inputs": [], + "Outputs": [ + { + "Id": "71f922a4e4d047e7a2a66a4041db6671", + "Name": "", + "Description": "Value of expression at line 1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Allows for DesignScript code to be authored directly" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "NodeType": "FunctionNode", + "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ByCoordinates@double,double,double", + "Id": "e39b5218a2f44902971414941f9e467c", + "Inputs": [ + { + "Id": "d123cdce221e438cb2c9aef37542f553", + "Name": "x", + "Description": "X coordinate\n\ndouble\nDefault value : 0", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "b01ec1f7aa144f7db8939579c30bace7", + "Name": "y", + "Description": "Y coordinate\n\ndouble\nDefault value : 0", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "110d806c342f4a919b19fc70e03bd2fe", + "Name": "z", + "Description": "Z coordinate\n\ndouble\nDefault value : 0", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "1d3f4f81f6844527949670ba45108901", + "Name": "Vector", + "Description": "Vector", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Auto", + "Description": "Form a Vector by 3 Euclidean coordinates\n\nVector.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Vector" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore", + "NodeType": "CodeBlockNode", + "Code": "1;", + "Id": "7cda1185b79e41a387895af30e7c0482", + "Inputs": [], + "Outputs": [ + { + "Id": "2fe031b178a74164963e60f44028e76f", + "Name": "", + "Description": "Value of expression at line 1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Allows for DesignScript code to be authored directly" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore", + "NodeType": "CodeBlockNode", + "Code": "2;", + "Id": "8f8f665e3cda49f280746e9cc1edcbd9", + "Inputs": [], + "Outputs": [ + { + "Id": "967420d1dd654b3a8c4f7e70973579e6", + "Name": "", + "Description": "Value of expression at line 1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Allows for DesignScript code to be authored directly" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", + "NodeType": "FunctionNode", + "FunctionSignature": "Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Vector,Autodesk.DesignScript.Geometry.Vector,Autodesk.DesignScript.Geometry.Vector", + "Id": "d0e98bdb46bf4f9aba607fd9f281e12d", + "Inputs": [ + { + "Id": "449157f12d0241ecb65b4ff5c19b4e3b", + "Name": "origin", + "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "0057ba426303471d83ee80240fcf815e", + "Name": "xAxis", + "Description": "Vector\nDefault value : Autodesk.DesignScript.Geometry.Vector.ByCoordinates(1, 0, 0)", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "e73f1d3369c642728e51c7ec1888a159", + "Name": "yAxis", + "Description": "Vector\nDefault value : Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 1, 0)", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "d33e35d449c8414dac81950181f822cb", + "Name": "zAxis", + "Description": "Vector\nDefault value : Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)", + "UsingDefaultValue": true, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "9943265af5c94c96bd7d14940ea1b11c", + "Name": "CoordinateSystem", + "Description": "CoordinateSystem", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Auto", + "Description": "Create a CoordinateSystem at the origin with X and Y axis, with Z axis ignored completely. Input Vectors are normalized before creating the CoordinateSystem.\n\nCoordinateSystem.ByOriginVectors (origin: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), xAxis: Vector = Autodesk.DesignScript.Geometry.Vector.ByCoordinates(1, 0, 0), yAxis: Vector = Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 1, 0), zAxis: Vector = Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)): CoordinateSystem" + } + ], + "Connectors": [ + { + "Start": "819b341b89d540fcaa862b8852010a32", + "End": "6e5e58012cb44ce0a9d3a268ff89b2fb", + "Id": "bef92e12ff574562a166245b7dbfb3c9" + }, + { + "Start": "819b341b89d540fcaa862b8852010a32", + "End": "13aac907e6184fde9a22193bd1331c54", + "Id": "f9e4676b44184283849c472c63695a54" + }, + { + "Start": "819b341b89d540fcaa862b8852010a32", + "End": "02e941da59054ada87e616a7f9182e04", + "Id": "43679c54d4984d569715080408fba04d" + }, + { + "Start": "704c425506fa41478db1cf48e07bfd19", + "End": "449157f12d0241ecb65b4ff5c19b4e3b", + "Id": "47a90edd44d84f338b9ef652d7a1837f" + }, + { + "Start": "94773d257847429fa2cabf6d55700157", + "End": "0057ba426303471d83ee80240fcf815e", + "Id": "b6e7c4a4ba544895937711861176c969" + }, + { + "Start": "71f922a4e4d047e7a2a66a4041db6671", + "End": "4b3c68dad3c94a1e92fb98540f756647", + "Id": "8f6af2c5424646118e45a506f7991073" + }, + { + "Start": "71f922a4e4d047e7a2a66a4041db6671", + "End": "8fc91f5adc894bca89899a3736dd164d", + "Id": "90c2195d04cf4cee94fec7b0438364d0" + }, + { + "Start": "71f922a4e4d047e7a2a66a4041db6671", + "End": "44c159a2127e4f20be880f29b8894540", + "Id": "2f484952c70542b8b7930b4773f17e5e" + }, + { + "Start": "1d3f4f81f6844527949670ba45108901", + "End": "e73f1d3369c642728e51c7ec1888a159", + "Id": "4fb9aeb103d8493f9dbfbfb5a4cb9cbc" + }, + { + "Start": "2fe031b178a74164963e60f44028e76f", + "End": "d123cdce221e438cb2c9aef37542f553", + "Id": "5f45356ec5bb42a0888033679ee87e7f" + }, + { + "Start": "2fe031b178a74164963e60f44028e76f", + "End": "b01ec1f7aa144f7db8939579c30bace7", + "Id": "5f73fb8b1c3a4dc8af0bbbbc038b13c6" + }, + { + "Start": "967420d1dd654b3a8c4f7e70973579e6", + "End": "110d806c342f4a919b19fc70e03bd2fe", + "Id": "9c346312857643b3b6988c44b176d75b" + }, + { + "Start": "9943265af5c94c96bd7d14940ea1b11c", + "End": "2d914730ea324f958e05f99ad7952c22", + "Id": "7910c6e3d5b44768b6a8a46a05ae0e8c" + } + ], + "Dependencies": [], + "Bindings": [], + "View": { + "Dynamo": { + "ScaleFactor": 1.0, + "HasRunWithoutCrash": true, + "IsVisibleInDynamoLibrary": true, + "Version": "2.0.1.5055", + "RunType": "Automatic", + "RunPeriod": "1000" + }, + "Camera": { + "Name": "Background Preview", + "EyeX": 6.0688209533691406, + "EyeY": 4.51063346862793, + "EyeZ": 1.5671737194061279, + "LookX": -1.7978543043136597, + "LookY": -0.73139345645904541, + "LookZ": -0.85327517986297607, + "UpX": -0.12260746210813522, + "UpY": 0.99074780941009521, + "UpZ": -0.058190420269966125 + }, + "NodeViews": [ + { + "ShowGeometry": true, + "Name": "Watch", + "Id": "d86188a165304a8385aae4a9531e3672", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 422.58728329119123, + "Y": 2743.52336605886 + }, + { + "ShowGeometry": true, + "Name": "Code Block", + "Id": "72602684b1b64b16b05cabb5f77a6fbd", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -273.296648597838, + "Y": 2774.48698768449 + }, + { + "ShowGeometry": true, + "Name": "Point.ByCoordinates", + "Id": "11569a47bcb346c2b834bfefb91a4f57", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -153.80384278826, + "Y": 2743.52336605886 + }, + { + "ShowGeometry": true, + "Name": "Vector.ByCoordinates", + "Id": "337978e8b98c4d868e808205abf40de3", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -159.40384278826, + "Y": 2889.17375172643 + }, + { + "ShowGeometry": true, + "Name": "Code Block", + "Id": "8fb6380247b448baab7de14761320dce", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -273.296648597838, + "Y": 2919.70486828047 + }, + { + "ShowGeometry": true, + "Name": "Vector.ByCoordinates", + "Id": "e39b5218a2f44902971414941f9e467c", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -159.40384278826, + "Y": 3029.02831388662 + }, + { + "ShowGeometry": true, + "Name": "Code Block", + "Id": "7cda1185b79e41a387895af30e7c0482", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -273.296648597838, + "Y": 3059.55943044066 + }, + { + "ShowGeometry": true, + "Name": "Code Block", + "Id": "8f8f665e3cda49f280746e9cc1edcbd9", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -273.296648597838, + "Y": 3147.26707216241 + }, + { + "ShowGeometry": true, + "Name": "CoordinateSystem.ByOriginVectors", + "Id": "d0e98bdb46bf4f9aba607fd9f281e12d", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 105.75058649383601, + "Y": 2743.52336605886 + } + ], + "Annotations": [], + "X": 335.52907871996149, + "Y": -2555.4960660888196, + "Zoom": 1.0332137540626696 + } +} \ No newline at end of file diff --git a/test/Tools/docGeneratorTestFiles/fallback_docs/LongNameFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis).md b/test/Tools/docGeneratorTestFiles/fallback_docs/LongNameFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis).md new file mode 100644 index 00000000000..36309cc701e --- /dev/null +++ b/test/Tools/docGeneratorTestFiles/fallback_docs/LongNameFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis).md @@ -0,0 +1,10 @@ +## In Depth +`CoordinateSystem.ByOriginVectors (origin, xAxis, yAxis, zAxis)` returns a new CoordinateSystem at an input origin point with input X, Y, and Z axes. + +In the example below, the CoordinateSystem is placed at an origin with new vectors for the X, Y, and Z axes. The result is a CoordinateSystem rotated relative to the original CoordinateSystem. + +___ +## Example File + +![ByOriginVectors (origin, xAxis, yAxis, zAxis)](./Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin,%20xAxis,%20yAxis,%20zAxis)_img.jpg) + diff --git a/test/Tools/docGeneratorTestFiles/fallback_docs/LongNameFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis)_img.jpg b/test/Tools/docGeneratorTestFiles/fallback_docs/LongNameFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis)_img.jpg new file mode 100644 index 0000000000000000000000000000000000000000..74fa2ec15059afbbcbe8d0116d80f13a155ee30c GIT binary patch literal 97499 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

B$wsp4jN7EXRI%HPy8CBCatkB2k;?Qg7axrs=c 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 l9KCb8