diff --git a/.github/workflows/dynamoAllNet6.0_build.yml b/.github/workflows/build_dynamo_all_net6.0.yml
similarity index 70%
rename from .github/workflows/dynamoAllNet6.0_build.yml
rename to .github/workflows/build_dynamo_all_net6.0.yml
index f8965faa87a..a538fc12402 100644
--- a/.github/workflows/dynamoAllNet6.0_build.yml
+++ b/.github/workflows/build_dynamo_all_net6.0.yml
@@ -1,6 +1,8 @@
-# Build Dynamo using latest VS and DotNET
-name: DynamoAllNet6.0-Build
+# Build DynamoAll.sln with .NET 6.0
+name: Build DynamoAll.sln net6.0
+
on: [push,pull_request]
+
jobs:
build:
runs-on: windows-latest
@@ -19,7 +21,7 @@ jobs:
- name: Install dependencies for windows runtime
run: |
- dotnet restore $Env:GITHUB_WORKSPACE\Dynamo\src\Dynamo.All.sln /p:Configuration=Release --runtime=win10-x64
+ dotnet restore $Env:GITHUB_WORKSPACE\Dynamo\src\Dynamo.All.sln /p:Configuration=Release --runtime=win-x64
- name: Build Dynamo with MSBuild for Windows
run: |
echo "***Continue with the build, Good luck developer!***"
@@ -31,10 +33,21 @@ jobs:
cd "$Env:GITHUB_WORKSPACE\Dynamo\bin\AnyCPU\Release"
echo "***Locating DynamoCLI for Windows!***"
test ".\DynamoCLI.exe" && echo "DynamoCLI exists!"
- - name: Upload Artifact
+ - name: Upload Build Artifact
uses: actions/upload-artifact@v3
with:
name: DynamoSandbox
path: ${{ github.workspace }}\Dynamo\bin\AnyCPU\Release
if-no-files-found: warn
retention-days: 3
+ - name: Save Pull Request Number
+ env:
+ PR_NUMBER: ${{ github.event.number }}
+ run: $PR_NUMBER | Out-File -FilePath pr_number.txt
+ - name: Upload Pull Request Artifact
+ uses: actions/upload-artifact@v3
+ with:
+ name: pr_number
+ path: ${{ github.workspace }}\pr_number.txt
+ if-no-files-found: warn
+ retention-days: 3
diff --git a/.github/workflows/build_dynamo_all_net8.0.yml b/.github/workflows/build_dynamo_all_net8.0.yml
new file mode 100644
index 00000000000..5e6a5bf284c
--- /dev/null
+++ b/.github/workflows/build_dynamo_all_net8.0.yml
@@ -0,0 +1,53 @@
+# Build DynamoAll.sln with .NET 8.0
+name: Build DynamoAll.sln net8.0
+
+on: [push,pull_request]
+
+jobs:
+ build:
+ runs-on: windows-latest
+ steps:
+ - name: Checkout Dynamo Repo
+ uses: actions/checkout@v4
+ with:
+ path: Dynamo
+ repository: DynamoDS/Dynamo
+ - name: Setup dotnet
+ uses: actions/setup-dotnet@v3
+ with:
+ dotnet-version: '8.0.x'
+ - name: Disable problem matcher
+ run: echo "::remove-matcher owner=csc::"
+
+ - name: Install dependencies for windows runtime
+ run: |
+ dotnet restore $Env:GITHUB_WORKSPACE\Dynamo\src\Dynamo.All.sln /p:Configuration=Release --runtime=win-x64 -p:DotNet=net8.0
+ - name: Build Dynamo with MSBuild for Windows
+ run: |
+ echo "***Continue with the build, Good luck developer!***"
+ cd "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\"
+ .\MSBuild.exe $Env:GITHUB_WORKSPACE\Dynamo\src\Dynamo.All.sln /p:Configuration=Release /p:DotNet=net8.0
+ # look for Dynamo
+ - name: Navigate to Dynamo Windows Folder
+ run: |
+ cd "$Env:GITHUB_WORKSPACE\Dynamo\bin\AnyCPU\Release"
+ echo "***Locating DynamoCLI for Windows!***"
+ test ".\DynamoCLI.exe" && echo "DynamoCLI exists!"
+ - name: Upload Build Artifact
+ uses: actions/upload-artifact@v3
+ with:
+ name: DynamoSandbox
+ path: ${{ github.workspace }}\Dynamo\bin\AnyCPU\Release
+ if-no-files-found: warn
+ retention-days: 3
+ - name: Save Pull Request Number
+ env:
+ PR_NUMBER: ${{ github.event.number }}
+ run: $PR_NUMBER | Out-File -FilePath pr_number.txt
+ - name: Upload Pull Request Artifact
+ uses: actions/upload-artifact@v3
+ with:
+ name: pr_number
+ path: ${{ github.workspace }}\pr_number.txt
+ if-no-files-found: warn
+ retention-days: 3
diff --git a/.github/workflows/close_stale_issues.yml b/.github/workflows/close_stale_issues.yml
index 163881dbcb9..5be33ab496a 100644
--- a/.github/workflows/close_stale_issues.yml
+++ b/.github/workflows/close_stale_issues.yml
@@ -17,8 +17,9 @@ jobs:
days-before-close: 0
only-labels: needs more info
close-issue-message: Given that there has been no additional information added, this issue will be closed for now. Please reopen and provide additional information if you wish the Dynamo team to investigate further.
- - name: Summary
+ - name: Summary # Print markdown list of closed issues or "No Issues" message if no issues were closed
+ env:
+ ISSUES_URL: ${{ format('{0}/{1}/issues', github.server_url, github.repository) }}
run: |
- echo "# Closed Issues" >> $GITHUB_STEP_SUMMARY
- echo "" >> $GITHUB_STEP_SUMMARY
- echo "${{ steps.close_issues.outputs.closed-issues-prs }}" >> $GITHUB_STEP_SUMMARY
+ echo '# Closed Issues' >> $GITHUB_STEP_SUMMARY
+ echo '${{ steps.close_issues.outputs.closed-issues-prs }}' | jq --raw-output 'if (. == []) then "- No Issues." else .[] | "- \(.title) - [#\(.number)](\(env.ISSUES_URL)/\(.number))" end' >> $GITHUB_STEP_SUMMARY
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index e56b89d23ef..5e90bee85a3 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -46,7 +46,7 @@ jobs:
# âšī¸ Command-line programs to run using the OS shell.
# đ See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- name: Install dependencies for windows runtime
- run: dotnet restore $Env:GITHUB_WORKSPACE\Dynamo\src\Dynamo.All.sln --runtime=win10-x64
+ run: dotnet restore $Env:GITHUB_WORKSPACE\Dynamo\src\Dynamo.All.sln --runtime=win-x64
- name: Build Dynamo with MSBuild for Windows
run: |
echo "***Continue with the build, Good luck developer!***"
diff --git a/.github/workflows/dynamoBinDiff.yml b/.github/workflows/dynamoBinDiff.yml
index 92108408997..440094f431f 100644
--- a/.github/workflows/dynamoBinDiff.yml
+++ b/.github/workflows/dynamoBinDiff.yml
@@ -18,7 +18,7 @@ jobs:
run: echo "::remove-matcher owner=csc::"
- name: Install dependencies for windows runtime
run: |
- dotnet restore $Env:GITHUB_WORKSPACE\net60_Win_Dynamo\src\Dynamo.All.sln /p:Configuration=Release --runtime=win10-x64
+ dotnet restore $Env:GITHUB_WORKSPACE\net60_Win_Dynamo\src\Dynamo.All.sln /p:Configuration=Release --runtime=win-x64
- name: Build Dynamo current branch with MSBuild for NET60-Windows
run: |
echo "***Continue with the build, Good luck developer!***"
@@ -53,7 +53,7 @@ jobs:
run: echo "::remove-matcher owner=csc::"
- name: Install dependencies for windows runtime
run: |
- dotnet restore $Env:GITHUB_WORKSPACE\master_net60_Win_Dynamo\src\Dynamo.All.sln /p:Configuration=Release --runtime=win10-x64
+ dotnet restore $Env:GITHUB_WORKSPACE\master_net60_Win_Dynamo\src\Dynamo.All.sln /p:Configuration=Release --runtime=win-x64
- name: Build Dynamo master branch with MSBuild for NET60-Windows
run: |
echo "***Continue with the build, Good luck developer!***"
diff --git a/.github/workflows/dynamoNet6.0_build.yml b/.github/workflows/dynamoNet6.0_build.yml
index 034aa66856b..f52c91e31fb 100644
--- a/.github/workflows/dynamoNet6.0_build.yml
+++ b/.github/workflows/dynamoNet6.0_build.yml
@@ -19,7 +19,7 @@ jobs:
- name: Install dependencies for windows runtime
run: |
- dotnet restore $Env:GITHUB_WORKSPACE\Dynamo\src\DynamoCore.sln /p:Configuration=Release --runtime=win10-x64
+ dotnet restore $Env:GITHUB_WORKSPACE\Dynamo\src\DynamoCore.sln /p:Configuration=Release --runtime=win-x64
- name: Build Dynamo with MSBuild for Windows
run: |
echo "***Continue with the build, Good luck developer!***"
diff --git a/.github/workflows/generate_changelog.yml b/.github/workflows/generate_changelog.yml
index 32b727affb8..581379c242a 100644
--- a/.github/workflows/generate_changelog.yml
+++ b/.github/workflows/generate_changelog.yml
@@ -22,7 +22,7 @@ jobs:
- name: Generate changelog
id: changelog
- uses: metcalfc/changelog-generator@v4.1.0
+ uses: metcalfc/changelog-generator@v4.2.0
with:
myToken: ${{ secrets.GITHUB_TOKEN }}
head-ref: ${{ github.event.inputs.head-ref }}
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
deleted file mode 100644
index 2ee2ee4b4a8..00000000000
--- a/.github/workflows/test.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-name: Test
-
-on:
- workflow_run:
- workflows:
- - DynamoAllNet6.0-Build
- types:
- - completed
-
-env:
- TEST_EXECUTE_DOWNLOAD_URL: https://downloads.smartbear.com/TestExecute1552SLM.exe
-
-jobs:
- ui_smoke_tests:
- name: UI Smoke Tests
- timeout-minutes: 60
- runs-on: windows-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- repository: DynamoDS/DynamoTestCompleteTests
- token: ${{ secrets.DYNAMO_TESTS_TOKEN }}
- ref: master
- - name: Download TestExecute
- run: Invoke-WebRequest -Uri "${{ env.TEST_EXECUTE_DOWNLOAD_URL }}" -OutFile ".\TE.exe"
- - name: Install TestExecute
- shell: cmd
- run: .\TE.exe -SilentInstall
- - name: Download Artifact
- uses: dawidd6/action-download-artifact@v2
- with:
- name: DynamoSandbox
- workflow: ${{ github.event.workflow_run.workflow_id }}
- path: ${{ github.workspace }}\build
- - name: Run Tests
- shell: cmd
- run: .github\scripts\run_tests.bat ${{ secrets.TEST_EXECUTE_ACCESS_KEY }} Dynamo\Dynamo.pjs DynamoSandbox SmokeTests
- - name: UI Smoke Tests Report
- uses: dorny/test-reporter@v1.7.0
- if: always()
- with:
- name: UI Smoke Test Report
- path: reports/report.xml
- reporter: java-junit
- - name: Action Summary
- if: always()
- run: |
- type summary.md | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
- echo "" >> $GITHUB_STEP_SUMMARY
- echo ":package: Trigerred by: [${{ github.event.workflow_run.name }}](${{ github.event.workflow_run.html_url }})" >> $env:GITHUB_STEP_SUMMARY
diff --git a/.github/workflows/ui_smoke_tests.yml b/.github/workflows/ui_smoke_tests.yml
new file mode 100644
index 00000000000..a62c86e5ac3
--- /dev/null
+++ b/.github/workflows/ui_smoke_tests.yml
@@ -0,0 +1,74 @@
+name: UI Smoke Tests
+
+on:
+ workflow_run:
+ workflows:
+ - Build DynamoAll.sln net6.0
+ - Build DynamoAll.sln net8.0
+ types:
+ - completed
+
+env:
+ TEST_EXECUTE_DOWNLOAD_URL: https://downloads.smartbear.com/TestExecute1552SLM.exe
+ ACTOR: ${{ github.actor }}
+ WORKFLOW_ID: ${{ github.event.workflow_run.workflow_id }}
+ RUN_ID: ${{ github.event.workflow_run.id }}
+ RUN_NAME: ${{ github.event.workflow_run.name }}
+ RUN_URL: ${{ github.event.workflow_run.html_url }}
+
+jobs:
+ ui_smoke_tests:
+ name: UI Smoke Tests
+ timeout-minutes: 60
+ runs-on: windows-latest
+ if: ${{ github.event.workflow_run.conclusion == 'success' }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ repository: DynamoDS/DynamoTestCompleteTests
+ token: ${{ secrets.DYNAMO_TESTS_TOKEN }}
+ ref: master
+ - name: Download TestExecute
+ run: Invoke-WebRequest -Uri "${{ env.TEST_EXECUTE_DOWNLOAD_URL }}" -OutFile ".\TE.exe"
+ - name: Install TestExecute
+ shell: cmd
+ run: .\TE.exe -SilentInstall
+ - name: Download Build Artifact
+ uses: dawidd6/action-download-artifact@v2
+ with:
+ name: DynamoSandbox
+ workflow: ${{ env.WORKFLOW_ID }}
+ run_id: ${{ env.RUN_ID }}
+ path: ${{ github.workspace }}\build
+ - name: Download Pull Request Artifact
+ uses: dawidd6/action-download-artifact@v2
+ with:
+ name: pr_number
+ workflow: ${{ env.WORKFLOW_ID }}
+ run_id: ${{ env.RUN_ID }}
+ path: ${{ github.workspace }}\pr
+ - name: Run UI Smoke Tests
+ shell: cmd
+ run: .github\scripts\run_tests.bat ${{ secrets.TEST_EXECUTE_ACCESS_KEY }} Dynamo\Dynamo.pjs DynamoSandbox SmokeTests
+ - name: UI Smoke Tests Report
+ uses: dorny/test-reporter@v1.7.0
+ if: always()
+ with:
+ name: UI Smoke Test Report
+ path: reports/report.xml
+ reporter: java-junit
+ - name: Read Pull Request Number
+ id: read_pr_number
+ run: |
+ "pr_number=$(Get-Content ${{ github.workspace }}\pr\pr_number.txt)" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
+ - name: Summary
+ env:
+ PR_NUMBER: ${{ steps.read_pr_number.outputs.pr_number }}
+ PR_URL: ${{ format('{0}/{1}/pull', github.server_url, github.repository) }}
+ if: always()
+ run: |
+ Get-Content summary.md | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
+ "Actor: @$env:ACTOR" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
+ "Workflow Run: [$env:RUN_NAME]($env:RUN_URL)" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
+ "Pull Request: [$env:PR_NUMBER]($env:PR_URL/$env:PR_NUMBER)" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 00000000000..9462831e8e9
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,12 @@
+
+
+
+ $(MSBuildThisFileDirectory)src\
+
+
diff --git a/LICENSE.txt b/LICENSE.txt
index 0d35c2a6539..e37dd3aceb2 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -92,6 +92,35 @@ Copyright (c) 2022 Fonticons, Inc. (https://fontawesome.com)
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons packaged as SVG and JS file types.
+Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/): The Font Awesome Free download is licensed under a Creative Commons Attribution 4.0 International License and applies to all icons packaged as SVG and JS file types.
+
+Fonts: SIL OFL 1.1 License
+In the Font Awesome Free download, the SIL OFL license applies to all icons packaged as web and desktop font files.
+Copyright (c) 2023 Fonticons, Inc. (https://fontawesome.com)
+with Reserved Font Name: "Font Awesome".
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license can be found at: http://scripts.sil.org/OFL
+
+Code: MIT License (https://opensource.org/licenses/MIT)
+In the Font Awesome Free download, the MIT license applies to all non-font and
+non-icon files.
+Copyright 2023 Fonticons, Inc.
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in the
+Software without restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so, subject to the
+following conditions:
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
Cyotek.Drawing.BitmapFont v.2.0.0:
https://github.com/cyotek/Cyotek.Drawing.BitmapFont
https://github.com/cyotek/Cyotek.Drawing.BitmapFont/blob/master/LICENSE.txt
@@ -683,13 +712,6 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-SoapFormatter v1.0.11
-https://github.com/novotnyllc/SoapFormatter/blob/main/LICENSE
-
-In general, the runtime and its class libraries are licensed under the
-terms of the MIT license, and some third party code is licensed under
-the 3-clause BSD license. See the file "PATENTS.TXT" for Microsoft's
-patent grant on the Mono codebase.
coverlet.collector v.3.1.2
The MIT License (MIT)
diff --git a/doc/distrib/License.rtf b/doc/distrib/License.rtf
index e02b574379e..a79d98d0c6f 100644
--- a/doc/distrib/License.rtf
+++ b/doc/distrib/License.rtf
@@ -1,1881 +1,930 @@
-{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff4\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
-{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f4\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Helvetica;}{\f10\fbidi \fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}
-{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f40\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
-{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}
-{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
-{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
-{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f43\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f44\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
-{\f46\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f47\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f48\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f49\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
-{\f50\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f51\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f63\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f64\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}
-{\f66\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f67\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f68\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f69\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}
-{\f70\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f71\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f83\fbidi \fswiss\fcharset238\fprq2 Helvetica CE;}{\f84\fbidi \fswiss\fcharset204\fprq2 Helvetica Cyr;}
-{\f86\fbidi \fswiss\fcharset161\fprq2 Helvetica Greek;}{\f87\fbidi \fswiss\fcharset162\fprq2 Helvetica Tur;}{\f88\fbidi \fswiss\fcharset177\fprq2 Helvetica (Hebrew);}{\f89\fbidi \fswiss\fcharset178\fprq2 Helvetica (Arabic);}
-{\f90\fbidi \fswiss\fcharset186\fprq2 Helvetica Baltic;}{\f91\fbidi \fswiss\fcharset163\fprq2 Helvetica (Vietnamese);}{\f383\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f384\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}
-{\f386\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f387\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f390\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f391\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}
-{\f443\fbidi \fswiss\fcharset238\fprq2 Verdana CE;}{\f444\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr;}{\f446\fbidi \fswiss\fcharset161\fprq2 Verdana Greek;}{\f447\fbidi \fswiss\fcharset162\fprq2 Verdana Tur;}
-{\f450\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic;}{\f451\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
-{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
-{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
-{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
-{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
-{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
-{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}
-{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);}
-{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
-{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
-{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
-{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
-{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
-{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
-{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
-{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
-{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}
-{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
-{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
-{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
-{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
-{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
-{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
-\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\caccentone\ctint255\cshade191\red47\green84\blue150;
-\caccentone\ctint255\cshade127\red31\green55\blue99;\chyperlink\ctint255\cshade255\red5\green99\blue193;\red96\green94\blue92;\red225\green223\blue221;\cfollowedhyperlink\ctint255\cshade255\red149\green79\blue114;\red165\green165\blue165;
-\red109\green210\blue255;\red70\green70\blue70;\red74\green74\blue74;\red5\green99\blue193;\red36\green41\blue47;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1
-\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af4\afs24\alang1025 \ltrch\fcs0
-\fs24\lang1033\langfe2052\loch\f4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 \snext0 \sqformat \spriority0 Normal;}{\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af4\afs24\alang1025 \ltrch\fcs0
-\fs24\lang1033\langfe2052\loch\f4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 \slink15 \sqformat heading 1;}{\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af4\afs24\alang1025
-\ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 \slink16 \sqformat heading 2;}{\s3\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0 \rtlch\fcs1
-\af4\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 \slink17 \sqformat heading 3;}{\s4\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel3\rin0\lin0\itap0
-\rtlch\fcs1 \af4\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 \slink18 \sqformat heading 4;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1
-Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
-\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033
-\snext11 \ssemihidden \sunhideused Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \fs32\cf19\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink1 \spriority9 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \af0\afs26 \ltrch\fcs0
-\fs26\cf19\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink2 \ssemihidden \spriority9 Heading 2 Char;}{\*\cs17 \additive \rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \fs24\cf20\loch\f31502\hich\af31502\dbch\af31501
-\sbasedon10 \slink3 \ssemihidden \spriority9 Heading 3 Char;}{\*\cs18 \additive \rtlch\fcs1 \ai\af0\afs24 \ltrch\fcs0 \i\fs24\cf19\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink4 \ssemihidden \spriority9 Heading 4 Char;}{\*\cs19 \additive
-\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf21 \sbasedon10 \sunhideused \styrsid14298549 Hyperlink;}{\*\cs20 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \cf22\chshdng0\chcfpat0\chcbpat23 \sbasedon10 \ssemihidden \sunhideused \styrsid14298549 Unresolved Mention;}{\*
-\cs21 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf24 \sbasedon10 \ssemihidden \sunhideused \styrsid4611777 FollowedHyperlink;}{\s22\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f0\hich\af0\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext22 \ssemihidden \sunhideused \styrsid9731339 Normal (Web);}{\*\cs23 \additive \rtlch\fcs1 \ai\af0
-\ltrch\fcs0 \i \sbasedon10 \ssemihidden \sunhideused \styrsid9731339 HTML Variable;}}{\*\listtable{\list\listtemplateid-1{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
-\'01\u-3913 ?;}{\levelnumbers;}\f3\fs20\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0
-\fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2160
-\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
-\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative
-\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext
-\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid404035829}}{\*\listoverridetable{\listoverride\listid404035829\listoverridecount0\ls1}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0
-\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp4\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp4\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp4\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid262518\rsid411363\rsid868937\rsid1060736\rsid1784394\rsid2829184\rsid2959855
-\rsid3092893\rsid3225273\rsid3346706\rsid3998130\rsid4197417\rsid4265300\rsid4352418\rsid4484117\rsid4611777\rsid4933710\rsid5534482\rsid6512127\rsid6759865\rsid6955063\rsid7303292\rsid7632792\rsid7959640\rsid8078116\rsid8279958\rsid9377761\rsid9460105
-\rsid9635992\rsid9658238\rsid9731339\rsid10299691\rsid10497410\rsid11167982\rsid12335516\rsid12339523\rsid12538758\rsid12653622\rsid12931539\rsid13390354\rsid13906562\rsid14187697\rsid14298549\rsid14628192\rsid14700233\rsid14892156\rsid15019625
-\rsid15220234\rsid15758779\rsid16075008\rsid16089027\rsid16215368\rsid16401238\rsid16455092\rsid16659309}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info
-{\operator Tiberiu Pinzariu}{\creatim\yr2023\mo5\dy24\hr14\min10}{\revtim\yr2023\mo10\dy20\hr13\min53}{\version50}{\edmins51}{\nofpages28}{\nofwords12773}{\nofchars72811}{\nofcharsws85414}{\vern79}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office
-/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
-\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120
-\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot1784394 \nouicompat \fet0{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1
-\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5
-\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang
-{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sb240\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af4\afs24\alang1025 \ltrch\fcs0
-\fs24\lang1033\langfe2052\loch\af4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 \hich\f4 @DYNAMO v.3.0.0 \'a9\loch\f4
- 2023 Autodesk, Inc. All rights reserved.
-\par \hich\af4\dbch\af31505\loch\f4 Dynamo License
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238
-\par \hich\af4\dbch\af31505\loch\f4 Those portions created by Ian are \hich\af4\dbch\af31505\loch\f4 provided with the following copyright:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Copyright 2017 Ian Keough
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Those portions created by Autodesk employees are provided with the following copyright:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Copyright 2023 Autodesk, Inc.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Licensed under the Apache License, Version 2.0 (the "License"); you m\hich\af4\dbch\af31505\loch\f4 ay not use this file except in compliance with the License. You may obtain a copy of the License at }{\field{\*\fldinst {
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0&data=04%7C01%7CJames.Conner%40autodesk.c\hich\af4\dbch\af31505\loch\f4
-om%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520120511%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=hM4SECRXlI3Y3bhWd0n7aVFES8pYfE3tfdiIfbSsdIo%3D&re
-\hich\af4\dbch\af31505\loch\f4 s\hich\af4\dbch\af31505\loch\f4 erved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046007700770077002e006100700061006300680065002e006f00720067002500320046006c006900630065006e007300650073002500320046004c004900430045004e00530045002d0032002e00300026
-0064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500
-37003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036
-003100370039003400370035003200300031003200300035003100310025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a005100
-49006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0068004d003400530045004300520058
-006c004900330059003300620068005700640030006e00370061005600460045005300380070005900660045003300740066006400690049006600620053007300640049006f002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003006b
-005b000070000000723600000000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://www.apac\hich\af4\dbch\af31505\loch\f4 he.org/licenses/LICENSE-2.0}}}
-\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License fo
-\hich\af4\dbch\af31505\loch\f4 r the specific language governing permissions and limitations under the License.}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }{\rtlch\fcs1 \ab\af40\afs20 \ltrch\fcs0 \b\f40\fs20\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sb240\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Privacy
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 To learn more about Autodesk\hich\f4 \rquote \loch\f4
-s online and offline privacy practices, please see the }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "http://www.autodesk.com/company/legal-notices-trademarks/privacy-statem\hich\af4\dbch\af31505\loch\f4 ent"}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90bae00000068007400740070003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f0063006f006d00700061006e0079002f006c006500670061006c002d006e006f007400
-69006300650073002d00740072006100640065006d00610072006b0073002f0070007200690076006100630079002d00730074006100740065006d0065006e0074000000795881f43b1d7f48af2c825dc485276300000000a5ab000300590073002000000000006d00000000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Autodesk Privacy Statement}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 .}{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\lang2057\langfe2052\langnp2057\insrsid9658238
-\par
-\par }\pard \ltrpar\ql \li0\ri0\sb240\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Autodesk Trademarks
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The trademarks on the }{\field{\*\fldinst {\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://www.au\hich\af4\dbch\af31505\loch\f4 todesk.com/company/legal-notices-trademarks/intellectual-property/trademarks"}{
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90bce000000680074007400700073003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f0063006f006d00700061006e0079002f006c006500670061006c002d006e006f00
-740069006300650073002d00740072006100640065006d00610072006b0073002f0069006e00740065006c006c00650063007400750061006c002d00700072006f00700065007200740079002f00740072006100640065006d00610072006b0073000000795881f43b1d7f48af2c825dc485276300000000a5ab0003007300
-6f007500000000016500000000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Autodesk Trademarks page}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries.
-
-\par
-\par \hich\af4\dbch\af31505\loch\f4 All other brand names, product names or trademarks belong to their respective holders.
-\par }\pard \ltrpar\ql \li0\ri0\sb240\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Au
-\hich\af4\dbch\af31505\loch\f4 todesk Cloud and Desktop Components}{\rtlch\fcs1 \ab\af40\afs22 \ltrch\fcs0 \b\f40\fs22\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-This Product or Service may incorporate or use background Autodesk online and desktop technology components.\~ For information about these components, see}{\rtlch\fcs1 \af40\afs22 \ltrch\fcs0 \f40\fs22\lang2057\langfe2052\langnp2057\insrsid9658238
-\hich\af40\dbch\af31505\loch\f40 }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://www.autodesk.com/company/legal-notices-trademar
-\hich\af4\dbch\af31505\loch\f4 ks/autodesk-cloud-platform-components"}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90bd2000000680074007400700073003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f0063006f006d00700061006e0079002f006c006500670061006c002d006e006f00
-740069006300650073002d00740072006100640065006d00610072006b0073002f006100750074006f006400650073006b002d0063006c006f00750064002d0070006c006100740066006f0072006d002d0063006f006d0070006f006e0065006e00740073000000795881f43b1d7f48af2c825dc485276300000000a5ab00
-0300461a34ff6d01340000004e00610000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Autodesk Cloud Platform Components}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj
-{\rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f0\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af0\dbch\af31505\loch\f0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-and }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPER\hich\af4\dbch\af31505\loch\f4
-LINK "https://www.autodesk.com/company/legal-notices-trademarks/autodesk-desktop-platform-components"}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90bd6000000680074007400700073003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f0063006f006d00700061006e0079002f006c006500670061006c002d006e006f00
-740069006300650073002d00740072006100640065006d00610072006b0073002f006100750074006f006400650073006b002d006400650073006b0074006f0070002d0070006c006100740066006f0072006d002d0063006f006d0070006f006e0065006e00740073000000795881f43b1d7f48af2c825dc4852763000000
-00a5ab00030073096f004f005d0000017b00690030}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Autodesk Desktop Platform Components}}}\sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 .
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sb168\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 LIBG,\hich\af4\dbch\af31505\loch\f4
- ProtoGeometry v.2.7.0, }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid7303292\charrsid7303292 \hich\af4\dbch\af31505\loch\f4
-DynamoVisualProgramming.Analytics, CER, ADP, GRegRevitAuth, AGET, IDSDK, IDSDK Wrapper, ForgeUnits.NET, ForgeUnits.Schemas,}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-, and Autodesk.GeometryPrimitive}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 are closed source files licensed by Autodesk under the license that can be found here }
-{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://github.com/DynamoDS/Dynamo/tree/ma\hich\af4\dbch\af31505\loch\f4 ster/doc/distrib/Autodesk.rtf }{
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\lang2057\langfe2052\langnp2057\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90ba8000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f00440079006e0061006d006f00440053002f00440079006e0061006d006f002f0074007200650065002f006d00
-610073007400650072002f0064006f0063002f0064006900730074007200690062002f004100750074006f006400650073006b002e007200740066000000795881f43b1d7f48af2c825dc485276300000000a5ab0003006f806ff00000710000507300610065}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://github.com/DynamoDS/Dynamo/tree/master/doc/distrib/Autodesk.rtf}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Third-Party Trademarks, Software Credits and Attributions
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Greg v.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af0\dbch\af31505\loch\f0 }{
-\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid6512127\charrsid6512127 \hich\af4\dbch\af31505\loch\f4 v.2.5.0.5076}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238
-\hich\af4\dbch\af31505\loch\f4 :
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 (The MIT License)
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2013 Peter Boyer }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af0\dbch\af31505\loch\f0 HYPERLINK "mailto:peter.boyer@autodesk.com" }{
-\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\ul\cf26\lang2057\langfe2052\langnp2057\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b580000006d00610069006c0074006f003a00700065007400650072002e0062006f0079006500720040006100750074006f006400650073006b002e0063006f006d000000795881f43b1d7f48af2c825dc48527630000
-0000a5ab000300730061000000460000007000690035}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 peter.boyer@autodesk.com}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj
-{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,
-\hich\af4\dbch\af31505\loch\f4 m\hich\af4\dbch\af31505\loch\f4 erge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in al\hich\af4\dbch\af31505\loch\f4 l copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-\hich\af4\dbch\af31505\loch\f4
-NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Microsoft.CSharp v.4.0.0.0:
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) .NET Foundation and Contributors
-\par \hich\af4\dbch\af31505\loch\f4 All rights reserved.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "S\hich\af4\dbch\af31505\loch\f4
-oftware"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do
-\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 so, subject to the following conditions:
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf25\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, IN\hich\af4\dbch\af31505\loch\f4
-CLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, T
-\hich\af4\dbch\af31505\loch\f4 O\hich\af4\dbch\af31505\loch\f4 RT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Newtonsoft.Json v.13.0.1:
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJamesNK%2FNewtonsoft\hich\af4\dbch\af31505\loch\f4
-.Json&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520419200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=hvR
-\hich\af4\dbch\af31505\loch\f4 4\hich\af4\dbch\af31505\loch\f4 mYgVhMPpQh4uLCJ3PY9Ywr8mM0vqXF98ac8mPXA%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046004a0061006d00650073004e004b002500320046004e006500770074006f006e0073006f00660074002e004a0073006f006e0026
-0064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500
-37003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036
-003100370039003400370035003200300034003100390032003000300025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a005100
-49006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0068007600520034006d005900670056
-0068004d005000700051006800340075004c0043004a00330050005900390059007700720038006d004d0030007600710058004600390038006100630038006d005000580041002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab00030075
-000010e436ad00f8006c45690066}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://github.com/JamesNK/Newtonsoft.Json}}}\sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJamesNK%2FNewtonsoft.Json%2Fblob%2Fmaster%2FLICENSE.md&data=04%7C01%7CJames.Conner%40auto\hich\af4\dbch\af31505\loch\f4
-desk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520429148%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=OuX0yvu%2F0kVS7X5KARjQ3p9Ycg8qvk67fFAaKNEWx
-\hich\af4\dbch\af31505\loch\f4 b\hich\af4\dbch\af31505\loch\f4 M%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b88030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046004a0061006d00650073004e004b002500320046004e006500770074006f006e0073006f00660074002e004a0073006f006e0025
-003200460062006c006f0062002500320046006d00610073007400650072002500320046004c004900430045004e00530045002e006d006400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f00
-6400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038
-00650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300034003200390031003400380025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a00
-73006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a0058005600430049
-0036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d004f0075005800300079007600750025003200460030006b00560053003700580035004b00410052006a0051003300700039005900630067003800710076006b003600370066004600410061004b004e0045005700
-780062004d002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab00030064002c002e00790000005c16687b22}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2007 James Newton-King
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, m
-\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 rge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all\hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN N
-\hich\af4\dbch\af31505\loch\f4
-O EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-\par
-\par }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 RestSharp v.106.12.0.0:
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C
-\hich\af4\dbch\af31505\loch\f4 0%7C0%7C637617947520478947%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=foUoDUPyy8Or0rkNJtlLjI9XfJO7gemOLFnuKIkflHU%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046007700770077002e006100700061006300680065002e006f00720067002500320046006c006900630065006e007300650073002500320046004c004900430045004e00530045002d0032002e00300026
-0064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500
-37003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036
-003100370039003400370035003200300034003700380039003400370025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a005100
-49006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0066006f0055006f0044005500500079
-00790038004f007200300072006b004e004a0074006c004c006a0049003900580066004a004f003700670065006d004f004c0046006e0075004b0049006b0066006c00480055002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab00030e49
-6354000048740000006d3d69002d}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 2021 Alexe Zimarev
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Licensed unde\hich\af4\dbch\af31505\loch\f4 r the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at }{\field{\*\fldinst {
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\lang2057\langfe2052\langnp2057\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00
-30000000795881f43b1d7f48af2c825dc485276300000000a5ab0003126e000000220074000000c712200033}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
- Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, W\hich\af4\dbch\af31505\loch\f4
-ITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\kerning1\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 System.Collections.Immutable
-}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang2057\langfe2052\kerning1\langnp2057\insrsid8078116\charrsid8078116 \hich\af4\dbch\af31505\loch\f4 v.5.0.0}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0
-\b\fs22\cf25\lang2057\langfe2052\kerning1\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 :
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang2057\langfe2052\langnp2057\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2017 .NET Foundation and Contributors
-\par \hich\af4\dbch\af31505\loch\f4 All rights reserved.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without res\hich\af4\dbch\af31505\loch\f4
-triction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The \hich\af4\dbch\af31505\loch\f4 above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF M\hich\af4\dbch\af31505\loch\f4
-ERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN C
-\hich\af4\dbch\af31505\loch\f4 O\hich\af4\dbch\af31505\loch\f4 NNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2052\langnp2057\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid411363 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang1031\langfe2052\kerning2\langnp1031\insrsid411363 \hich\af4\dbch\af31505\loch\f4 FontAwesome5 v.2.1.11:
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1031\langfe2052\langnp1031\insrsid411363 \hich\af4\dbch\af31505\loch\f4 https://www.nuget.org/packages/FontAwesome5/
-\par \hich\af4\dbch\af31505\loch\f4 https://github.com/MartinTopfstedt/FontAwesome5/blob/master/LICENSE
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid411363 \hich\af4\dbch\af31505\loch\f4 MIT License
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2018 MartinTopfstedt
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIE\hich\af4\dbch\af31505\loch\f4
-S OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF O
-\hich\af4\dbch\af31505\loch\f4 R\hich\af4\dbch\af31505\loch\f4 IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Cyotek.Drawing.BitmapFont }{\rtlch\fcs1 \ab\af4\afs22
-\ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid6955063\charrsid6955063 \hich\af4\dbch\af31505\loch\f4 v.2.0.0}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 :
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLI\hich\af4\dbch\af31505\loch\f4
-NK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcyotek%2FCyotek.Drawing.BitmapFont&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C63761794752016
-0\hich\af4\dbch\af31505\loch\f4 343%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=kvdO%2FPPgz3PuASG6zv93DwNJ4gPkL6T6islWBwoI9Xk%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b60030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600630079006f00740065006b00250032004600430079006f00740065006b002e00440072006100770069006e0067002e00420069
-0074006d006100700046006f006e007400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800
-31003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037
-004300300025003700430036003300370036003100370039003400370035003200300031003600300033003400330025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a004100
-77004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061
-003d006b00760064004f002500320046005000500067007a0033005000750041005300470036007a00760039003300440077004e004a003400670050006b004c00360054003600690073006c005700420077006f004900390058006b002500330044002600720065007300650072007600650064003d0030000000795881f4
-3b1d7f48af2c825dc485276300000000a5ab00030053002000000000000000c41f6d0000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://github.com/cyotek/Cyotek.Drawing.BitmapFont}}}\sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection\hich\af4\dbch\af31505\loch\f4
-.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcyotek%2FCyotek.Drawing.BitmapFont%2Fblob%2Fmaster%2FLICENSE.txt&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520170297%7CU
-\hich\af4\dbch\af31505\loch\f4 n\hich\af4\dbch\af31505\loch\f4 known%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=WjEf%2FyE1koklbovxfFzHrScckILOiAOQlGkhPLaZ%2FL8%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90ba0030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600630079006f00740065006b00250032004600430079006f00740065006b002e00440072006100770069006e0067002e00420069
-0074006d006100700046006f006e00740025003200460062006c006f0062002500320046006d00610073007400650072002500320046004c004900430045004e00530045002e00740078007400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e00
-6e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065
-003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300031003700300032003900370025003700430055006e006b006e006f0077006e00
-2500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061
-005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0057006a00450066002500320046007900450031006b006f006b006c0062006f0076007800660046007a00480072005300630063006b0049004c004f0069004100
-4f0051006c0047006b00680050004c0061005a002500320046004c0038002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab000300730000000000000000006900000001}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://github.com/cyotek/Cyotek.Drawing.BitmapFont/blob/master/LICENSE.tx\hich\af4\dbch\af31505\loch\f4 t}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 2012-2021 Cyotek Ltd.
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, m
-\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 rge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all\hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN N
-\hich\af4\dbch\af31505\loch\f4
-O EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid6759865 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid6759865\charrsid6759865 \hich\af4\dbch\af31505\loch\f4 Helix Toolkit v.2.24.0:
-\par \hich\af4\dbch\af31505\loch\f4 HelixToolkit.Core.Wpf v.2.24.0:
-\par \hich\af4\dbch\af31505\loch\f4 HelixToolkit.SharpDX.Core v.2.24.0:
-\par \hich\af4\dbch\af31505\loch\f4 HelixT\hich\af4\dbch\af31505\loch\f4 oolkit.SharpDX.Core.Wpf v.2.24.0:}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid6759865
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fhelix-toolkit%2Fhelix-toolkit&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d
-\hich\af4\dbch\af31505\loch\f4 %7C0%7C0%7C637617947520210113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=dfWqblB8VdDL63AyawNfgrFG2TD08PCrheqsu%2B7K0Us%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b56030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600680065006c00690078002d0074006f006f006c006b0069007400250032004600680065006c00690078002d0074006f006f006c
-006b0069007400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900340034006200
-38003500350065003700380030003800640039003400360032003500310066006600360025003700430036003700620066006600370039006500370066003900310034003400330033006100380065003500630039003200350032006400320064006400630031006400250037004300300025003700430030002500370043
-0036003300370036003100370039003400370035003200300032003100300031003100330025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d00440041006900
-4c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0064006600570071
-0062006c00420038005600640044004c003600330041007900610077004e0066006700720046004700320054004400300038005000430072006800650071007300750025003200420037004b003000550073002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485
-276300000000a5ab0003000000330000f22e000064640050000b}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://github.com/helix-toolkit/helix-toolkit}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safe\hich\af4\dbch\af31505\loch\f4
-links.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fhelix-toolkit%2Fhelix-toolkit%2Fblob%2Fdevelop%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C63761794752021
-0\hich\af4\dbch\af31505\loch\f4 113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=qUPlp6EXAxHOk9eACY7DopacUlVCn355KLenUznV%2Ft0%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8c030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600680065006c00690078002d0074006f006f006c006b0069007400250032004600680065006c00690078002d0074006f006f006c
-006b006900740025003200460062006c006f00620025003200460064006500760065006c006f0070002500320046004c004900430045004e0053004500260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e006500720025003400300061007500
-74006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500350065003700380030003800640039003400360032003500310066006600360025003700430036003700620066006600370039006500370066003900310034003400330033
-0061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300032003100300031003100330025003700430055006e006b006e006f0077006e0025003700430054005700460070006200
-47005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056
-004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d007100550050006c0070003600450058004100780048004f006b0039006500410043005900370044006f0070006100630055006c00560043006e003300350035004b004c0065006e0055007a006e005600
-250032004600740030002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003005365d40000000000000050006100a8}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\hich\af4\dbch\af31505\loch\f4 https://github.com/helix-toolkit/helix-toolkit/blob/develop/LICENSE}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The MIT\hich\af4\dbch\af31505\loch\f4 License (MIT)
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2019 Helix Toolkit contributors
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, in
-\hich\af4\dbch\af31505\loch\f4
-cluding without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyri\hich\af4\dbch\af31505\loch\f4 ght notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILI\hich\af4\dbch\af31505\loch\f4
-TY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WI
-\hich\af4\dbch\af31505\loch\f4 T\hich\af4\dbch\af31505\loch\f4 H THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid8279958 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid8279958\charrsid8279958 \hich\af4\dbch\af31505\loch\f4 SharpDX v.4.2.0:
-\par \hich\af4\dbch\af31505\loch\f4 SharpDX.D3DCompiler v.4.2.0:
-\par \hich\af4\dbch\af31505\loch\f4 SharpDX.Direct2D1 v.4.2.0:
-\par \hich\af4\dbch\af31505\loch\f4 SharpDX.Direct3D11 v.4.2.0:
-\par \hich\af4\dbch\af31505\loch\f4 SharpDX.Direct3D9 v.4.2.0:
-\par \hich\af4\dbch\af31505\loch\f4 SharpDX.DXGI v.4.2.0:
-\par \hich\af4\dbch\af31505\loch\f4 SharpDX.Mathematics v.4.2.0}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 :
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsharpdx%2FSharpDX%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%\hich\af4\dbch\af31505\loch\f4
-7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520488895%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=VOYhb2IAZGG0jx%2FwQxJ2Q9HXN2t6XKVVP6AiBEdD%2F3E%3D&r
-\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 served=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b76030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046007300680061007200700064007800250032004600530068006100720070004400580025003200460062006c006f006200250032
-0046006d00610073007400650072002500320046004c004900430045004e0053004500260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300
-64006100650063006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064
-006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300034003800380038003900350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a00
-6f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031
-003000300030002600730064006100740061003d0056004f005900680062003200490041005a004700470030006a0078002500320046007700510078004a00320051003900480058004e0032007400360058004b00560056005000360041006900420045006400440025003200460033004500250033004400260072006500
-7300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003002d00000000240000ff003200760000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-https://github.com/sharpdx/SharpDX/blob/master/LICENSE}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2010-2014 SharpDX - Alexandre Mutel
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Softw\hich\af4\dbch\af31505\loch\f4
-are"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
-\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES \hich\af4\dbch\af31505\loch\f4
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-\hich\af4\dbch\af31505\loch\f4 I\hich\af4\dbch\af31505\loch\f4 N CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid14628192 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid14628192\charrsid14628192 \hich\af4\dbch\af31505\loch\f4
-ICSharpCode.AvalonEdit v.6.3.0.90:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid14628192 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid14628192\charrsid14628192 \hich\af4\dbch\af31505\loch\f4 http://www.avalonedit.net/
-\par \hich\af4\dbch\af31505\loch\f4 https://licenses.nuget.org/MIT
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid14628192\charrsid14628192
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid14628192\charrsid14628192 \hich\af4\dbch\af31505\loch\f4 MIT License
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, m
-\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 rge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice (including the next para\hich\af4\dbch\af31505\loch\f4 graph) shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PU\hich\af4\dbch\af31505\loch\f4
-RPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR O
-\hich\af4\dbch\af31505\loch\f4 T\hich\af4\dbch\af31505\loch\f4 HER DEALINGS IN THE SOFTWARE}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238\charrsid14628192
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid14628192
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Google OpenSans:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 OpenSans font from Google
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.google.com%2Ffonts%2Fspecimen%2FOpen%2BSans&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b\hich\af4\dbch\af31505\loch\f4
-855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520439110%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=uwmtTlbBUjq%2B1z%2FvJsb9jSJ7i6M8hIMll1qnznB0mDw%3D&reserved=0" }{
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b62030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046007700770077002e0067006f006f0067006c0065002e0063006f006d0025003200460066006f006e0074007300250032004600730070006500630069006d0065006e002500320046004f00700065006e
-00250032004200530061006e007300260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100
-39003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035003200640032006400640063003100640025003700430030002500370043
-00300025003700430036003300370036003100370039003400370035003200300034003300390031003100300025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a0041007700
-4d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d
-00750077006d00740054006c006200420055006a00710025003200420031007a0025003200460076004a007300620039006a0053004a003700690036004d003800680049004d006c006c00310071006e007a006e00420030006d00440077002500330044002600720065007300650072007600650064003d00300000007958
-81f43b1d7f48af2c825dc485276300000000a5ab000300730061006e002b6500007300010076}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://www.google.c\hich\af4\dbch\af31505\loch\f4
-om/fonts/specimen/Open+Sans}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0.html&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c925
-\hich\af4\dbch\af31505\loch\f4 2d2ddc1d%7C0%7C0%7C637617947520449066%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=u4S07VDF20%2BhKswWuPxfNxdMvEV6u6kUxVXid57TMkQ%3D&reserved=0" }{\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b58030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046007700770077002e006100700061006300680065002e006f00720067002500320046006c006900630065006e007300650073002500320046004c004900430045004e00530045002d0032002e0030002e
-00680074006d006c00260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400
-62003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035003200640032006400640063003100640025003700430030002500370043003000250037
-00430036003300370036003100370039003400370035003200300034003400390030003600360025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d0044004100
-69004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d007500340053
-00300037005600440046003200300025003200420068004b0073007700570075005000780066004e00780064004d007600450056003600750036006b005500780056005800690064003500370054004d006b0051002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825d
-c485276300000000a5ab000300468069007f006c00000000004d007d}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0.html}}}\sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 [yyyy] \hich\af4\dbch\af31505\loch\f4 Steve Matteson
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00
-30000000795881f43b1d7f48af2c825dc485276300000000a5ab000300740069007f01c10000003a00000065}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f0\fs22\ul\cf26\insrsid9658238 \hich\af0\dbch\af31505\loch\f0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language govern
-\hich\af4\dbch\af31505\loch\f4 i\hich\af4\dbch\af31505\loch\f4 ng permissions and limitations under the License.}{\rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f0\fs22\ul\cf26\insrsid9658238
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 DocumentFormat.OpenXml v.2.12.3:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) Microsoft Corporation
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, m
-\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 rge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all\hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN N
-\hich\af4\dbch\af31505\loch\f4
-O EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 IronPython.StdLib v.2.7.9:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 2018 Slide & Slozier
-\par
-\par \hich\af4\dbch\af31505\loch\f4 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 2.7.18 software in source or bina
-\hich\af4\dbch\af31505\loch\f4 ry form and its associated documentation.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare d
-\hich\af4\dbch\af31505\loch\f4 \hich\f4 erivative works, distribute, and otherwise use Python 2.7.18 alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright \'a9\loch\f4
- 2001-2020 Python Software Foundation; All Rights Reserved" a\hich\af4\dbch\af31505\loch\f4 r\hich\af4\dbch\af31505\loch\f4 e retained in Python 2.7.18 alone or in any derivative version prepared by Licensee.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 3. In the event Licensee prepares a derivative work that is based on or incorporates Python 2.7.18 or any part thereof, and wants to make the derivative work available to\hich\af4\dbch\af31505\loch\f4
- others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 2.7.18.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 4. PSF is making Python 2.7.18 available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES,\hich\af4\dbch\af31505\loch\f4
- EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.7.18 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
-
-\par
-\par \hich\af4\dbch\af31505\loch\f4 5. P\hich\af4\dbch\af31505\loch\f4
-SF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 2.7.18 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.7.18, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF TH
-\hich\af4\dbch\af31505\loch\f4 E\hich\af4\dbch\af31505\loch\f4 POSSIBILITY THEREOF.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture betw\hich\af4\dbch\af31505\loch\f4
-een PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 8. By copying, installing or otherwise using Pytho\hich\af4\dbch\af31505\loch\f4 n 2.7.18, Licensee agrees to be bound by the terms and conditions of this License Agreement.
-\par
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 IronPython v.2.7.9
-\par \hich\af4\dbch\af31505\loch\f4 DynamicLanguageRuntime v.1.2.2
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Iron Python, Dynamic Language Runtime
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fironpython.net%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520230026%7CUnknown%7CTWFpbGZ
-\hich\af4\dbch\af31505\loch\f4 s\hich\af4\dbch\af31505\loch\f4 b3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=imRCR5wnzORiO%2BHcoAs4qY%2FUsg2F3%2BvpQsquG4pLPbc%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b2a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d006800740074007000250033004100250032004600250032004600690072006f006e0070007900740068006f006e002e006e0065007400250032004600260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043
-006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500350065003700380030003800640039003400360032003500310066006600360025003700430036003700620066006600
-3700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300032003300300030003200360025003700430055006e006b006e006f
-0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b00
-3100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0069006d00520043005200350077006e007a004f00520069004f00250032004200480063006f00410073003400710059002500320046005500730067
-003200460033002500320042007600700051007300710075004700340070004c005000620063002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab00030d50000095e417f40200277200b80000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://ironpython.net/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopensource.org%2Flicenses%2Fapache2.0.php&dat
-\hich\af4\dbch\af31505\loch\f4
-a=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520339551%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=GqzN3ywkegHn
-\hich\af4\dbch\af31505\loch\f4 8\hich\af4\dbch\af31505\loch\f4 Xwxmkje5HuJNO7iecwBGZU3LOoNIus%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4e030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046006f00700065006e0073006f0075007200630065002e006f00720067002500320046006c006900630065006e0073006500730025003200460061007000610063006800650032002e0030002e00700068
-007000260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500
-35006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035003200640032006400640063003100640025003700430030002500370043003000250037004300360033
-00370036003100370039003400370035003200300033003300390035003500310025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c004300
-4a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d00470071007a004e00330079
-0077006b006500670048006e0038005800770078006d006b006a0065003500480075004a004e004f0037006900650063007700420047005a00550033004c004f006f004e004900750073002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab
-000300380074000000b0003c004d00631400}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://opensource.org/licenses/apache2.0.php}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 2018 Iron Python Community
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a\hich\af4\dbch\af31505\loch\f4 copy of the License at }{\field{\*\fldinst {
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00
-30000000795881f43b1d7f48af2c825dc485276300000000a5ab000344010069007100610064006100300000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Unless requ\hich\af4\dbch\af31505\loch\f4
-ired by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permiss
-\hich\af4\dbch\af31505\loch\f4 i\hich\af4\dbch\af31505\loch\f4 ons and limitations under the License.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Python.Runtime.NETStandard v.3.7.0:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2006-2021 the contributors of the Python.NET project
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated doc\hich\af4\dbch\af31505\loch\f4
-umentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Sof
-\hich\af4\dbch\af31505\loch\f4 t\hich\af4\dbch\af31505\loch\f4 ware is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND\hich\af4\dbch\af31505\loch\f4
-, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN A
-\hich\af4\dbch\af31505\loch\f4 N\hich\af4\dbch\af31505\loch\f4 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Python.Included v.3.7.3.4
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 PSF LICENSE AGREEMENT FOR PYTHON 3.10.4
-\par
-\par \hich\af4\dbch\af31505\loch\f4 1. This LICENSE AGREEMENT is between the Pytho\hich\af4\dbch\af31505\loch\f4
-n Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 3.7.3.4 software in source or binary form and its associated documentation.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 2. Subject to the terms and conditions of this License Agreemen\hich\af4\dbch\af31505\loch\f4
-t, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 3.7.3.4 alone or in any derivative version, provide
-\hich\af4\dbch\af31505\loch\f4 d\hich\af4\dbch\af31505\loch\f4 \hich\f4 , however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright \'a9\loch\f4
- 2001-2022 Python Software Foundation; All Rights Reserved" are retained in Python 3.7.3.4 alone or in any derivative version prepared by Licensee.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 3. In the event Li\hich\af4\dbch\af31505\loch\f4
-censee prepares a derivative work that is based on or incorporates Python 3.7.3.4 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of
-\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 the changes made to Python 3.7.3.4.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 4. PSF is making Python 3.7.3.4 available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid15220234
-\hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 EXAMPLE, BUT NOT LIM\hich\af4\dbch\af31505\loch\f4
-ITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 3.7.3.4 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 3.7.3.4 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 3.7.3.4, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED
-\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 OF THE POSSIBILITY THEREOF.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint ventur\hich\af4\dbch\af31505\loch\f4
-e between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 8. By copying, installing or otherwise using \hich\af4\dbch\af31505\loch\f4 Python 3.7.3.4, Licensee agrees to be bound by the terms and conditions of this License Agreement.
-\par
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 IPython (autoreload.py) v.7.24.1:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fipython%2Fipython%2Fblob%2Fmaste\hich\af4\dbch\af31505\loch\f4
-r%2FIPython%2Fextensions%2Fautoreload.py&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520359465%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1h
-\hich\af4\dbch\af31505\loch\f4 a\hich\af4\dbch\af31505\loch\f4 WwiLCJXVCI6Mn0%3D%7C1000&sdata=7AtWEHhH3h2E0eDlvyhqM0OyREJugNDsYai4S5egwXc%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90ba8030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600690070007900740068006f006e00250032004600690070007900740068006f006e0025003200460062006c006f006200250032
-0046006d0061007300740065007200250032004600490050007900740068006f006e0025003200460065007800740065006e00730069006f006e0073002500320046006100750074006f00720065006c006f00610064002e0070007900260064006100740061003d0030003400250037004300300031002500370043004a00
-61006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043
-00360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300033003500390034003600350025003700
-430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a00420054
-0069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d003700410074005700450048006800480033006800320045003000650044006c0076007900680071004d0030004f007900
-520045004a00750067004e0044007300590061006900340053003500650067007700580063002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab00035444650000200000009a0044005b0001}}}{\fldrslt {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://github.com/ipython/ipython/blob/master/IPython/extensions/autoreload.py}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection.outlook.com/?ur\hich\af4\dbch\af31505\loch\f4
-l=https%3A%2F%2Fgithub.com%2Fipython%2Fipython%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520359465%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAw
-\hich\af4\dbch\af31505\loch\f4 M\hich\af4\dbch\af31505\loch\f4 DAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Pilk0qSjYqpb4gwsh9CFaG42mk5wngBXOSykgiBj1EQ%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394
-{\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600690070007900740068006f006e00250032004600690070007900740068006f006e0025003200460062006c006f006200250032
-0046006d00610073007400650072002500320046004c004900430045004e0053004500260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300
-64006100650063006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064
-006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300033003500390034003600350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a00
-6f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031
-003000300030002600730064006100740061003d00500069006c006b003000710053006a0059007100700062003400670077007300680039004300460061004700340032006d006b00350077006e006700420058004f00530079006b006700690042006a003100450051002500330044002600720065007300650072007600
-650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003124300380022006300000052006c00ba}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-https://github.com/ipython/ipython/blob/master/LICENSE}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 BSD 3-Clause License
-\par \hich\af4\dbch\af31505\loch\f4 - Copyright (c) 2008-Present, IPython Development Team
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\lang3082\langfe2052\langnp3082\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 - Copyr\hich\af4\dbch\af31505\loch\f4 ight (c) 2001-2007, Fernando Perez
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 - Copyright (c) 2001, Janko Hauser
-\par \hich\af4\dbch\af31505\loch\f4 - Copyright (c) 2001, Nathaniel Gray
-\par \hich\af4\dbch\af31505\loch\f4 All rights reserved.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Redistribution and use in source and binary forms, with \hich\af4\dbch\af31505\loch\f4 or without modification, are permitted provided that the following conditions are met:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-\par \hich\af4\dbch\af31505\loch\f4 * Redistributions in binary form must rep\hich\af4\dbch\af31505\loch\f4
-roduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-\par \hich\af4\dbch\af31505\loch\f4 * Neither the name of the copyright holder nor the names of its contributors may be used to \hich\af4\dbch\af31505\loch\f4 endorse or promote products derived from this software without specific prior written permission.
-
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\hich\af4\dbch\af31505\loch\f4
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIM
-\hich\af4\dbch\af31505\loch\f4 I\hich\af4\dbch\af31505\loch\f4
-TED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
-\hich\af4\dbch\af31505\loch\f4 W\hich\af4\dbch\af31505\loch\f4 AY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Nunit }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0
-\b\fs22\cf25\kerning1\insrsid12339523\charrsid12339523 \hich\af4\dbch\af31505\loch\f4 v.3.13.3}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.nunit.org%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520429148%7CUnknown%7CTWFpbGZs
-\hich\af4\dbch\af31505\loch\f4 b\hich\af4\dbch\af31505\loch\f4 3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=BUfNk%2Flw%2BcIf69w2%2FUf0Rq%2FiDdxtlm4UOrklWu1jBco%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b2c030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046007700770077002e006e0075006e00690074002e006f0072006700250032004600260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f
-006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700
-390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300034003200390031003400380025003700430055006e006b006e006f0077
-006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100
-680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d004200550066004e006b002500320046006c0077002500320042006300490066003600390077003200250032004600550066003000520071002500320046
-00690044006400780074006c006d00340055004f0072006b006c005700750031006a00420063006f002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab00030000004e0020002c009a017200740000}}}{\fldrslt {\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://www.nunit.org/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 2002-2013 Charlie Poole\line \hich\f4 Copyright \'a9\loch\f4 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov
-\line Copyright\hich\af4\dbch\af31505\loch\f4 \hich\f4 \'a9\loch\f4 2000-2002 Philip A. Craig
-\par
-\par \hich\af4\dbch\af31505\loch\f4 This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
-\par \hich\af4\dbch\af31505\loch\f4 Permission is granted to anyone to use this softwar\hich\af4\dbch\af31505\loch\f4 e for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
-
-\par
-\par \hich\af4\dbch\af31505\loch\f4 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If\hich\af4\dbch\af31505\loch\f4 \hich\f4
- you use this software in a product, an acknowledgment (see the following) in the product documentation is required. Portions Copyright \'a9\loch\f4 2002-2009 Charlie Poole or Copyright\~\hich\f4 \'a9\loch\f4
- 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or Copyright\~\hich\f4 \'a9\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 2000-2002 Philip A. Craig\~
-\par \hich\af4\dbch\af31505\loch\f4 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.\~
-\par \hich\af4\dbch\af31505\loch\f4 3. This notice may not be removed or altered from any source distribution.
-\par }\pard \ltrpar\ql \li720\ri0\widctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238
-\par }\pard\plain \ltrpar\s4\ql \li0\ri0\widctlpar\wrapdefault\faauto\outlinelevel3\rin0\lin0\itap0 \rtlch\fcs1 \af4\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 License Note
-\par }\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af4\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 This license is b\hich\af4\dbch\af31505\loch\f4 ased on\~}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "http://www.opensource.org/licenses/zlib-license.html" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8200000068007400740070003a002f002f007700770077002e006f00700065006e0073006f0075007200630065002e006f00720067002f006c006900630065006e007300650073002f007a006c00690062002d006c00
-6900630065006e00730065002e00680074006d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab0003006400769871016e00f8007200800032}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf2\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-the open source zlib/libpng license}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238
-\hich\af4\dbch\af31505\loch\f4 HYPERLINK https://opensource.org/licenses/zlib-license.html }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7c000000680074007400700073003a002f002f006f00700065006e0073006f0075007200630065002e006f00720067002f006c006900630065006e007300650073002f007a006c00690062002d006c00690063006500
-6e00730065002e00680074006d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab0003ea6c00450000002c0000006d00000000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-https://opensource.org/licenses/zlib-license.html}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 ). The idea was \hich\af4\dbch\af31505\loch\f4
-to keep the license as simple as possible to encourage use of NUnit in free and commercial applications and libraries, but to keep the source code together and to give credit to the NUnit contributors for their efforts. While this license allows shipping
-\hich\af4\dbch\af31505\loch\f4 N\hich\af4\dbch\af31505\loch\f4 Unit in source and binary form, if shipping a NUnit variant is the sole purpose of your product, please\~}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238
-\hich\af4\dbch\af31505\loch\f4 HYPERLINK "mailto:cpoole@pooleconsulting.com" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5c0000006d00610069006c0074006f003a00630070006f006f006c006500400070006f006f006c00650063006f006e00730075006c00740069006e0067002e0063006f006d000000795881f43b1d7f48af2c825dc485
-276300000000a5ab0003126300650000006c0000006e1259006a}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf2\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 let us know}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "mailto:cpoole@pooleconsulting.com" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5c0000006d00610069006c0074006f003a00630070006f006f006c006500400070006f006f006c00650063006f006e00730075006c00740069006e0067002e0063006f006d000000795881f43b1d7f48af2c825dc485
-276300000000a5ab0003006e00040000006e00007068005900fc}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf2\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 cpoole@pooleconsulting.com}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 ).
-\par
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang3082\langfe2052\kerning1\langnp3082\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Moq v.4.18.4:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.saf
-\hich\af4\dbch\af31505\loch\f4
-elinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmoq%2Fmoq4%2Fblob%2Fmaster%2FLicense.txt&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520409253%7CUnknown%
-\hich\af4\dbch\af31505\loch\f4 7\hich\af4\dbch\af31505\loch\f4 CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=H%2FwNgy%2FpMYIgd%2FFlP1IU1dbvTUCauizIJKCAU6ISQZI%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b74030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046006d006f0071002500320046006d006f007100340025003200460062006c006f0062002500320046006d00610073007400650072
-002500320046004c006900630065006e00730065002e00740078007400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500
-63006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064
-002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300034003000390032003500330025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d00
-4300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030
-002600730064006100740061003d00480025003200460077004e006700790025003200460070004d00590049006700640025003200460046006c00500031004900550031006400620076005400550043006100750069007a0049004a004b0043004100550036004900530051005a0049002500330044002600720065007300
-650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab000300540000009700008b73485012000000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-https://github.com/moq/moq4/blob/master/License.txt/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 BSD 3-Clause License
-\par \hich\af4\dbch\af31505\loch\f4 Copyright \hich\af4\dbch\af31505\loch\f4 (c) 2007, Clarius Consulting, Manas Technology Solutions, InSTEDD, and Contributors. All rights reserved.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Redistribution and use in source and binary forms, with or without
-\par \hich\af4\dbch\af31505\loch\f4 modification, are permitted provided that the following conditions are met:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 * Red\hich\af4\dbch\af31505\loch\f4 istributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-\par \hich\af4\dbch\af31505\loch\f4 * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in th\hich\af4\dbch\af31505\loch\f4
-e documentation and/or other materials provided with the distribution.
-\par \hich\af4\dbch\af31505\loch\f4 * Neither the names of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permi\hich\af4\dbch\af31505\loch\f4 ssion.
-
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO E
-\hich\af4\dbch\af31505\loch\f4
-VENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSI
-\hich\af4\dbch\af31505\loch\f4 N\hich\af4\dbch\af31505\loch\f4
-ESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang3082\langfe2052\kerning1\langnp3082\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Libiconv v.1.14.0.1:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Flibiconv%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%
-\hich\af4\dbch\af31505\loch\f4 7C637617947520369420%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fyvQ8axd0727ARcscr232iqeW1sGK6FTq%2FP7s1ZtC6s%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046007700770077002e0067006e0075002e006f007200670025003200460073006f006600740077006100720065002500320046006c0069006200690063006f006e0076002500320046002600640061
-00740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900340034006200380035003500650037003800
-30003800640039003400360032003500310066006600360025003700430036003700620066006600370039006500370066003900310034003400330033006100380065003500630039003200350032006400320064006400630031006400250037004300300025003700430030002500370043003600330037003600310037
-0039003400370035003200300033003600390034003200300025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a00
-6f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0066007900760051003800610078006400300037
-003200370041005200630073006300720032003300320069007100650057003100730047004b00360046005400710025003200460050003700730031005a0074004300360073002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003cd73
-470000711700000059610000005c}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://www.gnu.org/software/libiconv/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection.outlook\hich\af4\dbch\af31505\loch\f4
-.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Fgettext%2Fmanual%2Fhtml_node%2FGNU-LGPL.html%23GNU-LGPL&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520369420%7CUnknow
-\hich\af4\dbch\af31505\loch\f4 n\hich\af4\dbch\af31505\loch\f4 %7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=NZT9tNyZbyPw1WOLz%2BE6ShwxQDWHBJ9uLSyHhKPHWHk%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90ba2030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046007700770077002e0067006e0075002e006f007200670025003200460073006f0066007400770061007200650025003200460067006500740074006500780074002500320046006d0061006e0075
-0061006c00250032004600680074006d006c005f006e006f006400650025003200460047004e0055002d004c00470050004c002e00680074006d006c0025003200330047004e0055002d004c00470050004c00260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e00
-43006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066
-003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300033003600390034003200300025003700430055006e006b006e00
-6f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b
-003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d004e005a005400390074004e0079005a006200790050007700310057004f004c007a00250032004200450036005300680077007800510044005700
-480042004a00390075004c0053007900480068004b0050004800570048006b002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab00031265000000fa00000000006fff000001}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://www.gnu.org/software/gettext/manual/html_node/GNU-LGPL.html#GNU-LGPL}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \loch\af4\dbch\af31505\hich\f4 \'a9\hich\af4\dbch\af31505\loch\f4 1998, 2013 Free Software Foundation, Inc.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 This Autodesk software contains libiconv v. 1.14.0.1. libiconv is licensed under the GNU Lesser General Public License v.2.1, which can be found at }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.tx\hich\af4\dbch\af31505\loch\f4 t }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8200000068007400740070003a002f002f007700770077002e0067006e0075002e006f00720067002f006c006900630065006e007300650073002f006f006c0064006c006900630065006e007300650073002f006c00
-670070006c002d0032002e0031002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003005c00000000003300615c6500c84300}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-. A text copy of this license is included on the media or with the d\hich\af4\dbch\af31505\loch\f4 ownload of this Autodesk software. You may obtain a copy of the source code for libiconv from }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "http://www.autodesk.com/lgplsource" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5e00000068007400740070003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825d
-c485276300000000a5ab000300492f0000020035006e0074006000fc}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 or by sending a written request to:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Autodesk, Inc.
-\par \hich\af4\dbch\af31505\loch\f4 Attention: General Counsel
-\par \hich\af4\dbch\af31505\loch\f4 Legal Department
-\par \hich\af4\dbch\af31505\loch\f4 111 McInnis Parkway
-\par \hich\af4\dbch\af31505\loch\f4 San Rafael, CA 94903
-\par \hich\af4\dbch\af31505\loch\f4 Your written request must:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Contain a self-addressed CD/DVD mailer (or envelope suffic\hich\af4\dbch\af31505\loch\f4
-iently large to hold a DVD) with postage sufficient to cover the amount of the current U.S. Post Office First Class postage rate for CD/DVD mailers (or the envelope you have chosen) weighing 5 ounces from San Rafael, California USA to your indicated a
-\hich\af4\dbch\af31505\loch\f4 d\hich\af4\dbch\af31505\loch\f4 dress; and Identify:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 This Autodesk software name and release number; That you are requesting the source code for libiconvv .1.14.0.1; and The above URL (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\hich\af4\dbch\af31505\loch\f4 HYPERLINK "http://www.autodesk.com/lgplsource" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5e00000068007400740070003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825d
-c485276300000000a5ab00030069000000f00036ff63003a00000000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 ) so that Autodesk may properly respond to your request. The offer to receive this libiconv source code via the above URL (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "http://www.autodesk.com/lgplsour\hich\af4\dbch\af31505\loch\f4 ce" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5e00000068007400740070003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825d
-c485276300000000a5ab0003006f0000000000640065000015460000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 ) or by written request to Autodesk is valid for a period of three (3) years from the date you purchased you\hich\af4\dbch\af31505\loch\f4
-r license to this Autodesk software. You may modify, debug and relink libiconv to this Autodesk software as provided under the terms of the GNU Lesser General Public License v.2.1.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 GNU gettext (libintl) v.0.19.8.3:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.prot
-\hich\af4\dbch\af31505\loch\f4
-ection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Fgettext%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520200164%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjA
-\hich\af4\dbch\af31505\loch\f4 w\hich\af4\dbch\af31505\loch\f4 MDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Nf21XpKiL0wk%2Fv5o95n6NHU9yBTsVWmKLfq1AJGQ1bM%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394
-{\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b48030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046007700770077002e0067006e0075002e006f007200670025003200460073006f00660074007700610072006500250032004600670065007400740065007800740025003200460026006400610074
-0061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000
-38006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039
-003400370035003200300032003000300031003600340025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f00
-6900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d004e00660032003100580070004b0069004c00300077
-006b00250032004600760035006f00390035006e0036004e004800550039007900420054007300560057006d004b004c0066007100310041004a0047005100310062004d002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab000301330b90
-00d02c582c4e00424c310050}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://www.gnu.org/software/gettext/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Fgettext%2Fman
-\hich\af4\dbch\af31505\loch\f4
-ual%2Fhtml_node%2FGNU-LGPL.html%23GNU-LGPL&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520210113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik
-\hich\af4\dbch\af31505\loch\f4 1\hich\af4\dbch\af31505\loch\f4 haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fm4crd4P%2By6SL%2F0glLKwxCwV9NjLZs7f2LAoNHfi2QE%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90ba6030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046007700770077002e0067006e0075002e006f007200670025003200460073006f0066007400770061007200650025003200460067006500740074006500780074002500320046006d0061006e0075
-0061006c00250032004600680074006d006c005f006e006f006400650025003200460047004e0055002d004c00470050004c002e00680074006d006c0025003200330047004e0055002d004c00470050004c00260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e00
-43006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066
-003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300032003100300031003100330025003700430055006e006b006e00
-6f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b
-003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0066006d003400630072006400340050002500320042007900360053004c00250032004600300067006c004c004b00770078004300770056003900
-4e006a004c005a0073003700660032004c0041006f004e004800660069003200510045002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab00030242000000fa000000fb0043005c43eb}}}{\fldrslt {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://www.gnu.org/software/gettext/manual/html_node/GNU-LGPL.html#GNU-LGPL}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \loch\af4\dbch\af31505\hich\f4 \'a9\loch\f4 \hich\f4 Copyright \'a9\loch\f4 1991, 1999 Free Software Foundation, Inc.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Th\hich\af4\dbch\af31505\loch\f4 is Autodesk software contains libintl v.0.19.8.3. libintl is licensed under the GNU Lesser General Public License v.2.1 , which can be found at }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8200000068007400740070003a002f002f007700770077002e0067006e0075002e006f00720067002f006c006900630065006e007300650073002f006f006c0064006c006900630065006e007300650073002f006c00
-670070006c002d0032002e0031002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab000300640000000072ff00ff004300000000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 . }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 A \hich\af4\dbch\af31505\loch\f4
-text copy of this license is included on the media or with the download of this Autodesk software. You may obtain a copy of the source code for libintl v.0.19.8.3 from }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\hich\af4\dbch\af31505\loch\f4 HYPERLINK "http://www.autodesk.com/lgplsource" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5e00000068007400740070003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825d
-c485276300000000a5ab0003006d0000002000070000017700200065}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 or by sending a written request to:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Autodesk, Inc.
-\par \hich\af4\dbch\af31505\loch\f4 Attention: General Counsel
-\par \hich\af4\dbch\af31505\loch\f4 Legal Department
-\par \hich\af4\dbch\af31505\loch\f4 111 McInnis Parkway
-\par \hich\af4\dbch\af31505\loch\f4 San Rafael, CA 94903
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Your written request must:
-\par \hich\af4\dbch\af31505\loch\f4 1. Contain a self-addressed CD/DVD mailer (or envelope sufficiently large to hold a DVD) with postage sufficient to cover the amount of the current U.S. Post Office First Class postage rate for CD/DVD mailer
-\hich\af4\dbch\af31505\loch\f4 s (or the envelope you have chosen) weighing 5 ounces from San Rafael, California USA to your indicated address; and
-\par \hich\af4\dbch\af31505\loch\f4 2. Identify:
-\par \hich\af4\dbch\af31505\loch\f4 a. This Autodesk software name and release number;
-\par \hich\af4\dbch\af31505\loch\f4 b. That you are requesting the source code for libintl v.0.19.8.3; and
-\par \hich\af4\dbch\af31505\loch\f4 c.\hich\af4\dbch\af31505\loch\f4 The above URL (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK www.autodesk.com/lgplsource }{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000001000000e0c9ea79f9bace118c8200aa004ba90b500000007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825dc485276300000000a5ab0003006c
-00d4000000ff0000004100490063}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 )
-\par \hich\af4\dbch\af31505\loch\f4 so that Autodesk may properly respond to your request. The offe\hich\af4\dbch\af31505\loch\f4 r to receive this libintl source code via the above URL (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK www.autodesk.com/lgplsource }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000001000000e0c9ea79f9bace118c8200aa004ba90b500000007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825dc485276300000000a5ab00030073
-000000000000000000200065bac0}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 ) or by written request \hich\af4\dbch\af31505\loch\f4 to Autodesk is valid for a period of three (3) years from the date you purchased your license to this Autodesk software.
-\par \hich\af4\dbch\af31505\loch\f4 You may modify, debug and relink libintl to this Autodesk software as provided under the terms of the GNU Lesser General Public Licens\hich\af4\dbch\af31505\loch\f4 e v.2.1.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang3082\langfe2052\kerning1\langnp3082\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Ncalc v.1.3.8.0:}{
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fncalc.codeplex.com%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520409253
-\hich\af4\dbch\af31505\loch\f4 %7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=MXJNaR69ECgPJDJYPSnyLqGx9AGSwz%2FQZR55FnDPv5U%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b2a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046006e00630061006c0063002e0063006f006400650070006c00650078002e0063006f006d00250032004600260064006100740061003d0030003400250037004300300031002500370043004a0061006d
-00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600
-37006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300034003000390032003500330025003700430055
-006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a00420054006900
-4900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d004d0058004a004e00610052003600390045004300670050004a0044004a005900500053006e0079004c00710047007800390041
-004700530077007a0025003200460051005a0052003500350046006e00440050007600350055002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003005c141a000017f4021a0c009f18cf93}}}{\fldrslt {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://ncalc.codeplex.com/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang3082\langfe2052\langnp3082\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \loch\af4\dbch\af31505\hich\f4 \'a9\loch\f4 2011 Sebastien Ros
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of\hich\af4\dbch\af31505\loch\f4
- this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
-\hich\af4\dbch\af31505\loch\f4 t\hich\af4\dbch\af31505\loch\f4 o permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS \hich\af4\dbch\af31505\loch\f4
-IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGE
-\hich\af4\dbch\af31505\loch\f4 S\hich\af4\dbch\af31505\loch\f4 OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 MIConvexHull.NET v.1.0.17.411
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdesignengrlab.github.io%2FMIConvexHull%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C6376179475203
-\hich\af4\dbch\af31505\loch\f4 8\hich\af4\dbch\af31505\loch\f4 9325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=NY1pGp4Rus1IhXoLEAgeQgcF3gsQK5hhpdBY1KGxtSY%3D&reserved=0" }{\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b50030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d0068007400740070007300250033004100250032004600250032004600640065007300690067006e0065006e00670072006c00610062002e006700690074006800750062002e0069006f002500320046004d00490043006f006e00760065007800480075006c006c0025
-0032004600260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800
-35003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036
-003300370036003100370039003400370035003200300033003800390033003200350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c00
-43004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d004e0059003100700047
-007000340052007500730031004900680058006f004c004500410067006500510067006300460033006700730051004b00350068006800700064004200590031004b00470078007400530059002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000
-a5ab0003007314650000003a00000090006c006f}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://miconvexhull.codeplex.com/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F\hich\af4\dbch\af31505\loch\f4
-%2Fmiconvexhull.codeplex.com%2Flicense&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520389325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haW
-\hich\af4\dbch\af31505\loch\f4 w\hich\af4\dbch\af31505\loch\f4 iLCJXVCI6Mn0%3D%7C1000&sdata=hNSoZ7QXpdD4Fhf0DlaIzm2xF9XGsksCYNlWnpXQ%2BiM%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b46030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046006d00690063006f006e00760065007800680075006c006c002e0063006f006400650070006c00650078002e0063006f006d002500320046006c006900630065006e0073006500260064006100740061
-003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500350065003700380030003800
-64003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035003200640032006400640063003100640025003700430030002500370043003000250037004300360033003700360031003700390034
-00370035003200300033003800390033003200350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900
-560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0068004e0053006f005a0037005100580070006400440034
-00460068006600300044006c00610049007a006d0032007800460039005800470073006b007300430059004e006c0057006e0070005800510025003200420069004d002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003007200000003
-00ea0000005200200000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://miconvexhull.codeplex.com/license}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2010 David Sehnal, Matthew Campbell
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, t\hich\af4\dbch\af31505\loch\f4
-o any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or s
-\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 ll copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
-\hich\af4\dbch\af31505\loch\f4 BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 StarMath v.2.0.1}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0
-\b\fs22\cf25\kerning1\insrsid16659309 \hich\af4\dbch\af31505\loch\f4 7}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 :
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.sa\hich\af4\dbch\af31505\loch\f4
-felinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDesignEngrLab%2FStarMath%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520488895
-\hich\af4\dbch\af31505\loch\f4 %\hich\af4\dbch\af31505\loch\f4 7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=QlLJQ5zjjCkV03%2BrjgrcdUTiz9O6pTyzKdtSv5xpHsg%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b80030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600440065007300690067006e0045006e00670072004c006100620025003200460053007400610072004d00610074006800250032
-00460062006c006f0062002500320046006d00610073007400650072002500320046004c004900430045004e0053004500260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b00
-2e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500350065003700380030003800640039003400360032003500310066006600360025003700430036003700620066006600370039006500370066003900310034003400330033006100380065003500630039
-0032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300034003800380038003900350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a007300620033006400
-3800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e0030
-0025003300440025003700430031003000300030002600730064006100740061003d0051006c004c004a00510035007a006a006a0043006b0056003000330025003200420072006a0067007200630064005500540069007a0039004f0036007000540079007a004b0064007400530076003500780070004800730067002500
-330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003005000a68e0000313d00006f00650000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-https://github.com/DesignEngrLab/StarMath/blob/master/LICENSE}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par \hich\af4\dbch\af31505\loch\f4 C\hich\af4\dbch\af31505\loch\f4 opyright (c) 2015 DesignEngrLab
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation th
-\hich\af4\dbch\af31505\loch\f4 e rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permissio\hich\af4\dbch\af31505\loch\f4 n notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR \hich\af4\dbch\af31505\loch\f4
-PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 OTHER DEALINGS IN THE SOFTWARE.
-\par
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 DiffPlex v.1.6.3:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \loch\af4\dbch\af31505\hich\f4 \'a9\loch\f4 2020 mmanela
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www\hich\af4\dbch\af31505\loch\f4 .apache.org/licenses/LICENSE-2.0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394
-{\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00
-30000000795881f43b1d7f48af2c825dc485276300000000a5ab0003006e0a619800f7aa0064004d00751300}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-Unless required by applicable law or agreed to in writi\hich\af4\dbch\af31505\loch\f4
-ng, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.}{
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid262518 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning2\insrsid262518 \hich\af4\dbch\af31505\loch\f4 FontAwesome v.5.15.4:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid262518 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid262518 \hich\af4\dbch\af31505\loch\f4 https://github.com/FortAwesome/Font-Awesome/blob/5.x/LICENSE.txt}{
-\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang1031\langfe2052\kerning2\langnp1031\insrsid262518
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid262518 \hich\af4\dbch\af31505\loch\f4 CC BY 4.0 License}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang1031\langfe2052\kerning2\langnp1031\insrsid262518 \hich\af4\dbch\af31505\loch\f4 (}{
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid262518 \hich\af4\dbch\af31505\loch\f4 https://creativecommons.org/licenses/by/4.0/}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang1031\langfe2052\kerning2\langnp1031\insrsid262518
-\hich\af4\dbch\af31505\loch\f4 )
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid262518 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2022 Fonticons, Inc.}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang1031\langfe2052\kerning2\langnp1031\insrsid262518
-\hich\af4\dbch\af31505\loch\f4 (}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid262518 \hich\af4\dbch\af31505\loch\f4 https://fontawes\hich\af4\dbch\af31505\loch\f4 ome.com}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0
-\b\fs22\cf25\lang1031\langfe2052\kerning2\langnp1031\insrsid262518 \hich\af4\dbch\af31505\loch\f4 )
-\par
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid262518 \hich\af4\dbch\af31505\loch\f4 In the Font Awesome Free download, the CC BY 4.0 license applies to all icons packaged as SVG and JS file types.
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid2959855 \line \line }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 AngleSharp v.0.14.0: Copyright (c) 2013 - 2019 AngleSharp
-
-\par \hich\af4\dbch\af31505\loch\f4 \hich\f4 AngleSharp.CSS v.0.14.2: Copyright \'a9\loch\f4 2013-2020 AngleSharp
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The MIT Licens\hich\af4\dbch\af31505\loch\f4 e (MIT)
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, m
-\hich\af4\dbch\af31505\loch\f4 odify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be includ\hich\af4\dbch\af31505\loch\f4 ed in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEM
-\hich\af4\dbch\af31505\loch\f4
-ENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE S
-\hich\af4\dbch\af31505\loch\f4 O\hich\af4\dbch\af31505\loch\f4 FTWARE.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HTMLSanitizer }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0
-\b\fs22\cf25\kerning1\insrsid4197417\charrsid4197417 \hich\af4\dbch\af31505\loch\f4 v.\hich\af4\dbch\af31505\loch\f4 5.0.372}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 :
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmganss%2FHtmlSanitizer&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2dd\hich\af4\dbch\af31505\loch\f4
-c1d%7C0%7C0%7C637617947520220149%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=t7WD0mko%2B%2FF%2FdpKKLHyM93UCXrX%2BXwo3yUYVGPZQcGs%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b54030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046006d00670061006e0073007300250032004600480074006d006c00530061006e006900740069007a006500720026006400610074
-0061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000
-38006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039
-003400370035003200300032003200300031003400390025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f00
-6900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d00740037005700440030006d006b006f002500320042
-002500320046004600250032004600640070004b004b004c00480079004d003900330055004300580072005800250032004200580077006f0033007900550059005600470050005a0051006300470073002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc4852763
-00000000a5ab0003003b1707467feb610001577200630072}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://github.com/mganss/HtmlSanitizer}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmganss%2FHtmlSanitizer%2Fblob%2Fmaster%2FLICENSE.md&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%
-\hich\af4\dbch\af31505\loch\f4 7\hich\af4\dbch\af31505\loch\f4
-C0%7C0%7C637617947520220149%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=phLGnloT%2FCglabebh%2FsUSc6iiDyt6D3vSMPPKA%2FgOJQ%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046006d00670061006e0073007300250032004600480074006d006c00530061006e006900740069007a006500720025003200460062
-006c006f0062002500320046006d00610073007400650072002500320046004c004900430045004e00530045002e006d006400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f00640065007300
-6b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063
-00390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300032003200300031003400390025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a00730062003300
-64003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e
-00300025003300440025003700430031003000300030002600730064006100740061003d00700068004c0047006e006c006f005400250032004600430067006c00610062006500620068002500320046007300550053006300360069006900440079007400360044003300760053004d00500050004b004100250032004600
-67004f004a0051002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab00030039006552fb2d00ff01805c00b10022}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\hich\af4\dbch\af31505\loch\f4 https://github.com/mganss/HtmlSanitizer/blob/master\hich\af4\dbch\af31505\loch\f4 /LICENSE.md}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2013-2016 Michael Ganss and HtmlSanitizer contributors
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, m
-\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 rge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all\hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN N
-\hich\af4\dbch\af31505\loch\f4
-O EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-\par
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang1031\langfe2052\kerning1\langnp1031\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Markdig v.0.22.0:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1031\langfe2052\langnp1031\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Flunet-io%2Fmarkdig&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617
-\hich\af4\dbch\af31505\loch\f4 947520379375%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=IkaWjqj6UwIqoUB8EQOeZKYMz4qbWg8kbbCcZ0Qa%2Fhg%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang1031\langfe2052\langnp1031\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b40030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046006c0075006e00650074002d0069006f002500320046006d00610072006b00640069006700260064006100740061003d00300034
-00250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500350065003700380030003800640039003400
-36003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035003200640032006400640063003100640025003700430030002500370043003000250037004300360033003700360031003700390034003700350032
-00300033003700390033003700350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c00
-75004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0049006b00610057006a0071006a00360055007700490071006f00550042
-003800450051004f0065005a004b0059004d007a003400710062005700670038006b0062006200430063005a00300051006100250032004600680067002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab000300620052006e727800000046
-00000000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1031\langfe2052\langnp1031\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://github.com/lunet-io/markdig}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\lang1031\langfe2052\langnp1031\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1031\langfe2052\langnp1031\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%\hich\af4\dbch\af31505\loch\f4
-3A%2F%2Fgithub.com%2Flunet-io%2Fmarkdig%2Fblob%2Fmaster%2Flicense.txt&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520379375%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDA
-\hich\af4\dbch\af31505\loch\f4 i\hich\af4\dbch\af31505\loch\f4 LCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=eIL37c9G%2B11uq1htX8ARhSCvefpQIOMXjVAqMh1aceU%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang1031\langfe2052\langnp1031\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7c030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00
-6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046006c0075006e00650074002d0069006f002500320046006d00610072006b0064006900670025003200460062006c006f00620025
-00320046006d00610073007400650072002500320046006c006900630065006e00730065002e00740078007400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e006300
-6f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035
-00320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300033003700390033003700350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a00730062003300640038006500
-79004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e003000250033
-00440025003700430031003000300030002600730064006100740061003d00650049004c0033003700630039004700250032004200310031007500710031006800740058003800410052006800530043007600650066007000510049004f004d0058006a005600410071004d00680031006100630065005500250033004400
-2600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab000300440000003af76e0064006500300000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1031\langfe2052\langnp1031\insrsid9658238
-\hich\af4\dbch\af31505\loch\f4 https://github.com/lunet-io/markdig/blob/master/license.txt}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1031\langfe2052\langnp1031\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2018-2019, Alexandre Mutel
-\par \hich\af4\dbch\af31505\loch\f4 All rights reserved.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Redistri\hich\af4\dbch\af31505\loch\f4 bution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disc\hich\af4\dbch\af31505\loch\f4 laimer.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THIS SOFTWARE IS PROVIDED BY THE COPYRIG\hich\af4\dbch\af31505\loch\f4
-HT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUT
-\hich\af4\dbch\af31505\loch\f4 O\hich\af4\dbch\af31505\loch\f4
-RS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-\hich\af4\dbch\af31505\loch\f4 A\hich\af4\dbch\af31505\loch\f4
-NY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 System.Buffers v.4.5.1
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) .NET Foundation and Contributors
-\par \hich\af4\dbch\af31505\loch\f4 All rights reserved.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obta\hich\af4\dbch\af31505\loch\f4
-ining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
-\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE I\hich\af4\dbch\af31505\loch\f4
-S PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR AN
-\hich\af4\dbch\af31505\loch\f4 Y\hich\af4\dbch\af31505\loch\f4 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 System.Memory v.4.5.4
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) .NET F\hich\af4\dbch\af31505\loch\f4 oundation and Contributors
-\par \hich\af4\dbch\af31505\loch\f4 All rights reserved.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including witho
-\hich\af4\dbch\af31505\loch\f4
-ut limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice an\hich\af4\dbch\af31505\loch\f4 d this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS F\hich\af4\dbch\af31505\loch\f4
-OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWA
-\hich\af4\dbch\af31505\loch\f4 R\hich\af4\dbch\af31505\loch\f4 E OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 System.Numerics.Vectors v.4.5.0
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) .NET Foundation and Contributors
-\par \hich\af4\dbch\af31505\loch\f4 All rights reserved.
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, m
-\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 rge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all\hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN N
-\hich\af4\dbch\af31505\loch\f4
-O EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 System.Text.Encoding.CodePages v.4.5.0
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) .NET Foundation and Contributors
-\par \hich\af4\dbch\af31505\loch\f4 All right\hich\af4\dbch\af31505\loch\f4 s reserved.
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, cop
-\hich\af4\dbch\af31505\loch\f4 y, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES \hich\af4\dbch\af31505\loch\f4
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-\hich\af4\dbch\af31505\loch\f4 I\hich\af4\dbch\af31505\loch\f4 N CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Rapidjson v.1.1.0:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4
- 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining\hich\af4\dbch\af31505\loch\f4
- a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Soft
-\hich\af4\dbch\af31505\loch\f4 w\hich\af4\dbch\af31505\loch\f4
-are, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROV\hich\af4\dbch\af31505\loch\f4
-IDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAI
-\hich\af4\dbch\af31505\loch\f4 M\hich\af4\dbch\af31505\loch\f4 , DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Mono.Cecil v.0.11.4:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2008 - 2015 Jb Evain
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c)\hich\af4\dbch\af31505\loch\f4 2008 - 2011 Novell, Inc.
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the righ
-\hich\af4\dbch\af31505\loch\f4 ts to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission noti\hich\af4\dbch\af31505\loch\f4 ce shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-\par \hich\af4\dbch\af31505\loch\f4 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOS\hich\af4\dbch\af31505\loch\f4
-E AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 DEALINGS IN THE SOFTWARE.
-\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid868937 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid868937\charrsid868937 \hich\af4\dbch\af31505\loch\f4 LaunchDarkly.Clientsdk v.2.0.1
-\par \hich\af4\dbch\af31505\loch\f4 LaunchDarkly.CommonSdk v.5.5.0
-\par \hich\af4\dbch\af31505\loch\f4 LaunchDarkly.EventSource v.4.1.3
-\par \hich\af4\dbch\af31505\loch\f4 LaunchDarkly.InternalSdk v.2.3.2
-\par \hich\af4\dbch\af31505\loch\f4 LaunchDarkly.JsonStream v.1.0.3
-\par \hich\af4\dbch\af31505\loch\f4 LaunchDarkly.Logging v.1.0.1}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid868937 \line }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid868937\charrsid868937
-\hich\af4\dbch\af31505\loch\f4 Copyright 2018 Catamorphic, Co.}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid4352418
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238
-\hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00
-30000000795881f43b1d7f48af2c825dc485276300000000a5ab000312452f63002200650006013500360000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS
-\hich\af4\dbch\af31505\loch\f4 IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 CommandLineParser v.2.8.0:
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2005 - 2015 Giacomo Stelluti Scala & Contributors
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction,\hich\af4\dbch\af31505\loch\f4
- including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above cop\hich\af4\dbch\af31505\loch\f4 yright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTAB\hich\af4\dbch\af31505\loch\f4
-ILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Nlohmann.json v.3.7.3
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 2013-2022 Niels Lohmann
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (th\hich\af4\dbch\af31505\loch\f4
-e "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
-\par \hich\af4\dbch\af31505\loch\f4 furnished to\hich\af4\dbch\af31505\loch\f4 do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED\hich\af4\dbch\af31505\loch\f4
-, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRAC
-\hich\af4\dbch\af31505\loch\f4 T\hich\af4\dbch\af31505\loch\f4 , TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Autodesk Artifakt Fonts
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Licensing information: \'a9\loch\f4 Autodesk, Inc. All Rights Reserved.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The Artifakt font software is Autodesk proprie\hich\af4\dbch\af31505\loch\f4
-tary and confidential, and may be used only by authorized users and only for Autodesk business purposes. Any use not authorized by Autodesk is not permitted and is an infringement of Autodesk's intellectual property rights as well as a breach of your agre
-\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 ment with Autodesk. Go to }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK https://brand.autodesk.com/brand-system/typography }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7e000000680074007400700073003a002f002f006200720061006e0064002e006100750074006f006400650073006b002e0063006f006d002f006200720061006e0064002d00730079007300740065006d002f007400
-790070006f006700720061007000680079000000795881f43b1d7f48af2c825dc485276300000000a5ab0003006f1454008e005c8f17016600200000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-https://brand.autodesk.com/brand-system\hich\af4\dbch\af31505\loch\f4 /typography}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
- for detailed usage guidelines on when and how to use the Artifakt designer collection.
-\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 DirectX
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License%20Agreements/DirectX%20SDK%20EULA.txt" }{
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90bfe000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f00440079006e0061006d006f00440053002f00440079006e0061006d006f002f0074007200650065002f006d00
-610073007400650072002f0074006f006f006c0073002f0069006e007300740061006c006c002f00450078007400720061002f0044006900720065006300740058002f004c006900630065006e00730065002000410067007200650065006d0065006e00740073002f0044006900720065006300740058002000530044004b
-002000450055004c0041002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab000300410065027800390013017300001800}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/\hich\af4\dbch\af31505\loch\f4 License Agreements/DirectX SDK EULA.txt
-\par }}}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af4\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 \sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License%20Agreements/directx%20redist.txt" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90bfa000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f00440079006e0061006d006f00440053002f00440079006e0061006d006f002f0074007200650065002f006d00
-610073007400650072002f0074006f006f006c0073002f0069006e007300740061006c006c002f00450078007400720061002f0044006900720065006300740058002f004c006900630065006e00730065002000410067007200650065006d0065006e00740073002f00640069007200650063007400780020007200650064
-006900730074002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003126d002e00002a3a00a22a7300ec0000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License Agreements/directx redist.txt
-\par }}}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af4\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 \sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \ab\af4 \ltrch\fcs0 \b\kerning1\insrsid9658238
-\par }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 ImageMagick
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://imagemagick.org/script/license.php }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e000000680074007400700073003a002f002f0069006d006100670065006d0061006700690063006b002e006f00720067002f007300630072006900700074002f006c006900630065006e00730065002e0070006800
-70000000795881f43b1d7f48af2c825dc485276300000000a5ab0003006500650003493500724b53006e1400}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://imagemagick.org/script/license.php}}}\sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238
-\par
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid16089027 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid16089027\charrsid16089027 \hich\af4\dbch\af31505\loch\f4 LiveChartsCore v.2.0.0-beta.855:
-\par \hich\af4\dbch\af31505\loch\f4 LiveChartsCore.SkiaSharpView v.2.0.0-beta.855:
-\par \hich\af4\dbch\af31505\loch\f4 LiveChartsCore.SkiaSharpView.WPF \hich\af4\dbch\af31505\loch\f4 v.2.0.0-beta.855:
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2021 Alberto Rodriguez Orozco
-\par
-\par \hich\af4\dbch\af31505\loch\f4 MIT License
-\par
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid16089027\charrsid16089027 \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy
-\par \hich\af4\dbch\af31505\loch\f4 of this software and associated documentation files (the "Software"), to deal
-\par \hich\af4\dbch\af31505\loch\f4 in the Software without restriction, including without limitation the rights
-\par \hich\af4\dbch\af31505\loch\f4 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-\par \hich\af4\dbch\af31505\loch\f4 copies of the Software, and\hich\af4\dbch\af31505\loch\f4 to permit persons to whom the Software is
-\par \hich\af4\dbch\af31505\loch\f4 furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all
-\par \hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "A\hich\af4\dbch\af31505\loch\f4 S IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-\par \hich\af4\dbch\af31505\loch\f4 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-\par \hich\af4\dbch\af31505\loch\f4 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-\par \hich\af4\dbch\af31505\loch\f4 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAG\hich\af4\dbch\af31505\loch\f4 ES OR OTHER
-\par \hich\af4\dbch\af31505\loch\f4 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-\par \hich\af4\dbch\af31505\loch\f4 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid16089027 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\insrsid16089027\charrsid16089027 \hich\af4\dbch\af31505\loch\f4 SOFTWARE.}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238\charrsid16089027
-\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\lang1053\langfe2052\langnp1053\insrsid16089027
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid10497410 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang1053\langfe2052\kerning1\langnp1053\insrsid10497410\charrsid10497410 \hich\af4\dbch\af31505\loch\f4
-Magick.NET.Core v7.0.1:
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid10497410 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang1053\langfe2052\kerning1\langnp1053\insrsid10497410\charrsid10497410
-\hich\af4\dbch\af31505\loch\f4 Copyright [2013] [dlemstra]}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang1053\langfe2052\kerning1\langnp1053\insrsid10497410
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\lang1053\langfe2052\langnp1053\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://github.com/dlemstra/Magick.NET/blob/main/License.txt }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\lang1053\langfe2052\langnp1053\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b92000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0064006c0065006d0073007400720061002f004d0061006700690063006b002e004e00450054002f0062006c00
-6f0062002f006d00610069006e002f004c006900630065006e00730065002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab00034c538c73007100d30018430900614300}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\lang1053\langfe2052\langnp1053\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://github.com/\hich\af4\dbch\af31505\loch\f4 dlemstra/Magick.NET/blob/main/License.txt}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\lang1053\langfe2052\langnp1053\insrsid9658238
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid7632792
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid7632792 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid7632792\charrsid7632792 \hich\af4\dbch\af31505\loch\f4 Licensed under the Apach\hich\af4\dbch\af31505\loch\f4
-e License, Version 2.0 (the "License");
-\par \hich\af4\dbch\af31505\loch\f4 you may not use this file except in compliance with the License.
-\par \hich\af4\dbch\af31505\loch\f4 You may obtain a copy of the License at
-\par
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid2829184 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid7632792\charrsid2829184 \hich\af4\dbch\af31505\loch\f4
-http://www.apache.org/licenses/LICENSE-2.0
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid7632792 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid7632792\charrsid7632792
-\par \hich\af4\dbch\af31505\loch\f4 Unless required by applicable law or agreed to in writing, softwar\hich\af4\dbch\af31505\loch\f4 e
-\par \hich\af4\dbch\af31505\loch\f4 distributed under the License is distributed on an "AS IS" BASIS,
-\par \hich\af4\dbch\af31505\loch\f4 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-\par \hich\af4\dbch\af31505\loch\f4 See the License for the specific language governing permissions and
-\par \hich\af4\dbch\af31505\loch\f4 limitations under the License.
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid7632792 {\rtlch\fcs1 \af4 \ltrch\fcs0 \lang1053\langfe2052\langnp1053\insrsid7632792\charrsid7632792
-\par \hich\af4\dbch\af31505\loch\f4 Magick.NET-Q8-AnyCPU v7.24.1:
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid7632792\charrsid2829184 \hich\af4\dbch\af31505\loch\f4 https://imagemagick.org/script/license.php
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid2829184 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid7632792\charrsid2829184 \hich\af4\dbch\af31505\loch\f4
-Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization dedicated to \hich\af4\dbch\af31505\loch\f4 making software imaging solutions freely available.}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238\charrsid2829184
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid7632792 {\rtlch\fcs1 \af4 \ltrch\fcs0 \lang1053\langfe2052\langnp1053\insrsid7632792\charrsid16075008
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Open XML SDK
-\par }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid9658238\charrsid2829184 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://github.com/OfficeDev/Open-XML-SDK }{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid1784394\charrsid2829184 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6c000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f004f00660066006900630065004400650076002f004f00700065006e002d0058004d004c002d00530044004b00
-0000795881f43b1d7f48af2c825dc485276300000000a5ab00032274004c98000000000d000400320000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid9658238\charrsid2829184 \hich\af4\dbch\af31505\loch\f4
-https://github.com/OfficeDev/Open-XML-SDK}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid9658238\charrsid2829184
-\par }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid9658238\charrsid2829184 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://github.com/OfficeDev/Open-XML-SDK/blob/main/LICENSE }{
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid1784394\charrsid2829184 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b90000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f004f00660066006900630065004400650076002f004f00700065006e002d0058004d004c002d00530044004b00
-2f0062006c006f0062002f006d00610069006e002f004c004900430045004e00530045000000795881f43b1d7f48af2c825dc485276300000000a5ab0003024f0072001c0068005e000000a50000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid9658238\charrsid2829184 \hich\af4\dbch\af31505\loch\f4 https://github.com/OfficeDev/Open-XML-SDK/blob/main/LICENSE}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid9658238\charrsid2829184
-\par }{\rtlch\fcs1 \ab\af4 \ltrch\fcs0 \b\lang1053\langfe2052\kerning1\langnp1053\insrsid9658238
-\par }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang1053\langfe2052\kerning1\langnp1053\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Python Standard Library
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://docs.python.org/2.7/library/" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b62000000680074007400700073003a002f002f0064006f00630073002e0070007900740068006f006e002e006f00720067002f0032002e0037002f006c006900620072006100720079002f000000795881f43b1d7f48
-af2c825dc485276300000000a5ab00032c6200430000002200b600006f480000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://docs.python.org/2.7/library/
-\par }}}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af4\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 \sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://docs.pyt\hich\af4\dbch\af31505\loch\f4
-hon.org/2.7/license.html" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6a000000680074007400700073003a002f002f0064006f00630073002e0070007900740068006f006e002e006f00720067002f0032002e0037002f006c006900630065006e00730065002e00680074006d006c000000
-795881f43b1d7f48af2c825dc485276300000000a5ab00032050006100710121007200004e5c0000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-https://docs.python.org/2.7/license.html
-\par }}}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af4\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 \sectd \ltrsect
-\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang1053\langfe2052\kerning1\langnp1053\insrsid9658238
-\par }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Python Modules}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf27\highlight8\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://numpy.org/ }{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b3e000000680074007400700073003a002f002f006e0075006d00700079002e006f00720067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab000312720073000000000055006e394e0000}}
-}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://numpy.org/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 License: Distributed under a liberal}{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\cf28\highlight8\insrsid9658238 \~}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://github.com/numpy/numpy/blob/main/LICENSE.txt" }{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b82000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f006e0075006d00700079002f006e0075006d00700079002f0062006c006f0062002f006d00610069006e002f00
-4c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab00030f6f006c00fb00000004000050490000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf29\highlight8\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-BSD license}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://pandas.pydata.org/ }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4e000000680074007400700073003a002f002f00700061006e006400610073002e007000790064006100740061002e006f00720067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab00033a3b2f00
-000100000038000000220000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://pandas.pydata.org/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\lang1053\langfe2052\langnp1053\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 License}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0
-\b\fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 :}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 BSD 3-Clause "New" or "Revised" License}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf30\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://scipy.org/ }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b3e000000680074007400700073003a002f002f00730063006900700079002e006f00720067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab00037b6514750000000000eb0100726c0000}}
-}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://scipy.org/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 }{
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 License:}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Distributed under a liberal}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\insrsid9658238 \~}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238
-\hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://github.com/numpy/numpy/blob/main/LICENSE.txt" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b82000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f006e0075006d00700079002f006e0075006d00700079002f0062006c006f0062002f006d00610069006e002f00
-4c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab000322612f69000000000030002200220155}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf29\highlight8\insrsid9658238 \hich\af4\dbch\af31505\loch\f4
-BSD license}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://pypi.org/project/openpyxl/ }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5e000000680074007400700073003a002f002f0070007900700069002e006f00720067002f00700072006f006a006500630074002f006f00700065006e007000790078006c002f000000795881f43b1d7f48af2c825d
-c485276300000000a5ab000332361466000100000000004120d00022}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://pypi.org/project/openpyxl/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 License:\~MIT License (MIT)}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf27\highlight8\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://matplotlib.org/ }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b48000000680074007400700073003a002f002f006d006100740070006c006f0074006c00690062002e006f00720067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab0003066d004d0b0078790000
-00667539003a}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://matplotlib.org/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238
-\hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 License}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 : }{\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Matplotlib only uses BSD compatible code, and its license is based on the\~}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238
-\hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://docs.python.org/3/license\hich\af4\dbch\af31505\loch\f4 .html" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b66000000680074007400700073003a002f002f0064006f00630073002e0070007900740068006f006e002e006f00720067002f0033002f006c006900630065006e00730065002e00680074006d006c000000795881f4
-3b1d7f48af2c825dc485276300000000a5ab0003222edd6f002e5d4600000000000a0054}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf2\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 PSF}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\cf25\insrsid9658238 \~\hich\af4\dbch\af31505\loch\f4 license}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf28\highlight8\insrsid9658238
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://pypi.org/project/Pillow/ }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5a000000680074007400700073003a002f002f0070007900700069002e006f00720067002f00700072006f006a006500630074002f00500069006c006c006f0077002f000000795881f43b1d7f48af2c825dc4852763
-00000000a5ab000300142a6900887f3000f30000744b005c}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 https://pypi.org/project/Pillow/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\cf28\highlight8\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 License:}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \~
-\hich\af4\dbch\af31505\loch\f4 Historical Permission Notice}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 and Disclaimer (HPND) }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf27\highlight8\insrsid9658238
-
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4 \ltrch\fcs0 \lang1053\langfe2052\kerning1\langnp1053\insrsid9658238
-\par }{\rtlch\fcs1 \af4 \ltrch\fcs0 \lang1053\langfe2052\kerning1\langnp1053\insrsid14892156
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid16455092 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid16455092\charrsid16455092
-\par \hich\af4\dbch\af31505\loch\f4 Xceed Extended WPF Toolkit v.5.0.103}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid16455092
-\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1036\langfe2052\langnp1036\insrsid9658238\charrsid15220234 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://opensource.org/licenses/ms-pl.html" }{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e000000680074007400700073003a002f002f006f00700065006e0073006f0075007200630065002e006f00720067002f006c006900630065006e007300650073002f006d0073002d0070006c002e00680074006d00
-6c000000795881f43b1d7f48af2c825dc485276300000000a5ab000300eaff00008b585800000000006d0038}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\lang1036\langfe2052\langnp1036\insrsid9658238\charrsid15220234 \hich\af4\dbch\af31505\loch\f4
-Microsoft Public License
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 }}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af4\afs24\alang1025 \ltrch\fcs0
-\fs24\lang1033\langfe2052\loch\af4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\lang1036\langfe2052\langnp1036\insrsid9658238\charrsid15220234
-\hich\af4\dbch\af31505\loch\f4 HYPERLINK https://github.com/xceedsoftware/wpftoolkit/blob/0ed4ed84152d6a3e2a627f2ef05f82627fdaf3fc/license.md }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90be2000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f007800630065006500640073006f006600740077006100720065002f0077007000660074006f006f006c006b00
-690074002f0062006c006f0062002f0030006500640034006500640038003400310035003200640036006100330065003200610036003200370066003200650066003000350066003800320036003200370066006400610066003300660063002f006c006900630065006e00730065002e006d0064000000795881f43b1d7f
-48af2c825dc485276300000000a5ab0003005d800000cb7f4c0000000061910043}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\lang1036\langfe2052\langnp1036\insrsid9658238\charrsid15220234 \hich\af4\dbch\af31505\loch\f4
-https://github.com/xceedsoftware/wpftoolkit/blob/0ed4ed84152d6a3e2a627f2ef05f82627fdaf3fc/license.md}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0
-\b\fs22\cf25\lang1036\langfe2052\kerning1\langnp1036\insrsid9658238\charrsid15220234
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af40\afs20 \ltrch\fcs0 \b\f40\fs20\lang1036\langfe2052\kerning1\langnp1036\insrsid9658238\charrsid15220234
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Microsoft.Web.WebView2 }{\rtlch\fcs1 \ab\af4\afs22
-\ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid13390354\charrsid13390354 \hich\af4\dbch\af31505\loch\f4 v.1.0.2045.28}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid9658238
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid9658238 \hich\af4\dbch\af31505\loch\f4 Copyright (C) Microsoft Corporation. All rights reserved.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Redistribution and use in source and binary forms, with or without
-\par \hich\af4\dbch\af31505\loch\f4 modification, are permitted provided that the following conditions are
-\par \hich\af4\dbch\af31505\loch\f4 met:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 * Redistribut\hich\af4\dbch\af31505\loch\f4 ions of source code must retain the above copyright
-\par \hich\af4\dbch\af31505\loch\f4 notice, this list of conditions and the following disclaimer.
-\par \hich\af4\dbch\af31505\loch\f4 * Redistributions in binary form must reproduce the above
-\par \hich\af4\dbch\af31505\loch\f4 copyright notice, this list of conditions and the following disclaimer
-\par \hich\af4\dbch\af31505\loch\f4 in the doc\hich\af4\dbch\af31505\loch\f4 umentation and/or other materials provided with the
-\par \hich\af4\dbch\af31505\loch\f4 distribution.
-\par \hich\af4\dbch\af31505\loch\f4 * The name of Microsoft Corporation, or the names of its contributors
-\par \hich\af4\dbch\af31505\loch\f4 may not be used to endorse or promote products derived from this
-\par \hich\af4\dbch\af31505\loch\f4 software without specific prior written permission.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-\par \hich\af4\dbch\af31505\loch\f4 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-\par \hich\af4\dbch\af31505\loch\f4 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-\par \hich\af4\dbch\af31505\loch\f4 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-\par \hich\af4\dbch\af31505\loch\f4 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-\par \hich\af4\dbch\af31505\loch\f4 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (I\hich\af4\dbch\af31505\loch\f4 NCLUDING, BUT NOT
-\par \hich\af4\dbch\af31505\loch\f4 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-\par \hich\af4\dbch\af31505\loch\f4 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-\par \hich\af4\dbch\af31505\loch\f4 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-\par \hich\af4\dbch\af31505\loch\f4 (INCLUDING NEGLIGENCE OR OTHER\hich\af4\dbch\af31505\loch\f4 WISE) ARISING IN ANY WAY OUT OF THE USE
-\par \hich\af4\dbch\af31505\loch\f4 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid1784394
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid16215368 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid16215368\charrsid16215368 \hich\af4\dbch\af31505\loch\f4 Lucene.Net v.4.8.0-beta00016
-\par \hich\af4\dbch\af31505\loch\f4 Lucene.Net.Analysis.Common v.4.8.0-beta00016
-\par \hich\af4\dbch\af31505\loch\f4 Lucene.Net.Queries v.4.8.0-b\hich\af4\dbch\af31505\loch\f4 eta00016
-\par \hich\af4\dbch\af31505\loch\f4 Lucene.Net.QueryParser v.4.8.0-beta00016
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid16215368 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid16215368\charrsid16215368 \hich\af4\dbch\af31505\loch\f4
-Lucene.Net.Sandbox v.4.8.0-beta00016}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid16215368
-\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://lucenenet.apache.org/"}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b54000000680074007400700073003a002f002f006c007500630065006e0065006e00650074002e006100700061006300680065002e006f00720067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab
-0003804f65150000009200ff004c782e0061}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid11167982\charrsid11167982 \hich\af4\dbch\af31505\loch\f4 https://lucenenet.}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid11167982\charrsid3998130 \hich\af4\dbch\af31505\loch\f4 apache}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid11167982\charrsid11167982 \hich\af4\dbch\af31505\loch\f4 .org/}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\ul\cf26\insrsid1784394
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid1784394 }}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid1784394 \rtlch\fcs1 \af4\afs24\alang1025 \ltrch\fcs0
-\fs24\lang1033\langfe2052\loch\af4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid14298549 \hich\af4\dbch\af31505\loch\f4
- HYPERLINK "}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid14298549\charrsid1784394 \hich\af4\dbch\af31505\loch\f4 https://github.com/apache/lucenenet/blob/master/LICENSE.txt}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid14298549
-\hich\af4\dbch\af31505\loch\f4 " }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid3998130 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b90000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f006100700061006300680065002f006c007500630065006e0065006e00650074002f0062006c006f0062002f00
-6d00610073007400650072002f004c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003580000d46bcc00000049000000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \cs19\fs22\ul\cf21\insrsid14298549\charrsid14700233
-\hich\af4\dbch\af31505\loch\f4 https://github.com/apache/lucenenet/blob/master/LICENSE.txt}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid1784394
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid14298549 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid14298549\charrsid14298549 \hich\af4\dbch\af31505\loch\f4 Copyright 2022 Apache Lucene.NET
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Licensed under the Apac\hich\af4\dbch\af31505\loch\f4 he License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at}{\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid14298549 \hich\af4\dbch\af31505\loch\f4 }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid14298549 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\insrsid14298549\charrsid14298549 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid14298549 \hich\af4\dbch\af31505\loch\f4 " }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\insrsid3998130 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00
-30000000795881f43b1d7f48af2c825dc485276300000000a5ab00030000380000b8586400ed00ae00}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \cs19\fs22\ul\cf21\insrsid14298549\charrsid14700233 \hich\af4\dbch\af31505\loch\f4
-http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid14298549 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\insrsid14298549\charrsid14298549 \hich\af4\dbch\af31505\loch\f4 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT W\hich\af4\dbch\af31505\loch\f4
-ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid14298549
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid3998130
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3998130 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\lang1036\langfe2052\kerning1\langnp1036\insrsid3998130\charrsid15220234
-\hich\af4\dbch\af31505\loch\f4 Microsoft.Extensions.Configuration.Json v6.0.0
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid3998130\charrsid3998130 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf26\kerning1\insrsid3998130\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://github.com/dotnet/runtime/blob/main/LICENSE.TXT" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf26\kerning1\insrsid4611777\charrsid4611777 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b88000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0064006f0074006e00650074002f00720075006e00740069006d0065002f0062006c006f0062002f006d006100
-69006e002f004c004900430045004e00530045002e005400580054000000795881f43b1d7f48af2c825dc485276300000000a5ab00030000001100000015005c145c}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \cs19\fs22\ul\cf26\kerning1\insrsid3998130\charrsid4611777
-\hich\af4\dbch\af31505\loch\f4 https://github.com/dotnet/runtime/blob/main/LICENSE.TX\hich\af4\dbch\af31505\loch\f4 T}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf26\kerning1\insrsid3998130\charrsid4611777
-
-\par }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf26\kerning1\insrsid4611777
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4611777 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4
-Copyright (c) .NET Foundation and Contributors
-\par \hich\af4\dbch\af31505\loch\f4 All rights reserved.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 of this software and associated documentation files (the "Software"), to deal}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777
-\hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 in the Software without restriction, including without limitation the rights}{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 copies of the Software, and\hich\af4\dbch\af31505\loch\f4 to permit persons to whom the Software is}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777
-\hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "A\hich\af4\dbch\af31505\loch\f4 S IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777
-\hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE}{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAG\hich\af4\dbch\af31505\loch\f4 ES OR OTHER}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777
-\hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS }{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777 \hich\af4\dbch\af31505\loch\f4 I}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 N THE}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\kerning1\insrsid4611777 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4611777\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 SOFTWARE.}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0
-\b\fs22\cf26\kerning1\insrsid4611777\charrsid3998130
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3998130 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid3998130
-\par }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid3998130\charrsid3998130 \hich\af4\dbch\af31505\loch\f4 CsvHelper v30.0.1}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid3998130
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid3998130\charrsid3998130 \hich\af4\dbch\af31505\loch\f4 Apache 2.0
-\par }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf26\kerning1\insrsid3998130\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://github.com/JoshClose/CsvHelper/blob/master/LICENSE.txt" }{\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\cf26\kerning1\insrsid4611777\charrsid4611777 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b96000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f004a006f007300680043006c006f00730065002f00430073007600480065006c007000650072002f0062006c00
-6f0062002f006d00610073007400650072002f004c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003000087018f13060000780020}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\cs19\fs22\ul\cf26\kerning1\insrsid3998130\charrsid4611777 \hich\af4\dbch\af31505\loch\f4 https://github.com/JoshClose/CsvHelper/bl\hich\af4\dbch\af31505\loch\f4 ob/master/LICENSE.txt}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22
-\ltrch\fcs0 \fs22\cf26\kerning1\insrsid3998130\charrsid4611777
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4611777 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid4611777
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12653622 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid4611777\charrsid14298549 \hich\af4\dbch\af31505\loch\f4
-Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid4611777
-\hich\af4\dbch\af31505\loch\f4 }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid4611777 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid4611777\charrsid14298549
-\hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid4611777 \hich\af4\dbch\af31505\loch\f4 " }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid4611777 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00
-30000000795881f43b1d7f48af2c825dc485276300000000a5ab000300ff00003701ff660073000000}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \cs19\fs22\ul\cf21\insrsid4611777\charrsid14700233 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0
-}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid4611777 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid4611777\charrsid14298549 \hich\af4\dbch\af31505\loch\f4
-Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language gover
-\hich\af4\dbch\af31505\loch\f4 n\hich\af4\dbch\af31505\loch\f4 ing permissions and limitations under the License.}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid12653622\charrsid12653622
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3998130 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid3998130
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4484117 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid4484117\charrsid9377761 \hich\af4\dbch\af31505\loch\f4 Prism.Core v8.1.97
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid4484117\charrsid9377761 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par }{\rtlch\fcs1 \af4 \ltrch\fcs0 \cs19\ul\cf26\insrsid4484117\charrsid9377761 \hich\af4\dbch\af31505\loch\f4 https://github.com/PrismLibrary/Prism/blob/master/LICENSE.txt
-\par }{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid4484117\charrsid9377761
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4484117 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid4484117\charrsid12335516 \hich\af4\dbch\af31505\loch\f4 Copyright (c) Prism Library
-\par
-\par \hich\af4\dbch\af31505\loch\f4 All rights reserved. Permission is hereby granted, free of charge, to a\hich\af4\dbch\af31505\loch\f4
-ny person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-\hich\af4\dbch\af31505\loch\f4 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3998130 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid3998130 \hich\af4\dbch\af31505\loch\f4
-HYPERLINK "https://lucenenet.apache.org/"}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid3998130 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b54000000680074007400700073003a002f002f006c007500630065006e0065006e00650074002e006100700061006300680065002e006f00720067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab
-0003804f657a0000000500010000005c0049}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid3998130
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12653622 }}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12653622 \rtlch\fcs1 \af4\afs24\alang1025
-\ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af4\hich\af4\dbch\af31505\cgrid\langnp1033\langfenp2052 \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid12653622 \hich\af4\dbch\af31505\loch\f4
-MimeMapping}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid12653622\charrsid3998130 \hich\af4\dbch\af31505\loch\f4 v}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid12653622 \hich\af4\dbch\af31505\loch\f4 2.}{
-\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid12653622\charrsid3998130 0.0}{\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid12653622
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid12653622 \hich\af4\dbch\af31505\loch\f4 MIT License}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid12653622\charrsid3998130
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12653622 {\field\flddirty{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf26\kerning1\insrsid12653622 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "}{\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\cf26\kerning1\insrsid12653622\charrsid9731339 \hich\af4\dbch\af31505\loch\f4 https://licenses.nuget.org/MIT}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf26\kerning1\insrsid12653622 \hich\af4\dbch\af31505\loch\f4 " }{
-\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf26\kerning1\insrsid12653622 {\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b56000000680074007400700073003a002f002f006c006900630065006e007300650073002e006e0075006700650074002e006f00720067002f004d00490054000000795881f43b1d7f48af2c825dc485276300000000
-a5ab00030087006e006d1e63}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \cs19\fs22\ul\cf21\kerning1\insrsid12653622\charrsid10299691 \hich\af4\dbch\af31505\loch\f4 https://licenses.nuget.org/MIT}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\cf26\kerning1\insrsid12653622
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid12653622\charrsid9731339 \hich\af4\dbch\af31505\loch\f4 Copyright (c) }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid12653622
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid12653622\charrsid9731339
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charg\hich\af4\dbch\af31505\loch\f4 e, to any person obtaining a copy of\~}{\rtlch\fcs1 \ai\af4\afs22 \ltrch\fcs0 \i\fs22\cf25\insrsid12653622\charrsid9731339
-\hich\af4\dbch\af31505\loch\f4 this software and associated documentation files}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid12653622\charrsid9731339 \~\hich\af4\dbch\af31505\loch\f4
-(the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/o\hich\af4\dbch\af31505\loch\f4
-r sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice\~}{\rtlch\fcs1 \ai\af4\afs22 \ltrch\fcs0 \i\fs22\cf25\insrsid12653622\charrsid9731339 \hich\af4\dbch\af31505\loch\f4 (including the next paragraph)}{\rtlch\fcs1
-\af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid12653622\charrsid9731339 \~\hich\af4\dbch\af31505\loch\f4 shall be included in all copies or su\hich\af4\dbch\af31505\loch\f4 bstantial portions of the Software.}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\fs22\cf25\insrsid12653622
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid12653622\charrsid9731339
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\~}{
-\rtlch\fcs1 \ai\af4\afs22 \ltrch\fcs0 \i\fs22\cf25\insrsid12653622\charrsid9731339 \hich\af4\dbch\af31505\loch\f4 THE AUTHORS OR COPYRIGHT HOLDERS}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid12653622\charrsid9731339 \~
-\hich\af4\dbch\af31505\loch\f4 BE \hich\af4\dbch\af31505\loch\f4
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0
-\cs19\fs22\ul\cf21\insrsid12653622\charrsid9731339
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3998130 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid3998130
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3346706 {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\fs22\cf25\kerning1\insrsid3346706\charrsid15019625 \hich\af4\dbch\af31505\loch\f4
-DotNetProjects.Extended.Wpf.Toolkit v5.0.103
-\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid3346706\charrsid15019625 \hich\af4\dbch\af31505\loch\f4 Micro\hich\af4\dbch\af31505\loch\f4 soft Public License
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3346706 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\ul\cf26\insrsid3346706\charrsid15019625 \hich\af4\dbch\af31505\loch\f4
-https://github.com/dotnetprojects/WpfExtendedToolkit/blob/Extended/LICENSE.md
-\par
-\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3346706 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\kerning1\insrsid3346706\charrsid15019625 \hich\af4\dbch\af31505\loch\f4
-This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the sof\hich\af4\dbch\af31505\loch\f4 tware.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 1. Definitions
-\par \hich\af4\dbch\af31505\loch\f4
-The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contribu
-\hich\af4\dbch\af31505\loch\f4 tor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor's patent claims that read directly on its contribution.
-\par \hich\af4\dbch\af31505\loch\f4 2. Grant of Rights
-\par \hich\af4\dbch\af31505\loch\f4 (A) Copyright Grant- Subject to the terms of this license, including th\hich\af4\dbch\af31505\loch\f4
-e license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any d
-\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 rivative works that you create.
-\par \hich\af4\dbch\af31505\loch\f4 (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents t
-\hich\af4\dbch\af31505\loch\f4 o make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
-\par \hich\af4\dbch\af31505\loch\f4 3. Conditions and Limitations
-\par \hich\af4\dbch\af31505\loch\f4 (A) No Trademark License- This license does not grant \hich\af4\dbch\af31505\loch\f4 you rights to use any contributors' name, logo, or trademarks.
-\par \hich\af4\dbch\af31505\loch\f4 (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
-\par \hich\af4\dbch\af31505\loch\f4 (C) If you distribute any portion of the software, you must ret\hich\af4\dbch\af31505\loch\f4 ain all copyright, patent, trademark, and attribution notices that are present in the software.
-\par \hich\af4\dbch\af31505\loch\f4 (D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with y\hich\af4\dbch\af31505\loch\f4
-our distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
-\par \hich\af4\dbch\af31505\loch\f4 (E) The software is licensed "as-is." You bear the risk of using it. The contributors give \hich\af4\dbch\af31505\loch\f4
-no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantabi
-\hich\af4\dbch\af31505\loch\f4 l\hich\af4\dbch\af31505\loch\f4 ity, fitness for a particular purpose and non-infringement.
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3998130 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid3346706
-\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid1060736 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid1060736\charrsid1060736 \hich\af4\dbch\af31505\loch\f4 CastleCore v.5.1.1
-\par \hich\af4\dbch\af31505\loch\f4 APACHE 2.0
-\par \hich\af4\dbch\af31505\loch\f4 Copyright 2004-2021 Castle Project - http://www.castleproject.org/
-\par
-\par \hich\af4\dbch\af31505\loch\f4 https://github.com/castleproject/Core/blob/master/LICENSE
-\par
-\par \hich\af4\dbch\af31505\loch\f4 DynamicLanguageRuntime v.1.2.2
-\par \hich\af4\dbch\af31505\loch\f4 APACHE 2.0
-\par \hich\af4\dbch\af31505\loch\f4 https://github.com/IronLanguages/dlr/blob/master/LICENSE
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) .NET Foundation and Contributors
-\par \hich\af4\dbch\af31505\loch\f4 All Rights Reserved
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Licensed under the\hich\af4\dbch\af31505\loch\f4
- Apache License, Version 2.0 (the ""License""); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing,
-\hich\af4\dbch\af31505\loch\f4 s\hich\af4\dbch\af31505\loch\f4
-oftware distributed under the License is distributed on an ""AS IS"" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 HarfBuz\hich\af4\dbch\af31505\loch\f4 zSharp v.2.8.2.4-preview.84
-\par \hich\af4\dbch\af31505\loch\f4 HarfBuzzSharp.NativeAssets.macOS v.2.8.2.4-preview.84
-\par \hich\af4\dbch\af31505\loch\f4 HarfBuzzSharp.NativeAssets.Win32 v.2.8.2.4-preview.84
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2015-2016 Xamarin, Inc.
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2017-2018 Microsoft Corporation.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free\hich\af4\dbch\af31505\loch\f4
- of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublice
-\hich\af4\dbch\af31505\loch\f4 n\hich\af4\dbch\af31505\loch\f4 se, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of\hich\af4\dbch\af31505\loch\f4 the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYR
-\hich\af4\dbch\af31505\loch\f4 IGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-\par
-\par \hich\af4\dbch\af31505\loch\f4 SkiaSharp v.2.88.4-preview.84
-\par \hich\af4\dbch\af31505\loch\f4 Skia\hich\af4\dbch\af31505\loch\f4 Sharp.HarfBuzz v.2.88.4-preview.84
-\par \hich\af4\dbch\af31505\loch\f4 SkiaSharp.NativeAssets.macOS v.2.88.4-preview.84
-\par \hich\af4\dbch\af31505\loch\f4 SkiaSharp.NativeAssets.Win32 v.2.88.4-preview.84
-\par \hich\af4\dbch\af31505\loch\f4 SkiaSharp.Views.Desktop.Common v.2.88.4-preview.84
-\par \hich\af4\dbch\af31505\loch\f4 SkiaSharp.Views.WPF v.2.88.4-preview.84
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2015-2016 Xamarin, Inc.
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2017-2018 Microsoft Corporation.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (\hich\af4\dbch\af31505\loch\f4
-the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished
-\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI\hich\af4\dbch\af31505\loch\f4
-ED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTR
-\hich\af4\dbch\af31505\loch\f4 A\hich\af4\dbch\af31505\loch\f4 CT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 SoapFormatter v1.0.11
-\par \hich\af4\dbch\af31505\loch\f4 https://github.com/novotnyllc/SoapFormatter/blob/main/LICENSE
-\par
-\par \hich\af4\dbch\af31505\loch\f4 In general, the runtime and its class librari\hich\af4\dbch\af31505\loch\f4 es are licensed under the
-\par \hich\af4\dbch\af31505\loch\f4 terms of the MIT license, and some third party code is licensed under
-\par \hich\af4\dbch\af31505\loch\f4 the 3-clause BSD license. See the file "PATENTS.TXT" for Microsoft's
-\par \hich\af4\dbch\af31505\loch\f4 patent grant on the Mono codebase.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 coverlet.collector v.3.1.2
-\par \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT)
-\par \hich\af4\dbch\af31505\loch\f4 https\hich\af4\dbch\af31505\loch\f4 ://github.com/coverlet-coverage/coverlet/blob/master/LICENSE
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2018 Toni Solarin-Sodara
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy
-\par \hich\af4\dbch\af31505\loch\f4 of this software and associated documentation files (the "Software"), to deal
-\par \hich\af4\dbch\af31505\loch\f4 in the Software without restriction, including without limitation the rights
-\par \hich\af4\dbch\af31505\loch\f4 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-\par \hich\af4\dbch\af31505\loch\f4 copies of the Software, and to permit persons to whom the Software is
-\par \hich\af4\dbch\af31505\loch\f4 furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all
-\par \hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRES\hich\af4\dbch\af31505\loch\f4 S OR
-\par \hich\af4\dbch\af31505\loch\f4 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-\par \hich\af4\dbch\af31505\loch\f4 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-\par \hich\af4\dbch\af31505\loch\f4 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-\par \hich\af4\dbch\af31505\loch\f4 LIABILITY, WHETHER IN AN ACTION\hich\af4\dbch\af31505\loch\f4 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-\par \hich\af4\dbch\af31505\loch\f4 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-\par \hich\af4\dbch\af31505\loch\f4 SOFTWARE.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 J2N v.2.0.0
-\par \hich\af4\dbch\af31505\loch\f4 APACHE 2.0
-\par \hich\af4\dbch\af31505\loch\f4 https://github.com/NightOwl888/J2N/blob/main/LICENSE.txt
-\par
-\par \hich\af4\dbch\af31505\loch\f4 JUnitTestLogger v.1.1.0
-\par \hich\af4\dbch\af31505\loch\f4 MIT License
-\par \hich\af4\dbch\af31505\loch\f4 htt\hich\af4\dbch\af31505\loch\f4 ps://github.com/syncromatics/JUnitTestLogger/blob/master/LICENSE
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2017 GMV Syncromatics Engineering
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy
-\par \hich\af4\dbch\af31505\loch\f4 of this software and associated documentation files (the "Softwa\hich\af4\dbch\af31505\loch\f4 re"), to deal
-\par \hich\af4\dbch\af31505\loch\f4 in the Software without restriction, including without limitation the rights
-\par \hich\af4\dbch\af31505\loch\f4 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-\par \hich\af4\dbch\af31505\loch\f4 copies of the Software, and to permit persons to whom the Software is
-\par \hich\af4\dbch\af31505\loch\f4 furnished to do so, s\hich\af4\dbch\af31505\loch\f4 ubject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all
-\par \hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-\par \hich\af4\dbch\af31505\loch\f4 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-\par \hich\af4\dbch\af31505\loch\f4 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-\par \hich\af4\dbch\af31505\loch\f4 AUTHORS OR COPYRIGHT HOLDERS BE \hich\af4\dbch\af31505\loch\f4 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-\par \hich\af4\dbch\af31505\loch\f4 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-\par \hich\af4\dbch\af31505\loch\f4 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-\par \hich\af4\dbch\af31505\loch\f4 SOFTWARE.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 JunitXml.TestLogger v.3.0.124
-\par \hich\af4\dbch\af31505\loch\f4 MIT License
-\par \hich\af4\dbch\af31505\loch\f4 https://\hich\af4\dbch\af31505\loch\f4 github.com/spekt/junit.testlogger/blob/master/LICENSE.md
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2017-2018
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy
-\par \hich\af4\dbch\af31505\loch\f4 of this software and associated documentation files (the "Software"), to deal
-\par \hich\af4\dbch\af31505\loch\f4 in the Software wi\hich\af4\dbch\af31505\loch\f4 thout restriction, including without limitation the rights
-\par \hich\af4\dbch\af31505\loch\f4 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-\par \hich\af4\dbch\af31505\loch\f4 copies of the Software, and to permit persons to whom the Software is
-\par \hich\af4\dbch\af31505\loch\f4 furnished to do so, subject to the following conditio\hich\af4\dbch\af31505\loch\f4 ns:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all
-\par \hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-\par \hich\af4\dbch\af31505\loch\f4 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-\par \hich\af4\dbch\af31505\loch\f4 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-\par \hich\af4\dbch\af31505\loch\f4 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-\par \hich\af4\dbch\af31505\loch\f4 LIABILITY, WHETHER IN AN ACTION OF C\hich\af4\dbch\af31505\loch\f4 ONTRACT, TORT OR OTHERWISE, ARISING FROM,
-\par \hich\af4\dbch\af31505\loch\f4 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-\par \hich\af4\dbch\af31505\loch\f4 SOFTWARE.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 NUnit.Analyzers v.3.3.0
-\par \hich\af4\dbch\af31505\loch\f4 https://github.com/nunit/nunit.analyzers/blob/master/license.txt
-\par
-\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free \hich\af4\dbch\af31505\loch\f4 of charge, to any person obtaining a copy
-\par \hich\af4\dbch\af31505\loch\f4 of this software and associated documentation files (the "Software"), to deal
-\par \hich\af4\dbch\af31505\loch\f4 in the Software without restriction, including without limitation the rights
-\par \hich\af4\dbch\af31505\loch\f4 to use, copy, modify, merge, publish, distribute, sublicens\hich\af4\dbch\af31505\loch\f4 e, and/or sell
-\par \hich\af4\dbch\af31505\loch\f4 copies of the Software, and to permit persons to whom the Software is
-\par \hich\af4\dbch\af31505\loch\f4 furnished to do so, subject to the following conditions:
-\par
-\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in
-\par \hich\af4\dbch\af31505\loch\f4 all copies or substantial portions of \hich\af4\dbch\af31505\loch\f4 the Software.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-\par \hich\af4\dbch\af31505\loch\f4 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-\par \hich\af4\dbch\af31505\loch\f4 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-\par \hich\af4\dbch\af31505\loch\f4 AUTHORS OR COPYRI\hich\af4\dbch\af31505\loch\f4 GHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-\par \hich\af4\dbch\af31505\loch\f4 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-\par \hich\af4\dbch\af31505\loch\f4 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE.
-\par
-\par \hich\af4\dbch\af31505\loch\f4 NUnit3TestAdapter v.4.2.1
-\par \hich\af4\dbch\af31505\loch\f4 MIT License}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \fs22\cf25\insrsid1060736
-\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
-9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
-5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
-b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
-0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
-a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
-c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
-0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
-a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
-6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
-4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
-4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100b6f4679893070000c9200000160000007468656d652f7468656d652f
-7468656d65312e786d6cec59cd8b1bc915bf07f23f347d97f5d5ad8fc1f2a24fcfda33b6b164873dd648a5eef2547789aad28cc56208de532e81c026e49085bd
-ed21842cecc22eb9e48f31d8249b3f22afaa5bdd5552c99e191c3061463074977eefd5afde7bf5de53d5ddcf5e26d4bbc05c1096f6fcfa9d9aefe174ce16248d
-7afeb3d9a4d2f13d2151ba4094a5b8e76fb0f03fbbf7eb5fdd454732c609f6403e1547a8e7c752ae8eaa5531876124eeb0154ee1bb25e30992f0caa3ea82a34b
-d09bd06aa3566b55134452df4b51026a1f2f97648ebd9952e9dfdb2a1f53784da5500373caa74a35b6243476715e5708b11143cabd0b447b3eccb3609733fc52
-fa1e4542c2173dbfa6fffceabdbb5574940b517940d6909be8bf5c2e17589c37f49c3c3a2b260d823068f50bfd1a40e53e6edc1eb7c6ad429f06a0f91c569a71
-b175b61bc320c71aa0ecd1a17bd41e35eb16ded0dfdce3dc0fd5c7c26b50a63fd8c34f2643b0a285d7a00c1feee1c3417730b2f56b50866fede1dbb5fe28685b
-fa3528a6243ddf43d7c25673b85d6d0159327aec8477c360d26ee4ca4b144443115d6a8a254be5a1584bd00bc6270050408a24493db959e1259a43140f112567
-9c7827248a21f056286502866b8ddaa4d684ffea13e827ed5174849121ad780113b137a4f87862cec94af6fc07a0d537206f7ffef9cdeb1fdfbcfee9cd575fbd
-79fdf77c6eadca923b466964cafdf2dd1ffef3cd6fbd7ffff0ed2f5fff319b7a172f4cfcbbbffdeedd3ffef93ef5b0e2d2146ffff4fdbb1fbf7ffbe7dfffebaf
-5f3bb4f7393a33e1339260e13dc297de5396c0021dfcf119bf9ec42c46c494e8a791402952b338f48f656ca11f6d10450edc00db767cce21d5b880f7d72f2cc2
-d398af2571687c182716f094313a60dc6985876a2ec3ccb3751ab927e76b13f714a10bd7dc43945a5e1eaf579063894be530c616cd2714a5124538c5d253dfb1
-738c1dabfb8210cbaea764ce99604be97d41bc01224e93ccc899154da5d03149c02f1b1741f0b7659bd3e7de8051d7aa47f8c246c2de40d4417e86a965c6fb68
-2d51e252394309350d7e8264ec2239ddf0b9891b0b099e8e3065de78818570c93ce6b05ec3e90f21cdb8dd7e4a37898de4929cbb749e20c64ce4889d0f6394ac
-5cd829496313fbb938871045de13265df05366ef10f50e7e40e941773f27d872f787b3c133c8b026a53240d4376beef0e57dccacf89d6ee8126157aae9f3c44a
-b17d4e9cd131584756689f604cd1255a60ec3dfbdcc160c05696cd4bd20f62c82ac7d815580f901dabea3dc5027a25d5dcece7c91322ac909de2881de073bad9
-493c1b9426881fd2fc08bc6eda7c0ca52e7105c0633a3f37818f08f480102f4ea33c16a0c308ee835a9fc4c82a60ea5db8e375c32dff5d658fc1be7c61d1b8c2
-be04197c6d1948eca6cc7b6d3343d49aa00c9819822ec3956e41c4727f29a28aab165b3be596f6a62ddd00dd91d5f42424fd6007b4d3fb84ffbbde073a8cb77f
-f9c6b10f3e4ebfe3566c25ab6b763a8792c9f14e7f7308b7dbd50c195f904fbfa919a175fa04431dd9cf58b73dcd6d4fe3ffdff73487f6f36d2773a8dfb8ed64
-7ce8306e3b99fc70e5e3743265f3027d8d3af0c80e7af4b14f72f0d46749289dca0dc527421ffc08f83db398c0a092d3279eb838055cc5f0a8ca1c4c60e1228e
-b48cc799fc0d91f134462b381daafb4a492472d591f0564cc0a1911e76ea5678ba4e4ed9223becacd7d5c16656590592e5782d2cc6e1a04a66e856bb3cc02bd4
-6bb6913e68dd1250b2d721614c6693683a48b4b783ca48fa58178ce620a157f65158741d2c3a4afdd6557b2c805ae115f8c1edc1cff49e1f06200242701e07cd
-f942f92973f5d6bbda991fd3d3878c69450034d8db08283ddd555c0f2e4fad2e0bb52b78da2261849b4d425b46377822869fc17974aad1abd0b8aeafbba54b2d
-7aca147a3e08ad9246bbf33e1637f535c8ede6069a9a9982a6de65cf6f35430899395af5fc251c1ac363b282d811ea3717a211dcbccc25cf36fc4d32cb8a0b39
-4222ce0cae934e960d122231f728497abe5a7ee1069aea1ca2b9d51b90103e59725d482b9f1a3970baed64bc5ce2b934dd6e8c284b67af90e1b35ce1fc568bdf
-1cac24d91adc3d8d1797de195df3a708422c6cd795011744c0dd413db3e682c0655891c8caf8db294c79da356fa3740c65e388ae62945714339967709dca0b3a
-faadb081f196af190c6a98242f8467912ab0a651ad6a5a548d8cc3c1aafb6121653923699635d3ca2aaa6abab39835c3b60cecd8f26645de60b53531e434b3c2
-67a97b37e576b7b96ea74f28aa0418bcb09fa3ea5ea12018d4cac92c6a8af17e1a56393b1fb56bc776811fa07695226164fdd656ed8edd8a1ae19c0e066f54f9
-416e376a6168b9ed2bb5a5f5adb979b1cdce5e40f2184197bba6526857c2c92e47d0104d754f92a50dd8222f65be35e0c95b73d2f3bfac85fd60d80887955a27
-1c57826650ab74c27eb3d20fc3667d1cd66ba341e31514161927f530bbb19fc00506dde4f7f67a7cefee3ed9ded1dc99b3a4caf4dd7c5513d777f7f5c6e1bb7b
-8f40d2f9b2d598749bdd41abd26df627956034e854bac3d6a0326a0ddba3c9681876ba9357be77a1c141bf390c5ae34ea5551f0e2b41aba6e877ba9576d068f4
-8376bf330efaaff23606569ea58fdc16605ecdebde7f010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d65
-2f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d36
-3f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e
-3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d985
-0528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c020000130000000000000000000000
-0000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000
-000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000000019020000
-7468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d0014000600080000002100b6f4679893070000c92000001600000000000000
-000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000
-000000000000000000009d0a00007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000980b00000000}
-{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
-617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
-6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
-656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
-{\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdlocked0 heading 1;\lsdqformat1 \lsdlocked0 heading 2;
-\lsdqformat1 \lsdlocked0 heading 3;\lsdqformat1 \lsdlocked0 heading 4;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;
-\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;
-\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;
-\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;
-\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;
-\lsdsemihidden1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;
-\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;
-\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;
-\lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;
-\lsdsemihidden1 \lsdlocked0 Revision;\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;
-\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
-\lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;
-\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
-\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;
-\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;
-\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;
-\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;
-\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;
-\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;
-\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
-\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdpriority62 \lsdlocked0 Light Grid Accent 5;
-\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
-\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;
-\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6;
-\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
-\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;
-\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
-\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography;
-\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4;
-\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4;
-\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1;
-\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1;
-\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2;
-\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2;
-\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3;
-\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4;
-\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4;
-\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5;
-\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5;
-\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6;
-\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6;
-\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark;
-\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1;
-\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1;
-\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2;
-\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3;
-\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3;
-\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4;
-\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4;
-\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5;
-\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5;
-\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6;
-\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore 01050000
-02000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
-d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000502f
-cd5a7e03da01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000105000000000000}}
\ No newline at end of file
+{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033\deflangfe2052{\fonttbl{\f0\fswiss\fprq2\fcharset0 Helvetica;}{\f1\fswiss\fprq2\fcharset0 Verdana;}{\f2\froman\fprq2\fcharset0 Times New Roman;}}
+{\colortbl ;\red165\green165\blue165;\red109\green210\blue255;\red0\green0\blue255;\red70\green70\blue70;\red255\green255\blue255;\red74\green74\blue74;\red5\green99\blue193;\red36\green41\blue47;}
+{\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}{\s3 heading 3;}{\s4 heading 4;}}
+{\*\generator Riched20 10.0.22621}{\*\mmathPr\mnaryLim0\mdispDef1\mwrapIndent1440 }\viewkind4\uc1
+\pard\nowidctlpar\sb240\sl276\slmult1\cf1\b\f0\fs22\lang2057 @DYNAMO v.3.0.0 \'a9 2023 Autodesk, Inc. All rights reserved.\par
+Dynamo License\par
+
+\pard\widctlpar\b0\par
+Those portions created by Ian are provided with the following copyright:\par
+\par
+Copyright 2017 Ian Keough\par
+\par
+Those portions created by Autodesk employees are provided with the following copyright:\par
+\par
+Copyright 2023 Autodesk, Inc.\par
+\par
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at {\cf2\ul{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520120511%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=hM4SECRXlI3Y3bhWd0n7aVFES8pYfE3tfdiIfbSsdIo%3D&reserved=0" }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0}}}}\cf2\ul\f0\fs22 \cf1\ulnone Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\cf2\ul\par
+\cf0\ulnone\b\f1\fs20\par
+
+\pard\nowidctlpar\sb240\sl276\slmult1\cf1\f0\fs22 Privacy\par
+
+\pard\widctlpar\b0 To learn more about Autodesk\rquote s online and offline privacy practices, please see the {\cf2\ul{\field{\*\fldinst{HYPERLINK "http://www.autodesk.com/company/legal-notices-trademarks/privacy-statement"}}{\fldrslt{Autodesk Privacy Statement}}}}\cf2\ul\f0\fs22 .\cf0\ulnone\f1\fs16\par
+\par
+
+\pard\nowidctlpar\sb240\sl276\slmult1\cf1\b\f0\fs22 Autodesk Trademarks\par
+
+\pard\widctlpar\b0 The trademarks on the {\cf2\ul{\field{\*\fldinst{HYPERLINK "https://www.autodesk.com/company/legal-notices-trademarks/intellectual-property/trademarks"}}{\fldrslt{Autodesk Trademarks page}}}}\f0\fs22 are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. \par
+\par
+All other brand names, product names or trademarks belong to their respective holders.\par
+
+\pard\nowidctlpar\sb240\sl276\slmult1\b Autodesk Cloud and Desktop Components\cf0\f1\par
+
+\pard\widctlpar\cf1\b0\f0 This Product or Service may incorporate or use background Autodesk online and desktop technology components.\~ For information about these components, see\cf0\f1 {\cf2\ul\f0{\field{\*\fldinst{HYPERLINK "https://www.autodesk.com/company/legal-notices-trademarks/autodesk-cloud-platform-components"}}{\fldrslt{Autodesk Cloud Platform Components}}}}\cf1\f2\fs22 \f0 and {\cf2\ul{\field{\*\fldinst{HYPERLINK "https://www.autodesk.com/company/legal-notices-trademarks/autodesk-desktop-platform-components"}}{\fldrslt{Autodesk Desktop Platform Components}}}}\cf2\ul\f0\fs22 .\par
+\cf0\ulnone\f1\fs18\par
+
+\pard\widctlpar\sb168\cf1\b\f0\fs22 LIBG, ProtoGeometry v.2.7.0, DynamoVisualProgramming.Analytics, CER, ADP, GRegRevitAuth, AGET, IDSDK, IDSDK Wrapper, ForgeUnits.NET, ForgeUnits.Schemas,, and Autodesk.GeometryPrimitive\b0 are closed source files licensed by Autodesk under the license that can be found here {\cf0{\field{\*\fldinst{HYPERLINK https://github.com/DynamoDS/Dynamo/tree/master/doc/distrib/Autodesk.rtf }}{\fldrslt{https://github.com/DynamoDS/Dynamo/tree/master/doc/distrib/Autodesk.rtf\ul0\cf0}}}}\f0\fs22\par
+
+\pard\widctlpar\cf0\f1\fs18\par
+\fs20\par
+\cf1\b\f0\fs22 Third-Party Trademarks, Software Credits and Attributions\par
+\cf0\b0\f1\fs18\par
+\cf1\b\f0\fs22 Greg v.\cf0\b0\f2\fs24 \cf1\b\f0\fs22 v.2.5.0.5076:\par
+\b0 (The MIT License)\par
+Copyright (c) 2013 Peter Boyer {\cf2\ul\f2\fs24{\field{\*\fldinst{HYPERLINK "mailto:peter.boyer@autodesk.com" }}{\fldrslt{\f0\fs22 peter.boyer@autodesk.com}}}}\f0\fs22 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+\cf1\b\f0\fs22 Microsoft.CSharp v.4.0.0.0:\par
+\b0 The MIT License (MIT)\par
+Copyright (c) .NET Foundation and Contributors\par
+All rights reserved.\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\ul\par
+\ulnone The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+\cf1\b\f0\fs22 Newtonsoft.Json v.13.0.1:\par
+{\cf2\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJamesNK%2FNewtonsoft.Json&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520419200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=hvR4mYgVhMPpQh4uLCJ3PY9Ywr8mM0vqXF98ac8mPXA%3D&reserved=0" }}{\fldrslt{https://github.com/JamesNK/Newtonsoft.Json}}}}\cf2\ul\b0\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJamesNK%2FNewtonsoft.Json%2Fblob%2Fmaster%2FLICENSE.md&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520429148%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=OuX0yvu%2F0kVS7X5KARjQ3p9Ycg8qvk67fFAaKNEWxbM%3D&reserved=0" }}{\fldrslt{https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md}}}}\f0\fs22\par
+\cf1\ulnone The MIT License (MIT)\par
+Copyright (c) 2007 James Newton-King\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\par
+\b RestSharp v.106.12.0.0:\par
+{\cf2\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520478947%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=foUoDUPyy8Or0rkNJtlLjI9XfJO7gemOLFnuKIkflHU%3D&reserved=0" }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0}}}}\cf2\ul\b0\f0\fs22\par
+\cf1\ulnone Copyright \'a9 2021 Alexe Zimarev\par
+\par
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at {\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f0\fs22 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 System.Collections.Immutable v.5.0.0:\par
+
+\pard\widctlpar\kerning0\b0 Copyright (c) 2017 .NET Foundation and Contributors\par
+All rights reserved.\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+\cf1\kerning2\b\f0\fs22\lang1031 FontAwesome5 v.2.1.11:\par
+{\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK https://www.nuget.org/packages/FontAwesome5/ }}{\fldrslt{https://www.nuget.org/packages/FontAwesome5/}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK https://github.com/MartinTopfstedt/FontAwesome5/blob/master/LICENSE }}{\fldrslt{https://github.com/MartinTopfstedt/FontAwesome5/blob/master/LICENSE}}}}\f0\fs22\par
+\cf1\ulnone\lang1033 MIT License\par
+Copyright (c) 2018 MartinTopfstedt\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Cyotek.Drawing.BitmapFont v.2.0.0:\par
+
+\pard\widctlpar {\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcyotek%2FCyotek.Drawing.BitmapFont&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520160343%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=kvdO%2FPPgz3PuASG6zv93DwNJ4gPkL6T6islWBwoI9Xk%3D&reserved=0" }}{\fldrslt{https://github.com/cyotek/Cyotek.Drawing.BitmapFont}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcyotek%2FCyotek.Drawing.BitmapFont%2Fblob%2Fmaster%2FLICENSE.txt&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520170297%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=WjEf%2FyE1koklbovxfFzHrScckILOiAOQlGkhPLaZ%2FL8%3D&reserved=0" }}{\fldrslt{https://github.com/cyotek/Cyotek.Drawing.BitmapFont/blob/master/LICENSE.txt}}}}\f0\fs22\par
+\cf1\ulnone The MIT License (MIT)\par
+Copyright \'a9 2012-2021 Cyotek Ltd.\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+\cf1\kerning1\b\f0\fs22 Helix Toolkit v.2.24.0:\par
+HelixToolkit.Core.Wpf v.2.24.0:\par
+HelixToolkit.SharpDX.Core v.2.24.0:\par
+HelixToolkit.SharpDX.Core.Wpf v.2.24.0:\par
+{\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fhelix-toolkit%2Fhelix-toolkit&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520210113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=dfWqblB8VdDL63AyawNfgrFG2TD08PCrheqsu%2B7K0Us%3D&reserved=0" }}{\fldrslt{https://github.com/helix-toolkit/helix-toolkit}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fhelix-toolkit%2Fhelix-toolkit%2Fblob%2Fdevelop%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520210113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=qUPlp6EXAxHOk9eACY7DopacUlVCn355KLenUznV%2Ft0%3D&reserved=0" }}{\fldrslt{https://github.com/helix-toolkit/helix-toolkit/blob/develop/LICENSE}}}}\f0\fs22\par
+\cf1\ulnone The MIT License (MIT)\par
+Copyright (c) 2019 Helix Toolkit contributors\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 SharpDX v.4.2.0:\par
+SharpDX.D3DCompiler v.4.2.0:\par
+SharpDX.Direct2D1 v.4.2.0:\par
+SharpDX.Direct3D11 v.4.2.0:\par
+SharpDX.Direct3D9 v.4.2.0:\par
+SharpDX.DXGI v.4.2.0:\par
+SharpDX.Mathematics v.4.2.0:\par
+
+\pard\widctlpar {\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsharpdx%2FSharpDX%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520488895%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=VOYhb2IAZGG0jx%2FwQxJ2Q9HXN2t6XKVVP6AiBEdD%2F3E%3D&reserved=0" }}{\fldrslt{https://github.com/sharpdx/SharpDX/blob/master/LICENSE}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+\cf1\ulnone Copyright (c) 2010-2014 SharpDX - Alexandre Mutel\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+\cf1\f0\fs22\par
+
+\pard\nowidctlpar\sl288\slmult1\kerning1\b ICSharpCode.AvalonEdit v.6.3.0.90:\par
+
+\pard\widctlpar {\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK http://www.avalonedit.net/ }}{\fldrslt{http://www.avalonedit.net/}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK https://licenses.nuget.org/MIT }}{\fldrslt{https://licenses.nuget.org/MIT}}}}\f0\fs22\par
+\cf0\ulnone\f1\fs18\par
+\cf1\f0\fs22 MIT License\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Google OpenSans:\par
+
+\pard\widctlpar\kerning0\b0 OpenSans font from Google\par
+{\cf2\ul{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.google.com%2Ffonts%2Fspecimen%2FOpen%2BSans&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520439110%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=uwmtTlbBUjq%2B1z%2FvJsb9jSJ7i6M8hIMll1qnznB0mDw%3D&reserved=0" }}{\fldrslt{http://www.google.com/fonts/specimen/Open+Sans}}}}\cf2\ul\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0.html&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520449066%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=u4S07VDF20%2BhKswWuPxfNxdMvEV6u6kUxVXid57TMkQ%3D&reserved=0" }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0.html}}}}\f0\fs22\par
+\cf1\ulnone Copyright \'a9 [yyyy] Steve Matteson\par
+\par
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at {\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\cf2\ul\f2\fs22 \cf1\ulnone\f0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\cf2\ul\f2\par
+\cf0\ulnone\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 DocumentFormat.OpenXml v.2.12.3:\par
+
+\pard\widctlpar\kerning0\b0 The MIT License (MIT)\par
+Copyright (c) Microsoft Corporation\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 IronPython.StdLib v.2.7.9:\par
+
+\pard\widctlpar\kerning0\b0 Copyright \'a9 2018 Slide & Slozier\par
+\par
+1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 2.7.18 software in source or binary form and its associated documentation.\par
+\par
+2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 2.7.18 alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright \'a9 2001-2020 Python Software Foundation; All Rights Reserved" are retained in Python 2.7.18 alone or in any derivative version prepared by Licensee.\par
+\par
+3. In the event Licensee prepares a derivative work that is based on or incorporates Python 2.7.18 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 2.7.18.\par
+\par
+4. PSF is making Python 2.7.18 available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.7.18 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.\par
+\par
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 2.7.18 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.7.18, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.\par
+\par
+6. This License Agreement will automatically terminate upon a material breach of its terms and conditions.\par
+\par
+7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party.\par
+\par
+8. By copying, installing or otherwise using Python 2.7.18, Licensee agrees to be bound by the terms and conditions of this License Agreement.\par
+\par
+
+\pard\nowidctlpar\sl288\slmult1\kerning1\b IronPython v.2.7.9\par
+DynamicLanguageRuntime v.1.2.2\par
+
+\pard\widctlpar\kerning0\b0 Iron Python, Dynamic Language Runtime\par
+{\cf2\ul{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fironpython.net%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520230026%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=imRCR5wnzORiO%2BHcoAs4qY%2FUsg2F3%2BvpQsquG4pLPbc%3D&reserved=0" }}{\fldrslt{http://ironpython.net/}}}}\cf2\ul\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopensource.org%2Flicenses%2Fapache2.0.php&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520339551%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=GqzN3ywkegHn8Xwxmkje5HuJNO7iecwBGZU3LOoNIus%3D&reserved=0" }}{\fldrslt{http://opensource.org/licenses/apache2.0.php}}}}\f0\fs22\par
+\cf1\ulnone Copyright \'a9 2018 Iron Python Community\par
+\par
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at {\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f0\fs22 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Python.Runtime.NETStandard v.3.7.0:\par
+
+\pard\widctlpar\kerning0\b0 Copyright (c) 2006-2021 the contributors of the Python.NET project\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Python.Included v.3.7.3.4\par
+
+\pard\widctlpar\kerning0\b0 PSF LICENSE AGREEMENT FOR PYTHON 3.10.4\par
+\par
+1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 3.7.3.4 software in source or binary form and its associated documentation.\par
+\par
+2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 3.7.3.4 alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright \'a9 2001-2022 Python Software Foundation; All Rights Reserved" are retained in Python 3.7.3.4 alone or in any derivative version prepared by Licensee.\par
+\par
+3. In the event Licensee prepares a derivative work that is based on or incorporates Python 3.7.3.4 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 3.7.3.4.\par
+\par
+4. PSF is making Python 3.7.3.4 available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 3.7.3.4 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.\par
+\par
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 3.7.3.4 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 3.7.3.4, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.\par
+\par
+6. This License Agreement will automatically terminate upon a material breach of its terms and conditions.\par
+\par
+7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party.\par
+\par
+8. By copying, installing or otherwise using Python 3.7.3.4, Licensee agrees to be bound by the terms and conditions of this License Agreement.\par
+\par
+
+\pard\nowidctlpar\sl288\slmult1\kerning1\b IPython (autoreload.py) v.7.24.1:\par
+
+\pard\widctlpar {\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fipython%2Fipython%2Fblob%2Fmaster%2FIPython%2Fextensions%2Fautoreload.py&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520359465%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=7AtWEHhH3h2E0eDlvyhqM0OyREJugNDsYai4S5egwXc%3D&reserved=0" }}{\fldrslt{https://github.com/ipython/ipython/blob/master/IPython/extensions/autoreload.py}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fipython%2Fipython%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520359465%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Pilk0qSjYqpb4gwsh9CFaG42mk5wngBXOSykgiBj1EQ%3D&reserved=0" }}{\fldrslt{https://github.com/ipython/ipython/blob/master/LICENSE}}}}\f0\fs22\par
+\cf1\ulnone BSD 3-Clause License\par
+- Copyright (c) 2008-Present, IPython Development Team\par
+\lang3082 - Copyright (c) 2001-2007, Fernando Perez \par
+\lang1033 - Copyright (c) 2001, Janko Hauser \par
+- Copyright (c) 2001, Nathaniel Gray \par
+All rights reserved.\par
+\par
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\par
+\par
+* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\par
+* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\par
+* Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\par
+\par
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Nunit v.3.13.3\par
+
+\pard\widctlpar {\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.nunit.org%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520429148%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=BUfNk%2Flw%2BcIf69w2%2FUf0Rq%2FiDdxtlm4UOrklWu1jBco%3D&reserved=0" }}{\fldrslt{http://www.nunit.org/}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+\cf1\ulnone Copyright \'a9 2002-2013 Charlie Poole\line Copyright \'a9 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov\line Copyright \'a9 2000-2002 Philip A. Craig\par
+\par
+This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.\par
+Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:\par
+\par
+1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment (see the following) in the product documentation is required. Portions Copyright \'a9 2002-2009 Charlie Poole or Copyright\~\'a9 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or Copyright\~\'a9 2000-2002 Philip A. Craig\~\par
+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.\~\par
+3. This notice may not be removed or altered from any source distribution.\par
+
+\pard\widctlpar\li720\par
+
+\pard\widctlpar\s4 License Note\par
+
+\pard\widctlpar This license is based on\~{{\field{\*\fldinst{HYPERLINK "http://www.opensource.org/licenses/zlib-license.html" }}{\fldrslt{\ul\cf3\cf3\ul the open source zlib/libpng license}}}}\f0\fs22 ({\cf0{\field{\*\fldinst{HYPERLINK https://opensource.org/licenses/zlib-license.html }}{\fldrslt{https://opensource.org/licenses/zlib-license.html\ul0\cf0}}}}\f0\fs22 ). The idea was to keep the license as simple as possible to encourage use of NUnit in free and commercial applications and libraries, but to keep the source code together and to give credit to the NUnit contributors for their efforts. While this license allows shipping NUnit in source and binary form, if shipping a NUnit variant is the sole purpose of your product, please\~{{\field{\*\fldinst{HYPERLINK "mailto:cpoole@pooleconsulting.com" }}{\fldrslt{\ul\cf3\cf3\ul let us know}}}}\f0\fs22 ({{\field{\*\fldinst{HYPERLINK "mailto:cpoole@pooleconsulting.com" }}{\fldrslt{\ul\cf3\cf3\ul cpoole@pooleconsulting.com}}}}\f0\fs22 ).\par
+\par
+
+\pard\nowidctlpar\sl288\slmult1\kerning1\b\lang3082 Moq v.4.18.4:\par
+
+\pard\widctlpar {\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmoq%2Fmoq4%2Fblob%2Fmaster%2FLicense.txt&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520409253%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=H%2FwNgy%2FpMYIgd%2FFlP1IU1dbvTUCauizIJKCAU6ISQZI%3D&reserved=0" }}{\fldrslt{https://github.com/moq/moq4/blob/master/License.txt/}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+\cf1\ulnone\lang1033 BSD 3-Clause License\par
+Copyright (c) 2007, Clarius Consulting, Manas Technology Solutions, InSTEDD, and Contributors. All rights reserved.\par
+\par
+Redistribution and use in source and binary forms, with or without\par
+modification, are permitted provided that the following conditions are met:\par
+\par
+* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\par
+* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\par
+* Neither the names of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\par
+\par
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22\lang3082 Libiconv v.1.14.0.1:\par
+
+\pard\widctlpar {\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Flibiconv%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520369420%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fyvQ8axd0727ARcscr232iqeW1sGK6FTq%2FP7s1ZtC6s%3D&reserved=0" }}{\fldrslt{https://www.gnu.org/software/libiconv/}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Fgettext%2Fmanual%2Fhtml_node%2FGNU-LGPL.html%23GNU-LGPL&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520369420%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=NZT9tNyZbyPw1WOLz%2BE6ShwxQDWHBJ9uLSyHhKPHWHk%3D&reserved=0" }}{\fldrslt{https://www.gnu.org/software/gettext/manual/html_node/GNU-LGPL.html#GNU-LGPL}}}}\f0\fs22\par
+\cf1\ulnone\lang1033\'a9 1998, 2013 Free Software Foundation, Inc. \par
+\par
+This Autodesk software contains libiconv v. 1.14.0.1. libiconv is licensed under the GNU Lesser General Public License v.2.1, which can be found at {\cf0{\field{\*\fldinst{HYPERLINK http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt }}{\fldrslt{http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt\ul0\cf0}}}}\f0\fs22 . A text copy of this license is included on the media or with the download of this Autodesk software. You may obtain a copy of the source code for libiconv from {\cf2\ul{\field{\*\fldinst{HYPERLINK "http://www.autodesk.com/lgplsource" }}{\fldrslt{www.autodesk.com/lgplsource}}}}\f0\fs22 or by sending a written request to:\par
+\par
+Autodesk, Inc.\par
+Attention: General Counsel\par
+Legal Department\par
+111 McInnis Parkway\par
+San Rafael, CA 94903\par
+Your written request must:\par
+\par
+Contain a self-addressed CD/DVD mailer (or envelope sufficiently large to hold a DVD) with postage sufficient to cover the amount of the current U.S. Post Office First Class postage rate for CD/DVD mailers (or the envelope you have chosen) weighing 5 ounces from San Rafael, California USA to your indicated address; and Identify:\par
+\par
+This Autodesk software name and release number; That you are requesting the source code for libiconvv .1.14.0.1; and The above URL ({\cf2\ul{\field{\*\fldinst{HYPERLINK "http://www.autodesk.com/lgplsource" }}{\fldrslt{www.autodesk.com/lgplsource}}}}\f0\fs22 ) so that Autodesk may properly respond to your request. The offer to receive this libiconv source code via the above URL ({\cf2\ul{\field{\*\fldinst{HYPERLINK "http://www.autodesk.com/lgplsource" }}{\fldrslt{www.autodesk.com/lgplsource}}}}\f0\fs22 ) or by written request to Autodesk is valid for a period of three (3) years from the date you purchased your license to this Autodesk software. You may modify, debug and relink libiconv to this Autodesk software as provided under the terms of the GNU Lesser General Public License v.2.1.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 GNU gettext (libintl) v.0.19.8.3:\par
+
+\pard\widctlpar {\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Fgettext%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520200164%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Nf21XpKiL0wk%2Fv5o95n6NHU9yBTsVWmKLfq1AJGQ1bM%3D&reserved=0" }}{\fldrslt{https://www.gnu.org/software/gettext/}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Fgettext%2Fmanual%2Fhtml_node%2FGNU-LGPL.html%23GNU-LGPL&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520210113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fm4crd4P%2By6SL%2F0glLKwxCwV9NjLZs7f2LAoNHfi2QE%3D&reserved=0" }}{\fldrslt{https://www.gnu.org/software/gettext/manual/html_node/GNU-LGPL.html#GNU-LGPL}}}}\f0\fs22\par
+\cf1\ulnone\'a9 Copyright \'a9 1991, 1999 Free Software Foundation, Inc.\par
+\par
+This Autodesk software contains libintl v.0.19.8.3. libintl is licensed under the GNU Lesser General Public License v.2.1 , which can be found at {\cf0{\field{\*\fldinst{HYPERLINK http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt }}{\fldrslt{http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt\ul0\cf0}}}}\cf2\ul\f0\fs22 . \cf1\ulnone A text copy of this license is included on the media or with the download of this Autodesk software. You may obtain a copy of the source code for libintl v.0.19.8.3 from {\cf2\ul{\field{\*\fldinst{HYPERLINK "http://www.autodesk.com/lgplsource" }}{\fldrslt{www.autodesk.com/lgplsource}}}}\f0\fs22 or by sending a written request to:\par
+\par
+Autodesk, Inc.\par
+Attention: General Counsel\par
+Legal Department\par
+111 McInnis Parkway\par
+San Rafael, CA 94903\par
+\par
+Your written request must:\par
+1. Contain a self-addressed CD/DVD mailer (or envelope sufficiently large to hold a DVD) with postage sufficient to cover the amount of the current U.S. Post Office First Class postage rate for CD/DVD mailers (or the envelope you have chosen) weighing 5 ounces from San Rafael, California USA to your indicated address; and\par
+2. Identify:\par
+a. This Autodesk software name and release number;\par
+b. That you are requesting the source code for libintl v.0.19.8.3; and\par
+c. The above URL ({\cf0{\field{\*\fldinst{HYPERLINK www.autodesk.com/lgplsource }}{\fldrslt{www.autodesk.com/lgplsource\ul0\cf0}}}}\f0\fs22 )\par
+so that Autodesk may properly respond to your request. The offer to receive this libintl source code via the above URL ({\cf0{\field{\*\fldinst{HYPERLINK www.autodesk.com/lgplsource }}{\fldrslt{www.autodesk.com/lgplsource\ul0\cf0}}}}\f0\fs22 ) or by written request to Autodesk is valid for a period of three (3) years from the date you purchased your license to this Autodesk software.\par
+You may modify, debug and relink libintl to this Autodesk software as provided under the terms of the GNU Lesser General Public License v.2.1.\par
+\cf0\f1\fs18\par
+\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22\lang3082 Ncalc v.1.3.8.0:\cf2\kerning0\ul\b0\par
+
+\pard\widctlpar {{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fncalc.codeplex.com%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520409253%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=MXJNaR69ECgPJDJYPSnyLqGx9AGSwz%2FQZR55FnDPv5U%3D&reserved=0" }}{\fldrslt{http://ncalc.codeplex.com/}}}}\f0\fs22\par
+\cf1\ulnone\lang1033\'a9 2011 Sebastien Ros\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 MIConvexHull.NET v.1.0.17.411\par
+
+\pard\widctlpar {\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdesignengrlab.github.io%2FMIConvexHull%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520389325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=NY1pGp4Rus1IhXoLEAgeQgcF3gsQK5hhpdBY1KGxtSY%3D&reserved=0" }}{\fldrslt{http://miconvexhull.codeplex.com/}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmiconvexhull.codeplex.com%2Flicense&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520389325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=hNSoZ7QXpdD4Fhf0DlaIzm2xF9XGsksCYNlWnpXQ%2BiM%3D&reserved=0" }}{\fldrslt{http://miconvexhull.codeplex.com/license}}}}\f0\fs22\par
+\cf1\ulnone Copyright (c) 2010 David Sehnal, Matthew Campbell\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 StarMath v.2.0.17:\par
+
+\pard\widctlpar {\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDesignEngrLab%2FStarMath%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520488895%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=QlLJQ5zjjCkV03%2BrjgrcdUTiz9O6pTyzKdtSv5xpHsg%3D&reserved=0" }}{\fldrslt{https://github.com/DesignEngrLab/StarMath/blob/master/LICENSE}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+\cf1\ulnone The MIT License (MIT)\par
+Copyright (c) 2015 DesignEngrLab\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\par
+
+\pard\nowidctlpar\sl288\slmult1\kerning1\b DiffPlex v.1.6.3:\par
+
+\pard\widctlpar\kerning0\b0\'a9 2020 mmanela\par
+\par
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\par
+{\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\cf2\ul\f0\fs22 \cf1\ulnone Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\cf2\ul\par
+\cf0\ulnone\f1\fs18\par
+\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning2\b\f0\fs22 FontAwesome v.5.15.4:\par
+
+\pard\widctlpar {\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK https://github.com/FortAwesome/Font-Awesome/blob/5.x/LICENSE.txt }}{\fldrslt{https://github.com/FortAwesome/Font-Awesome/blob/5.x/LICENSE.txt}}}}\f0\fs22\lang1031\par
+\kerning0\b0\lang1033 CC BY 4.0 License\kerning2\b\lang1031 ({\cf2\kerning0\ul\b0\lang1033{\field{\*\fldinst{HYPERLINK https://creativecommons.org/licenses/by/4.0/ }}{\fldrslt{https://creativecommons.org/licenses/by/4.0/}}}}\f0\fs22 )\par
+\kerning0\b0\lang1033 Copyright (c) 2022 Fonticons, Inc.\kerning2\b\lang1031 ({\cf2\kerning0\ul\b0\lang1033{\field{\*\fldinst{HYPERLINK https://fontawesome.com }}{\fldrslt{https://fontawesome.com}}}}\f0\fs22 )\par
+\par
+\kerning0\b0\lang1033 In the Font Awesome Free download, the CC BY 4.0 license applies to all icons packaged as SVG and JS file types.\par
+\par
+Icons: CC BY 4.0 License ({{\field{\*\fldinst{HYPERLINK https://creativecommons.org/licenses/by/4.0/ }}{\fldrslt{https://creativecommons.org/licenses/by/4.0/\ul0\cf0}}}}\f0\fs22 ): The Font Awesome Free download is licensed under a Creative Commons Attribution 4.0 International License and applies to all icons packaged as SVG and JS file types.\par
+\par
+Fonts: SIL OFL 1.1 License\par
+In the Font Awesome Free download, the SIL OFL license applies to all icons packaged as web and desktop font files.\par
+Copyright (c) 2023 Fonticons, Inc. ({{\field{\*\fldinst{HYPERLINK https://fontawesome.com }}{\fldrslt{https://fontawesome.com\ul0\cf0}}}}\f0\fs22 )\par
+with Reserved Font Name: "Font Awesome".\par
+This Font Software is licensed under the SIL Open Font License, Version 1.1. \par
+This license can be found at: {{\field{\*\fldinst{HYPERLINK http://scripts.sil.org/OFL }}{\fldrslt{http://scripts.sil.org/OFL\ul0\cf0}}}}\f0\fs22\par
+\cf0\f1\fs18\par
+\cf1\f0\fs22 Code: MIT License ({{\field{\*\fldinst{HYPERLINK https://opensource.org/licenses/MIT }}{\fldrslt{https://opensource.org/licenses/MIT\ul0\cf0}}}}\f0\fs22 )\par
+In the Font Awesome Free download, the MIT license applies to all non-font and\par
+non-icon files.\par
+Copyright 2023 Fonticons, Inc.\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of\par
+this software and associated documentation files (the "Software"), to deal in the\par
+Software without restriction, including without limitation the rights to use, copy,\par
+modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,\par
+and to permit persons to whom the Software is furnished to do so, subject to the\par
+following conditions:\par
+The above copyright notice and this permission notice shall be included in all\par
+copies or substantial portions of the Software.\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\par
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\par
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\par
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\par
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\par
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\cf0\f1\fs18\line\line\cf1\f0\fs22\par
+
+\pard\nowidctlpar\sl288\slmult1\kerning1\b AngleSharp v.0.14.0: Copyright (c) 2013 - 2019 AngleSharp\par
+AngleSharp.CSS v.0.14.2: Copyright \'a9 2013-2020 AngleSharp\par
+
+\pard\widctlpar\kerning0\b0 The MIT License (MIT)\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 HTMLSanitizer v.5.0.372:\par
+
+\pard\widctlpar {\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmganss%2FHtmlSanitizer&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520220149%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=t7WD0mko%2B%2FF%2FdpKKLHyM93UCXrX%2BXwo3yUYVGPZQcGs%3D&reserved=0" }}{\fldrslt{https://github.com/mganss/HtmlSanitizer}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmganss%2FHtmlSanitizer%2Fblob%2Fmaster%2FLICENSE.md&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520220149%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=phLGnloT%2FCglabebh%2FsUSc6iiDyt6D3vSMPPKA%2FgOJQ%3D&reserved=0" }}{\fldrslt{https://github.com/mganss/HtmlSanitizer/blob/master/LICENSE.md}}}}\f0\fs22\par
+\cf1\ulnone The MIT License (MIT)\par
+Copyright (c) 2013-2016 Michael Ganss and HtmlSanitizer contributors\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\par
+
+\pard\nowidctlpar\sl288\slmult1\kerning1\b\lang1031 Markdig v.0.22.0:\par
+
+\pard\widctlpar {\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Flunet-io%2Fmarkdig&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520379375%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=IkaWjqj6UwIqoUB8EQOeZKYMz4qbWg8kbbCcZ0Qa%2Fhg%3D&reserved=0" }}{\fldrslt{https://github.com/lunet-io/markdig}}}}\cf2\kerning0\ul\b0\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Flunet-io%2Fmarkdig%2Fblob%2Fmaster%2Flicense.txt&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520379375%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=eIL37c9G%2B11uq1htX8ARhSCvefpQIOMXjVAqMh1aceU%3D&reserved=0" }}{\fldrslt{https://github.com/lunet-io/markdig/blob/master/license.txt}}}}\f0\fs22\par
+\cf1\ulnone\lang1033 Copyright (c) 2018-2019, Alexandre Mutel\par
+All rights reserved.\par
+\par
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\par
+\par
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\par
+\par
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\par
+\par
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\par
+\cf0\f1\fs18\par
+\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 System.Buffers v.4.5.1\par
+
+\pard\widctlpar\kerning0\b0 The MIT License (MIT)\par
+Copyright (c) .NET Foundation and Contributors\par
+All rights reserved.\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 System.Memory v.4.5.4\par
+
+\pard\widctlpar\kerning0\b0 The MIT License (MIT)\par
+Copyright (c) .NET Foundation and Contributors\par
+All rights reserved.\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 System.Numerics.Vectors v.4.5.0\par
+
+\pard\widctlpar\kerning0\b0 The MIT License (MIT)\par
+Copyright (c) .NET Foundation and Contributors\par
+All rights reserved.\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 System.Text.Encoding.CodePages v.4.5.0 \par
+
+\pard\widctlpar\kerning0\b0 The MIT License (MIT)\par
+Copyright (c) .NET Foundation and Contributors\par
+All rights reserved.\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs18\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Rapidjson v.1.1.0:\par
+
+\pard\widctlpar\kerning0\b0 Copyright \'a9 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \par
+\cf0\f1\fs20\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Mono.Cecil v.0.11.4:\par
+
+\pard\widctlpar\kerning0\b0 Copyright (c) 2008 - 2015 Jb Evain\par
+Copyright (c) 2008 - 2011 Novell, Inc.\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\par
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs20\par
+\cf1\kerning1\b\f0\fs22 LaunchDarkly.Clientsdk v.2.0.1\par
+LaunchDarkly.CommonSdk v.5.5.0\par
+LaunchDarkly.EventSource v.4.1.3\par
+LaunchDarkly.InternalSdk v.2.3.2\par
+LaunchDarkly.JsonStream v.1.0.3\par
+LaunchDarkly.Logging v.1.0.1\line Copyright 2018 Catamorphic, Co.\par
+\kerning0\b0\par
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at {\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f0\fs22 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\par
+\cf0\f1\fs20\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 CommandLineParser v.2.8.0:\par
+
+\pard\widctlpar\kerning0\b0 The MIT License (MIT)\par
+Copyright (c) 2005 - 2015 Giacomo Stelluti Scala & Contributors\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs20\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Nlohmann.json v.3.7.3\par
+
+\pard\widctlpar\kerning0\b0 Copyright \'a9 2013-2022 Niels Lohmann\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is\par
+furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs20\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Autodesk Artifakt Fonts\par
+
+\pard\widctlpar\kerning0\b0 Licensing information: \'a9 Autodesk, Inc. All Rights Reserved.\par
+\par
+The Artifakt font software is Autodesk proprietary and confidential, and may be used only by authorized users and only for Autodesk business purposes. Any use not authorized by Autodesk is not permitted and is an infringement of Autodesk's intellectual property rights as well as a breach of your agreement with Autodesk. Go to {\cf0{\field{\*\fldinst{HYPERLINK https://brand.autodesk.com/brand-system/typography }}{\fldrslt{https://brand.autodesk.com/brand-system/typography\ul0\cf0}}}}\f0\fs22 for detailed usage guidelines on when and how to use the Artifakt designer collection.\par
+\cf0\f1\fs20\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 DirectX\par
+{\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License%20Agreements/DirectX%20SDK%20EULA.txt" }}{\fldrslt{https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License Agreements/DirectX SDK EULA.txt\par
+}}}}{\cf2\kerning0\ul\b0\f0\fs22{\field{\*\fldinst{HYPERLINK "https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License%20Agreements/directx%20redist.txt" }}{\fldrslt{https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License Agreements/directx redist.txt\par
+}}}}\cf0\kerning1\ulnone\b\f0\fs24\par
+\cf1\fs22 ImageMagick\par
+{\cf0\kerning0\b0{\field{\*\fldinst{HYPERLINK https://imagemagick.org/script/license.php }}{\fldrslt{https://imagemagick.org/script/license.php\ul0\cf0}}}}\cf0\kerning0\b0\f0\fs22\par
+\par
+
+\pard\widctlpar\cf1\kerning1\b LiveChartsCore v.2.0.0-beta.855:\par
+LiveChartsCore.SkiaSharpView v.2.0.0-beta.855:\par
+LiveChartsCore.SkiaSharpView.WPF v.2.0.0-beta.855:\par
+Copyright (c) 2021 Alberto Rodriguez Orozco\par
+\par
+MIT License\par
+\par
+\kerning0\b0 Permission is hereby granted, free of charge, to any person obtaining a copy\par
+of this software and associated documentation files (the "Software"), to deal\par
+in the Software without restriction, including without limitation the rights\par
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\par
+copies of the Software, and to permit persons to whom the Software is\par
+furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all\par
+copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\par
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\par
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\par
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\par
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\par
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\cf0\f1\fs20\lang1053\par
+\cf1\kerning1\b\f0\fs22 Magick.NET.Core v7.0.1:\par
+
+\pard\nowidctlpar\sl288\slmult1 Copyright [2013] [dlemstra]\par
+{\cf0\kerning0\b0{\field{\*\fldinst{HYPERLINK https://github.com/dlemstra/Magick.NET/blob/main/License.txt }}{\fldrslt{https://github.com/dlemstra/Magick.NET/blob/main/License.txt\ul0\cf0}}}}\cf0\kerning0\b0\f0\fs22\par
+\cf2\ul\par
+
+\pard\widctlpar\cf1\ulnone\lang1033 Licensed under the Apache License, Version 2.0 (the "License");\par
+you may not use this file except in compliance with the License.\par
+You may obtain a copy of the License at\par
+\par
+
+\pard\nowidctlpar\sl288\slmult1 {\cf2\ul\lang1053{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0}}}}\cf2\ul\f0\fs22\lang1053\par
+
+\pard\widctlpar\cf1\ulnone\lang1033\par
+Unless required by applicable law or agreed to in writing, software\par
+distributed under the License is distributed on an "AS IS" BASIS,\par
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\par
+See the License for the specific language governing permissions and\par
+limitations under the License.\par
+
+\pard\nowidctlpar\sl288\slmult1\cf0\fs24\lang1053\par
+Magick.NET-Q8-AnyCPU v7.24.1:\par
+{\cf2\ul\fs22{\field{\*\fldinst{HYPERLINK https://imagemagick.org/script/license.php }}{\fldrslt{https://imagemagick.org/script/license.php}}}}\cf2\ul\f0\fs22\par
+
+\pard\widctlpar\cf1\ulnone\lang1033 Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.\par
+
+\pard\nowidctlpar\sl288\slmult1\cf0\fs24\lang1053\par
+\cf1\kerning1\b\fs22\lang1033 Open XML SDK\par
+{\cf0\kerning0\b0\lang1053{\field{\*\fldinst{HYPERLINK https://github.com/OfficeDev/Open-XML-SDK }}{\fldrslt{https://github.com/OfficeDev/Open-XML-SDK\ul0\cf0}}}}\cf2\kerning0\ul\b0\f0\fs22\lang1053\par
+{\cf0\ulnone{\field{\*\fldinst{HYPERLINK https://github.com/OfficeDev/Open-XML-SDK/blob/main/LICENSE }}{\fldrslt{https://github.com/OfficeDev/Open-XML-SDK/blob/main/LICENSE\ul0\cf0}}}}\f0\fs22\par
+\cf0\kerning1\ulnone\b\fs24\par
+\cf1\fs22 Python Standard Library\par
+{\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://docs.python.org/2.7/library/" }}{\fldrslt{https://docs.python.org/2.7/library/\par
+}}}}{\cf2\kerning0\ul\b0\f0\fs22{\field{\*\fldinst{HYPERLINK "https://docs.python.org/2.7/license.html" }}{\fldrslt{https://docs.python.org/2.7/license.html\par
+}}}}\cf1\kerning1\ulnone\b\f0\fs22\par
+\lang1033 Python Modules\cf4\highlight5\kerning0\b0\par
+
+\pard\nowidctlpar\sl276\slmult1 {\cf0\highlight0{\field{\*\fldinst{HYPERLINK https://numpy.org/ }}{\fldrslt{https://numpy.org/\ul0\cf0}}}}\cf2\highlight0\ul\f0\fs22\lang1053 \cf1\ulnone\lang1033 License: Distributed under a liberal\cf6\highlight5\~{\cf0\highlight0{\field{\*\fldinst{HYPERLINK "https://github.com/numpy/numpy/blob/main/LICENSE.txt" }}{\fldrslt{\ul\cf3\cf7\highlight5\ul BSD license}}}}\cf0\highlight0\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK https://pandas.pydata.org/ }}{\fldrslt{https://pandas.pydata.org/\ul0\cf0}}}}\cf2\ul\f0\fs22\lang1053 \cf1\ulnone\lang1033 License\b :\b0 BSD 3-Clause "New" or "Revised" License\cf8\par
+{\cf0{\field{\*\fldinst{HYPERLINK https://scipy.org/ }}{\fldrslt{https://scipy.org/\ul0\cf0}}}}\cf0\f0\fs22 \cf1 License:\b \b0 Distributed under a liberal\b\~{\cf0\b0{\field{\*\fldinst{HYPERLINK "https://github.com/numpy/numpy/blob/main/LICENSE.txt" }}{\fldrslt{\ul\cf3\cf7\highlight5\ul BSD license}}}}\cf0\b0\f0\fs22\par
+{{\field{\*\fldinst{HYPERLINK https://pypi.org/project/openpyxl/ }}{\fldrslt{https://pypi.org/project/openpyxl/\ul0\cf0}}}}\f0\fs22 \cf1 License:\~MIT License (MIT)\cf4\highlight5\par
+{\cf0\highlight0{\field{\*\fldinst{HYPERLINK https://matplotlib.org/ }}{\fldrslt{https://matplotlib.org/\ul0\cf0}}}}\cf0\highlight0\f0\fs22 \cf1 License\b : \b0 Matplotlib only uses BSD compatible code, and its license is based on the\~{{\field{\*\fldinst{HYPERLINK "https://docs.python.org/3/license.html" }}{\fldrslt{\ul\cf3\cf3\ul PSF}}}}\f0\fs22\~license\cf6\highlight5\par
+{\cf0\highlight0{\field{\*\fldinst{HYPERLINK https://pypi.org/project/Pillow/ }}{\fldrslt{https://pypi.org/project/Pillow/\ul0\cf0}}}}\f0\fs22 \cf1\highlight0\b License:\b0\~Historical Permission Notice\b and Disclaimer (HPND) \cf4\highlight5\b0\par
+
+\pard\nowidctlpar\sl288\slmult1\cf0\highlight0\kerning1\fs24\lang1053\par
+\par
+\cf1\b\fs22\lang1033\par
+Xceed Extended WPF Toolkit v.5.0.103\par
+{\cf2\kerning0\ul\b0\lang1036{\field{\*\fldinst{HYPERLINK "https://opensource.org/licenses/ms-pl.html" }}{\fldrslt{Microsoft Public License\par
+}}}}{\cf0\kerning0\b0\f0\fs22\lang1036{\field{\*\fldinst{HYPERLINK https://github.com/xceedsoftware/wpftoolkit/blob/0ed4ed84152d6a3e2a627f2ef05f82627fdaf3fc/license.md }}{\fldrslt{https://github.com/xceedsoftware/wpftoolkit/blob/0ed4ed84152d6a3e2a627f2ef05f82627fdaf3fc/license.md\ul0\cf0}}}}\cf1\kerning1\ulnone\b\f0\fs22\par
+
+\pard\widctlpar\cf0\f1\fs20\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\f0\fs22\lang1033 Microsoft.Web.WebView2 v.1.0.2045.28\par
+
+\pard\widctlpar\kerning0\b0 Copyright (C) Microsoft Corporation. All rights reserved.\par
+\par
+Redistribution and use in source and binary forms, with or without\par
+modification, are permitted provided that the following conditions are\par
+met:\par
+\par
+ * Redistributions of source code must retain the above copyright\par
+notice, this list of conditions and the following disclaimer.\par
+ * Redistributions in binary form must reproduce the above\par
+copyright notice, this list of conditions and the following disclaimer\par
+in the documentation and/or other materials provided with the\par
+distribution.\par
+ * The name of Microsoft Corporation, or the names of its contributors \par
+may not be used to endorse or promote products derived from this\par
+software without specific prior written permission.\par
+\par
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\par
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\par
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\par
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\par
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\par
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\par
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\par
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\par
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\par
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\par
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\par
+\par
+\kerning1\b Lucene.Net v.4.8.0-beta00016\par
+Lucene.Net.Analysis.Common v.4.8.0-beta00016\par
+Lucene.Net.Queries v.4.8.0-beta00016\par
+Lucene.Net.QueryParser v.4.8.0-beta00016\par
+
+\pard\nowidctlpar\sl288\slmult1 Lucene.Net.Sandbox v.4.8.0-beta00016\par
+{\cf2\kerning0\ul\b0{\field{\*\fldinst{HYPERLINK "https://lucenenet.apache.org/"}}{\fldrslt{https://lucenenet.apache.org/\par
+
+\pard\widctlpar }}}}{\cf0\kerning0\b0\f0\fs22{\field{\*\fldinst{HYPERLINK https://github.com/apache/lucenenet/blob/master/LICENSE.txt }}{\fldrslt{https://github.com/apache/lucenenet/blob/master/LICENSE.txt\ul0\cf0}}}}\f0\fs22\par
+\cf1\ulnone Copyright 2022 Apache Lucene.NET\par
+\par
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at {\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f0\fs22 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\par
+\par
+
+\pard\nowidctlpar\sl288\slmult1\kerning1\b\lang1036 Microsoft.Extensions.Configuration.Json v6.0.0\par
+\b0\lang1033 The MIT License (MIT)\par
+{\cf0{\field{\*\fldinst{HYPERLINK https://github.com/dotnet/runtime/blob/main/LICENSE.TXT }}{\fldrslt{https://github.com/dotnet/runtime/blob/main/LICENSE.TXT\ul0\cf0}}}}\cf2\f0\fs22\par
+\b\par
+\cf1\b0 Copyright (c) .NET Foundation and Contributors\par
+All rights reserved.\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\cf2\b\par
+\cf1\par
+CsvHelper v30.0.1\par
+\b0 Apache 2.0\par
+{\cf0{\field{\*\fldinst{HYPERLINK https://github.com/JoshClose/CsvHelper/blob/master/LICENSE.txt }}{\fldrslt{https://github.com/JoshClose/CsvHelper/blob/master/LICENSE.txt\ul0\cf0}}}}\cf2\f0\fs22\par
+
+\pard\widctlpar\cf1\kerning0\par
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at {\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f0\fs22 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\par
+
+\pard\nowidctlpar\sl288\slmult1\kerning1\b\par
+Prism.Core v8.1.97\par
+\b0 The MIT License (MIT)\par
+{\cf2\kerning0\ul\fs24{\field{\*\fldinst{HYPERLINK https://github.com/PrismLibrary/Prism/blob/master/LICENSE.txt }}{\fldrslt{https://github.com/PrismLibrary/Prism/blob/master/LICENSE.txt}}}}\cf2\kerning0\ul\f0\fs24\par
+\cf1\kerning1\ulnone\b\fs22\par
+
+\pard\widctlpar\kerning0\b0 Copyright (c) Prism Library\par
+\par
+All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: \par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+
+\pard\nowidctlpar\sl288\slmult1 {\cf2\ul{\field{\*\fldinst{HYPERLINK "https://lucenenet.apache.org/"}}{\fldrslt{\par
+}}}}\kerning1\b\f0\fs22 MimeMapping v2.0.0\par
+\b0 MIT License\par
+
+\pard\widctlpar {\cf0{\field{\*\fldinst{HYPERLINK https://licenses.nuget.org/MIT }}{\fldrslt{https://licenses.nuget.org/MIT\ul0\cf0}}}}\cf2\f0\fs22\par
+\cf1\kerning0 Copyright (c) \par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of\~\i this software and associated documentation files\i0\~(the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+The above copyright notice and this permission notice\~\i (including the next paragraph)\i0\~shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\~\i THE AUTHORS OR COPYRIGHT HOLDERS\i0\~BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\cf7\ul\par
+\cf1\ulnone\par
+
+\pard\nowidctlpar\sl288\slmult1\kerning1\b DotNetProjects.Extended.Wpf.Toolkit v5.0.103\par
+\b0 Microsoft Public License\par
+
+\pard\widctlpar {\cf2\kerning0\ul{\field{\*\fldinst{HYPERLINK https://github.com/dotnetprojects/WpfExtendedToolkit/blob/Extended/LICENSE.md }}{\fldrslt{https://github.com/dotnetprojects/WpfExtendedToolkit/blob/Extended/LICENSE.md}}}}\cf2\kerning0\ul\f0\fs22\par
+\par
+
+\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\ulnone This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.\par
+\par
+1. Definitions\par
+The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor's patent claims that read directly on its contribution.\par
+2. Grant of Rights\par
+(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.\par
+(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.\par
+3. Conditions and Limitations\par
+(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.\par
+(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.\par
+(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.\par
+(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.\par
+(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.\par
+
+\pard\widctlpar\kerning0\par
+CastleCore v.5.1.1\par
+APACHE 2.0\par
+Copyright 2004-2021 Castle Project - {{\field{\*\fldinst{HYPERLINK http://www.castleproject.org/ }}{\fldrslt{http://www.castleproject.org/\ul0\cf0}}}}\f0\fs22\par
+\par
+{{\field{\*\fldinst{HYPERLINK https://github.com/castleproject/Core/blob/master/LICENSE }}{\fldrslt{https://github.com/castleproject/Core/blob/master/LICENSE\ul0\cf0}}}}\f0\fs22\par
+\par
+DynamicLanguageRuntime v.1.2.2\par
+APACHE 2.0\par
+{{\field{\*\fldinst{HYPERLINK https://github.com/IronLanguages/dlr/blob/master/LICENSE }}{\fldrslt{https://github.com/IronLanguages/dlr/blob/master/LICENSE\ul0\cf0}}}}\f0\fs22\par
+\par
+Copyright (c) .NET Foundation and Contributors\par
+ All Rights Reserved\par
+\par
+Licensed under the Apache License, Version 2.0 (the ""License""); you may not use this file except in compliance with the License. You may obtain a copy of the License at {{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f0\fs22 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an ""AS IS"" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\par
+\par
+HarfBuzzSharp v.2.8.2.4-preview.84\par
+HarfBuzzSharp.NativeAssets.macOS v.2.8.2.4-preview.84\par
+HarfBuzzSharp.NativeAssets.Win32 v.2.8.2.4-preview.84\par
+Copyright (c) 2015-2016 Xamarin, Inc.\par
+Copyright (c) 2017-2018 Microsoft Corporation.\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\par
+SkiaSharp v.2.88.4-preview.84\par
+SkiaSharp.HarfBuzz v.2.88.4-preview.84\par
+SkiaSharp.NativeAssets.macOS v.2.88.4-preview.84\par
+SkiaSharp.NativeAssets.Win32 v.2.88.4-preview.84\par
+SkiaSharp.Views.Desktop.Common v.2.88.4-preview.84\par
+SkiaSharp.Views.WPF v.2.88.4-preview.84\par
+Copyright (c) 2015-2016 Xamarin, Inc.\par
+Copyright (c) 2017-2018 Microsoft Corporation.\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
+\par
+coverlet.collector v.3.1.2\par
+The MIT License (MIT)\par
+{{\field{\*\fldinst{HYPERLINK https://github.com/coverlet-coverage/coverlet/blob/master/LICENSE }}{\fldrslt{https://github.com/coverlet-coverage/coverlet/blob/master/LICENSE\ul0\cf0}}}}\f0\fs22\par
+\par
+Copyright (c) 2018 Toni Solarin-Sodara\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy\par
+of this software and associated documentation files (the "Software"), to deal\par
+in the Software without restriction, including without limitation the rights\par
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\par
+copies of the Software, and to permit persons to whom the Software is\par
+furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all\par
+copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\par
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\par
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\par
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\par
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\par
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\par
+SOFTWARE.\par
+\par
+J2N v.2.0.0\par
+APACHE 2.0\par
+{{\field{\*\fldinst{HYPERLINK https://github.com/NightOwl888/J2N/blob/main/LICENSE.txt }}{\fldrslt{https://github.com/NightOwl888/J2N/blob/main/LICENSE.txt\ul0\cf0}}}}\f0\fs22\par
+\par
+JUnitTestLogger v.1.1.0\par
+MIT License\par
+{{\field{\*\fldinst{HYPERLINK https://github.com/syncromatics/JUnitTestLogger/blob/master/LICENSE }}{\fldrslt{https://github.com/syncromatics/JUnitTestLogger/blob/master/LICENSE\ul0\cf0}}}}\f0\fs22\par
+\par
+Copyright (c) 2017 GMV Syncromatics Engineering\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy\par
+of this software and associated documentation files (the "Software"), to deal\par
+in the Software without restriction, including without limitation the rights\par
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\par
+copies of the Software, and to permit persons to whom the Software is\par
+furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all\par
+copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\par
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\par
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\par
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\par
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\par
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\par
+SOFTWARE.\par
+\par
+JunitXml.TestLogger v.3.0.124\par
+MIT License\par
+{{\field{\*\fldinst{HYPERLINK https://github.com/spekt/junit.testlogger/blob/master/LICENSE.md }}{\fldrslt{https://github.com/spekt/junit.testlogger/blob/master/LICENSE.md\ul0\cf0}}}}\f0\fs22\par
+\par
+Copyright (c) 2017-2018\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy\par
+of this software and associated documentation files (the "Software"), to deal\par
+in the Software without restriction, including without limitation the rights\par
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\par
+copies of the Software, and to permit persons to whom the Software is\par
+furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in all\par
+copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\par
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\par
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\par
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\par
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\par
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\par
+SOFTWARE.\par
+\par
+NUnit.Analyzers v.3.3.0\par
+{{\field{\*\fldinst{HYPERLINK https://github.com/nunit/nunit.analyzers/blob/master/license.txt }}{\fldrslt{https://github.com/nunit/nunit.analyzers/blob/master/license.txt\ul0\cf0}}}}\f0\fs22\par
+\par
+Permission is hereby granted, free of charge, to any person obtaining a copy\par
+of this software and associated documentation files (the "Software"), to deal\par
+in the Software without restriction, including without limitation the rights\par
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\par
+copies of the Software, and to permit persons to whom the Software is\par
+furnished to do so, subject to the following conditions:\par
+\par
+The above copyright notice and this permission notice shall be included in\par
+all copies or substantial portions of the Software.\par
+\par
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\par
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\par
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\par
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\par
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\par
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\par
+THE SOFTWARE.\par
+\par
+NUnit3TestAdapter v.4.2.1\par
+MIT License\par
+}
+
\ No newline at end of file
diff --git a/doc/distrib/MLNodeAutocompleteConsent.rtf b/doc/distrib/MLNodeAutocompleteConsent.rtf
new file mode 100644
index 00000000000..4269ec83948
--- /dev/null
+++ b/doc/distrib/MLNodeAutocompleteConsent.rtf
@@ -0,0 +1,195 @@
+{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff37\deff0\stshfdbch0\stshfloch37\stshfhich37\stshfbi37\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
+{\f11\fbidi \fmodern\fcharset128\fprq1{\*\panose 02020609040205080304}MS Mincho{\*\falt ?l?r ??\'81\'66c};}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
+{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f40\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}{\f43\fbidi \fmodern\fcharset128\fprq1{\*\panose 00000000000000000000}@MS Mincho;}
+{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
+{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
+{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
+{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f45\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
+{\f46\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f48\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f49\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f50\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
+{\f51\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f52\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f53\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
+{\f157\fbidi \fmodern\fcharset0\fprq1 MS Mincho Western{\*\falt ?l?r ??\'81\'66c};}{\f155\fbidi \fmodern\fcharset238\fprq1 MS Mincho CE{\*\falt ?l?r ??\'81\'66c};}{\f156\fbidi \fmodern\fcharset204\fprq1 MS Mincho Cyr{\*\falt ?l?r ??\'81\'66c};}
+{\f158\fbidi \fmodern\fcharset161\fprq1 MS Mincho Greek{\*\falt ?l?r ??\'81\'66c};}{\f159\fbidi \fmodern\fcharset162\fprq1 MS Mincho Tur{\*\falt ?l?r ??\'81\'66c};}{\f162\fbidi \fmodern\fcharset186\fprq1 MS Mincho Baltic{\*\falt ?l?r ??\'81\'66c};}
+{\f385\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f386\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f388\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f389\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}
+{\f392\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f393\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\f415\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f416\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}
+{\f418\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f419\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f420\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f421\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}
+{\f422\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f423\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f445\fbidi \fswiss\fcharset238\fprq2 Verdana CE;}{\f446\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr;}
+{\f448\fbidi \fswiss\fcharset161\fprq2 Verdana Greek;}{\f449\fbidi \fswiss\fcharset162\fprq2 Verdana Tur;}{\f452\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic;}{\f453\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese);}
+{\f477\fbidi \fmodern\fcharset0\fprq1 @MS Mincho Western;}{\f475\fbidi \fmodern\fcharset238\fprq1 @MS Mincho CE;}{\f476\fbidi \fmodern\fcharset204\fprq1 @MS Mincho Cyr;}{\f478\fbidi \fmodern\fcharset161\fprq1 @MS Mincho Greek;}
+{\f479\fbidi \fmodern\fcharset162\fprq1 @MS Mincho Tur;}{\f482\fbidi \fmodern\fcharset186\fprq1 @MS Mincho Baltic;}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
+{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
+{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
+{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
+{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
+{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
+{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
+{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
+{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
+{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
+{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
+{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
+{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
+{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
+{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
+{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}
+{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
+{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
+{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
+{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
+{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
+{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
+\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\red72\green148\blue208;\cbackgroundone\ctint255\cshade191\red191\green191\blue191;}{\*\defchp
+\f37\fs22\cf19 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af37\afs22\alang1025
+\ltrch\fcs0 \f37\fs22\cf19\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 \styrsid9534305 Normal;}{\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs32\alang1025
+\ltrch\fcs0 \b\fs32\cf19\lang1033\langfe1033\kerning32\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink15 \sqformat \spriority9 \styrsid7559448 heading 1;}{
+\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \ab\ai\af0\afs28\alang1025 \ltrch\fcs0 \b\i\fs28\cf19\lang1033\langfe1033\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext0 \slink16 \sqformat \spriority9 \styrsid7559448 heading 2;}{\s3\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0
+\b\fs26\cf19\lang1033\langfe1033\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink17 \sqformat \spriority9 \styrsid7559448 heading 3;}{\*\cs10 \additive \sunhideused \spriority1 Default Paragraph Font;}{\*
+\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
+\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af37\afs22\alang1025 \ltrch\fcs0 \f37\fs22\cf19\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}{\*\cs15 \additive
+\rtlch\fcs1 \ab\af0\afs32 \ltrch\fcs0 \b\fs32\kerning32\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink1 \slocked \spriority9 \styrsid7559448 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \ab\ai\af0\afs28 \ltrch\fcs0
+\b\i\fs28\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink2 \slocked \spriority9 \styrsid7559448 Heading 2 Char;}{\*\cs17 \additive \rtlch\fcs1 \ab\af0\afs26 \ltrch\fcs0 \b\fs26\loch\f31502\hich\af31502\dbch\af31501
+\sbasedon10 \slink3 \slocked \spriority9 \styrsid7559448 Heading 3 Char;}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid483671\rsid3037294\rsid5012088\rsid5136836\rsid5309285\rsid5378609\rsid6827092
+\rsid6963270\rsid7174336\rsid7559448\rsid9534305\rsid10551617\rsid12388035\rsid14363366\rsid14811469\rsid14831659\rsid15021189\rsid15617602\rsid16192969}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1
+\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Limiardi Sancerio}{\operator Jesus Alfredo Alvi\'f1o}{\creatim\yr2015\mo5\dy4\hr12\min55}{\revtim\yr2023\mo11\dy17\hr16\min18}{\version16}{\edmins11}{\nofpages1}{\nofwords57}{\nofchars331}
+{\*\company Autodesk, Inc.}{\nofcharsws387}{\vern79}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
+\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen
+\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1
+\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct
+\asianbrkrule\rsidroot9534305\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0
+{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang
+{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang
+{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}
+\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9534305 \rtlch\fcs1 \af37\afs22\alang1025 \ltrch\fcs0 \f37\fs22\cf19\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
+\b\fs20\cf20\lang1033\langfe1041\loch\af40\hich\af40\dbch\af11\langfenp1041\insrsid15021189\charrsid15021189 \hich\af40\dbch\af11\loch\f40 [}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
+\b\fs20\cf20\lang1033\langfe1041\loch\af40\hich\af40\dbch\af11\langfenp1041\insrsid6963270 \hich\af40\dbch\af11\loch\f40 ML Node Autocomplete}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
+\b\fs20\cf20\lang1033\langfe1041\loch\af40\hich\af40\dbch\af11\langfenp1041\insrsid15021189\charrsid15021189 \hich\af40\dbch\af11\loch\f40 ]}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
+\b\fs20\cf20\lang1033\langfe1041\loch\af40\hich\af40\dbch\af11\langfenp1041\insrsid15021189
+\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid14363366 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\cf20\lang1033\langfe1041\loch\af40\hich\af40\dbch\af11\langfenp1041\insrsid14363366
+\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid5136836 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\cf20\lang1033\langfe1041\loch\af40\hich\af40\dbch\af11\langfenp1041\insrsid14363366\charrsid14363366
+\hich\af40\dbch\af11\loch\f40 Autodesk analytics \hich\af40\dbch\af11\loch\f40 programs help us (Autodesk) understand your use of Dynamo so we can personalize your experience and build better online, mobile, and desktop applications.\~
+ By analyzing usage trends and patterns we can optimize current features, make positive changes for \hich\af40\dbch\af11\loch\f40 future releases, provide more useful communications, and improve performance and quality.}{\rtlch\fcs1 \af0\afs20
+\ltrch\fcs0 \fs20\cf20\lang1033\langfe1041\loch\af40\hich\af40\dbch\af11\langfenp1041\insrsid7174336\charrsid3037294
+\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
+9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
+5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
+b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
+0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
+a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
+c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
+0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
+a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
+6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
+4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
+4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210030dd4329a8060000a41b0000160000007468656d652f7468656d652f
+7468656d65312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87
+615b8116d8a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad
+79482a9c0498f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b
+5d8a314d3c94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab
+999fb7b4717509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9
+699640f6719e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd586
+8b37a088d1e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d6
+0cf03ac1a5193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f
+9e7ef3f2d117d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be
+15c308d3f28acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a9979
+3849c26ae66252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d
+32a423279a668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2a
+f074481847bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86
+e877f0034e16bafb0e258ebb4faf06b769e888340b103d331115bebc4eb813bf83291b63624a0d1475a756c734f9bbc2cd28546ecbe1e20a3794ca175f3fae90
+fb6d2dd99bb07b55e5ccf68942bd0877b23c77b908e8db5f9db7f024d9239010f35bd4bbe2fcae387bfff9e2bc289f2fbe24cfaa301468dd8bd846dbb4ddf1c2
+ae7b4c191ba8292337a469bc25ec3d411f06f53a73e224c5292c8de0516732307070a1c0660d125c7d44553488700a4d7bddd3444299910e254ab984c3a219ae
+a4adf1d0f82b7bd46cea4388ad1c12ab5d1ed8e1153d9c9f350a3246aad01c6873462b9ac05999ad5cc988826eafc3acae853a33b7ba11cd1445875ba1b236b1
+399483c90bd560b0b0263435085a21b0f22a9cf9356b38ec6046026d77eba3dc2dc60b17e92219e180643ed27acffba86e9c94c7ca9c225a0f1b0cfae0788ad5
+4adc5a9aec1b703b8b93caec1a0bd8e5de7b132fe5113cf312503b998e2c2927274bd051db6b35979b1ef271daf6c6704e86c73805af4bdd476216c26593af84
+0dfb5393d964f9cc9bad5c313709ea70f561ed3ea7b053075221d51696910d0d339585004b34272bff7213cc7a510a5454a3b349b1b206c1f0af490176745d4b
+c663e2abb2b34b23da76f6352ba57ca2881844c1111ab189d8c7e07e1daaa04f40255c77988aa05fe06e4e5bdb4cb9c5394bbaf28d98c1d971ccd20867e556a7
+689ec9166e0a522183792b8907ba55ca6e943bbf2a26e52f48957218ffcf54d1fb09dc3eac04da033e5c0d0b8c74a6b43d2e54c4a10aa511f5fb021a07533b20
+5ae07e17a621a8e082dafc17e450ffb739676998b48643a4daa7211214f623150942f6a02c99e83b85583ddbbb2c4996113211551257a656ec1139246ca86be0
+aadedb3d1441a89b6a929501833b197fee7b9641a3503739e57c732a59b1f7da1cf8a73b1f9bcca0945b874d4393dbbf10b1680f66bbaa5d6f96e77b6f59113d
+316bb31a795600b3d256d0cad2fe354538e7566b2bd69cc6cbcd5c38f0e2bcc63058344429dc2121fd07f63f2a7c66bf76e80d75c8f7a1b622f878a18941d840
+545fb28d07d205d20e8ea071b283369834296bdaac75d256cb37eb0bee740bbe278cad253b8bbfcf69eca23973d939b97891c6ce2cecd8da8e2d343578f6648a
+c2d0383fc818c798cf64e52f597c740f1cbd05df0c264c49134cf09d4a60e8a107260f20f92d47b374e32f000000ffff0300504b030414000600080000002100
+0dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f7
+8277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89
+d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd500
+1996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0f
+bfff0000001c0200001300000000000000000000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6
+a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a
+0000001c00000000000000000000000000190200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d00140006000800000021
+0030dd4329a8060000a41b00001600000000000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d001400060008
+00000021000dd1909fb60000001b0100002700000000000000000000000000b20900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000ad0a00000000}
+{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
+617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
+6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
+656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
+{\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdlocked0 heading 1;
+\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
+\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;
+\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;
+\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;
+\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;
+\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;
+\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdpriority59 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdlocked0 Placeholder Text;
+\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;
+\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;
+\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1;
+\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision;
+\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;
+\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1;
+\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
+\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;
+\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;
+\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
+\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;
+\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;
+\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
+\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;
+\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;
+\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
+\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;
+\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6;
+\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
+\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;
+\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
+\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography;
+\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4;
+\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4;
+\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1;
+\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1;
+\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2;
+\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2;
+\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3;
+\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4;
+\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4;
+\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5;
+\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5;
+\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6;
+\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6;
+\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark;
+\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1;
+\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1;
+\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2;
+\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3;
+\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3;
+\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4;
+\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4;
+\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5;
+\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5;
+\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6;
+\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore 01050000
+02000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
+d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000080f9
+619d9b19da01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000105000000000000}}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.ByBestFitThroughPoints.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.ByBestFitThroughPoints.md
index 712ae48845f..1d3caabb912 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.ByBestFitThroughPoints.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.ByBestFitThroughPoints.md
@@ -1,5 +1,8 @@
## In Depth
-Plane By Best Fit Through Points uses a set of points and finds the plane that best approximates the set. In the example, we use a series of RandomList components to generate random x,y and z coordinates. The points are created By Coordinates, and the list of points is then used as an input for ByBestFitThroughPoints.
+`Arc.ByBestFitThroughPoints` draws an arc that best represents 3 or more points.
+
+In the example below, we create an arc that approximates a list of random points ranging from 0 to 5 in the X and Y directions.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.ByThreePoints.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.ByThreePoints.md
index 294dbed067b..756575294b2 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.ByThreePoints.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.ByThreePoints.md
@@ -1,5 +1,8 @@
## In Depth
-Plane by Three Points will create a plane that passes through the three input points. The points must not be co-linear. In the example below, we use three code blocks to define the three initial points, then use ByThreePoints to create a plane.
+`Arc.ByThreePoints` draws an arc from three points, given the start point, end point, and a point between them.
+
+In the example below, we draw an arc from three randomly created points.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.CenterPoint.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.CenterPoint.md
index 9ac00997759..698405dc5f0 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.CenterPoint.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.CenterPoint.md
@@ -1,5 +1,8 @@
## In Depth
-Center Point will return the center of an input sphere. In the example below, we use a ByBestFit node to create a sphere based on a set of random points. We then use a CenterPoint node to determine the center of the best fit sphere.
+`Arc.CenterPoint` returns a point at the center of an arc, the same point as the corresponding circle center.
+
+In the example below, we create an arc from 3 randomly generated points, then return its center point with an `Arc.CenterPoint` node.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.Radius.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.Radius.md
index baac98d02f5..61a5ae38285 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.Radius.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Arc.Radius.md
@@ -1,5 +1,8 @@
## In Depth
-Radius will return the center of an input sphere. In the example below, we use a ByBestFit node to create a sphere based on a set of random points. We then use a Radius node to determine the size of the best fit sphere.
+`Arc.Radius` returns the radius value of arc geometry.
+
+In the example below, we create an arc from 3 randomly generated points, then return its radius point with an `Arc.Radius` node. We can visualize the change in radius as the input points change in the Y direction.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.BoundingBox.ByCorners.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.BoundingBox.ByCorners.md
index 1010232ce37..ce81b48664a 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.BoundingBox.ByCorners.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.BoundingBox.ByCorners.md
@@ -1,5 +1,8 @@
## In Depth
-Cuboid By Corners creates a cuboid where the two input points are used as the opposite corners of the cuboid. In the example file, two points are randomly generated and used to create a cuboid.
+`BoundingBox.ByCorners` creates a BoundingBox from two input points.
+
+In the example below, we use the diagonal vector to translate the start point of the box to create its end point. To visualize the box, it is converted to a PolySurface and its edge curves are extracted.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.BoundingBox.ByGeometry.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.BoundingBox.ByGeometry.md
index e2d1711428b..ddf4833c2af 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.BoundingBox.ByGeometry.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.BoundingBox.ByGeometry.md
@@ -1,5 +1,8 @@
## In Depth
-ByGeometry brings each input geometry into Revit as an individual Import Instance element. An Import Instance is identified as an Import Symbol in Revit.
+`BoundingBox.ByGeometry` creates a BoundingBox around geometry.
+
+In the example below, a BoundingBox is created around a sphere. To visualize the box, it is converted to a cuboid and its edge curves are extracted.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.ByBestFitThroughPoints.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.ByBestFitThroughPoints.md
index 59b8948bd16..a018b2ebd1b 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.ByBestFitThroughPoints.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.ByBestFitThroughPoints.md
@@ -1,5 +1,8 @@
## In Depth
-Plane By Best Fit Through Points uses a set of points and finds the plane that best approximates the set. In the example, we use a series of RandomList components to generate random x,y and z coordinates. The points are created By Coordinates, and the list of points is then used as an input for ByBestFitThroughPoints.
+`Circle.ByBestFitThroughPoints` receives point inputs and creates a best-fit circle through them.
+
+In the example below, a list of randomly generated points is used to generate a circle that best approximates them. We can dynamically increase and decrease the number of points with a number slider, altering the shape of the best-fit circle.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius.md
index d95240752fc..cab66404075 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius.md
@@ -1,5 +1,8 @@
## In Depth
-Sphere by Center Point Radius will create a sphere centered at the input point, and with an input radius. In the example below, we use a code block to specify the coordinates of a Point created by coordinates, and we use a number slider to determine the radius of the sphere.
+`Circle.ByCenterPointRadius` creates a circle with the Z-plane normal.
+
+In the example below, we use a code block to create a point in three-dimensional space and locate the circle around the point. The radius is controlled dynamically with a number slider.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.ByThreePoints.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.ByThreePoints.md
index cef9ebc47f5..2986b910f6c 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.ByThreePoints.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.ByThreePoints.md
@@ -1,5 +1,8 @@
## In Depth
-Plane by Three Points will create a plane that passes through the three input points. The points must not be co-linear. In the example below, we use three code blocks to define the three initial points, then use ByThreePoints to create a plane.
+`Circle.ByThreePoints` receives 3 point inputs and creates a circle that passes through each point.
+
+In the example below, we use 3 randomly generated points on the Z-plane to create a circle.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.CenterPoint.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.CenterPoint.md
index 39e094f7656..ebe56829ec8 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.CenterPoint.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.CenterPoint.md
@@ -1,5 +1,8 @@
## In Depth
-Center Point will return the center of an input sphere. In the example below, we use a ByBestFit node to create a sphere based on a set of random points. We then use a CenterPoint node to determine the center of the best fit sphere.
+`Circle.CenterPoint` finds the center point of a given circle.
+
+In the example below, we create a circle using `Circle.BestFitThroughPoints` and then extract the center point of the circle.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.Radius.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.Radius.md
index a3a3b475d01..581076de460 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.Radius.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Circle.Radius.md
@@ -1,5 +1,8 @@
## In Depth
-Radius will return the center of an input sphere. In the example below, we use a ByBestFit node to create a sphere based on a set of random points. We then use a Radius node to determine the size of the best fit sphere.
+`Circle.Radius` finds the radius of a given circle.
+
+In the example below, we create a circle using `Circle.ByBestFitThroughPoints` and then extract the radius of the circle.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.ByPointsRadius.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.ByPointsRadius.md
index 095f9174350..2ae271b0169 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.ByPointsRadius.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.ByPointsRadius.md
@@ -1,5 +1,8 @@
## In Depth
-ByPointsRadius will return a Cylinder from a start Point, end Point, and radius value. In the example below, adjusting the number sliders will change the point positions as well as the Cylinder's radius.
+`Cone.ByPointsRadius` creates a cone geometry from a start point, end point, and a radius value.
+
+In the example below, a dynamic cone around the World Origin is constructed with two number sliders controlling the coneâs height and radius.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.EndPoint.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.EndPoint.md
index e597a0b8856..8d2ca4a7bfa 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.EndPoint.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.EndPoint.md
@@ -1,5 +1,8 @@
## In Depth
-End Point will return the end point of an input curve. In the example below, we first create a Nurbs Curve using a ByControlPoints node, with a set of randomly generated points as the input. We can find the end point of this curve by using an EndPoint node.
+`Cone.EndPoint` returns the apex of a cone, or the center of the top circle of a truncated cone.
+
+In the example below, we create a cone by specifying a Coordinate System and two radii. We then use `Cone.EndPoint` to find the center of the top circle of the cone.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.Height.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.Height.md
index f0fe0a83776..c9cb70bb3ad 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.Height.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.Height.md
@@ -1,5 +1,8 @@
## In Depth
-Text note height is returned as a double. The height value is relative to the view scale.
+`Cone.Height` finds the height of a cone, which is equal to the distance between its start point and end point.
+
+In the example below, we create a cone by specifying a start and end point, as well as a start and end radius. We can then extract the height of the cone with `Cone.Height`.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.StartPoint.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.StartPoint.md
index c0dba8ee99e..ec23da7bc33 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.StartPoint.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cone.StartPoint.md
@@ -1,5 +1,8 @@
## In Depth
-Start Point will return the start point of an input curve. In the example below, we first create a Nurbs Curve using a ByControlPoints node, with a set of randomly generated points as the input. We can find the start point of this curve by using a StartPoint node.
+`Cone.StartPoint` finds the center of the base of a cone.
+
+In the example below, we create a cone by specifying a Coordinate System and two radii. We then use `Cone.StartPoint` to find the center of the bottom circle of the cone.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis).md
index f4f39db5318..36309cc701e 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis).md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByOriginVectors(origin, xAxis, yAxis, zAxis).md
@@ -1,5 +1,8 @@
## In Depth
-Add in-depth information about ByOriginVectors (origin, xAxis, yAxis, zAxis)...
+`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
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByPlane.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByPlane.md
index b7ce9879e89..033cc67343c 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByPlane.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.ByPlane.md
@@ -1,5 +1,8 @@
## In Depth
-Sketch planes are used in the creation of 2D and 3D geometry in Revit.
+`CoordinateSystem.ByPlane` returns a new CoordinateSystem based on an input plane.
+
+In the example below, the normal of the input plane has been repositioned, resulting in a new CoordinateSystem rotated about the X axis.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.Rotate(coordinateSystem, plane, degrees).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.Rotate(coordinateSystem, plane, degrees).dyn
new file mode 100644
index 00000000000..5175206f5ab
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.Rotate(coordinateSystem, plane, degrees).dyn
@@ -0,0 +1,262 @@
+{
+ "Uuid": "ac4af643-8e4a-4317-b683-dabd4e2674a7",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.CoordinateSystem.Rotate",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d83f3cdf35c346bb955ffef4109381cc",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "fb7c4cefedb74442a23d6b054022b053",
+ "Name": "coordinateSystem",
+ "Description": "Autodesk.DesignScript.Geometry.CoordinateSystem",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "c8482db7b9654c5f8d1f7eb7e41e90ae",
+ "Name": "plane",
+ "Description": "Plane to get normal from\n\nPlane",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "254041246ba743ddb926e93567a5545c",
+ "Name": "degrees",
+ "Description": "Rotation value in degrees\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "deda1902488f4cf89653cc97ef74dc94",
+ "Name": "CoordinateSystem",
+ "Description": "Rotated coordinate system",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.CoordinateSystem.Rotate@Autodesk.DesignScript.Geometry.Plane,double",
+ "Replication": "Auto",
+ "Description": "Rotates an object around the origin and normal of the given Plane by a specified degree\n\nCoordinateSystem.Rotate (plane: Plane, degrees: double = 0): CoordinateSystem"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "8ad6a2c820ea4c33acd85d6c6b9f7e42",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "bf629aa243374e4fbe7dd36624786535",
+ "Name": "origin",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "90957b0754744e92b25fc46d261d6471",
+ "Name": "CoordinateSystem",
+ "Description": "CoordinateSystem",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin@Autodesk.DesignScript.Geometry.Point",
+ "Replication": "Auto",
+ "Description": "Create a CoordinateSystem with origin at input Point, with X and Y Axes set as WCS X and Y Axes.\n\nCoordinateSystem.ByOrigin (origin: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)): CoordinateSystem"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "600954f1336c496497b3d78c4274732e",
+ "NodeType": "FunctionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "abcb37feac0b4b0e8696ed2271deacdb",
+ "Name": "Plane",
+ "Description": "Plane at YZ plane of world",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Plane.YZ",
+ "Replication": "Auto",
+ "Description": "Creates a plane in the world YZ\n\nPlane.YZ ( ): Plane"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "233a9182edf24a9cb0e04918b22d5ea1",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "6902090b147b48e69ba4898d9684a3bb",
+ "Name": "",
+ "Description": "degrees",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "degrees = 135;"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "90957b0754744e92b25fc46d261d6471",
+ "End": "fb7c4cefedb74442a23d6b054022b053",
+ "Id": "f4d6e52809c14409bc0107db90964aea",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "abcb37feac0b4b0e8696ed2271deacdb",
+ "End": "c8482db7b9654c5f8d1f7eb7e41e90ae",
+ "Id": "b6b61eb9ca1647079e31f6c182bedc03",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6902090b147b48e69ba4898d9684a3bb",
+ "End": "254041246ba743ddb926e93567a5545c",
+ "Id": "5da7c279d3d04bbf988fa8210a569aa1",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 100.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Manual",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": 23.126308376732588,
+ "EyeY": 8.7204408155608029,
+ "EyeZ": 7.9356554294069479,
+ "LookX": -23.126308376732588,
+ "LookY": -8.7204408155608029,
+ "LookZ": -7.9356554294069479,
+ "UpX": -0.11936696618795395,
+ "UpY": 0.992004930973053,
+ "UpZ": -0.040960114449262619
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "d83f3cdf35c346bb955ffef4109381cc",
+ "Name": "CoordinateSystem.Rotate",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 767.0533966533327,
+ "Y": 433.65461316390656
+ },
+ {
+ "Id": "8ad6a2c820ea4c33acd85d6c6b9f7e42",
+ "Name": "CoordinateSystem.ByOrigin",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 296.5,
+ "Y": 322.58625
+ },
+ {
+ "Id": "600954f1336c496497b3d78c4274732e",
+ "Name": "Plane.YZ",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 296.5,
+ "Y": 470.58625
+ },
+ {
+ "Id": "233a9182edf24a9cb0e04918b22d5ea1",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 296.5,
+ "Y": 618.41374999999994
+ }
+ ],
+ "Annotations": [
+ {
+ "Id": "9fe06b88ed6b4cee9b66b0428de8c6f7",
+ "Title": "Coordinate System rotated around a base YZ plane set at the 0, 0, 0 insertion point by 135 degrees",
+ "DescriptionText": null,
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [],
+ "HasNestedGroups": false,
+ "Left": 789.85339665333277,
+ "Top": 368.85461316390666,
+ "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": "d83f3cdf35c346bb955ffef4109381cc"
+ }
+ ],
+ "X": -25.505249382378452,
+ "Y": -149.199263666317,
+ "Zoom": 0.85276592558149733
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.Rotate(coordinateSystem, plane, degrees).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.Rotate(coordinateSystem, plane, degrees).md
new file mode 100644
index 00000000000..9345ec9b6bb
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.Rotate(coordinateSystem, plane, degrees).md
@@ -0,0 +1,9 @@
+## In Depth
+`CoordinateSystem.Rotate (coordinateSystem, plane, degrees)` returns a new CoordinateSystem rotated about a plane by the given number of degrees.
+
+In the example below, a coordinate system is rotated around a base YZ plane set at the 0, 0, 0 insertion point by 135 degrees.
+
+___
+## Example File
+
+![CoordinateSystem.Rotate(coordinateSystem, plane, degrees)](./Autodesk.DesignScript.Geometry.CoordinateSystem.Rotate(coordinateSystem,%20plane,%20degrees)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.Rotate(coordinateSystem, plane, degrees)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.Rotate(coordinateSystem, plane, degrees)_img.jpg
new file mode 100644
index 00000000000..76fc2354f62
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.CoordinateSystem.Rotate(coordinateSystem, plane, degrees)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cuboid.Height.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cuboid.Height.md
index fc794c334d6..d7a6188241c 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cuboid.Height.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cuboid.Height.md
@@ -1,5 +1,8 @@
## In Depth
-Text note height is returned as a double. The height value is relative to the view scale.
+`Cuboid.Height` returns the height of the input cuboid. Note that if the cuboid has been transformed to a different coordinate system with a scale factor, this will return the original dimensions of the cuboid, not the world space dimensions. In other words, if you create a cuboid with a width (X-axis) of 10 and transform it to a CoordinateSystem with 2 times scaling in X, the width will still be 10.
+
+In the example below, we generate a cuboid by corners, and then use a `Cuboid.Height` node to find its height.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cuboid.Length.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cuboid.Length.md
index f1d5f60295b..b8cc41795bd 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cuboid.Length.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cuboid.Length.md
@@ -1,5 +1,8 @@
## In Depth
-Length returns the length of a curtain panel's boundary as a double. This can be used even if the curtain panel is not rectangular.
+`Cuboid.Length` returns the length of the input cuboid. Note that if the cuboid has been transformed to a different coordinate system with a scale factor, this will return the original dimensions of the cuboid, not the world space dimensions.
+
+In the example, we generate a cuboid by corners, and then use a `Cuboid.Length` node to find the length.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cuboid.Width.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cuboid.Width.md
index 1802cfa38fd..0f341d6f593 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cuboid.Width.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cuboid.Width.md
@@ -1,5 +1,8 @@
## In Depth
-Width returns the horizontal dimension of a rectangular curtain panel as a double.
+`Cuboid.Width` returns the width of the input cuboid.
+
+In the example below, we generate a cuboid by corners, and then use a `Cuboid.Width` node to find its width. Note that if the cuboid has been transformed to a different coordinate system with a scale factor, this will return the original dimension of the cuboid, not the world space dimensions.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction).dyn
new file mode 100644
index 00000000000..3188d1e554a
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction).dyn
@@ -0,0 +1,697 @@
+{
+ "Uuid": "13ee3969-93ac-403d-9b3e-81b375ad025e",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Curve.Extrude",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "de0ae7da0ebe4f2e84d1e722593dac58",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "b653ba86d58a4ac486c72be782a2a38c",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "777b8c9a8d6d48aa8bbbda01d2313335",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8359aaa8941c4748857a0aedf707091d",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "4eddf3e2f0874f2885f39dabdb9040be",
+ "Name": "Vector",
+ "Description": "Vector created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ByCoordinates@double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Vector by 3 Euclidean coordinates\n\nVector.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Vector"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "dbc6329eeca3488188c210d16065943a",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "efc890cd12d24e859c796601edd0b4aa",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 5.0
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "a656702ce89044ba94622b0f49ca51cc",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "3eff3d4e226240b19128201f449249ac",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "39132e8b636e4795b228802f41c3b83c",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "063e7b7219294e61940acadd766e60cf",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "510847d19ff7467aa4e2a11a5df448e8",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "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",
+ "Id": "187e9a0c104f43de8d0a297a189a0c0e",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "1332627a80264ddf87b3c1142a05ceee",
+ "Name": "points",
+ "Description": "Points for nurbs curve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e2b114ab8a5b45e0bebd4defc2b58efa",
+ "Name": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByControlPoints@Autodesk.DesignScript.Geometry.Point[]",
+ "Replication": "Auto",
+ "Description": "Create a BSplineCurve by using explicit control points. NOTE 1: BSplineCurves with deg=1 have G1 discontinuities, which cause problems for extrusion, sweep, and other operations. They should be avoided. Use a PolyCurve instead. NOTE 2: If the curve is periodic (closed), then the first and last points MUST be the same.\n\nNurbsCurve.ByControlPoints (points: Point[]): NurbsCurve"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "ad2f464ca237444180fd0ae89e4fcf85",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "55e7ef828c6a482685ec056e646d1a0e",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 5.0
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "1f1a533a5e0c48da969b56e1c484276a",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "d1e5f0d9f433489f96e79d1033593054",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "50c9fba9ffa542cd9155742d2e88e8f2",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "173c5c3a7df34a4893b69fd6648daffb",
+ "Name": "item2",
+ "Description": "Item Index #2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "dcb0c402b01a4061a67dbde996a7b1dd",
+ "Name": "item3",
+ "Description": "Item Index #3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "2147e19547b44307b1d908d92f399a9a",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "3385557dd4674357a32874515143fc38",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "e6ee27120f0c491eb6c7b0c9808a128e",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 10.0
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "a3e63cf989d34553b4e991bc10343699",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "ba321273c88348c495ed66ec59a0b375",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 15.0
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "600ee636bef6499aa907ba8f88618812",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "1e0709a194e2453a88bfb974b276b67e",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a73dd5f811e949b7b29b5159b6dc1be0",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "97fd765e333f483790fb5a0254f75e07",
+ "Name": "item2",
+ "Description": "Item Index #2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "fa796d987e464181a11206900e22cc94",
+ "Name": "item3",
+ "Description": "Item Index #3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "6eba145469ab455099299405b43c5bb2",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "90886ac3f6f24e29be7c4f75338aaade",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "42544b1bf25d4eebaeff4e419b63f36f",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 20.0
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "87d0e65d3c0e4a069b1bafe1efc96b66",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "747981ccb59f4e11bb0e147cc2692c3f",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d1b79951513446f8bda4a9aaf75e464b",
+ "Name": "direction",
+ "Description": "Vector to extrude along\n\nVector\nDefault value : Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "88f49b59f1794859a1e3bf109a95dea8",
+ "Name": "Surface",
+ "Description": "The extruded Surface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.Extrude@Autodesk.DesignScript.Geometry.Vector",
+ "Replication": "Auto",
+ "Description": "Extrudes a Curve in the specified direction, by the length of the input Vector\n\nCurve.Extrude (direction: Vector = Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)): Surface"
+ },
+ {
+ "ConcreteType": "Watch3DNodeModels.Watch3D, Watch3DNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "WasExecuted": true,
+ "Camera": {
+ "Name": "45f2c323-35f3-4590-ada0-76c3a6f0d784 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
+ },
+ "VariableInputPorts": true,
+ "Id": "45f2c32335f34590ada076c3a6f0d784",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "6b2e23deec964a34b68af22102baabe9",
+ "Name": "",
+ "Description": "Incoming geometry objects.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e6bcb8bee8a7475b9210aa55cbef3583",
+ "Name": "",
+ "Description": "Incoming geometry objects.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Shows a dynamic preview of geometry"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "4eddf3e2f0874f2885f39dabdb9040be",
+ "End": "d1b79951513446f8bda4a9aaf75e464b",
+ "Id": "4b6e8477aced42a5aad259dc6f836cf5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "efc890cd12d24e859c796601edd0b4aa",
+ "End": "8359aaa8941c4748857a0aedf707091d",
+ "Id": "184c9af6c3134f8097f2640d4a336a04",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "510847d19ff7467aa4e2a11a5df448e8",
+ "End": "1332627a80264ddf87b3c1142a05ceee",
+ "Id": "929b99c06b6a4efdbcf3013393f25f5d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e2b114ab8a5b45e0bebd4defc2b58efa",
+ "End": "747981ccb59f4e11bb0e147cc2692c3f",
+ "Id": "601cdf95765b453282740b5ac3d39359",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "55e7ef828c6a482685ec056e646d1a0e",
+ "End": "d1e5f0d9f433489f96e79d1033593054",
+ "Id": "9cb0b4ee6348455eb7cc5c7ec489dd22",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "55e7ef828c6a482685ec056e646d1a0e",
+ "End": "a73dd5f811e949b7b29b5159b6dc1be0",
+ "Id": "1ce89045745c4b42b9750094899235f6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "2147e19547b44307b1d908d92f399a9a",
+ "End": "3eff3d4e226240b19128201f449249ac",
+ "Id": "19c5e394afcb44eaa12d5325e15b4f5a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e6ee27120f0c491eb6c7b0c9808a128e",
+ "End": "50c9fba9ffa542cd9155742d2e88e8f2",
+ "Id": "cb164a4be8bd44a8baf788210334ce9f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e6ee27120f0c491eb6c7b0c9808a128e",
+ "End": "97fd765e333f483790fb5a0254f75e07",
+ "Id": "426a886d1c6a48b48c19d5ad0f3e85f5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ba321273c88348c495ed66ec59a0b375",
+ "End": "173c5c3a7df34a4893b69fd6648daffb",
+ "Id": "5992784325dd432ba69029585d2606c7",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ba321273c88348c495ed66ec59a0b375",
+ "End": "fa796d987e464181a11206900e22cc94",
+ "Id": "32eaa046b09e41899bf086d1e62e86f4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6eba145469ab455099299405b43c5bb2",
+ "End": "39132e8b636e4795b228802f41c3b83c",
+ "Id": "c21342f615ca4f45bae11957fb6cd15c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "42544b1bf25d4eebaeff4e419b63f36f",
+ "End": "dcb0c402b01a4061a67dbde996a7b1dd",
+ "Id": "0dea2e79fb01473f8c61c60a80d981aa",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "42544b1bf25d4eebaeff4e419b63f36f",
+ "End": "1e0709a194e2453a88bfb974b276b67e",
+ "Id": "e4322ae89fd34d69bb8a87cc06c634a0",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "3.0",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5874",
+ "RunType": "Manual",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -17.718215942382813,
+ "EyeY": 22.505508422851563,
+ "EyeZ": 19.34986686706543,
+ "LookX": 12.718215942382813,
+ "LookY": -11.505508422851563,
+ "LookZ": -27.34986686706543,
+ "UpX": 0.062325332313776016,
+ "UpY": 0.98901587724685669,
+ "UpZ": -0.13402673602104187
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "de0ae7da0ebe4f2e84d1e722593dac58",
+ "Name": "Vector.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 816.05897626112755,
+ "Y": 361.37982195845689
+ },
+ {
+ "Id": "dbc6329eeca3488188c210d16065943a",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 491.55897626112755,
+ "Y": 429.37982195845689
+ },
+ {
+ "Id": "a656702ce89044ba94622b0f49ca51cc",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 491.55897626112755,
+ "Y": 213.37982195845692
+ },
+ {
+ "Id": "187e9a0c104f43de8d0a297a189a0c0e",
+ "Name": "NurbsCurve.ByControlPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 816.05897626112755,
+ "Y": 213.37982195845689
+ },
+ {
+ "Id": "ad2f464ca237444180fd0ae89e4fcf85",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -0.94102373887244539,
+ "Y": 60.379821958456887
+ },
+ {
+ "Id": "1f1a533a5e0c48da969b56e1c484276a",
+ "Name": "List Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 231.55897626112755,
+ "Y": 106.37982195845689
+ },
+ {
+ "Id": "3385557dd4674357a32874515143fc38",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -0.94102373887244539,
+ "Y": 354.37982195845694
+ },
+ {
+ "Id": "a3e63cf989d34553b4e991bc10343699",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -0.94102373887244539,
+ "Y": 503.37982195845689
+ },
+ {
+ "Id": "600ee636bef6499aa907ba8f88618812",
+ "Name": "List Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 231.55897626112755,
+ "Y": 354.37982195845689
+ },
+ {
+ "Id": "90886ac3f6f24e29be7c4f75338aaade",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -0.94102373887244539,
+ "Y": 207.37982195845692
+ },
+ {
+ "Id": "87d0e65d3c0e4a069b1bafe1efc96b66",
+ "Name": "Curve.Extrude",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1255.2848664688427,
+ "Y": 215.36943620178042
+ },
+ {
+ "Id": "45f2c32335f34590ada076c3a6f0d784",
+ "Name": "Watch 3D",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1869.5281899109793,
+ "Y": 539.40504451038578
+ }
+ ],
+ "Annotations": [],
+ "X": 269.79386977689933,
+ "Y": 162.03399077731513,
+ "Zoom": 0.57937399427177749
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction).md
new file mode 100644
index 00000000000..def841db649
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction).md
@@ -0,0 +1,8 @@
+## In Depth
+`Curve.Extrude (curve, direction)` extrudes an input curve using an input vector to determine the direction of the extrusion. The length of the vector is used for the extrusion distance.
+
+In the example below, we first create a NurbsCurve using a `NurbsCurve.ByControlPoints` node, with a set of randomly generated points as the input. A code block is used to specify the X, Y, and Z components of a `Vector.ByCoordinates` node. This vector is then used as the `direction` input in a `Curve.Extrude` node.
+___
+## Example File
+
+![Curve.Extrude(curve, direction)](./Autodesk.DesignScript.Geometry.Curve.Extrude(curve,%20direction)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction)_img.jpg
new file mode 100644
index 00000000000..f5c9e2a21f0
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction, distance).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction, distance).dyn
new file mode 100644
index 00000000000..15b471eac39
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction, distance).dyn
@@ -0,0 +1,623 @@
+{
+ "Uuid": "28c43575-a578-4830-ad47-96bba177152d",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Curve.Extrude",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "774a899f07ef4aefbb678d99911818cb",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "3221298c289945ad8cac9888700c8639",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 5.0
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "e1125e894085469c8f3a26e50446f605",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "650e1051a10c4387a9db080925555d51",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ccd63de4d01e47e8b4683d5bf5f0f420",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "3d911bbbd10a48d08c76806d7556e113",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8dcb858f3393489297c245f99b8e2436",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "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",
+ "Id": "d422e3a717a948568a253d0e3c7d735b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "070f3b8de56946feba02e3f43bc020c1",
+ "Name": "points",
+ "Description": "Points for nurbs curve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "7c3ef04e314a44c1878ca3428833c959",
+ "Name": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByControlPoints@Autodesk.DesignScript.Geometry.Point[]",
+ "Replication": "Auto",
+ "Description": "Create a BSplineCurve by using explicit control points. NOTE 1: BSplineCurves with deg=1 have G1 discontinuities, which cause problems for extrusion, sweep, and other operations. They should be avoided. Use a PolyCurve instead. NOTE 2: If the curve is periodic (closed), then the first and last points MUST be the same.\n\nNurbsCurve.ByControlPoints (points: Point[]): NurbsCurve"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "bbf2f09268a64c9d862369aff1e849c1",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "4d002a602637408cb3e4bc37434476eb",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 5.0
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "39530b19dca343f28812120ad044f8a8",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "6cf2fda0d55d4d4eac34c750c041c325",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "9d3b49669f4c4e8b949675683e3c7120",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "fd36df71d60d4bfe871e4ed4fae9d225",
+ "Name": "item2",
+ "Description": "Item Index #2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "44d5cf4320e54778b5e95ebe626456d0",
+ "Name": "item3",
+ "Description": "Item Index #3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "b2f09c67d32740098a080183f591f871",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "ceb77e36710c4b50af5fcb5a8eff43e6",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "bb694775b82045d3a55666a22ba25c48",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 10.0
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "ddbed6a570c44361aaa29b611fdd9e43",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "93c6c67d6e344fa886536f9e6b2e0aff",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 15.0
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "0e7bf8a00a044775a9e0b6b4339413dc",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "64e193e0ef2348c6810f619267ca752f",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ddc4c83fc78146de919cbccccb74c73f",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1c2d3d5a71934bb6805aa9284c1e48a4",
+ "Name": "item2",
+ "Description": "Item Index #2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5db07c7ba44c40dfb4110b1f2c588fdd",
+ "Name": "item3",
+ "Description": "Item Index #3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "d5cf0939e029467ab2ab4d1a6b41fee7",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "06a171262db840acb6d6cef745210c7a",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "a311838bc3434db5ba9306c02462a8ab",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 20.0
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7f48aa6381de4526b803d4f6e4ed0400",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "a8871ad67d08434d8fbe0be1e9ceeff3",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "04ba61743d504bc3893f312399c7fef7",
+ "Name": "direction",
+ "Description": "Vector to extrude along\n\nVector\nDefault value : Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a4d1748f7ea24c4a91a9427576d8cae2",
+ "Name": "distance",
+ "Description": "Distance to extrude\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "54092b2e9d754927b362d40d6e548dc8",
+ "Name": "Surface",
+ "Description": "The extruded Surface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.Extrude@Autodesk.DesignScript.Geometry.Vector,double",
+ "Replication": "Auto",
+ "Description": "Extrudes a Curve in the specified direction, by the specified distance\n\nCurve.Extrude (direction: Vector = Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1), distance: double = 1): Surface"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "4dea0161edac45798c82743cf8b11267",
+ "NodeType": "FunctionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "fc65b203e1f34add9a584909fcd8d0d5",
+ "Name": "Vector",
+ "Description": "Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ZAxis",
+ "Replication": "Auto",
+ "Description": "Get the canonical Z axis Vector (0,0,1)\n\nVector.ZAxis ( ): Vector"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "3221298c289945ad8cac9888700c8639",
+ "End": "a4d1748f7ea24c4a91a9427576d8cae2",
+ "Id": "2f764b4dc20c4eb08daee1f51e23ce80",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8dcb858f3393489297c245f99b8e2436",
+ "End": "070f3b8de56946feba02e3f43bc020c1",
+ "Id": "e45d1146f47d44f5baa6253e80508282",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "7c3ef04e314a44c1878ca3428833c959",
+ "End": "a8871ad67d08434d8fbe0be1e9ceeff3",
+ "Id": "974952789aac427792836f209f575bef",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4d002a602637408cb3e4bc37434476eb",
+ "End": "6cf2fda0d55d4d4eac34c750c041c325",
+ "Id": "6ada976ea165445ebfe4cdbb48d27439",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4d002a602637408cb3e4bc37434476eb",
+ "End": "ddc4c83fc78146de919cbccccb74c73f",
+ "Id": "042e386fe1d8426cacbfd20b43f2c75d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b2f09c67d32740098a080183f591f871",
+ "End": "650e1051a10c4387a9db080925555d51",
+ "Id": "108bc94cacc545a98dea795425579e34",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "bb694775b82045d3a55666a22ba25c48",
+ "End": "9d3b49669f4c4e8b949675683e3c7120",
+ "Id": "5b3049bbf2c94bd58aaa1b08f038eed4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "bb694775b82045d3a55666a22ba25c48",
+ "End": "1c2d3d5a71934bb6805aa9284c1e48a4",
+ "Id": "b7926835c3ee49ae8bad8592a31f1264",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "93c6c67d6e344fa886536f9e6b2e0aff",
+ "End": "fd36df71d60d4bfe871e4ed4fae9d225",
+ "Id": "28ccd473bb504fa8958319db8a415358",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "93c6c67d6e344fa886536f9e6b2e0aff",
+ "End": "5db07c7ba44c40dfb4110b1f2c588fdd",
+ "Id": "6e1828880f714ea69d3b831058928f21",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d5cf0939e029467ab2ab4d1a6b41fee7",
+ "End": "ccd63de4d01e47e8b4683d5bf5f0f420",
+ "Id": "bebca5ad1aea4313a237f1a271c50aad",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a311838bc3434db5ba9306c02462a8ab",
+ "End": "44d5cf4320e54778b5e95ebe626456d0",
+ "Id": "73215385dd6d41ca9cd8e6f1201d1e26",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a311838bc3434db5ba9306c02462a8ab",
+ "End": "64e193e0ef2348c6810f619267ca752f",
+ "Id": "b77b54693ada457e8ea14df0d4f7953b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "fc65b203e1f34add9a584909fcd8d0d5",
+ "End": "04ba61743d504bc3893f312399c7fef7",
+ "Id": "42eee64fc6334a94920db0ec7b73287d",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "3.0",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5874",
+ "RunType": "Manual",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -17.718215942382813,
+ "EyeY": 22.505508422851563,
+ "EyeZ": 19.34986686706543,
+ "LookX": 12.718215942382813,
+ "LookY": -11.505508422851563,
+ "LookZ": -27.34986686706543,
+ "UpX": 0.062325332313776016,
+ "UpY": 0.98901587724685669,
+ "UpZ": -0.13402673602104187
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "774a899f07ef4aefbb678d99911818cb",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 980.10116839762622,
+ "Y": 550.03783382789322
+ },
+ {
+ "Id": "e1125e894085469c8f3a26e50446f605",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 655.60116839762622,
+ "Y": 256.03783382789322
+ },
+ {
+ "Id": "d422e3a717a948568a253d0e3c7d735b",
+ "Name": "NurbsCurve.ByControlPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 980.10116839762622,
+ "Y": 256.03783382789322
+ },
+ {
+ "Id": "bbf2f09268a64c9d862369aff1e849c1",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 163.10116839762622,
+ "Y": 103.03783382789322
+ },
+ {
+ "Id": "39530b19dca343f28812120ad044f8a8",
+ "Name": "List Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 395.60116839762622,
+ "Y": 149.03783382789319
+ },
+ {
+ "Id": "ceb77e36710c4b50af5fcb5a8eff43e6",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 163.10116839762622,
+ "Y": 250.03783382789322
+ },
+ {
+ "Id": "ddbed6a570c44361aaa29b611fdd9e43",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 163.10116839762622,
+ "Y": 545.03783382789334
+ },
+ {
+ "Id": "0e7bf8a00a044775a9e0b6b4339413dc",
+ "Name": "List Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 395.60116839762622,
+ "Y": 397.03783382789322
+ },
+ {
+ "Id": "06a171262db840acb6d6cef745210c7a",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 163.10116839762622,
+ "Y": 398.03783382789322
+ },
+ {
+ "Id": "7f48aa6381de4526b803d4f6e4ed0400",
+ "Name": "Curve.Extrude",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1365.6011683976262,
+ "Y": 369.03783382789322
+ },
+ {
+ "Id": "4dea0161edac45798c82743cf8b11267",
+ "Name": "Vector.ZAxis",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 980.10116839762622,
+ "Y": 403.03783382789322
+ }
+ ],
+ "Annotations": [],
+ "X": -54.486267154012694,
+ "Y": -60.487132490180585,
+ "Zoom": 0.76582939285155194
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction, distance).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction, distance).md
new file mode 100644
index 00000000000..4ac0c2828e7
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction, distance).md
@@ -0,0 +1,8 @@
+## In Depth
+`Curve.Extrude (curve, direction, distance)` extrudes an input curve using an input vector to determine the direction of the extrusion. A separate `distance` input is used for the extrusion distance.
+
+In the example below, we first create a NurbsCurve using a `NurbsCurve.ByControlPoints` node, with a set of randomly generated points as the input. A code block is used to specify the X, Y, and Z components of a `Vector.ByCoordinates` node. This vector is then used as the direction input in an `Curve.Extrude` node while a `number slider` is used to control the `distance` input.
+___
+## Example File
+
+![Curve.Extrude(curve, direction, distance)](./Autodesk.DesignScript.Geometry.Curve.Extrude(curve,%20direction,%20distance)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction, distance)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction, distance)_img.jpg
new file mode 100644
index 00000000000..fe6eb98d751
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, direction, distance)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, distance).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, distance).dyn
new file mode 100644
index 00000000000..8e1571f520a
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, distance).dyn
@@ -0,0 +1,578 @@
+{
+ "Uuid": "ca215674-7c3d-44ca-adbe-b65991b66b19",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Curve.Extrude",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "7d113d23afb54822bd422381dabab849",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "a893068488684662b5ee7af26bae9c42",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 5.0
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "10ecc4a2ae844daf9e4303966ec718c9",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "f128f6db21f44ea8b52516dfd2929334",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "529d233f94394935b4e335951defb4ed",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1d714bedb7844fdfad3d115163adb8e1",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "3d9ca9356a624be283b1d96a746a0a07",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "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",
+ "Id": "2833e80082f94259899f7a7323830c4b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "ad4b24a5de574948817ef8239b87068c",
+ "Name": "points",
+ "Description": "Points for nurbs curve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "7893aa81515b4894a28e2217a884a824",
+ "Name": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByControlPoints@Autodesk.DesignScript.Geometry.Point[]",
+ "Replication": "Auto",
+ "Description": "Create a BSplineCurve by using explicit control points. NOTE 1: BSplineCurves with deg=1 have G1 discontinuities, which cause problems for extrusion, sweep, and other operations. They should be avoided. Use a PolyCurve instead. NOTE 2: If the curve is periodic (closed), then the first and last points MUST be the same.\n\nNurbsCurve.ByControlPoints (points: Point[]): NurbsCurve"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "af67f81ad6b341808aef32162ae19ef8",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "b5a44e42f15d48ff928c1ad066aa84f0",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 5.0
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "ef993fef7c464f45911f301c9d37d17b",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "da2478f8414847cbaa64e7ada1f96310",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "3fb9ae71f183403d941df3a48bafb44b",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "82ae98cc99164538bef97349c862f452",
+ "Name": "item2",
+ "Description": "Item Index #2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ed1e0da9cd9b4db6858656fa280606fd",
+ "Name": "item3",
+ "Description": "Item Index #3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "bcecbeb50ddb4b158145386dd388e635",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "1bad47b3ef5a45e9b8496668ca3b49e6",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "8fc8deda86f84dd98fa427550384a873",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 10.0
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "dff3e3a0b6ad49f6bee079c279f64216",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "67cc2a231f264de99f2a38539ef32907",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 15.0
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "27636f9e08bf4c859037e8dbc4912629",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "7d67ba72dcea45d4ad454406cf150868",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "c66f25593cd942a38b30a961fa45c635",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1969bc1e60e94ac697018254f99cf00d",
+ "Name": "item2",
+ "Description": "Item Index #2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "aab689e2fe5147358518ebe4921de3b8",
+ "Name": "item3",
+ "Description": "Item Index #3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e4eb6cc3b5d44a91b3de7df4b3583138",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "968b8a50101045d5822288abe8cca8f9",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "f388a75c083e425cb29c30a455e0f347",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 20.0
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "92218af415a54ff296b1f8284254d252",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "10d405422bbf4ae8aa75477cd484699b",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a7dc7d39d47a4c44981c57629dd9d3c5",
+ "Name": "distance",
+ "Description": "The distance to extrude the curve\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "868c622742cd4759b61347f1df3cea13",
+ "Name": "Surface",
+ "Description": "The extruded Surface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.Extrude@double",
+ "Replication": "Auto",
+ "Description": "Extrudes a Curve in the normal Vector direction\n\nCurve.Extrude (distance: double = 1): Surface"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "a893068488684662b5ee7af26bae9c42",
+ "End": "a7dc7d39d47a4c44981c57629dd9d3c5",
+ "Id": "3cd109ebc7ef4ef98492d99c05a419b0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "3d9ca9356a624be283b1d96a746a0a07",
+ "End": "ad4b24a5de574948817ef8239b87068c",
+ "Id": "f0aaf200802c4148b4f847f6bf98c88d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "7893aa81515b4894a28e2217a884a824",
+ "End": "10d405422bbf4ae8aa75477cd484699b",
+ "Id": "87ded8640af249b9a3f52a3a536c8547",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b5a44e42f15d48ff928c1ad066aa84f0",
+ "End": "da2478f8414847cbaa64e7ada1f96310",
+ "Id": "e7ea401b552947e8b103834918907b6d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b5a44e42f15d48ff928c1ad066aa84f0",
+ "End": "c66f25593cd942a38b30a961fa45c635",
+ "Id": "f1282c6e79544ce6b52c575fe633418b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "bcecbeb50ddb4b158145386dd388e635",
+ "End": "f128f6db21f44ea8b52516dfd2929334",
+ "Id": "34d4f40435264f3bb878c681779c1795",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8fc8deda86f84dd98fa427550384a873",
+ "End": "3fb9ae71f183403d941df3a48bafb44b",
+ "Id": "bb062e396a154d5492874973bfab41c5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8fc8deda86f84dd98fa427550384a873",
+ "End": "1969bc1e60e94ac697018254f99cf00d",
+ "Id": "6365b54fb9244cba9e3967a3b82213b6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "67cc2a231f264de99f2a38539ef32907",
+ "End": "82ae98cc99164538bef97349c862f452",
+ "Id": "44ed550c6dfa41e8ac82a392c6e9f0f4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "67cc2a231f264de99f2a38539ef32907",
+ "End": "aab689e2fe5147358518ebe4921de3b8",
+ "Id": "8f0c0370e6014a439a566f01596c35ef",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e4eb6cc3b5d44a91b3de7df4b3583138",
+ "End": "529d233f94394935b4e335951defb4ed",
+ "Id": "a9b79be7b16248f2913b7dafbe2eeaaa",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f388a75c083e425cb29c30a455e0f347",
+ "End": "ed1e0da9cd9b4db6858656fa280606fd",
+ "Id": "41138fabd273400988e06e72c50fe5a4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f388a75c083e425cb29c30a455e0f347",
+ "End": "7d67ba72dcea45d4ad454406cf150868",
+ "Id": "fdd809167acd48eba0d2ff470b57602f",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "3.0",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5874",
+ "RunType": "Manual",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -17.718215942382813,
+ "EyeY": 22.505508422851563,
+ "EyeZ": 19.34986686706543,
+ "LookX": 12.718215942382813,
+ "LookY": -11.505508422851563,
+ "LookZ": -27.34986686706543,
+ "UpX": 0.062325332313776016,
+ "UpY": 0.98901587724685669,
+ "UpZ": -0.13402673602104187
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "7d113d23afb54822bd422381dabab849",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 937.30174332344222,
+ "Y": 403.03783382789317
+ },
+ {
+ "Id": "10ecc4a2ae844daf9e4303966ec718c9",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 612.80174332344222,
+ "Y": 255.03783382789322
+ },
+ {
+ "Id": "2833e80082f94259899f7a7323830c4b",
+ "Name": "NurbsCurve.ByControlPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 937.30174332344222,
+ "Y": 255.03783382789319
+ },
+ {
+ "Id": "af67f81ad6b341808aef32162ae19ef8",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 120.30174332344222,
+ "Y": 102.03783382789317
+ },
+ {
+ "Id": "ef993fef7c464f45911f301c9d37d17b",
+ "Name": "List Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 352.80174332344222,
+ "Y": 148.03783382789317
+ },
+ {
+ "Id": "1bad47b3ef5a45e9b8496668ca3b49e6",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 120.30174332344222,
+ "Y": 249.03783382789319
+ },
+ {
+ "Id": "dff3e3a0b6ad49f6bee079c279f64216",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 120.30174332344222,
+ "Y": 544.03783382789311
+ },
+ {
+ "Id": "27636f9e08bf4c859037e8dbc4912629",
+ "Name": "List Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 352.80174332344222,
+ "Y": 396.03783382789317
+ },
+ {
+ "Id": "968b8a50101045d5822288abe8cca8f9",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 120.30174332344222,
+ "Y": 397.03783382789322
+ },
+ {
+ "Id": "92218af415a54ff296b1f8284254d252",
+ "Name": "Curve.Extrude",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1322.8017433234422,
+ "Y": 312.03783382789322
+ }
+ ],
+ "Annotations": [],
+ "X": -11.654948242121804,
+ "Y": 62.251722825624,
+ "Zoom": 0.76582939285155194
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, distance).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, distance).md
new file mode 100644
index 00000000000..fd07215110b
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, distance).md
@@ -0,0 +1,8 @@
+## In Depth
+`Curve.Extrude (curve, distance)` extrudes an input curve using an input number to determine the distance of the extrusion. The direction of the normal vector along the curve is used for the extrusion direction.
+
+In the example below, we first create a NurbsCurve by using a `NurbsCurve.ByControlPoints` node, with a set of randomly generated points as the input. Then, we use a `Curve.Extrude` node to extrude the curve. A number slider is used as the `distance` input in the `Curve.Extrude` node.
+___
+## Example File
+
+![Curve.Extrude(curve, distance)](./Autodesk.DesignScript.Geometry.Curve.Extrude(curve,%20distance)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, distance)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, distance)_img.jpg
new file mode 100644
index 00000000000..e5193da8e33
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Extrude(curve, distance)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction).dyn
new file mode 100644
index 00000000000..20effd6aab6
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction).dyn
@@ -0,0 +1,614 @@
+{
+ "Uuid": "011cb917-361e-42bd-9a41-b2011d847a69",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "9524180d28934338815d3cfa2e25eb11",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "5",
+ "MaximumValue": 10.0,
+ "MinimumValue": 3.0,
+ "StepValue": 1.0,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "36547c2470ae4c23bbfa5c3801acbfe2",
+ "Name": "Boolean",
+ "Type": "boolean",
+ "Type2": "boolean",
+ "Value": "true",
+ "Description": "Enables selection between True and False",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "dc37b524c963416282cb38015c5ef93b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "26f53f47c1d64a578adaa44bfe27b2cf",
+ "Name": "amount",
+ "Description": "Amount of random numbers the result list will contain.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "892b7c54c61149afb99f917f74fa2ce5",
+ "Name": "number",
+ "Description": "List of random numbers between 0 and 1.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
+ "Replication": "Auto",
+ "Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 10.0,
+ "MinimumValue": 3.0,
+ "StepValue": 1.0,
+ "Id": "9524180d28934338815d3cfa2e25eb11",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "1cc27d196f204ae2976dbe15d289bbea",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 5.0
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "5ba25128ff164e9089c118824cd12864",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "a6d2055755f0423ba5053e4133493321",
+ "Name": "coordinateSystem",
+ "Description": "Coordinate system to build the point in\n\nCoordinateSystem\nDefault value : Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "38fd3d2667074291bdc5f7e1199b1cd7",
+ "Name": "angle",
+ "Description": "The angle is the rotation from the X axis in the coordinate system around the Z axis in degrees\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "4619425399cb40e9a8348034f4009c3d",
+ "Name": "elevation",
+ "Description": "The elevation of the point above the XY plane\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "e2ca0bd5af74440395c056728df29232",
+ "Name": "radius",
+ "Description": "The distance from the origin of the coordinate system\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "dc22d4c5ddc046b7825aa65142020dc2",
+ "Name": "Point",
+ "Description": "Point at cylindrical coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCylindricalCoordinates@Autodesk.DesignScript.Geometry.CoordinateSystem,double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point in the given coordinate system given its position in cylindrical coordinates.\n\nPoint.ByCylindricalCoordinates (coordinateSystem: CoordinateSystem = Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0), angle: double = 0, elevation: double = 0, radius: double = 1): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "41315d48213648a6a80f2c0c3f5511b9",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "9498335ed1a74b6585ebcb378fcf5bf2",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "64be9fc6e2c84dd1b8428f941482b47a",
+ "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",
+ "Code": "x*5;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "02ec31d08f904e13b906b52755b62b5d",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "485be0318144437a94496cdbfa75cde4",
+ "Name": "a",
+ "Description": "a",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "285c263e8d2247f59a263f6c3204a3c7",
+ "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",
+ "Code": "0..360..360/(a-1);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d26b8392f3514d80a96aa0776587478e",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "fe636b6c332c4a17a8d71507b1a4aece",
+ "Name": "points",
+ "Description": "Points for nurbs curve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "45ae31a15da944fa859cea31f40f8c13",
+ "Name": "closeCurve",
+ "Description": "bool\nDefault value : false",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "5c7e7d06c15d4167babf6321804acb3c",
+ "Name": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByPoints@Autodesk.DesignScript.Geometry.Point[],bool",
+ "Replication": "Auto",
+ "Description": "Create a BSplineCurve by interpolating between points.\n\nNurbsCurve.ByPoints (points: Point[], closeCurve: bool = false): NurbsCurve"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.BoolSelector, CoreNodeModels",
+ "Id": "36547c2470ae4c23bbfa5c3801acbfe2",
+ "NodeType": "BooleanInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "a528f5c7becd463d8d26d2bd289019ba",
+ "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.CodeBlockNodeModel, DynamoCore",
+ "Id": "4ee4a60954aa483db3f6e218c544892b",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "04312cfaebf64c3e81b0f6da0ada1bd4",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "39a221ceeb1b426ab9a1fd3a70a0de79",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "bbd70d4bc50142faba3fc6a3f94870cb",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "3;\n-2;\n1;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "3a9b58e14e0f4277b46132b65454b265",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "0a2352a2de6f4fc4b823e9a63bd2dd2b",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "049b9f9d2641476b886ca2bbfaf9ac3f",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "4088dbbde833410491db19cdc8cdcd94",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "cfbb511fa47e42a596aafd33fabdc546",
+ "Name": "Vector",
+ "Description": "Vector created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ByCoordinates@double,double,double",
+ "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.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "b8c8bf808d7b4c44804a5af124d0da10",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "bb2b7b2c64904f7bb5152b5ffbd18f16",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "e680cf53587c43869be6ce8f5800e01b",
+ "Name": "direction",
+ "Description": "Vector to extrude along\n\nVector\nDefault value : Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "a347750f4afb4ab29b74f31059cf26cd",
+ "Name": "Solid",
+ "Description": "The extruded Solid",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid@Autodesk.DesignScript.Geometry.Vector",
+ "Replication": "Auto",
+ "Description": "Extrudes a Curve in the specified direction, by the length of the input Vector. Curve must be closed.\n\nCurve.ExtrudeAsSolid (direction: Vector = Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)): Solid"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "892b7c54c61149afb99f917f74fa2ce5",
+ "End": "9498335ed1a74b6585ebcb378fcf5bf2",
+ "Id": "ba8b3dbb11c049178994262673e671dc",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "1cc27d196f204ae2976dbe15d289bbea",
+ "End": "26f53f47c1d64a578adaa44bfe27b2cf",
+ "Id": "6d754441cb444a4a8b88dcbc3af8f8cd",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "1cc27d196f204ae2976dbe15d289bbea",
+ "End": "485be0318144437a94496cdbfa75cde4",
+ "Id": "aa7a7579eeed4f1cb5e426c444eb356e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "dc22d4c5ddc046b7825aa65142020dc2",
+ "End": "fe636b6c332c4a17a8d71507b1a4aece",
+ "Id": "7df3b32dd2514d8cb4f9047f271fc4ef",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "64be9fc6e2c84dd1b8428f941482b47a",
+ "End": "e2ca0bd5af74440395c056728df29232",
+ "Id": "7d4f6f32869c4f3aa9f7f09655d9a39d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "285c263e8d2247f59a263f6c3204a3c7",
+ "End": "38fd3d2667074291bdc5f7e1199b1cd7",
+ "Id": "3ca59d20b62f4c75b6420c507e22fb78",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "5c7e7d06c15d4167babf6321804acb3c",
+ "End": "bb2b7b2c64904f7bb5152b5ffbd18f16",
+ "Id": "421f6c8b5f62467498aa4304611d00dc",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a528f5c7becd463d8d26d2bd289019ba",
+ "End": "45ae31a15da944fa859cea31f40f8c13",
+ "Id": "e60c2782ef6b4fd381a6c380726ce4cc",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "04312cfaebf64c3e81b0f6da0ada1bd4",
+ "End": "0a2352a2de6f4fc4b823e9a63bd2dd2b",
+ "Id": "d0e84d8dcc2b4cbcb4eb822f1b3b21fe",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "39a221ceeb1b426ab9a1fd3a70a0de79",
+ "End": "049b9f9d2641476b886ca2bbfaf9ac3f",
+ "Id": "b2ff171964df4af89e07be072e808ce5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "bbd70d4bc50142faba3fc6a3f94870cb",
+ "End": "4088dbbde833410491db19cdc8cdcd94",
+ "Id": "975910ac6ec84dc58a1d2c78a8d4abf5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "cfbb511fa47e42a596aafd33fabdc546",
+ "End": "e680cf53587c43869be6ce8f5800e01b",
+ "Id": "8657c4d874944ac1820a685b55eb297f",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5874",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -14.798925399780273,
+ "EyeY": 12.959871292114258,
+ "EyeZ": 2.1644556522369385,
+ "LookX": 19.251585006713867,
+ "LookY": -9.0115299224853516,
+ "LookZ": -2.6407701969146729,
+ "UpX": 0.21443183720111847,
+ "UpY": 0.97629588842391968,
+ "UpZ": -0.02941388264298439
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "dc37b524c963416282cb38015c5ef93b",
+ "Name": "Math.RandomList",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -470.28518325032405,
+ "Y": 151.1223811865971
+ },
+ {
+ "Id": "9524180d28934338815d3cfa2e25eb11",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -918.285183250324,
+ "Y": 77.122381186597039
+ },
+ {
+ "Id": "5ba25128ff164e9089c118824cd12864",
+ "Name": "Point.ByCylindricalCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 204.71481674967595,
+ "Y": 9.2948811865970242
+ },
+ {
+ "Id": "41315d48213648a6a80f2c0c3f5511b9",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -149.28518325032405,
+ "Y": 151.1223811865971
+ },
+ {
+ "Id": "02ec31d08f904e13b906b52755b62b5d",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -149.28518325032405,
+ "Y": 3.1223811865970106
+ },
+ {
+ "Id": "d26b8392f3514d80a96aa0776587478e",
+ "Name": "NurbsCurve.ByPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 608.714816749676,
+ "Y": 147.29488118659702
+ },
+ {
+ "Id": "36547c2470ae4c23bbfa5c3801acbfe2",
+ "Name": "Boolean",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 204.71481674967595,
+ "Y": 257.294881186597
+ },
+ {
+ "Id": "4ee4a60954aa483db3f6e218c544892b",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 204.71481674967595,
+ "Y": 404.777381186597
+ },
+ {
+ "Id": "3a9b58e14e0f4277b46132b65454b265",
+ "Name": "Vector.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 608.714816749676,
+ "Y": 325.294881186597
+ },
+ {
+ "Id": "b8c8bf808d7b4c44804a5af124d0da10",
+ "Name": "Curve.ExtrudeAsSolid",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 968.714816749676,
+ "Y": 219.29488118659702
+ }
+ ],
+ "Annotations": [],
+ "X": 533.3771123367012,
+ "Y": 161.54313568424323,
+ "Zoom": 0.601517368536526
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction).md
new file mode 100644
index 00000000000..56ebff09bbe
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction).md
@@ -0,0 +1,8 @@
+## In Depth
+`Curve.ExtrudeAsSolid (curve, direction)` extrudes an input closed, planar curve using an input vector to determine the direction of the extrusion. The length of the vector is used for the extrusion distance. This node caps the ends of the extrusion to create a solid.
+
+In the example below, we first create a NurbsCurve by using a `NurbsCurve.ByPoints` node, with a set of randomly generated points as the input. A code block is used to specify the X, Y, and Z components of a `Vector.ByCoordinates` node. This vector is then used as the direction input in an `Curve.ExtrudeAsSolid` node.
+___
+## Example File
+
+![Curve.ExtrudeAsSolid(curve, direction)](./Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve,%20direction)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction)_img.jpg
new file mode 100644
index 00000000000..7112b572018
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(direction, distance).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction, distance).dyn
similarity index 64%
rename from doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(direction, distance).dyn
rename to doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction, distance).dyn
index 1c3496fab20..f011593d557 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(direction, distance).dyn
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction, distance).dyn
@@ -1,52 +1,57 @@
{
- "Uuid": "3c9d0464-8643-5ffe-96e5-ab1769818209",
+ "Uuid": "4e4ad5e7-fc72-4da6-ad1c-38ed1df31502",
"IsCustomNode": false,
"Description": "",
- "Name": "ExtrudeAsSolid",
+ "Name": "Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid",
"ElementResolver": {
"ResolutionMap": {}
},
"Inputs": [
{
- "Id": "4fd25c7abb42406eb64183323b390da8",
+ "Id": "be6e2ec9ca5a4e1da9d3c3290dc14962",
"Name": "Number Slider",
"Type": "number",
+ "Type2": "number",
"Value": "5",
"MaximumValue": 10.0,
"MinimumValue": 3.0,
"StepValue": 1.0,
"NumberType": "Double",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
},
{
- "Id": "5b4d90107c974168b1d6053bc480a259",
+ "Id": "c95def157d304157aaa6fb0d671482a4",
"Name": "Boolean",
"Type": "boolean",
+ "Type2": "boolean",
"Value": "true",
- "Description": "Selection between a true and false."
+ "Description": "Enables selection between True and False",
+ "SelectedIndex": 0
},
{
- "Id": "4f3b2521746a4a8c8e5c2e438dacf042",
+ "Id": "baf4c9cc2a084023b7955b1bf387d5c2",
"Name": "Number Slider",
"Type": "number",
+ "Type2": "number",
"Value": "2",
"MaximumValue": 10.0,
"MinimumValue": -10.0,
"StepValue": 0.1,
"NumberType": "Double",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
}
],
"Outputs": [],
"Nodes": [
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "9d0ab23019c44c5db1d96f2d0ed1d7fc",
"NodeType": "FunctionNode",
- "FunctionSignature": "DSCore.Math.RandomList@int",
- "Id": "7d7435f4dcd14a1bb0693f701ecda485",
"Inputs": [
{
- "Id": "1075de1f95ac45fba07ec59697e33f72",
+ "Id": "9bdc70964b134d31a83500e7dbddd355",
"Name": "amount",
"Description": "Amount of random numbers the result list will contain.\n\nint",
"UsingDefaultValue": false,
@@ -57,7 +62,7 @@
],
"Outputs": [
{
- "Id": "3639a2322ae041a4847242aa85530edc",
+ "Id": "f8c002e9cd524ad7bdedf1d40abe4aba",
"Name": "number",
"Description": "List of random numbers between 0 and 1.",
"UsingDefaultValue": false,
@@ -66,22 +71,22 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
"Replication": "Auto",
"Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
},
{
"ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
- "NodeType": "NumberInputNode",
"NumberType": "Double",
"MaximumValue": 10.0,
"MinimumValue": 3.0,
"StepValue": 1.0,
- "InputValue": 5.0,
- "Id": "4fd25c7abb42406eb64183323b390da8",
+ "Id": "be6e2ec9ca5a4e1da9d3c3290dc14962",
+ "NodeType": "NumberInputNode",
"Inputs": [],
"Outputs": [
{
- "Id": "de5a5572a9f24a40be11dce39fe4cc66",
+ "Id": "4f8d1b18aa30486db73f27f90a3db527",
"Name": "",
"Description": "Double",
"UsingDefaultValue": false,
@@ -91,25 +96,25 @@
}
],
"Replication": "Disabled",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "InputValue": 5.0
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "12bc0b9330c042f89151dca283f52527",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCylindricalCoordinates@Autodesk.DesignScript.Geometry.CoordinateSystem,double,double,double",
- "Id": "11d18d7068564c249a8beb42837e0216",
"Inputs": [
{
- "Id": "a3dc374f705e47f285651d4cccae0d23",
- "Name": "cs",
- "Description": "The coordinate system to build the point in\n\nCoordinateSystem\nDefault value : Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)",
+ "Id": "6b392df1929444119df9dba1f827e25c",
+ "Name": "coordinateSystem",
+ "Description": "Coordinate system to build the point in\n\nCoordinateSystem\nDefault value : Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "0ec92e3c3d6e41328ffb4708da49da0b",
+ "Id": "4613711d92ca4090b1a162b31bf36cf2",
"Name": "angle",
"Description": "The angle is the rotation from the X axis in the coordinate system around the Z axis in degrees\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
@@ -118,7 +123,7 @@
"KeepListStructure": false
},
{
- "Id": "bfc136db65fd44d6ba33a88114c73ea8",
+ "Id": "aa0431026fef407d9a3844cdd6d53744",
"Name": "elevation",
"Description": "The elevation of the point above the XY plane\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
@@ -127,7 +132,7 @@
"KeepListStructure": false
},
{
- "Id": "245b859a0a544c3a9f0cf94513e1c6d4",
+ "Id": "cafcc71e52c145498c1d99eb7b429dac",
"Name": "radius",
"Description": "The distance from the origin of the coordinate system\n\ndouble\nDefault value : 1",
"UsingDefaultValue": true,
@@ -138,26 +143,26 @@
],
"Outputs": [
{
- "Id": "fda144f18fd24f5b8e6b3a6927e2e1e7",
+ "Id": "ba2b2985d15d4e9e93c2fa359844e2fd",
"Name": "Point",
- "Description": "A new Point",
+ "Description": "Point at cylindrical coordinates",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCylindricalCoordinates@Autodesk.DesignScript.Geometry.CoordinateSystem,double,double,double",
"Replication": "Auto",
- "Description": "Form a Point in the given coordinate system given its position in cylindrical coordinates.\n\nPoint.ByCylindricalCoordinates (cs: CoordinateSystem = Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0), angle: double = 0, elevation: double = 0, radius: double = 1): Point"
+ "Description": "Form a Point in the given coordinate system given its position in cylindrical coordinates.\n\nPoint.ByCylindricalCoordinates (coordinateSystem: CoordinateSystem = Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0), angle: double = 0, elevation: double = 0, radius: double = 1): Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "ce85d6604aac4a84a831506af37eef21",
"NodeType": "CodeBlockNode",
- "Code": "x*5;",
- "Id": "7ba7b96cdf3e43f2a51ba6620e80f8e9",
"Inputs": [
{
- "Id": "38d2004a5a6740b88f799a831251eb74",
+ "Id": "c00be9b45c8246f888b9b19fbb36f74f",
"Name": "x",
"Description": "x",
"UsingDefaultValue": false,
@@ -168,7 +173,7 @@
],
"Outputs": [
{
- "Id": "e23e9d989e7c4aea8ab98a273cee6ff3",
+ "Id": "e4981fcbc22a4624834259b67e4ad6c4",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -178,16 +183,16 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "x*5;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "01642a610f204b62a0f2bb411f3ee7d4",
"NodeType": "CodeBlockNode",
- "Code": "0..360..360/(a-1);",
- "Id": "2946ae2a7ef446f2bdb3bc8fb1fdd096",
"Inputs": [
{
- "Id": "fbc2f5dd39924478a68e28333e71f925",
+ "Id": "12373893f65b49f6b60aaec3e8d37055",
"Name": "a",
"Description": "a",
"UsingDefaultValue": false,
@@ -198,7 +203,7 @@
],
"Outputs": [
{
- "Id": "9cba8324f06a45dca0d132a866c01fc1",
+ "Id": "a7c4fe5902f04f059d73385c24ce1ee7",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -208,25 +213,25 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "0..360..360/(a-1);"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "9849fd9d729f4cccb0512ec38628b794",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByPoints@Autodesk.DesignScript.Geometry.Point[],bool",
- "Id": "ca5657b3d8fa40a4a4a1338d2cb535f4",
"Inputs": [
{
- "Id": "c5f79c3a34da43028dff176fa1f7cf35",
+ "Id": "502a62c39a5e4f83951429561b1dc567",
"Name": "points",
- "Description": "Point[]",
+ "Description": "Points for nurbs curve\n\nPoint[]",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "f0be1961c3374eb9bf8d0cfdc48f6e5f",
+ "Id": "0dfad09955164a02b5397a77d3aa5889",
"Name": "closeCurve",
"Description": "bool\nDefault value : false",
"UsingDefaultValue": true,
@@ -237,27 +242,27 @@
],
"Outputs": [
{
- "Id": "902edc90a1a9498a8564c1a768396d1b",
+ "Id": "f2a0ec55b5bc4da888808cabd6fdf4c8",
"Name": "NurbsCurve",
- "Description": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByPoints@Autodesk.DesignScript.Geometry.Point[],bool",
"Replication": "Auto",
"Description": "Create a BSplineCurve by interpolating between points.\n\nNurbsCurve.ByPoints (points: Point[], closeCurve: bool = false): NurbsCurve"
},
{
"ConcreteType": "CoreNodeModels.Input.BoolSelector, CoreNodeModels",
+ "Id": "c95def157d304157aaa6fb0d671482a4",
"NodeType": "BooleanInputNode",
- "InputValue": true,
- "Id": "5b4d90107c974168b1d6053bc480a259",
"Inputs": [],
"Outputs": [
{
- "Id": "0fff36a3da824151aa8963808d57bbab",
+ "Id": "cb48a71bcff34f6db607549ac9dde85b",
"Name": "",
"Description": "Boolean",
"UsingDefaultValue": false,
@@ -267,21 +272,21 @@
}
],
"Replication": "Disabled",
- "Description": "Selection between a true and false."
+ "Description": "Enables selection between True and False",
+ "InputValue": true
},
{
"ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
- "NodeType": "NumberInputNode",
"NumberType": "Double",
"MaximumValue": 10.0,
"MinimumValue": -10.0,
"StepValue": 0.1,
- "InputValue": 2.0,
- "Id": "4f3b2521746a4a8c8e5c2e438dacf042",
+ "Id": "baf4c9cc2a084023b7955b1bf387d5c2",
+ "NodeType": "NumberInputNode",
"Inputs": [],
"Outputs": [
{
- "Id": "83f7fdf69adc4a3684595b9d40d3b5cf",
+ "Id": "6d2ae91576004452a4fd3f36e5f88a97",
"Name": "",
"Description": "Double",
"UsingDefaultValue": false,
@@ -291,16 +296,16 @@
}
],
"Replication": "Disabled",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "InputValue": 2.0
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "15bdff28ce004be394fd2209342c4e77",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid@Autodesk.DesignScript.Geometry.Vector,double",
- "Id": "5c9d4821335d448c867442f8e0da4265",
"Inputs": [
{
- "Id": "e62654a25390467db25b6b94dffb06a8",
+ "Id": "b1eca7d8ea374f3aae55f79bf973c872",
"Name": "curve",
"Description": "Autodesk.DesignScript.Geometry.Curve",
"UsingDefaultValue": false,
@@ -309,7 +314,7 @@
"KeepListStructure": false
},
{
- "Id": "5e5300c695ad431396412b342d580c6b",
+ "Id": "aaebf79a4eeb447bbcdefca0f19c1bf7",
"Name": "direction",
"Description": "Vector to extrude along\n\nVector\nDefault value : Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)",
"UsingDefaultValue": true,
@@ -318,7 +323,7 @@
"KeepListStructure": false
},
{
- "Id": "31aef835e66845309d4becb32a6302d7",
+ "Id": "9cb7c3e8b2ca4b689495ed8e26c7efab",
"Name": "distance",
"Description": "Distance to extrude\n\ndouble\nDefault value : 1",
"UsingDefaultValue": true,
@@ -329,7 +334,7 @@
],
"Outputs": [
{
- "Id": "bcc24c0a3ba74a30985bcb317ac761d5",
+ "Id": "f1e1aad213b949489ad0e80d4aac4541",
"Name": "Solid",
"Description": "The extruded Solid",
"UsingDefaultValue": false,
@@ -338,18 +343,18 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid@Autodesk.DesignScript.Geometry.Vector,double",
"Replication": "Auto",
"Description": "Extrudes a Curve in the specified direction, by the specified distance. Curve must be closed.\n\nCurve.ExtrudeAsSolid (direction: Vector = Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1), distance: double = 1): Solid"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "4f0d2f06713342cab5550cbedef450b6",
"NodeType": "CodeBlockNode",
- "Code": "3;\n-2;\n1;",
- "Id": "af2462c5d0e844c58f9b670ef1f2d79d",
"Inputs": [],
"Outputs": [
{
- "Id": "6110c728ebef4bf4b1cfe7764d69479d",
+ "Id": "a0b10f69aa4c46cd8f3dfb2f91c00c4e",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -358,7 +363,7 @@
"KeepListStructure": false
},
{
- "Id": "b92331f8a5754e57a94a4ba493510ae6",
+ "Id": "cf7297c38c3a46ea9619228551295c6a",
"Name": "",
"Description": "Value of expression at line 2",
"UsingDefaultValue": false,
@@ -367,7 +372,7 @@
"KeepListStructure": false
},
{
- "Id": "eb1b49a4aced4389bde1dbaca05b2e66",
+ "Id": "c8b2faeed35148f8ba95bde2cdaf0deb",
"Name": "",
"Description": "Value of expression at line 3",
"UsingDefaultValue": false,
@@ -377,16 +382,16 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "3;\n-2;\n1;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "36c4b654fdfa447f9939f06b6fb917ca",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ByCoordinates@double,double,double",
- "Id": "af9f66f390cf47bc892e71c43fb6a6e5",
"Inputs": [
{
- "Id": "5853cc018f40446093c240a20debd7ec",
+ "Id": "a54ca4add6ca4fb992178fe863491f6b",
"Name": "x",
"Description": "X coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
@@ -395,7 +400,7 @@
"KeepListStructure": false
},
{
- "Id": "4a75ce217d4842579ce0c93d4581f2cd",
+ "Id": "6c00d6ac120241799cc759bd1dbb801e",
"Name": "y",
"Description": "Y coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
@@ -404,7 +409,7 @@
"KeepListStructure": false
},
{
- "Id": "f8bb51678983461288a69794f1a03303",
+ "Id": "d621a16b910f496180edbe4bc17653d9",
"Name": "z",
"Description": "Z coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
@@ -415,99 +420,131 @@
],
"Outputs": [
{
- "Id": "cfe29379c43248a8bcccce2e93aa3e47",
+ "Id": "51fc78719c2549ec8bf663441d8c675d",
"Name": "Vector",
- "Description": "Vector",
+ "Description": "Vector created by coordinates",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ByCoordinates@double,double,double",
"Replication": "Auto",
"Description": "Form a Vector by 3 Euclidean coordinates\n\nVector.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Vector"
}
],
"Connectors": [
{
- "Start": "3639a2322ae041a4847242aa85530edc",
- "End": "38d2004a5a6740b88f799a831251eb74",
- "Id": "36b2b82007e1450f8681d769cf7cf3bf"
+ "Start": "f8c002e9cd524ad7bdedf1d40abe4aba",
+ "End": "c00be9b45c8246f888b9b19fbb36f74f",
+ "Id": "312b1c8e986c4099992b2b1e2a2049fa",
+ "IsHidden": "False"
},
{
- "Start": "de5a5572a9f24a40be11dce39fe4cc66",
- "End": "1075de1f95ac45fba07ec59697e33f72",
- "Id": "40ee1ce6865a425cae0111fa9bef9931"
+ "Start": "4f8d1b18aa30486db73f27f90a3db527",
+ "End": "9bdc70964b134d31a83500e7dbddd355",
+ "Id": "6c9013a162f4447cb0b19113e6536497",
+ "IsHidden": "False"
},
{
- "Start": "de5a5572a9f24a40be11dce39fe4cc66",
- "End": "fbc2f5dd39924478a68e28333e71f925",
- "Id": "8349c5105fad4b0088bc2d685e026bb4"
+ "Start": "4f8d1b18aa30486db73f27f90a3db527",
+ "End": "12373893f65b49f6b60aaec3e8d37055",
+ "Id": "25360cc11fea47c6b7ea910d30fcd3bf",
+ "IsHidden": "False"
},
{
- "Start": "fda144f18fd24f5b8e6b3a6927e2e1e7",
- "End": "c5f79c3a34da43028dff176fa1f7cf35",
- "Id": "de7d218a4e9645ee89fdb798c6c0add8"
+ "Start": "ba2b2985d15d4e9e93c2fa359844e2fd",
+ "End": "502a62c39a5e4f83951429561b1dc567",
+ "Id": "abe0597d6fc14ad88334080e43e7b8c8",
+ "IsHidden": "False"
},
{
- "Start": "e23e9d989e7c4aea8ab98a273cee6ff3",
- "End": "245b859a0a544c3a9f0cf94513e1c6d4",
- "Id": "94feeecd94974aee9c46027779890dc4"
+ "Start": "e4981fcbc22a4624834259b67e4ad6c4",
+ "End": "cafcc71e52c145498c1d99eb7b429dac",
+ "Id": "b66b1e4b812e4b289804f88b73e872fc",
+ "IsHidden": "False"
},
{
- "Start": "9cba8324f06a45dca0d132a866c01fc1",
- "End": "0ec92e3c3d6e41328ffb4708da49da0b",
- "Id": "f91ecc0978f947218b6964d147d42a10"
+ "Start": "a7c4fe5902f04f059d73385c24ce1ee7",
+ "End": "4613711d92ca4090b1a162b31bf36cf2",
+ "Id": "f42cdbe3eeb24332b58889b60d5d5ef3",
+ "IsHidden": "False"
},
{
- "Start": "902edc90a1a9498a8564c1a768396d1b",
- "End": "e62654a25390467db25b6b94dffb06a8",
- "Id": "68581713fdf94f6bbaa9cf131e7a756b"
+ "Start": "f2a0ec55b5bc4da888808cabd6fdf4c8",
+ "End": "b1eca7d8ea374f3aae55f79bf973c872",
+ "Id": "fc188f0dc94f41a6b198c201e59f4270",
+ "IsHidden": "False"
},
{
- "Start": "0fff36a3da824151aa8963808d57bbab",
- "End": "f0be1961c3374eb9bf8d0cfdc48f6e5f",
- "Id": "8f8b4ae3f8c944a38e660d4277244d27"
+ "Start": "cb48a71bcff34f6db607549ac9dde85b",
+ "End": "0dfad09955164a02b5397a77d3aa5889",
+ "Id": "3fe3a0977c85408abc4f24afbd578c8d",
+ "IsHidden": "False"
},
{
- "Start": "83f7fdf69adc4a3684595b9d40d3b5cf",
- "End": "31aef835e66845309d4becb32a6302d7",
- "Id": "533ee5994adb4b449c0ec5db85236f04"
+ "Start": "6d2ae91576004452a4fd3f36e5f88a97",
+ "End": "9cb7c3e8b2ca4b689495ed8e26c7efab",
+ "Id": "1f85fe9d21214a3c828590f7c669bf50",
+ "IsHidden": "False"
},
{
- "Start": "6110c728ebef4bf4b1cfe7764d69479d",
- "End": "5853cc018f40446093c240a20debd7ec",
- "Id": "38ff578f14954290ad129e55aa4790cb"
+ "Start": "a0b10f69aa4c46cd8f3dfb2f91c00c4e",
+ "End": "a54ca4add6ca4fb992178fe863491f6b",
+ "Id": "d61ca62fc8244181bea4c2d05377be69",
+ "IsHidden": "False"
},
{
- "Start": "b92331f8a5754e57a94a4ba493510ae6",
- "End": "4a75ce217d4842579ce0c93d4581f2cd",
- "Id": "e6a379f66eb1496cb03c9ca7b609da6c"
+ "Start": "cf7297c38c3a46ea9619228551295c6a",
+ "End": "6c00d6ac120241799cc759bd1dbb801e",
+ "Id": "425b0d80adbc46849b52eee7593fd6d5",
+ "IsHidden": "False"
},
{
- "Start": "eb1b49a4aced4389bde1dbaca05b2e66",
- "End": "f8bb51678983461288a69794f1a03303",
- "Id": "938a4fc7edeb448e95fba19f3feb0133"
+ "Start": "c8b2faeed35148f8ba95bde2cdaf0deb",
+ "End": "d621a16b910f496180edbe4bc17653d9",
+ "Id": "d03c77766cda4e3388ca585afcbee784",
+ "IsHidden": "False"
},
{
- "Start": "cfe29379c43248a8bcccce2e93aa3e47",
- "End": "5e5300c695ad431396412b342d580c6b",
- "Id": "769613f110b74ffaad81f1b829e14b62"
+ "Start": "51fc78719c2549ec8bf663441d8c675d",
+ "End": "aaebf79a4eeb447bbcdefca0f19c1bf7",
+ "Id": "10397e968be54d418c2fd239b4d1c9c5",
+ "IsHidden": "False"
}
],
"Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
"Bindings": [],
"View": {
"Dynamo": {
"ScaleFactor": 1.0,
"HasRunWithoutCrash": true,
"IsVisibleInDynamoLibrary": true,
- "Version": "2.0.1.5055",
+ "Version": "2.19.0.5874",
"RunType": "Automatic",
"RunPeriod": "1000"
},
"Camera": {
- "Name": "Background Preview",
+ "Name": "_Background Preview",
"EyeX": -3.8817853927612305,
"EyeY": 5.89031982421875,
"EyeZ": 11.482416152954102,
@@ -518,121 +555,122 @@
"UpY": 0.99999994039535522,
"UpZ": -1.4055977715088375E-08
},
+ "ConnectorPins": [],
"NodeViews": [
{
- "ShowGeometry": true,
+ "Id": "9d0ab23019c44c5db1d96f2d0ed1d7fc",
"Name": "Math.RandomList",
- "Id": "7d7435f4dcd14a1bb0693f701ecda485",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -432.94377794167258,
- "Y": 170.791433688083
+ "ShowGeometry": true,
+ "X": -512.94377794167258,
+ "Y": 140.70518368808305
},
{
- "ShowGeometry": true,
+ "Id": "be6e2ec9ca5a4e1da9d3c3290dc14962",
"Name": "Number Slider",
- "Id": "4fd25c7abb42406eb64183323b390da8",
"IsSetAsInput": true,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -831.94377794167258,
- "Y": 116.79143368808303
+ "ShowGeometry": true,
+ "X": -960.94377794167258,
+ "Y": 66.705183688083
},
{
- "ShowGeometry": true,
+ "Id": "12bc0b9330c042f89151dca283f52527",
"Name": "Point.ByCylindricalCoordinates",
- "Id": "11d18d7068564c249a8beb42837e0216",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 180.05622205832742,
- "Y": 64.791433688083032
+ "ShowGeometry": true,
+ "X": 162.05622205832742,
+ "Y": -1.1223163119170181
},
{
- "ShowGeometry": true,
+ "Id": "ce85d6604aac4a84a831506af37eef21",
"Name": "Code Block",
- "Id": "7ba7b96cdf3e43f2a51ba6620e80f8e9",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -116.94377794167258,
- "Y": 175.00476702141634
+ "ShowGeometry": true,
+ "X": -191.94377794167258,
+ "Y": 140.70518368808305
},
{
- "ShowGeometry": true,
+ "Id": "01642a610f204b62a0f2bb411f3ee7d4",
"Name": "Code Block",
- "Id": "2946ae2a7ef446f2bdb3bc8fb1fdd096",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -116.94377794167258,
- "Y": 67.004767021416342
+ "ShowGeometry": true,
+ "X": -191.94377794167258,
+ "Y": -7.2948163119170317
},
{
- "ShowGeometry": true,
+ "Id": "9849fd9d729f4cccb0512ec38628b794",
"Name": "NurbsCurve.ByPoints",
- "Id": "ca5657b3d8fa40a4a4a1338d2cb535f4",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 486.05622205832742,
- "Y": 159.79143368808303
+ "ShowGeometry": true,
+ "X": 566.05622205832742,
+ "Y": 136.87768368808298
},
{
- "ShowGeometry": true,
+ "Id": "c95def157d304157aaa6fb0d671482a4",
"Name": "Boolean",
- "Id": "5b4d90107c974168b1d6053bc480a259",
"IsSetAsInput": true,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 180.05622205832742,
- "Y": 251.79143368808303
+ "ShowGeometry": true,
+ "X": 162.05622205832742,
+ "Y": 245.87768368808298
},
{
- "ShowGeometry": true,
+ "Id": "baf4c9cc2a084023b7955b1bf387d5c2",
"Name": "Number Slider",
- "Id": "4f3b2521746a4a8c8e5c2e438dacf042",
"IsSetAsInput": true,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 486.05622205832742,
- "Y": 454.79143368808303
+ "ShowGeometry": true,
+ "X": 566.05622205832742,
+ "Y": 526.87768368808315
},
{
- "ShowGeometry": true,
+ "Id": "15bdff28ce004be394fd2209342c4e77",
"Name": "Curve.ExtrudeAsSolid",
- "Id": "5c9d4821335d448c867442f8e0da4265",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 885.05622205832742,
- "Y": 276.79143368808303
+ "ShowGeometry": true,
+ "X": 1014.0562220583274,
+ "Y": 291.877683688083
},
{
- "ShowGeometry": true,
+ "Id": "4f0d2f06713342cab5550cbedef450b6",
"Name": "Code Block",
- "Id": "af2462c5d0e844c58f9b670ef1f2d79d",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 180.05622205832742,
- "Y": 335.43143368808296
+ "ShowGeometry": true,
+ "X": 162.05622205832742,
+ "Y": 394.36018368808294
},
{
- "ShowGeometry": true,
+ "Id": "36c4b654fdfa447f9939f06b6fb917ca",
"Name": "Vector.ByCoordinates",
- "Id": "af9f66f390cf47bc892e71c43fb6a6e5",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 486.05622205832742,
- "Y": 293.79143368808303
+ "ShowGeometry": true,
+ "X": 566.05622205832742,
+ "Y": 313.877683688083
}
],
"Annotations": [],
- "X": 530.80819589101,
- "Y": -37.5149570040434,
- "Zoom": 0.894584203790339
+ "X": 409.58822971748771,
+ "Y": 217.89020596153566,
+ "Zoom": 0.601517368536526
}
}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction, distance).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction, distance).md
new file mode 100644
index 00000000000..38e7e0543a5
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction, distance).md
@@ -0,0 +1,8 @@
+## In Depth
+Curve.ExtrudeAsSolid (direction, distance) extrudes an input closed, planar curve using an input vector to determine the direction of the extrusion. A separate `distance` input is used for the extrusion distance. This node caps the ends of the extrusion to create a solid.
+
+In the example below, we first create a NurbsCurve using a `NurbsCurve.ByPoints` node, with a set of randomly generated points as the input. A `code block` is used to specify the X, Y, and Z components of a `Vector.ByCoordinates` node. This vector is then used as the direction input in a `Curve.ExtrudeAsSolid` node while a number slider is used to control the `distance` input.
+___
+## Example File
+
+![Curve.ExtrudeAsSolid(direction, distance)](./Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve,%20direction,%20distance)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction, distance)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction, distance)_img.jpg
new file mode 100644
index 00000000000..778edb3851f
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, direction, distance)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, distance).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, distance).dyn
new file mode 100644
index 00000000000..9a81fa9d26f
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, distance).dyn
@@ -0,0 +1,537 @@
+{
+ "Uuid": "3c9d0464-8643-5ffe-96e5-ab1769818209",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "4fd25c7abb42406eb64183323b390da8",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "5",
+ "MaximumValue": 10.0,
+ "MinimumValue": 3.0,
+ "StepValue": 1.0,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "5b4d90107c974168b1d6053bc480a259",
+ "Name": "Boolean",
+ "Type": "boolean",
+ "Type2": "boolean",
+ "Value": "true",
+ "Description": "Enables selection between True and False",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "4f3b2521746a4a8c8e5c2e438dacf042",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "2",
+ "MaximumValue": 10.0,
+ "MinimumValue": -10.0,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7d7435f4dcd14a1bb0693f701ecda485",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "2d65ffe4cfe443df818d174ab092c7de",
+ "Name": "amount",
+ "Description": "Amount of random numbers the result list will contain.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e42a07c299594147a3a64ac1b075a8b5",
+ "Name": "number",
+ "Description": "List of random numbers between 0 and 1.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
+ "Replication": "Auto",
+ "Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 10.0,
+ "MinimumValue": 3.0,
+ "StepValue": 1.0,
+ "Id": "4fd25c7abb42406eb64183323b390da8",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "15a6949436b446f8a8050d7047f12a85",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 5.0
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "11d18d7068564c249a8beb42837e0216",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "839139a1420a435d9914c76e55d5687e",
+ "Name": "coordinateSystem",
+ "Description": "Coordinate system to build the point in\n\nCoordinateSystem\nDefault value : Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "bc43d77f9f6c479faaf689130f74e353",
+ "Name": "angle",
+ "Description": "The angle is the rotation from the X axis in the coordinate system around the Z axis in degrees\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "b4a379e398f542d5b2be39f22dcb982a",
+ "Name": "elevation",
+ "Description": "The elevation of the point above the XY plane\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "2897007591ee4de8a441db960083707c",
+ "Name": "radius",
+ "Description": "The distance from the origin of the coordinate system\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "9d977db65b4c4ec598d251614ba9cb2d",
+ "Name": "Point",
+ "Description": "Point at cylindrical coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCylindricalCoordinates@Autodesk.DesignScript.Geometry.CoordinateSystem,double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point in the given coordinate system given its position in cylindrical coordinates.\n\nPoint.ByCylindricalCoordinates (coordinateSystem: CoordinateSystem = Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0), angle: double = 0, elevation: double = 0, radius: double = 1): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "7ba7b96cdf3e43f2a51ba6620e80f8e9",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "40d7859b33a44c78a6b04321f1c0744e",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "7c09d9ef4362411a9ccf03b3bab9751b",
+ "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",
+ "Code": "x*5;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "2946ae2a7ef446f2bdb3bc8fb1fdd096",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "2ce56b7a595a4c2bb8992652589e9bca",
+ "Name": "a",
+ "Description": "a",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "c6ee4f88894a47819b9c3a6508c93754",
+ "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",
+ "Code": "0..360..360/(a-1);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "ca5657b3d8fa40a4a4a1338d2cb535f4",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "183f751e8a264fcb8cd929988398040e",
+ "Name": "points",
+ "Description": "Points for nurbs curve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "846ecfd9d96043cfba8085170f00814d",
+ "Name": "closeCurve",
+ "Description": "bool\nDefault value : false",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "f81be1339536455a99aabf625b6fcd14",
+ "Name": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByPoints@Autodesk.DesignScript.Geometry.Point[],bool",
+ "Replication": "Auto",
+ "Description": "Create a BSplineCurve by interpolating between points.\n\nNurbsCurve.ByPoints (points: Point[], closeCurve: bool = false): NurbsCurve"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.BoolSelector, CoreNodeModels",
+ "Id": "5b4d90107c974168b1d6053bc480a259",
+ "NodeType": "BooleanInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "8a50121983da40bca3993de89bb9126b",
+ "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": "f4b295e3381544ff8f84e24cad41c730",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "20cf24f98a2e47578afce6135f42cc6d",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "4ded32f84243478dba82831813f45397",
+ "Name": "distance",
+ "Description": "Distance to extrude\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e705e881ea834b52ada6fb021493b596",
+ "Name": "Solid",
+ "Description": "The extruded Solid",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid@double",
+ "Replication": "Auto",
+ "Description": "Extrudes a Curve in the Normal direction by the specified distance. Curve must be closed.\n\nCurve.ExtrudeAsSolid (distance: double = 1): Solid"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 10.0,
+ "MinimumValue": -10.0,
+ "StepValue": 0.1,
+ "Id": "4f3b2521746a4a8c8e5c2e438dacf042",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "117067d310c046c6ad067342f7854661",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 2.0
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "e42a07c299594147a3a64ac1b075a8b5",
+ "End": "40d7859b33a44c78a6b04321f1c0744e",
+ "Id": "82e548ef0d0644d49299d3085369f318",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "15a6949436b446f8a8050d7047f12a85",
+ "End": "2d65ffe4cfe443df818d174ab092c7de",
+ "Id": "3df6eb229cb44841859aaf03978a537d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "15a6949436b446f8a8050d7047f12a85",
+ "End": "2ce56b7a595a4c2bb8992652589e9bca",
+ "Id": "626639224a8e49a4bbb2d41ad2f6d847",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9d977db65b4c4ec598d251614ba9cb2d",
+ "End": "183f751e8a264fcb8cd929988398040e",
+ "Id": "3196a496daa445aab507a0d16928f85e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "7c09d9ef4362411a9ccf03b3bab9751b",
+ "End": "2897007591ee4de8a441db960083707c",
+ "Id": "e233062fe61047fd88cff3f5a789dc17",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c6ee4f88894a47819b9c3a6508c93754",
+ "End": "bc43d77f9f6c479faaf689130f74e353",
+ "Id": "9ccbda4bff18491998e540f223c8b946",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f81be1339536455a99aabf625b6fcd14",
+ "End": "20cf24f98a2e47578afce6135f42cc6d",
+ "Id": "b118ec25ca03453ea5d1bdec3b0ca953",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8a50121983da40bca3993de89bb9126b",
+ "End": "846ecfd9d96043cfba8085170f00814d",
+ "Id": "b6a8a3428d5b470aa03e4055e0e492cf",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "117067d310c046c6ad067342f7854661",
+ "End": "4ded32f84243478dba82831813f45397",
+ "Id": "6e6ee1d1f80040b19db23fcb7bfb4c50",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -3.62465238571167,
+ "EyeY": 9.2647066116333,
+ "EyeZ": 10.161786079406738,
+ "LookX": 6.6045675277709961,
+ "LookY": -9.2482500076293945,
+ "LookZ": -18.156381607055664,
+ "UpX": 0.078060783445835114,
+ "UpY": 0.9735788106918335,
+ "UpZ": -0.21459411084651947
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "7d7435f4dcd14a1bb0693f701ecda485",
+ "Name": "Math.RandomList",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -529.958720393653,
+ "Y": 241.1898338525456
+ },
+ {
+ "Id": "4fd25c7abb42406eb64183323b390da8",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -977.958720393653,
+ "Y": 167.18983385254555
+ },
+ {
+ "Id": "11d18d7068564c249a8beb42837e0216",
+ "Name": "Point.ByCylindricalCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 145.04127960634696,
+ "Y": 99.362333852545532
+ },
+ {
+ "Id": "7ba7b96cdf3e43f2a51ba6620e80f8e9",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -208.95872039365304,
+ "Y": 241.1898338525456
+ },
+ {
+ "Id": "2946ae2a7ef446f2bdb3bc8fb1fdd096",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -208.95872039365304,
+ "Y": 93.189833852545519
+ },
+ {
+ "Id": "ca5657b3d8fa40a4a4a1338d2cb535f4",
+ "Name": "NurbsCurve.ByPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 549.041279606347,
+ "Y": 206.36233385254553
+ },
+ {
+ "Id": "5b4d90107c974168b1d6053bc480a259",
+ "Name": "Boolean",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 145.04127960634696,
+ "Y": 347.36233385254553
+ },
+ {
+ "Id": "f4b295e3381544ff8f84e24cad41c730",
+ "Name": "Curve.ExtrudeAsSolid",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 997.041279606347,
+ "Y": 278.36233385254553
+ },
+ {
+ "Id": "4f3b2521746a4a8c8e5c2e438dacf042",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 549.041279606347,
+ "Y": 384.36233385254553
+ }
+ ],
+ "Annotations": [],
+ "X": 533.15332654527322,
+ "Y": 31.966041969565367,
+ "Zoom": 0.54514375520319824
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, distance).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, distance).md
new file mode 100644
index 00000000000..f1661a2f645
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, distance).md
@@ -0,0 +1,8 @@
+## In Depth
+`Curve.ExtrudeAsSolid (curve, distance)` extrudes an input closed, planar curve using an input number to determine the distance of the extrusion. The direction of the extrusion is determined by the normal vector of the plane that the curve lies in. This node caps the ends of the extrusion to create a solid.
+
+In the example below, we first create a NurbsCurve by using a `NurbsCurve.ByPoints` node, with a set of randomly generated points as the input. Then, a `Curve.ExtrudeAsSolid` node is used to extrude the curve as a solid. A number slider is used as the `distance` input in the `Curve.ExtrudeAsSolid` node.
+___
+## Example File
+
+![Curve.ExtrudeAsSolid(curve, distance)](./Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, distance)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, distance)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, distance)_img.jpg
new file mode 100644
index 00000000000..d8668c6ff86
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(curve, distance)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(direction, distance).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(direction, distance).md
deleted file mode 100644
index 10a676d5164..00000000000
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(direction, distance).md
+++ /dev/null
@@ -1,7 +0,0 @@
-## In Depth
-Extrudes a Curve in the specified direction, by the specified distance. Curve must be closed.
-___
-## Example File
-
-![ExtrudeAsSolid (direction, distance)](./Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(direction,%20distance)_img.jpg)
-
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(direction, distance)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(direction, distance)_img.jpg
deleted file mode 100644
index f59b56ea5a0..00000000000
Binary files a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid(direction, distance)_img.jpg and /dev/null differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Length.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Length.md
index 9a45bba422b..0df8980629a 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Length.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Length.md
@@ -1,5 +1,8 @@
## In Depth
-Length returns the length of a curtain panel's boundary as a double. This can be used even if the curtain panel is not rectangular.
+`Curve.Length` returns the length of an input curve.
+
+In the example below, we first create a NurbsCurve by using a `NurbsCurve.ByControlPoints` node, with a set of randomly generated points as the input. We can find the length of this curve by using a `Curve.Length` node.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Normal.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Normal.md
index 54de81654a4..b5d59c2bb0d 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Normal.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.Normal.md
@@ -1,5 +1,8 @@
## In Depth
-Plane Normal will find the normal vector of an input plane. This is also equal to taking the cross product of the plane XAxis and YAxis. In the example below we first use a set of random points to create a Plane by Best Fit Through Points. We can then find the normal vector of this plane.
+`Curve.Normal` returns the normal vector of an input curve. The curve must be planar for this node.
+
+In the example below, we first create a NurbsCurve by using a `NurbsCurveByControlPoints` node, with a set of randomly generated points as the input. We find the normal of this curve by using a `Curve.Normal` node.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param).dyn
new file mode 100644
index 00000000000..2fec92b8266
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param).dyn
@@ -0,0 +1,601 @@
+{
+ "Uuid": "e7c1bea8-d711-49d2-87ac-463f8439a79d",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Curve.NormalAtParameter",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "5bafc66cadac464c81202cd161ef0351",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "0.3",
+ "MaximumValue": 1.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.01,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "a7d68c64a9264b81873ba82991eb06e8",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "f984c15204124843b703f902ee2a21a6",
+ "Name": "points",
+ "Description": "Points for nurbs curve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "f23dd6f752a34713b4f1c84d466d80fa",
+ "Name": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByControlPoints@Autodesk.DesignScript.Geometry.Point[]",
+ "Replication": "Auto",
+ "Description": "Create a BSplineCurve by using explicit control points. NOTE 1: BSplineCurves with deg=1 have G1 discontinuities, which cause problems for extrusion, sweep, and other operations. They should be avoided. Use a PolyCurve instead. NOTE 2: If the curve is periodic (closed), then the first and last points MUST be the same.\n\nNurbsCurve.ByControlPoints (points: Point[]): NurbsCurve"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "ad238e218fa8440aa4bce92e13793c4b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "eb8b8c2565934609afe003de5dda4f51",
+ "Name": "amount",
+ "Description": "Amount of random numbers the result list will contain.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "3fa88cf3f3614fbe82bb72cc628d7cd6",
+ "Name": "number",
+ "Description": "List of random numbers between 0 and 1.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
+ "Replication": "Auto",
+ "Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "520f3bca48004d78a659fa89590e9bfa",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "08eb3d9307574dd887cbc3f88904a30a",
+ "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",
+ "Code": "6;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7af4a320c7a24f138ea9e32740d56882",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "dd7cc843cee74fe0b062fb0ada98fcde",
+ "Name": "amount",
+ "Description": "Amount of random numbers the result list will contain.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8232f81acf5147f6a0cb97595260c12d",
+ "Name": "number",
+ "Description": "List of random numbers between 0 and 1.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
+ "Replication": "Auto",
+ "Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "969a7350eff64e749affe2b491f358c6",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "f1287e25b183470e8eece192c57769b5",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "9749eb59b2e44d06a15170f8aeec37ac",
+ "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",
+ "Code": "x*10;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "f428c88d6a1040919ef686701236109c",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "53cb35e01a524ff798525a2e062fe260",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "35dab245e5c142fd87b7c7de7dbda24f",
+ "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",
+ "Code": "x*10;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "8395e71d54c6432495e946eebf9a8f4d",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "0fd7e4adf8e24440a2c7535cd6cfdd87",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "0794920554d446298ad277f0ce6a6794",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1f28105cb2f74b2898d2d01e379fe272",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "06612e6cc05e47fc87a03b9e42e052ea",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "3b8e5913715341efbf1fe41357e16195",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "6947d7b3b8f74d08955f2c7d9665de83",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "5311d75561934956bce9b855d714af72",
+ "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",
+ "Code": "x*5;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7f0a66fc22b14f0aaf9c0fb04c226c48",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "2ea2ecee33604ed5a533ab2d8226c71d",
+ "Name": "amount",
+ "Description": "Amount of random numbers the result list will contain.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "cbfa120ed8b741ea906e0ff8e30b50a8",
+ "Name": "number",
+ "Description": "List of random numbers between 0 and 1.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
+ "Replication": "Auto",
+ "Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 1.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.01,
+ "Id": "5bafc66cadac464c81202cd161ef0351",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "101140458a6848639de2e97078c4a789",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 0.3
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "49ec5a1c6e1e4c7f82d190f2d0b53fb0",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "98573f71a8c24f9eb7fe1ba656555890",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "08852bf1ccdc4938acfbc0395e8b7ce3",
+ "Name": "param",
+ "Description": "The parameter at which to evaluate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "210d610d3a0245249562e32d40168780",
+ "Name": "Vector",
+ "Description": "A Vector perpendicular to the curve at param",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.NormalAtParameter@double",
+ "Replication": "Auto",
+ "Description": "Get a Vector perpendicular to the curve at a specified parameter between StartParameter() and EndParameter()\n\nCurve.NormalAtParameter (param: double = 0): Vector"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "f23dd6f752a34713b4f1c84d466d80fa",
+ "End": "98573f71a8c24f9eb7fe1ba656555890",
+ "Id": "8c1b55ad239d4d82a47d76ba4615c980",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "3fa88cf3f3614fbe82bb72cc628d7cd6",
+ "End": "f1287e25b183470e8eece192c57769b5",
+ "Id": "90af014434994f0bbd83303aae2bf7bb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "08eb3d9307574dd887cbc3f88904a30a",
+ "End": "eb8b8c2565934609afe003de5dda4f51",
+ "Id": "34d05af1eb584222a5bc782e81af0cde",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "08eb3d9307574dd887cbc3f88904a30a",
+ "End": "dd7cc843cee74fe0b062fb0ada98fcde",
+ "Id": "a9daa8cf1992482eb78ab663d19e045a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "08eb3d9307574dd887cbc3f88904a30a",
+ "End": "2ea2ecee33604ed5a533ab2d8226c71d",
+ "Id": "807e44540dea457ba4e0fd590d5de222",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8232f81acf5147f6a0cb97595260c12d",
+ "End": "53cb35e01a524ff798525a2e062fe260",
+ "Id": "cc658cc647a8430093944a0a0e43c380",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9749eb59b2e44d06a15170f8aeec37ac",
+ "End": "0fd7e4adf8e24440a2c7535cd6cfdd87",
+ "Id": "61b3e584d8dc4eb6af14f34c2085d8cd",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "35dab245e5c142fd87b7c7de7dbda24f",
+ "End": "0794920554d446298ad277f0ce6a6794",
+ "Id": "d3c0d9b2c6b54025890b73a7bbd012fd",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "06612e6cc05e47fc87a03b9e42e052ea",
+ "End": "f984c15204124843b703f902ee2a21a6",
+ "Id": "2309ff4dac184151832c88793d513a2b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "5311d75561934956bce9b855d714af72",
+ "End": "1f28105cb2f74b2898d2d01e379fe272",
+ "Id": "7db55e51dc90496985edd6523ffff021",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "cbfa120ed8b741ea906e0ff8e30b50a8",
+ "End": "6947d7b3b8f74d08955f2c7d9665de83",
+ "Id": "9f6588b6193842c19144c5d8014380c3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "101140458a6848639de2e97078c4a789",
+ "End": "08852bf1ccdc4938acfbc0395e8b7ce3",
+ "Id": "c60e608609164825923764978b698144",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -3.4816887378692627,
+ "EyeY": 9.2835006713867188,
+ "EyeZ": 3.9581344127655029,
+ "LookX": 7.4863224029541016,
+ "LookY": -5.3477129936218262,
+ "LookZ": -7.8918704986572266,
+ "UpX": 0.16416347026824951,
+ "UpY": 0.9711342453956604,
+ "UpZ": -0.17305652797222137
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "a7d68c64a9264b81873ba82991eb06e8",
+ "Name": "NurbsCurve.ByControlPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 366.95475847575403,
+ "Y": -3561.8570960863349
+ },
+ {
+ "Id": "ad238e218fa8440aa4bce92e13793c4b",
+ "Name": "Math.RandomList",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -533.045241524246,
+ "Y": -3675.029596086335
+ },
+ {
+ "Id": "520f3bca48004d78a659fa89590e9bfa",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -787.045241524246,
+ "Y": -3528.2020960863351
+ },
+ {
+ "Id": "7af4a320c7a24f138ea9e32740d56882",
+ "Name": "Math.RandomList",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -533.045241524246,
+ "Y": -3528.029596086335
+ },
+ {
+ "Id": "969a7350eff64e749affe2b491f358c6",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -212.04524152424597,
+ "Y": -3675.029596086335
+ },
+ {
+ "Id": "f428c88d6a1040919ef686701236109c",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -212.04524152424597,
+ "Y": -3528.029596086335
+ },
+ {
+ "Id": "8395e71d54c6432495e946eebf9a8f4d",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 41.954758475754033,
+ "Y": -3561.8570960863349
+ },
+ {
+ "Id": "3b8e5913715341efbf1fe41357e16195",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -212.04524152424597,
+ "Y": -3381.029596086335
+ },
+ {
+ "Id": "7f0a66fc22b14f0aaf9c0fb04c226c48",
+ "Name": "Math.RandomList",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -533.045241524246,
+ "Y": -3381.029596086335
+ },
+ {
+ "Id": "5bafc66cadac464c81202cd161ef0351",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 366.95475847575403,
+ "Y": -3413.8570960863349
+ },
+ {
+ "Id": "49ec5a1c6e1e4c7f82d190f2d0b53fb0",
+ "Name": "Curve.NormalAtParameter",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 814.954758475754,
+ "Y": -3504.8570960863349
+ }
+ ],
+ "Annotations": [],
+ "X": 520.93439057734008,
+ "Y": 1899.6398672206337,
+ "Zoom": 0.47402678864922743
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param).md
new file mode 100644
index 00000000000..2c8fece865a
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param).md
@@ -0,0 +1,8 @@
+## In Depth
+`Curve.NormalAtParameter (curve, param)` returns a vector aligned with the normal direction at the specified parameter of a curve. The parameterization of a curve is measured in the range from 0 to 1, with 0 representing the start of the curve and 1 representing the end of the curve.
+
+In the example below, we first create a NurbsCurve using a `NurbsCurve.ByControlPoints` node, with a set of randomly generated points as the input. A number slider set to the range 0 to 1 is used to control the `parameter` input for a `Curve.NormalAtParameter` node.
+___
+## Example File
+
+![Curve.NormalAtParameter(curve, param](./Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve,%20param)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param)_img.jpg
new file mode 100644
index 00000000000..96984d1075e
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param, side).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param, side).dyn
new file mode 100644
index 00000000000..3fa249e4737
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param, side).dyn
@@ -0,0 +1,697 @@
+{
+ "Uuid": "6d09060e-b571-430f-8acb-8ac9ace0f587",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Curve.NormalAtParameter",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "65c516efb25342d487b79b34c54a9be3",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "a0f48305ce9043aa9ce98be4633a702a",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "0dd37d7cb93e49a3872f03a1af2ac0dd",
+ "Name": "param",
+ "Description": "The parameter at which to evaluate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "17dc809e69c343289b3a091c88b435e9",
+ "Name": "side",
+ "Description": "If 'side' is set to false, the normal will point to the right side of the curve (moving from the startpoint to the endpoint of the curve). If 'side' is true, the normal will point to the left of the curve.\n\nbool\nDefault value : false",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "66c8e1852ae84efaa713dcfa3245c9fa",
+ "Name": "Vector",
+ "Description": "A Vector perpendicular to the curve at param",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.NormalAtParameter@double,bool",
+ "Replication": "Auto",
+ "Description": "Get a Vector perpendicular to the curve at a specified parameter between StartParameter() and EndParameter() The curve must be planar. The resulting normal will be consistent across the entire curvature of the curve.\n\nCurve.NormalAtParameter (param: double = 0, side: bool = false): Vector"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "55f06b1f7b5545b09cd6b33ace5d46da",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "cd90804c0055467aad39909018be6fb8",
+ "Name": "firstPoint",
+ "Description": "1st point of arc\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "b0d0cdc387aa40ecbcaf27633049eed9",
+ "Name": "secondPoint",
+ "Description": "2nd point of arc\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "892581848edd427abcd2209c7a201724",
+ "Name": "thirdPoint",
+ "Description": "3rd point of arc\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "f8a0b76cb66748a5ac1b3b1421fb4891",
+ "Name": "Arc",
+ "Description": "Arc created from three points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Arc.ByThreePoints@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
+ "Replication": "Auto",
+ "Description": "Create an arc by providing three sequential points along its circumference.\n\nArc.ByThreePoints (firstPoint: Point, secondPoint: Point, thirdPoint: Point): Arc"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "a775f12e2fb7456f9236475531184d62",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "521004f876b94b6098317a29b760b8c0",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "41bf66cc884f45249be8ca6bb93de244",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "2d93367df6c3453982fd2275ad0dc44b",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "c7fed407ffcf4961a9371d691a1bc45a",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "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",
+ "Id": "8258659027664df7a19efbe103a2757e",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "1c465b949a56464a94217eccc2b7a0b4",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "071390cdafb34310ad9114ad31c512ff",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "3aa2c94ce6f14d43b5a249017c86c6a6",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "6006948e04e74b0b9219ab8267a9e76d",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "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",
+ "Id": "3d5ff3896ffd4a248eb198543d101c0c",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "7d1db9f7b1d5450db07908316e30f0f8",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "bf0fe4c4e8c84a218f901d4650b20802",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "fd58ccde68da4289a4a0e761770456f2",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "013848be894248daac0f9c9d5d970f33",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "afda0da3d7a14526824cc22576b10447",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "f23b1098cb4c43eabdeedaa0badc8799",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d94eba360718431cb113eae26a1e20ff",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "3d489ac8010a424ba1d0756c955eaeb3",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "1;\n2;\n3;"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 1.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "Id": "8a746e2ace7043e48f5d6f86acf3705b",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "7ba64554498d4455b9222b72d58b2f63",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 0.6
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "724c88d5835b447ca7f573cef6642f2f",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "eab19885159b4a1892b1620d335227c4",
+ "Name": "startPoint",
+ "Description": "Line start point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "cc466d17ef074eefb7158d3c22a0d127",
+ "Name": "direction",
+ "Description": "Direction vector\n\nVector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "94dc20ffe7dc4c1a8226c672e9905a4b",
+ "Name": "length",
+ "Description": "Length of line\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "7df15be324bf4f729c096d625d11cd61",
+ "Name": "Line",
+ "Description": "Line from start direction and length",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointDirectionLength@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Vector,double",
+ "Replication": "Auto",
+ "Description": "Create a straight Line starting at start Point, extending in Vector direction by specified length.\n\nLine.ByStartPointDirectionLength (startPoint: Point, direction: Vector, length: double = 1): Line"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "a5003e234d3a47b09de21bd6c6dc013d",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "aa1b88fd854d4c369a88518dc2b26fcb",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8961e9f15d704d2fa31b76077dca8eed",
+ "Name": "param",
+ "Description": "The parameter at which to evaluate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "f68742a07f604339bbbd02ea8542526f",
+ "Name": "Point",
+ "Description": "Point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.PointAtParameter@double",
+ "Replication": "Auto",
+ "Description": "Get a Point on the Curve at a specified parameter between StartParameter() and EndParameter()\n\nCurve.PointAtParameter (param: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "56e53392f2864b7587026ac4331ef43a",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "3163dcade7b34060bd304ddb7545099d",
+ "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",
+ "Code": "5;"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "66c8e1852ae84efaa713dcfa3245c9fa",
+ "End": "cc466d17ef074eefb7158d3c22a0d127",
+ "Id": "4a607ab787374215bcb4f354b807c3fd",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f8a0b76cb66748a5ac1b3b1421fb4891",
+ "End": "a0f48305ce9043aa9ce98be4633a702a",
+ "Id": "857173067d814f3ca605df7899b984e0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f8a0b76cb66748a5ac1b3b1421fb4891",
+ "End": "aa1b88fd854d4c369a88518dc2b26fcb",
+ "Id": "165e5561b9524684867897149a9e4ac3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c7fed407ffcf4961a9371d691a1bc45a",
+ "End": "cd90804c0055467aad39909018be6fb8",
+ "Id": "6d05d658b1d7419986dd944e44fb4087",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6006948e04e74b0b9219ab8267a9e76d",
+ "End": "b0d0cdc387aa40ecbcaf27633049eed9",
+ "Id": "659dc53f881746e689d86aa64bde0fe3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "013848be894248daac0f9c9d5d970f33",
+ "End": "892581848edd427abcd2209c7a201724",
+ "Id": "536ee28ab546474db7338bd1b9bf8147",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f23b1098cb4c43eabdeedaa0badc8799",
+ "End": "521004f876b94b6098317a29b760b8c0",
+ "Id": "0467b95d937b4ddd98d8fffc5f92868c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d94eba360718431cb113eae26a1e20ff",
+ "End": "071390cdafb34310ad9114ad31c512ff",
+ "Id": "971262cd01734f6b9982e92946470b9b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "3d489ac8010a424ba1d0756c955eaeb3",
+ "End": "7d1db9f7b1d5450db07908316e30f0f8",
+ "Id": "057c6a7eb8a44b3d8ac54d9a0c748a08",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "7ba64554498d4455b9222b72d58b2f63",
+ "End": "0dd37d7cb93e49a3872f03a1af2ac0dd",
+ "Id": "beee680fe7b94833a7be1a54db769984",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "7ba64554498d4455b9222b72d58b2f63",
+ "End": "8961e9f15d704d2fa31b76077dca8eed",
+ "Id": "0e8d46ce3ddd40ce8075962c6bdf06ad",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f68742a07f604339bbbd02ea8542526f",
+ "End": "eab19885159b4a1892b1620d335227c4",
+ "Id": "61d05624d83f49699cc2b827351ad779",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "3163dcade7b34060bd304ddb7545099d",
+ "End": "94dc20ffe7dc4c1a8226c672e9905a4b",
+ "Id": "92761846419c4c6899078021cf310ebe",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 100.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5874",
+ "RunType": "Automatic",
+ "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": "65c516efb25342d487b79b34c54a9be3",
+ "Name": "Curve.NormalAtParameter",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 826.29098435284709,
+ "Y": 173.109567548725
+ },
+ {
+ "Id": "55f06b1f7b5545b09cd6b33ace5d46da",
+ "Name": "Arc.ByThreePoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 332.600542059933,
+ "Y": 173.109567548725
+ },
+ {
+ "Id": "a775f12e2fb7456f9236475531184d62",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 8.10054205993254,
+ "Y": -5.89043245127493
+ },
+ {
+ "Id": "8258659027664df7a19efbe103a2757e",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 8.10054205993254,
+ "Y": 207.109567548725
+ },
+ {
+ "Id": "3d5ff3896ffd4a248eb198543d101c0c",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 8.10054205993254,
+ "Y": 420.10956754872495
+ },
+ {
+ "Id": "afda0da3d7a14526824cc22576b10447",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -245.899457940067,
+ "Y": 224.592067548725
+ },
+ {
+ "Id": "8a746e2ace7043e48f5d6f86acf3705b",
+ "Name": "Normal location",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 332.600542059933,
+ "Y": 485.10956754872495
+ },
+ {
+ "Id": "724c88d5835b447ca7f573cef6642f2f",
+ "Name": "Line.ByStartPointDirectionLength",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1477.3328427940044,
+ "Y": 546.48269432262
+ },
+ {
+ "Id": "a5003e234d3a47b09de21bd6c6dc013d",
+ "Name": "Curve.PointAtParameter",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1125.3328427940044,
+ "Y": 491.48269432261992
+ },
+ {
+ "Id": "56e53392f2864b7587026ac4331ef43a",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1125.3328427940044,
+ "Y": 669.31019432261985
+ }
+ ],
+ "Annotations": [
+ {
+ "Id": "b78516169144421ab012217e98353268",
+ "Title": "Normal visualization",
+ "DescriptionText": " ",
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [
+ "724c88d5835b447ca7f573cef6642f2f",
+ "56e53392f2864b7587026ac4331ef43a",
+ "a5003e234d3a47b09de21bd6c6dc013d"
+ ],
+ "HasNestedGroups": false,
+ "Left": 1115.3328427940044,
+ "Top": 418.48269432261992,
+ "Width": 696.0,
+ "Height": 382.82749999999993,
+ "FontSize": 36.0,
+ "GroupStyleId": "bc688959-ce34-4bf5-90f8-6ddd23f80989",
+ "InitialTop": 491.48269432261992,
+ "InitialHeight": 322.82749999999993,
+ "TextblockHeight": 63.0,
+ "Background": "#FFA4E1FF"
+ },
+ {
+ "Id": "343cc605e71d41cfaf2a9b1170dda544",
+ "Title": "Normal location on curve; 0 is the start point, 1 is the endpoint of the curve",
+ "DescriptionText": null,
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [],
+ "HasNestedGroups": false,
+ "Left": 364.600542059933,
+ "Top": 420.10956754872495,
+ "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": "8a746e2ace7043e48f5d6f86acf3705b"
+ }
+ ],
+ "X": 346.67893073896835,
+ "Y": 83.382374609072428,
+ "Zoom": 0.46338709529386984
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param, side).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param, side).md
new file mode 100644
index 00000000000..268b4284cff
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param, side).md
@@ -0,0 +1,6 @@
+## In Depth
+`Curve.NormalAtParameter (curve, param, side)`
+___
+## Example File
+
+![Curve.NormalAtParameter(curve, param, side)](./Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve,%20param,%20side)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param, side)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param, side)_img.jpg
new file mode 100644
index 00000000000..89cbc538b3b
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.NormalAtParameter(curve, param, side)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.OffsetMany.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.OffsetMany.dyn
new file mode 100644
index 00000000000..b3cd6fafe45
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.OffsetMany.dyn
@@ -0,0 +1,312 @@
+{
+ "Uuid": "a5bcef2c-d50a-43f2-8d22-6fb0fa718b26",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Curve.OffsetMany",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "481bcc0f58724f20a72bd6d5fb3f8b23",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "7ed2c1ce289d43028b7ee6edbfd8479d",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "75b7fb62042f44ab9863ac3e2fe27bf4",
+ "Name": "signedDistance",
+ "Description": "A positive offset distance applies in the direction of the cross product between the curve's tangent and the plane's normal vector, while a negative offset applies in the opposite direction.\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a8636b7375424ee8a7fe96ef5ef9d40b",
+ "Name": "planeNormal",
+ "Description": "The curve's plane normal. Defaults to the input curve's plane normal\n\nVector\nDefault value : null",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "72de6c44789b4292887153d6b5a0a1a4",
+ "Name": "Curve[]..[]",
+ "Description": "One or more offset curves",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.OffsetMany@double,Autodesk.DesignScript.Geometry.Vector",
+ "Replication": "Auto",
+ "Description": "Create one or more curves by offsetting a planar curve by the given distance in a plane defined by the plane normal. If there are gaps between the offset component curves then, they are filled by extending the offset curves. The \"planeNormal\" input argument defaults to the normal of the plane containing the curve but an explicit normal parallel to the original curve normal can be provided to better control the direction of the offset. For example, if a consistent offset direction is required for multiple curves sharing the same plane, the \"planeNormal\" can be used to override individual curve normals and force all curves to be offset in the same direction. Reversing the normal reverses the direction of the offset.\n\nCurve.OffsetMany (signedDistance: double = 1, planeNormal: Vector = null): Curve[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.BoolSelector, CoreNodeModels",
+ "Id": "37c0e74e028842dd9f1598e3a167a37b",
+ "NodeType": "BooleanInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "f6a0458ed5c640f28d6f7af213e6f788",
+ "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": "2aead4d47098431a993640e6f9092d4c",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "912bf95a6a5445b0a1588b7e950993f3",
+ "Name": "points",
+ "Description": "Points to make polycurve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "905282a20c4b4e62a939a32150506d11",
+ "Name": "connectLastToFirst",
+ "Description": "True to connect last point to first point, false to leave open\n\nbool\nDefault value : false",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "5e94533409594146842164f27bbeec23",
+ "Name": "PolyCurve",
+ "Description": "Polycurve created by points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolyCurve.ByPoints@Autodesk.DesignScript.Geometry.Point[],bool",
+ "Replication": "Auto",
+ "Description": "Make PolyCurve by connecting points. Set the 'connectLastToFirst' input to true to close the PolyCurve.\n\nPolyCurve.ByPoints (points: Point[], connectLastToFirst: bool = false): PolyCurve"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "fa6f2483b6c04650be00b9b5b208004b",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "7e92eeff59464b87bb3ca23df9819110",
+ "Name": "",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a4669ea385f244fc9dd9f1470abfc059",
+ "Name": "",
+ "Description": "y",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a2cfbd84287149b09fcf6379912ce61f",
+ "Name": "",
+ "Description": "pnts",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "x = [-15, -14, -3, 13, 16];\ny = [-12, 8, 0, 19, -15];\npnts = Point.ByCoordinates(x,y);"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 8,
+ "MinimumValue": -8,
+ "StepValue": 2,
+ "Id": "8bbbb99ccbe241fc962154609b516783",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "d98f5c909c3247dd98589361d579cb5b",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": -6
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "f6a0458ed5c640f28d6f7af213e6f788",
+ "End": "905282a20c4b4e62a939a32150506d11",
+ "Id": "eabc62cd06374fbf95ad6bd7c9ee6bf9",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "5e94533409594146842164f27bbeec23",
+ "End": "7ed2c1ce289d43028b7ee6edbfd8479d",
+ "Id": "2cb2fd79fb0a4747b8b9dae36b43c171",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a2cfbd84287149b09fcf6379912ce61f",
+ "End": "912bf95a6a5445b0a1588b7e950993f3",
+ "Id": "ec1b857954e849f2830792e678d860c1",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d98f5c909c3247dd98589361d579cb5b",
+ "End": "75b7fb62042f44ab9863ac3e2fe27bf4",
+ "Id": "8ffbb9e9db3a4538af42e19ebbfce407",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 100.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5874",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": 17.317041397094727,
+ "EyeY": 199.76025390625,
+ "EyeZ": 73.5179443359375,
+ "LookX": -22.317041397094727,
+ "LookY": -188.76025390625,
+ "LookZ": -81.5179443359375,
+ "UpX": -0.21225999295711517,
+ "UpY": 0.594822883605957,
+ "UpZ": -0.77532660961151123
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "481bcc0f58724f20a72bd6d5fb3f8b23",
+ "Name": "Curve.OffsetMany",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1680.2615591829515,
+ "Y": 397.4224998145429
+ },
+ {
+ "Id": "37c0e74e028842dd9f1598e3a167a37b",
+ "Name": "Boolean",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 798.26155918295149,
+ "Y": 572.284999814543
+ },
+ {
+ "Id": "2aead4d47098431a993640e6f9092d4c",
+ "Name": "PolyCurve.ByPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1232.2615591829515,
+ "Y": 397.4224998145429
+ },
+ {
+ "Id": "fa6f2483b6c04650be00b9b5b208004b",
+ "Name": "Creating Points",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 798.26155918295149,
+ "Y": 397.4224998145429
+ },
+ {
+ "Id": "8bbbb99ccbe241fc962154609b516783",
+ "Name": "Offset Distance",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1232.2615591829515,
+ "Y": 572.284999814543
+ }
+ ],
+ "Annotations": [],
+ "X": -467.70093067256346,
+ "Y": -204.31140639322629,
+ "Zoom": 0.77765072223539722
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.OffsetMany.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.OffsetMany.md
index ae5db5ca0fc..3f6bb01c024 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.OffsetMany.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.OffsetMany.md
@@ -1,5 +1,12 @@
## In Depth
-OffsetMany creates one or more curves by offsetting planar curves. The planeNormal input enables you to override the offset vector for the curve or subcurves to be offset.
-___
+`Curve.OffsetMany` creates one or more curves by offsetting a planar curve by the given distance in a plane defined by the plane normal. If there are gaps between the offset component curves, they are filled by extending the offset curves.
+
+The `planeNormal` input defaults to the normal of the plane containing the curve, but an explicit normal parallel to the original curve normal can be provided to better control the direction of the offset.
+For example, if a consistent offset direction is required for multiple curves sharing the same plane, the `planeNormal` input can be used to override individual curve normals and force all curves to be offset in the same direction. Reversing the normal reverses the direction of the offset.
+
+In the example below, a polycurve is offset by a negative offset distance, which applies in the opposite direction of the cross product between the curveâs tangent and the planeâs normal vector.
+___
+## Example File
+![Curve.OffsetMany](./Autodesk.DesignScript.Geometry.Curve.OffsetMany_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.OffsetMany_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.OffsetMany_img.jpg
new file mode 100644
index 00000000000..e54191c97ff
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.OffsetMany_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SplitByParameter.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SplitByParameter.md
index ecfb4685f8b..3f52bd823eb 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SplitByParameter.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SplitByParameter.md
@@ -1,5 +1,8 @@
## In Depth
-Split the Curve into pieces given the supplide parameters.
+`Curve.SplitByParameter (curve, parameters)` takes a curve and a list of parameters as inputs. It splits the curve at the specified parameters and returns a list of resulting curves.
+
+In the example below, we first create a NurbsCurve using a `NurbsCurve.ByControlPoints` node, with a set of randomly generated points as the input. A code block is used to create a series of numbers between 0 and 1 to use as the list of parameters at which the curve is split.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid(curve, path, cutEndOff).dyn
similarity index 71%
rename from doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid.dyn
rename to doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid(curve, path, cutEndOff).dyn
index 8498fec863e..a49f065c839 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid.dyn
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid(curve, path, cutEndOff).dyn
@@ -1,5 +1,5 @@
{
- "Uuid": "3c9d0464-8643-5ffe-96e5-ab1769818209",
+ "Uuid": "e5b0fa4e-6552-44b2-8855-af1d80cb6bb0",
"IsCustomNode": false,
"Description": "",
"Name": "Autodesk.DesignScript.Geometry.Curve.SweepAsSolid",
@@ -16,13 +16,12 @@
"Nodes": [
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "32f3c5e12fc74cd4abcd8f04bffbc0cc",
"NodeType": "CodeBlockNode",
- "Code": "0..180..36;",
- "Id": "46e9280f2cf84b88842f22ae48fb5fce",
"Inputs": [],
"Outputs": [
{
- "Id": "f4069c3f094c4aafbfad76330a0c20d1",
+ "Id": "00b6f749726c4c7e89ab1bfa07e23c08",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -32,16 +31,16 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "0..180..36;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1e50b068eb85475aab075d6babde972b",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
- "Id": "de50a8e3de5541a88428f9da60515e1a",
"Inputs": [
{
- "Id": "2d861276ee9f466dab5e386945f5be02",
+ "Id": "9621b44fe0744c3da3e5f3f0ac413db6",
"Name": "x",
"Description": "X coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
@@ -50,7 +49,7 @@
"KeepListStructure": false
},
{
- "Id": "9a07f7670df4407f8ba251f260e0c1a7",
+ "Id": "7c5bb15ddf884979986d7a2603d78ce0",
"Name": "y",
"Description": "Y coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
@@ -59,7 +58,7 @@
"KeepListStructure": false
},
{
- "Id": "512866259cba440bb681be5e22d207d0",
+ "Id": "a43d9e8b6275407a9f3f35c5f64c4e01",
"Name": "z",
"Description": "Z coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
@@ -70,7 +69,7 @@
],
"Outputs": [
{
- "Id": "3bc42500ae72433397068df4e1e8d773",
+ "Id": "acbc90dbc1ac4ebd9f932d3a3658834d",
"Name": "Point",
"Description": "Point created by coordinates",
"UsingDefaultValue": false,
@@ -79,18 +78,18 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
"Replication": "Auto",
"Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "e85cbb0b89fe46b4baaa8e209ef9117b",
"NodeType": "CodeBlockNode",
- "Code": "0..5..1;",
- "Id": "1e47f83f107a45a285aa21437c1fbc1c",
"Inputs": [],
"Outputs": [
{
- "Id": "81d93da6cff74533af77b7e8cbcedff4",
+ "Id": "1bea4242775d461e8e3d39f10e944f46",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -100,16 +99,16 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "0..5..1;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "48cde1c1e42442c393a4f550eb1d4dd4",
"NodeType": "FunctionNode",
- "FunctionSignature": "DSCore.Math.Cos@double",
- "Id": "46a8d2063011486e91f0607dc215fe0d",
"Inputs": [
{
- "Id": "ebd62c8a98f2486d9fddde1c56c5ee2c",
+ "Id": "4330f968ec064f83a0bd1f5a41451d6a",
"Name": "angle",
"Description": "Angle in degrees to take the cosine of.\n\ndouble",
"UsingDefaultValue": false,
@@ -120,7 +119,7 @@
],
"Outputs": [
{
- "Id": "0b4a0e5c28b5429d98f89c99f323b1e9",
+ "Id": "948c8913646242de97d5ce72d0d96f7d",
"Name": "double",
"Description": "Cosine of the angle",
"UsingDefaultValue": false,
@@ -129,17 +128,17 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "DSCore.Math.Cos@double",
"Replication": "Auto",
"Description": "Finds the cosine of an angle.\n\nMath.Cos (angle: double): double"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7522689d9a5b4e7286df88e8c6ab9a37",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByPoints@Autodesk.DesignScript.Geometry.Point[]",
- "Id": "ead95318805a4a978c334b11db7b52a1",
"Inputs": [
{
- "Id": "df8130b4bd0443cbbf01a28e10723a4b",
+ "Id": "c4b9cbe7a0b3426ca0c823cbc680854d",
"Name": "points",
"Description": "Points for nurbs curve\n\nPoint[]",
"UsingDefaultValue": false,
@@ -150,7 +149,7 @@
],
"Outputs": [
{
- "Id": "d50376efa2c8443e8baa4c65e177ddc5",
+ "Id": "d6e6c83cc5944577a1473d67fe28728b",
"Name": "NurbsCurve",
"Description": "Nurbscurve created from points",
"UsingDefaultValue": false,
@@ -159,17 +158,17 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByPoints@Autodesk.DesignScript.Geometry.Point[]",
"Replication": "Auto",
"Description": "Create a BSplineCurve by interpolating between points.\n\nNurbsCurve.ByPoints (points: Point[]): NurbsCurve"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "34a9a091613d468497496d586ef4f79d",
"NodeType": "CodeBlockNode",
- "Code": "x-2;",
- "Id": "1101b3b4be6343899e395a8c6f85da83",
"Inputs": [
{
- "Id": "8fcc8148882f4ca0b7bb8f03e4779e0d",
+ "Id": "1021431fe2d84726a5ff81ee8b2a4e8d",
"Name": "x",
"Description": "x",
"UsingDefaultValue": false,
@@ -180,7 +179,7 @@
],
"Outputs": [
{
- "Id": "64fe2c88e68640fca357da5a768b92e4",
+ "Id": "824ad923cd524cb3ba8ffbeea0195c6f",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -190,16 +189,16 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "x-2;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "41a65c4200024a6dad503208ac3a2f17",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Rectangle.ByWidthLength@double,double",
- "Id": "7b6e987559c242e6b4b3d982e04583a8",
"Inputs": [
{
- "Id": "f819f97fb3604426a2e3d0326f04d26a",
+ "Id": "2723f78c39d740baa99518c17d2266ce",
"Name": "width",
"Description": "Width of rectangle\n\ndouble\nDefault value : 1",
"UsingDefaultValue": true,
@@ -208,7 +207,7 @@
"KeepListStructure": false
},
{
- "Id": "d1d827ad6dbb4a3e9bde527cb3a6d155",
+ "Id": "2fa80a56b4204610975187293f197725",
"Name": "length",
"Description": "Length of rectangle\n\ndouble\nDefault value : 1",
"UsingDefaultValue": true,
@@ -219,7 +218,7 @@
],
"Outputs": [
{
- "Id": "5a93adf8d1c345569935e20946c35cf8",
+ "Id": "19e635b157fb49c488c1d24a359b9962",
"Name": "Rectangle",
"Description": "Rectangle created by width and length",
"UsingDefaultValue": false,
@@ -228,18 +227,18 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Rectangle.ByWidthLength@double,double",
"Replication": "Auto",
"Description": "Create a Rectangle centered at the WCS origin in the WCS XY Plane, with specified width (X Axis length), and length (Y Axis length).\n\nRectangle.ByWidthLength (width: double = 1, length: double = 1): Rectangle"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "0393c74829c446338bebdc078fdaa202",
"NodeType": "CodeBlockNode",
- "Code": "2;",
- "Id": "0cb269c723704daf9e8e7a94f8800a2b",
"Inputs": [],
"Outputs": [
{
- "Id": "3f673accce824be39eec1318ae84ddf4",
+ "Id": "808ca571522742dd88ecd49cfd5fa972",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -249,16 +248,16 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "2;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "0f3be53c354e49a09a08736f02399916",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.SweepAsSolid@Autodesk.DesignScript.Geometry.Curve,bool",
- "Id": "f0c8209b026949dca4251b1227482edf",
"Inputs": [
{
- "Id": "58b7f426d940488599fd761478fa0dea",
+ "Id": "9499b990ee154eb0a39ab8f6f93020d4",
"Name": "curve",
"Description": "Autodesk.DesignScript.Geometry.Curve",
"UsingDefaultValue": false,
@@ -267,7 +266,7 @@
"KeepListStructure": false
},
{
- "Id": "d935696726b74ebab0dbc9121054bb7e",
+ "Id": "156bdd34ebd248518c27491213de3235",
"Name": "path",
"Description": "The path that represent the sweep path\n\nCurve",
"UsingDefaultValue": false,
@@ -276,7 +275,7 @@
"KeepListStructure": false
},
{
- "Id": "51273deeefec45859abe2a253f35de21",
+ "Id": "efe852ccba474864a8e99b37b4fd7573",
"Name": "cutEndOff",
"Description": "Cut the end of the sweep and make it normal to the path\n\nbool\nDefault value : false",
"UsingDefaultValue": true,
@@ -287,7 +286,7 @@
],
"Outputs": [
{
- "Id": "3e2cdf4bbf324c90a1f0ae3036f758bd",
+ "Id": "7e70a2d93a514386bc7f4b16b379e18e",
"Name": "Solid",
"Description": "A solid that sweeps this closed Curve along the path Curve",
"UsingDefaultValue": false,
@@ -296,69 +295,70 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.SweepAsSolid@Autodesk.DesignScript.Geometry.Curve,bool",
"Replication": "Auto",
"Description": "Sweeps this closed Curve along the path Curve, creating a Solid\n\nCurve.SweepAsSolid (path: Curve, cutEndOff: bool = false): Solid"
}
],
"Connectors": [
{
- "Start": "f4069c3f094c4aafbfad76330a0c20d1",
- "End": "ebd62c8a98f2486d9fddde1c56c5ee2c",
- "Id": "38f4c43017ce465791f63ab8c4a0c1dc",
+ "Start": "00b6f749726c4c7e89ab1bfa07e23c08",
+ "End": "4330f968ec064f83a0bd1f5a41451d6a",
+ "Id": "7db6dc6aa50b4810a8cd1f0e50d48af0",
"IsHidden": "False"
},
{
- "Start": "3bc42500ae72433397068df4e1e8d773",
- "End": "df8130b4bd0443cbbf01a28e10723a4b",
- "Id": "83d8312ae14747d086f16e199562ff6c",
+ "Start": "acbc90dbc1ac4ebd9f932d3a3658834d",
+ "End": "c4b9cbe7a0b3426ca0c823cbc680854d",
+ "Id": "05fa3494401f4ef18f31f4b31d5123a7",
"IsHidden": "False"
},
{
- "Start": "81d93da6cff74533af77b7e8cbcedff4",
- "End": "512866259cba440bb681be5e22d207d0",
- "Id": "bffae81024d048218b1acafb8b60bcfa",
+ "Start": "1bea4242775d461e8e3d39f10e944f46",
+ "End": "a43d9e8b6275407a9f3f35c5f64c4e01",
+ "Id": "bb92390c41994ac683f02ead9412a5b4",
"IsHidden": "False"
},
{
- "Start": "0b4a0e5c28b5429d98f89c99f323b1e9",
- "End": "8fcc8148882f4ca0b7bb8f03e4779e0d",
- "Id": "d47b90c11fdb49fd98ddef2fe1cc51e2",
+ "Start": "948c8913646242de97d5ce72d0d96f7d",
+ "End": "1021431fe2d84726a5ff81ee8b2a4e8d",
+ "Id": "dfbbd4056cf0476b9f832d6b25dfc566",
"IsHidden": "False"
},
{
- "Start": "d50376efa2c8443e8baa4c65e177ddc5",
- "End": "d935696726b74ebab0dbc9121054bb7e",
- "Id": "0a39ce3092664be6a951b5fef68412d5",
+ "Start": "d6e6c83cc5944577a1473d67fe28728b",
+ "End": "156bdd34ebd248518c27491213de3235",
+ "Id": "19574850cd144a309d21de1f4ce465a6",
"IsHidden": "False"
},
{
- "Start": "64fe2c88e68640fca357da5a768b92e4",
- "End": "2d861276ee9f466dab5e386945f5be02",
- "Id": "67b2f9a3283f41b8a7020ba0e85585b0",
+ "Start": "824ad923cd524cb3ba8ffbeea0195c6f",
+ "End": "9621b44fe0744c3da3e5f3f0ac413db6",
+ "Id": "2a4c95cbabbb47a58d0c32f5f3580e78",
"IsHidden": "False"
},
{
- "Start": "5a93adf8d1c345569935e20946c35cf8",
- "End": "58b7f426d940488599fd761478fa0dea",
- "Id": "002406dfc07f4146a1e362ec4b0ad4fb",
+ "Start": "19e635b157fb49c488c1d24a359b9962",
+ "End": "9499b990ee154eb0a39ab8f6f93020d4",
+ "Id": "e0d3508a78bb40ac9ea1141697ff20e4",
"IsHidden": "False"
},
{
- "Start": "3f673accce824be39eec1318ae84ddf4",
- "End": "f819f97fb3604426a2e3d0326f04d26a",
- "Id": "1f830a81c8c84ffe8971183b0253b4cf",
+ "Start": "808ca571522742dd88ecd49cfd5fa972",
+ "End": "2723f78c39d740baa99518c17d2266ce",
+ "Id": "9fc5d35b6f8f4ca7a61a9085db8b3066",
"IsHidden": "False"
}
],
"Dependencies": [],
"NodeLibraryDependencies": [],
- "Thumbnail": null,
+ "Thumbnail": "",
"GraphDocumentationURL": null,
"ExtensionWorkspaceData": [
{
"ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
"Name": "Properties",
- "Version": "2.17",
+ "Version": "2.19",
"Data": {}
}
],
@@ -375,118 +375,118 @@
"ScaleFactor": 1.0,
"HasRunWithoutCrash": true,
"IsVisibleInDynamoLibrary": true,
- "Version": "2.17.0.3255",
- "RunType": "Manual",
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
"RunPeriod": "1000"
},
"Camera": {
"Name": "_Background Preview",
- "EyeX": -10.819255828857422,
- "EyeY": 4.1498737335205078,
- "EyeZ": 7.4183993339538574,
- "LookX": 10.980081558227539,
- "LookY": -0.21393844485282898,
- "LookZ": -8.58186149597168,
- "UpX": -0.15708129107952118,
- "UpY": 0.97992467880249023,
- "UpZ": 0.12277230620384216
+ "EyeX": -9.7833023071289063,
+ "EyeY": 6.161107063293457,
+ "EyeZ": 10.048727989196777,
+ "LookX": 6.2058191299438477,
+ "LookY": -0.82160615921020508,
+ "LookZ": -12.452702522277832,
+ "UpX": -0.06977478414773941,
+ "UpY": 0.98768836259841919,
+ "UpZ": 0.14001153409481049
},
"ConnectorPins": [],
"NodeViews": [
{
+ "Id": "32f3c5e12fc74cd4abcd8f04bffbc0cc",
"Name": "Code Block",
- "ShowGeometry": true,
- "Id": "46e9280f2cf84b88842f22ae48fb5fce",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -982.77434718964014,
- "Y": 188.05819007606192
+ "ShowGeometry": true,
+ "X": -1023.7198597657745,
+ "Y": 186.55819007606192
},
{
+ "Id": "1e50b068eb85475aab075d6babde972b",
"Name": "Point.ByCoordinates",
- "ShowGeometry": true,
- "Id": "de50a8e3de5541a88428f9da60515e1a",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -154.77434718964025,
- "Y": 227.40319007606197
+ "ShowGeometry": true,
+ "X": -195.71985976577446,
+ "Y": 226.90319007606195
},
{
+ "Id": "e85cbb0b89fe46b4baaa8e209ef9117b",
"Name": "Code Block",
- "ShowGeometry": true,
- "Id": "1e47f83f107a45a285aa21437c1fbc1c",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -409.17434718964023,
- "Y": 334.23069007606193
+ "ShowGeometry": true,
+ "X": -449.71985976577446,
+ "Y": 334.73069007606193
},
{
+ "Id": "48cde1c1e42442c393a4f550eb1d4dd4",
"Name": "Math.Cos",
- "ShowGeometry": true,
- "Id": "46a8d2063011486e91f0607dc215fe0d",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -712.37434718964016,
- "Y": 188.23069007606193
+ "ShowGeometry": true,
+ "X": -752.71985976577446,
+ "Y": 186.73069007606193
},
{
+ "Id": "7522689d9a5b4e7286df88e8c6ab9a37",
"Name": "NurbsCurve.ByPoints",
- "ShowGeometry": true,
- "Id": "ead95318805a4a978c334b11db7b52a1",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 170.02565281035982,
- "Y": 227.40319007606197
+ "ShowGeometry": true,
+ "X": 129.28014023422554,
+ "Y": 226.90319007606195
},
{
+ "Id": "34a9a091613d468497496d586ef4f79d",
"Name": "Code Block",
- "ShowGeometry": true,
- "Id": "1101b3b4be6343899e395a8c6f85da83",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -409.17434718964023,
- "Y": 188.23069007606193
+ "ShowGeometry": true,
+ "X": -449.71985976577446,
+ "Y": 186.73069007606193
},
{
+ "Id": "41a65c4200024a6dad503208ac3a2f17",
"Name": "Rectangle.ByWidthLength",
- "ShowGeometry": true,
- "Id": "7b6e987559c242e6b4b3d982e04583a8",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 170.02565281035982,
- "Y": 49.403190076061918
+ "ShowGeometry": true,
+ "X": 129.28014023422554,
+ "Y": 48.903190076061946
},
{
+ "Id": "0393c74829c446338bebdc078fdaa202",
"Name": "Code Block",
- "ShowGeometry": true,
- "Id": "0cb269c723704daf9e8e7a94f8800a2b",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -154.77434718964025,
- "Y": 49.230690076061933
+ "ShowGeometry": true,
+ "X": -195.71985976577446,
+ "Y": 48.730690076061933
},
{
+ "Id": "0f3be53c354e49a09a08736f02399916",
"Name": "Curve.SweepAsSolid",
- "ShowGeometry": true,
- "Id": "f0c8209b026949dca4251b1227482edf",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 536.42565281035968,
- "Y": 121.40319007606192
+ "ShowGeometry": true,
+ "X": 476.34475235663513,
+ "Y": 113.66016328142138
}
],
"Annotations": [],
- "X": 744.00064532525028,
- "Y": 54.140530852501257,
- "Zoom": 0.73302752293578
+ "X": 715.77047668236651,
+ "Y": 70.574999695881047,
+ "Zoom": 0.65243989526115775
}
}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid(curve, path, cutEndOff).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid(curve, path, cutEndOff).md
new file mode 100644
index 00000000000..dc06e1e905d
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid(curve, path, cutEndOff).md
@@ -0,0 +1,8 @@
+## In Depth
+`Curve.SweepAsSolid` creates a solid by sweeping an input closed profile curve along a specified path.
+
+In the example below, we use a rectangle as the base profile curve. The path is created by using a cosine function with a sequence of angles to vary the x-coordinates of a set of points. The points are used as the input to a `NurbsCurve.ByPoints` node. We then create a solid by sweeping the rectangle along the created cosine curve with a `Curve.SweepAsSolid` node.
+___
+## Example File
+
+![Curve.SweepAsSolid(curve, path, cutEndOff)](./Autodesk.DesignScript.Geometry.Curve.SweepAsSolid(curve,%20path,%20cutEndOff)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid(curve, path, cutEndOff)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid(curve, path, cutEndOff)_img.jpg
new file mode 100644
index 00000000000..877a9eeab07
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid(curve, path, cutEndOff)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid.md
deleted file mode 100644
index 2ba95017c52..00000000000
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid.md
+++ /dev/null
@@ -1,7 +0,0 @@
-## In Depth
-Sweep As Solid will create a solid by sweeping an input closed profile curve along a specified path. In the example below, we use a rectangle as the base profile curve. The path is created by using a cosine function with a sequence of angles to vary the x-coordinates of a set of points. The points are used as the input to a NurbsCurve.ByPoints node. We then create a solid by sweeping the rectangle along the created cosine curve.
-___
-## Example File
-
-![SweepAsSolid](./Autodesk.DesignScript.Geometry.Curve.SweepAsSolid_img.jpg)
-
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid_img.jpg
deleted file mode 100644
index 2d4a9d406aa..00000000000
Binary files a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.SweepAsSolid_img.jpg and /dev/null differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.TrimSegmentsByParameter(curve, parameters, discardEvenSegments).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.TrimSegmentsByParameter(curve, parameters, discardEvenSegments).dyn
new file mode 100644
index 00000000000..479e8459e10
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.TrimSegmentsByParameter(curve, parameters, discardEvenSegments).dyn
@@ -0,0 +1,531 @@
+{
+ "Uuid": "96f916f3-a9b1-4f51-9a06-733d40453219",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Curve.TrimSegmentsByParameter",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "09c75540cdf3432b85776509754c999f",
+ "Name": "Boolean",
+ "Type": "boolean",
+ "Type2": "boolean",
+ "Value": "false",
+ "Description": "Enables selection between True and False",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "4d077c5aac734df3851ba7c4f19c925a",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "f363c0bf7ca245ecae355258f1839a71",
+ "Name": "points",
+ "Description": "Points for nurbs curve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "d91d55edecce436da17ea0bb72b23e62",
+ "Name": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByControlPoints@Autodesk.DesignScript.Geometry.Point[]",
+ "Replication": "Auto",
+ "Description": "Create a BSplineCurve by using explicit control points. NOTE 1: BSplineCurves with deg=1 have G1 discontinuities, which cause problems for extrusion, sweep, and other operations. They should be avoided. Use a PolyCurve instead. NOTE 2: If the curve is periodic (closed), then the first and last points MUST be the same.\n\nNurbsCurve.ByControlPoints (points: Point[]): NurbsCurve"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d34e58b7192849beb48bda9dfa2ca60b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "7b6ebbaf6cc24100b8d3e99a7ceaf9c8",
+ "Name": "amount",
+ "Description": "Amount of random numbers the result list will contain.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8fc36e4944394971a327a0a4e08cd451",
+ "Name": "number",
+ "Description": "List of random numbers between 0 and 1.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
+ "Replication": "Auto",
+ "Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "28ae21fe880047838fb1d56a016049a6",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "64a7c766aadf40b29256fc35feea8ad5",
+ "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",
+ "Code": "6;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "75a9a2fa4e0046c1ab514c1c64f44ac7",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "4be644416719428094b8470fac074569",
+ "Name": "amount",
+ "Description": "Amount of random numbers the result list will contain.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "1296f6f8f1ff485694e950d955f2fa91",
+ "Name": "number",
+ "Description": "List of random numbers between 0 and 1.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
+ "Replication": "Auto",
+ "Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "e9350dcdfdbc4458a2744160a6021125",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "2f54b021fece407eb041427f24183942",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "782d4191082240f6bf77aab8ca3ee42e",
+ "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",
+ "Code": "x*10;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "744712f278d947119bbbbe5a8f9b8d6c",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "13c77b604c5245778f31cc9c0b76b241",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e82b1b1bf9724e90a949e7346c2a73b2",
+ "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",
+ "Code": "x*10;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1148770d5d374f86bc78bc6f1e768cbd",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "b2413be508bd43f990b6de42febca429",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "015858deec874d55852248c335a3254e",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8bee2bc6579847818ecec7df5f2fe614",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point in the XY plane given two 2 cartesian coordinates. The Z component is 0.\n\nPoint.ByCoordinates (x: double = 0, y: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "d8c0b45b0b26455a89e74cddedca572f",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "cb01149035464371a91d89b62b40fceb",
+ "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",
+ "Code": "0..1..0.1;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7301eacd22d74fba8437393b6dc7c93c",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "04cfd28f80984d24aca45e34b343fa51",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "f558f4c7b5e441b2840934a57fb6cd05",
+ "Name": "parameters",
+ "Description": "A list of parameters at which to split the curve\n\ndouble[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d71577d511af45f1bde21b22d49612ef",
+ "Name": "discardEvenSegments",
+ "Description": "Toggle to discard even segments\n\nbool\nDefault value : true",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "62bb713f8b714e0bba8d3712f264e4e3",
+ "Name": "Curve[]",
+ "Description": "List of curves remaining after discarding the even or odd curve segments.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.TrimSegmentsByParameter@double[],bool",
+ "Replication": "Auto",
+ "Description": "Removes even or odd segments of the Curve split at the given parameters depending on whether the 'discardEvenSegments' flag is true or false respectively.\n\nCurve.TrimSegmentsByParameter (parameters: double[], discardEvenSegments: bool = true): Curve[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.BoolSelector, CoreNodeModels",
+ "Id": "09c75540cdf3432b85776509754c999f",
+ "NodeType": "BooleanInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "38009163995b416a819858a1280d5469",
+ "Name": "",
+ "Description": "Boolean",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Enables selection between True and False",
+ "InputValue": false
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "d91d55edecce436da17ea0bb72b23e62",
+ "End": "04cfd28f80984d24aca45e34b343fa51",
+ "Id": "0501c377140948c888d5dd43c1f1be79",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8fc36e4944394971a327a0a4e08cd451",
+ "End": "2f54b021fece407eb041427f24183942",
+ "Id": "f693420936654a4ab0ec8fa27b3fb194",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "64a7c766aadf40b29256fc35feea8ad5",
+ "End": "7b6ebbaf6cc24100b8d3e99a7ceaf9c8",
+ "Id": "ddba6d7affa84250a4d97a6d1e3ee2bb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "64a7c766aadf40b29256fc35feea8ad5",
+ "End": "4be644416719428094b8470fac074569",
+ "Id": "52b1a64d2f9f4f43b9501479ec16aaf7",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "1296f6f8f1ff485694e950d955f2fa91",
+ "End": "13c77b604c5245778f31cc9c0b76b241",
+ "Id": "7df7c49780064f939ed375571eb7c17f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "782d4191082240f6bf77aab8ca3ee42e",
+ "End": "b2413be508bd43f990b6de42febca429",
+ "Id": "af22cac7e6bd4536b61f7ce00be2d829",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e82b1b1bf9724e90a949e7346c2a73b2",
+ "End": "015858deec874d55852248c335a3254e",
+ "Id": "bb4dabac25734447862a10861c3ff5e5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8bee2bc6579847818ecec7df5f2fe614",
+ "End": "f363c0bf7ca245ecae355258f1839a71",
+ "Id": "6e36e61b46e8400a8589e8da86fb35b4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "cb01149035464371a91d89b62b40fceb",
+ "End": "f558f4c7b5e441b2840934a57fb6cd05",
+ "Id": "1889bd2118db42b6abf27466343feb31",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "38009163995b416a819858a1280d5469",
+ "End": "d71577d511af45f1bde21b22d49612ef",
+ "Id": "dc9496e34049450790258cf50ce20909",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5874",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": 2.6029868125915527,
+ "EyeY": 4.4077701568603516,
+ "EyeZ": 1.1365127563476563,
+ "LookX": 2.0568084716796875,
+ "LookY": -2.6562516689300537,
+ "LookZ": -3.7429630756378174,
+ "UpX": 0.16075842082500458,
+ "UpY": 0.94264155626297,
+ "UpZ": -0.29254710674285889
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "4d077c5aac734df3851ba7c4f19c925a",
+ "Name": "NurbsCurve.ByControlPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 418.877748105216,
+ "Y": -3656.5322328371
+ },
+ {
+ "Id": "d34e58b7192849beb48bda9dfa2ca60b",
+ "Name": "Math.RandomList",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -481.122251894784,
+ "Y": -3713.7047328371
+ },
+ {
+ "Id": "28ae21fe880047838fb1d56a016049a6",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -735.122251894784,
+ "Y": -3639.8772328371
+ },
+ {
+ "Id": "75a9a2fa4e0046c1ab514c1c64f44ac7",
+ "Name": "Math.RandomList",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -481.122251894784,
+ "Y": -3565.7047328371
+ },
+ {
+ "Id": "e9350dcdfdbc4458a2744160a6021125",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -160.12225189478397,
+ "Y": -3713.7047328371
+ },
+ {
+ "Id": "744712f278d947119bbbbe5a8f9b8d6c",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -160.12225189478397,
+ "Y": -3565.7047328371
+ },
+ {
+ "Id": "1148770d5d374f86bc78bc6f1e768cbd",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 93.877748105216028,
+ "Y": -3656.5322328371
+ },
+ {
+ "Id": "d8c0b45b0b26455a89e74cddedca572f",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 418.877748105216,
+ "Y": -3496.7047328371
+ },
+ {
+ "Id": "7301eacd22d74fba8437393b6dc7c93c",
+ "Name": "Curve.TrimSegmentsByParameter",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 804.877748105216,
+ "Y": -3534.5322328371
+ },
+ {
+ "Id": "09c75540cdf3432b85776509754c999f",
+ "Name": "Boolean",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 418.877748105216,
+ "Y": -3348.5322328371
+ }
+ ],
+ "Annotations": [],
+ "X": 537.10528482769246,
+ "Y": 2603.7027161136702,
+ "Zoom": 0.66406570309069013
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.TrimSegmentsByParameter(curve, parameters, discardEvenSegments).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.TrimSegmentsByParameter(curve, parameters, discardEvenSegments).md
new file mode 100644
index 00000000000..369a30ef770
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.TrimSegmentsByParameter(curve, parameters, discardEvenSegments).md
@@ -0,0 +1,8 @@
+## In Depth
+`Curve.TrimSegmentsByParameter (parameters, discardEvenSegments)` first splits a curve at points determined by an input list of parameters. It then returns either the odd numbered segments or the even numbered segments, as determined by the Boolean value of the `discardEvenSegments` input.
+
+In the example below, we first create a NurbsCurve using a `NurbsCurve.ByControlPoints` node, with a set of randomly generated points as the input. A `code block` is used to create a range of numbers between 0 and 1, stepping by 0.1. Using this as the input parameters for a `Curve.TrimSegmentsByParameter` node results in a list of curves that are effectively a dashed-line version of the original curve.
+___
+## Example File
+
+![Curve.TrimSegmentsByParameter(parameters, discardEvenSegments)](./Autodesk.DesignScript.Geometry.Curve.TrimSegmentsByParameter(curve,%20parameters,%20discardEvenSegments)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.TrimSegmentsByParameter(curve, parameters, discardEvenSegments)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.TrimSegmentsByParameter(curve, parameters, discardEvenSegments)_img.jpg
new file mode 100644
index 00000000000..df17151a20a
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Curve.TrimSegmentsByParameter(curve, parameters, discardEvenSegments)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cylinder.Height.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cylinder.Height.md
index c4b77e3c660..30c4e72e2ff 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cylinder.Height.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cylinder.Height.md
@@ -1,5 +1,8 @@
## In Depth
-Text note height is returned as a double. The height value is relative to the view scale.
+`Cylinder.Height` returns the height of the input cylinder. The height value is relative to the view scale.
+
+In the example below, we generate a cylinder by start point, end point, and radius, and then use a `Cylinder.Height` node to find the height.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cylinder.Radius.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cylinder.Radius.md
index 21a82359a0b..3fbe0a06626 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cylinder.Radius.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Cylinder.Radius.md
@@ -1,5 +1,8 @@
## In Depth
-Radius will return the center of an input sphere. In the example below, we use a ByBestFit node to create a sphere based on a set of random points. We then use a Radius node to determine the size of the best fit sphere.
+`Cylinder.Radius` returns the radius of a cylinder as a double.
+
+In the example below, adjusting the number slider will change the cylinder's radius.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Ellipse.CenterPoint.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Ellipse.CenterPoint.md
index f9dcce60db5..a7e740d7bdd 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Ellipse.CenterPoint.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Ellipse.CenterPoint.md
@@ -1,5 +1,8 @@
## In Depth
-Center Point will return the center of an input sphere. In the example below, we use a ByBestFit node to create a sphere based on a set of random points. We then use a CenterPoint node to determine the center of the best fit sphere.
+`Ellipse.CenterPoint` returns the center point of an input ellipse. Note that this point does not contain any information about the orientation or plane of the ellipse.
+
+In the example below, we first create an ellipse by using `Ellipse.ByPlaneRadii`, then find the center point.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.EllipseArc.CenterPoint.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.EllipseArc.CenterPoint.md
index 1489e6cdb29..d8ea96bb243 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.EllipseArc.CenterPoint.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.EllipseArc.CenterPoint.md
@@ -1,5 +1,8 @@
## In Depth
-Center Point will return the center of an input sphere. In the example below, we use a ByBestFit node to create a sphere based on a set of random points. We then use a CenterPoint node to determine the center of the best fit sphere.
+`EllipseArc.CenterPoint` finds the center point of an ellipse arc, which is the same as the center point of the completed ellipse.
+
+In the example below, we first create an ellipse arc by using the XY plane and a series of number sliders. We then use `EllipseArc.CenterPoint` to extract the center of the ellipse.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.EllipseArc.Plane.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.EllipseArc.Plane.md
index 9804777ee38..9bc172160f6 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.EllipseArc.Plane.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.EllipseArc.Plane.md
@@ -1,5 +1,8 @@
## In Depth
-Sketch planes are used in the creation of 2D and 3D geometry in Revit.
+`EllipseArc.Plane` finds the plane of an ellipse arc, which is the same as the plane of the completed ellipse.
+
+In the example below, we first create an ellipse arc by using the XY plane and a series of number sliders. We then use `EllipseArc.Plane` to extract the plane of the ellipse.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.BoundingBox.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.BoundingBox.md
index 54c59907fac..ff613d7b445 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.BoundingBox.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.BoundingBox.md
@@ -1,5 +1,8 @@
## In Depth
-BoundingBox will create a bounding box in Dynamo around a Revit element.
+`Geometry.BoundingBox` returns a box defined by the geometry it contains. A BoundingBox is not displayed, but it can be returned as a PolySurface by using the `BoundingBox.ToPolySurface` node.
+
+In the example below, a BoundingBox is created for a unioned solid and represented as a PolySurface.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ExportToSAT(geometry, filePath).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ExportToSAT(geometry, filePath).dyn
new file mode 100644
index 00000000000..f519d210b6e
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ExportToSAT(geometry, filePath).dyn
@@ -0,0 +1,874 @@
+{
+ "Uuid": "baaf6052-9b49-488f-8f01-a28a858d23d7",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.ExportToSAT",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "97b319c8678b4ba9935d0355a77b4c9c",
+ "Name": "File Path",
+ "Type": "string",
+ "Type2": "string",
+ "Value": "No file selected.",
+ "Description": "Allows you to select a file on the system and returns its file path",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "6dcb0b06e6d147b98f817235d27b203f",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "453098e6695e403b919668b2814d9965",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5c15552cea374af0bcde68715da646fa",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6fa0e8be0e394f818fadea607b4a6a58",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "212ac2af3033489d8eaab39dd46d11a8",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "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",
+ "Id": "3da18c1927f7469e8307da74ca1d2685",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "dec16edf3fbb4adeb55ac8dcea284ec9",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "506bd0af4ba0447b8a4755edcf4ed257",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "85c9a649c2224c3ca181bc1a252b9eee",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "12d3ff9e2e6846a2a63236fff4edf5e3",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "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",
+ "Id": "20f4e6550d704f80b7c61775938f91ef",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "b090dceb2ea34be4b4f04c14379847dd",
+ "Name": "centerPoint",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "fdf4cdf3fe964cfdae3a3d1407f55645",
+ "Name": "radius",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "55b94f530e1147f0aab4219467eb986e",
+ "Name": "Sphere",
+ "Description": "Sphere",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Sphere.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Create a Solid Sphere cetered at the input Point, with given radius.\n\nSphere.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Sphere"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "70b7b2032a0346e2a3ef4a33b75b16d6",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "77597bf8991641f0b4aa11b85002fe68",
+ "Name": "centerPoint",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a4359564ed2a44929f35b07ae33eeb1b",
+ "Name": "radius",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "9b50edbd0ebf46baa9e256bb81a1e805",
+ "Name": "Sphere",
+ "Description": "Sphere",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Sphere.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Create a Solid Sphere cetered at the input Point, with given radius.\n\nSphere.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Sphere"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "75a6566341c940b7951ce28a90b873dc",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "6f7ceb79118c4c4890e412f40e8b0443",
+ "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",
+ "Code": "5;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "c66e3330feba4c43aea0b47910584c5b",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "a4abbd7022bf47afa77a39a4c3c1eeaf",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "9686859dd3f547038f8656797171a4c3",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "fc5b80398c874bd4b28125e093dd203d",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "5;\n2;\n8;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "fdbcec629f5046a1be1a68647d5db95a",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "90ee0223959944fc9fefa6e375e74feb",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8b10fc55e29042528654b8e72823fe96",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ac2b35636105420cbc5172b66c49b0aa",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "1;\n2;\n3;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1803be16255347a8bfcd31647f522eec",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "fe8e296035c141a0a0fbd670b9a9e4c5",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "3a2cbb8e0a8a44aba64a8ca0874853bd",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "22718d87f8a747f9bc0087b819459dde",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8e6164a7037f42e9b18a9d8cb603627d",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "d1a25ced3c88415f8b4d34bec3b87714",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "adb8e84bd9cf47b79c7c8635c01da1a8",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1ea04c8206044ca4a204b6ed46496326",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5a28223ec9ab4823af5a7b74b19c3570",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "5;\n1;\n4;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d089d566f4c747f78b026a2da6fb4f50",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "d69e399dc17e4716a58452ae56b90ace",
+ "Name": "centerPoint",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "43fc9f6903e645a091a9ef6b620e17e4",
+ "Name": "radius",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "9764ae56d92e42cab0fd54adfb943ce6",
+ "Name": "Sphere",
+ "Description": "Sphere",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Sphere.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Create a Solid Sphere cetered at the input Point, with given radius.\n\nSphere.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Sphere"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "0eb7d5f8b7304af082683d679f29cd3b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "fdd1139d49ab4c478fbc166dfe949b73",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6e39f981e47c4d4e9fdd5c962056d73e",
+ "Name": "others",
+ "Description": "Geometry[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "c092547d04ea4c7687b99d1d8be46b03",
+ "Name": "Geometry[]",
+ "Description": "Geometry[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.IntersectAll@Autodesk.DesignScript.Geometry.Geometry[]",
+ "Replication": "Auto",
+ "Description": "Get the intersection of Geometry for this object and a collection of other Geometries. Finds common geometry of all participants.\n\nGeometry.IntersectAll (others: Geometry[]): Geometry[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSVarArgFunction, DynamoCore",
+ "FunctionSignature": "DSCore.List.Join@var[]..[]",
+ "FunctionType": "VariableArgument",
+ "Id": "2b117b50cc3a4861a10b902f573d4a54",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "09e2f1e8c40744c48d4ca30c7a4d778f",
+ "Name": "list0",
+ "Description": "Lists to join into one.\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "9e10e8b3e68a469a9cf9f850e0ea8471",
+ "Name": "list1",
+ "Description": "var[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "25d517060806422787ff04366e4025d6",
+ "Name": "list",
+ "Description": "Joined list.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Auto",
+ "Description": "Concatenates all given lists into a single list.\n\nList.Join (lists: var[]..[]): var[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.Filename, CoreNodeModels",
+ "Id": "97b319c8678b4ba9935d0355a77b4c9c",
+ "NodeType": "ExtensionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "c6273b6c301249e8ba053a3c6e531a7b",
+ "Name": "",
+ "Description": "File Path",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows you to select a file on the system and returns its file path",
+ "HintPath": "C:\\Users\\tellro\\Downloads\\UpdatedDynamoSampleGraphs\\No file selected",
+ "InputValue": "No file selected."
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d3be2ac8f0844986ad7b2ae9a6fa0c7b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "2d12b5977f374fecbf6deef0ea7136a9",
+ "Name": "geometry",
+ "Description": "Geometry[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "0b19a7d4c5ef43b59617a2762b6dbd3f",
+ "Name": "filePath",
+ "Description": "The name of the file to export the geometry to\n\nstring",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "d4b4f247365143f890598fedc21b37ae",
+ "Name": "string",
+ "Description": "string",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.ExportToSAT@Autodesk.DesignScript.Geometry.Geometry[],string",
+ "Replication": "Auto",
+ "Description": "Exports the specified geometry to the given SAT file path\n\nGeometry.ExportToSAT (geometry: Geometry[], filePath: string): string"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "212ac2af3033489d8eaab39dd46d11a8",
+ "End": "77597bf8991641f0b4aa11b85002fe68",
+ "Id": "3bd4f307d77648ae8cfb16da7b695091",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "12d3ff9e2e6846a2a63236fff4edf5e3",
+ "End": "b090dceb2ea34be4b4f04c14379847dd",
+ "Id": "525ff18b33594b15bccd1f54f1592ec5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "55b94f530e1147f0aab4219467eb986e",
+ "End": "09e2f1e8c40744c48d4ca30c7a4d778f",
+ "Id": "1d7709a99fb54944b2df0f3ef8ec30cd",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9b50edbd0ebf46baa9e256bb81a1e805",
+ "End": "fdd1139d49ab4c478fbc166dfe949b73",
+ "Id": "12e3bec8cf9c43488eecb524035bcdeb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6f7ceb79118c4c4890e412f40e8b0443",
+ "End": "a4359564ed2a44929f35b07ae33eeb1b",
+ "Id": "e17cfcc2f99445768cef7194dbf05e3d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6f7ceb79118c4c4890e412f40e8b0443",
+ "End": "fdf4cdf3fe964cfdae3a3d1407f55645",
+ "Id": "63efbf90326b4d168fc868911428aea1",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6f7ceb79118c4c4890e412f40e8b0443",
+ "End": "43fc9f6903e645a091a9ef6b620e17e4",
+ "Id": "d7ed46a49d21400bb019ae60099df93b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a4abbd7022bf47afa77a39a4c3c1eeaf",
+ "End": "453098e6695e403b919668b2814d9965",
+ "Id": "f5cd3fe68e844db6933991ec53cd61c6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9686859dd3f547038f8656797171a4c3",
+ "End": "5c15552cea374af0bcde68715da646fa",
+ "Id": "c7abb8cbf08f47deb5f386612316194e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "fc5b80398c874bd4b28125e093dd203d",
+ "End": "6fa0e8be0e394f818fadea607b4a6a58",
+ "Id": "fd0a9d086889460f9071730fe2538744",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "90ee0223959944fc9fefa6e375e74feb",
+ "End": "dec16edf3fbb4adeb55ac8dcea284ec9",
+ "Id": "09b5c741040d4ec0be2584c648cf71dc",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8b10fc55e29042528654b8e72823fe96",
+ "End": "506bd0af4ba0447b8a4755edcf4ed257",
+ "Id": "e8ffb8de86684d89b81d57a152ae78f4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ac2b35636105420cbc5172b66c49b0aa",
+ "End": "85c9a649c2224c3ca181bc1a252b9eee",
+ "Id": "789df2645ffb401aba2dd2abfc40be1c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8e6164a7037f42e9b18a9d8cb603627d",
+ "End": "d69e399dc17e4716a58452ae56b90ace",
+ "Id": "aca9f301ca7f4d4d8b347e0b92ee3a3e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "adb8e84bd9cf47b79c7c8635c01da1a8",
+ "End": "fe8e296035c141a0a0fbd670b9a9e4c5",
+ "Id": "c080e2cc851a45d993b3e17d9d4f684b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "1ea04c8206044ca4a204b6ed46496326",
+ "End": "3a2cbb8e0a8a44aba64a8ca0874853bd",
+ "Id": "9d629d79be8d42068ff1114a76270262",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "5a28223ec9ab4823af5a7b74b19c3570",
+ "End": "22718d87f8a747f9bc0087b819459dde",
+ "Id": "7c7fd0d6583f48ac93f548ee29c152c4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9764ae56d92e42cab0fd54adfb943ce6",
+ "End": "9e10e8b3e68a469a9cf9f850e0ea8471",
+ "Id": "0e0a38b5569548a6ad8bb00593a23de0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c092547d04ea4c7687b99d1d8be46b03",
+ "End": "2d12b5977f374fecbf6deef0ea7136a9",
+ "Id": "d89d52ace7b4411e9a1968efb31ccec8",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "25d517060806422787ff04366e4025d6",
+ "End": "6e39f981e47c4d4e9fdd5c962056d73e",
+ "Id": "391274aacda2450097ec141a64b8d0ab",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c6273b6c301249e8ba053a3c6e531a7b",
+ "End": "0b19a7d4c5ef43b59617a2762b6dbd3f",
+ "Id": "e12a22bc3c86441f89a38dc35fd3d4e6",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -15.944196701049805,
+ "EyeY": 11.278770446777344,
+ "EyeZ": 16.994457244873047,
+ "LookX": 20.185733795166016,
+ "LookY": -3.4630277156829834,
+ "LookZ": -20.405805587768555,
+ "UpX": -0.067404754459857941,
+ "UpY": 0.9953961968421936,
+ "UpZ": 0.068139612674713135
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "6dcb0b06e6d147b98f817235d27b203f",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 536.564451465025,
+ "Y": 342.60147997032647
+ },
+ {
+ "Id": "3da18c1927f7469e8307da74ca1d2685",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 211.56445146502494,
+ "Y": 462.60147997032647
+ },
+ {
+ "Id": "20f4e6550d704f80b7c61775938f91ef",
+ "Name": "Sphere.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 536.564451465025,
+ "Y": 567.60147997032641
+ },
+ {
+ "Id": "70b7b2032a0346e2a3ef4a33b75b16d6",
+ "Name": "Sphere.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 924.564451465025,
+ "Y": 417.60147997032647
+ },
+ {
+ "Id": "75a6566341c940b7951ce28a90b873dc",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 211.56445146502494,
+ "Y": 687.42897997032651
+ },
+ {
+ "Id": "c66e3330feba4c43aea0b47910584c5b",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 211.56445146502494,
+ "Y": 289.08397997032642
+ },
+ {
+ "Id": "fdbcec629f5046a1be1a68647d5db95a",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -42.435548534975055,
+ "Y": 480.08397997032642
+ },
+ {
+ "Id": "1803be16255347a8bfcd31647f522eec",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 211.56445146502494,
+ "Y": 846.60147997032641
+ },
+ {
+ "Id": "d1a25ced3c88415f8b4d34bec3b87714",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -42.435548534975055,
+ "Y": 864.08397997032648
+ },
+ {
+ "Id": "d089d566f4c747f78b026a2da6fb4f50",
+ "Name": "Sphere.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 536.564451465025,
+ "Y": 756.60147997032641
+ },
+ {
+ "Id": "0eb7d5f8b7304af082683d679f29cd3b",
+ "Name": "Geometry.IntersectAll",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1312.5644514650248,
+ "Y": 495.60147997032647
+ },
+ {
+ "Id": "2b117b50cc3a4861a10b902f573d4a54",
+ "Name": "List.Join",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 925.6376298593849,
+ "Y": 612.96737194212653
+ },
+ {
+ "Id": "97b319c8678b4ba9935d0355a77b4c9c",
+ "Name": "File Path",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1312.5644514650248,
+ "Y": 673.60147997032641
+ },
+ {
+ "Id": "d3be2ac8f0844986ad7b2ae9a6fa0c7b",
+ "Name": "Geometry.ExportToSAT",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1703.3411377062012,
+ "Y": 585.61589345167783
+ }
+ ],
+ "Annotations": [],
+ "X": 84.8489843399085,
+ "Y": -148.87835110848562,
+ "Zoom": 0.62740812659763479
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ExportToSAT(geometry, filePath).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ExportToSAT(geometry, filePath).md
new file mode 100644
index 00000000000..0e7f855cc30
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ExportToSAT(geometry, filePath).md
@@ -0,0 +1,9 @@
+## In Depth
+`Geometry.ExportToSAT` exports geometry from Dynamo to a SAT file type. This node is unitless; to specify a unit, use `ExportToSAT`.
+
+In the example below, a PolySurface from the intersection of three spheres can be exported to a SAT file once a file path is selected.
+
+___
+## Example File
+
+![Geometry.ExportToSAT](./Autodesk.DesignScript.Geometry.Geometry.ExportToSAT(geometry,%20filePath)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ExportToSAT(geometry, filePath)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ExportToSAT(geometry, filePath)_img.jpg
new file mode 100644
index 00000000000..4c32038551b
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ExportToSAT(geometry, filePath)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.FromSolidDef.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.FromSolidDef.dyn
new file mode 100644
index 00000000000..72ef529ae9c
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.FromSolidDef.dyn
@@ -0,0 +1,140 @@
+{
+ "Uuid": "46c56552-d6e5-453f-962f-e13cb5ee7a22",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.FromSolidDef",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d2763e7c66b64a4da6fc57db4350dcb7",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "145928029cec47da84518850dd19d050",
+ "Name": "solidDefJson",
+ "Description": "Json string containg solid def formated geometry\n\nstring",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "1e52dd4269c945d8b7e442f86e9bc660",
+ "Name": "Geometry[]..[]",
+ "Description": "List of converted geometries",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.FromSolidDef@string",
+ "Replication": "Auto",
+ "Description": "Imports a JSON string and returns an array of imported geometries\n\nGeometry.FromSolidDef (solidDefJson: string): Geometry[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "f8c8e85f673143e78215b590a379ee76",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "411c4ada8d2041778b7c64af5f68c926",
+ "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",
+ "Code": "[\n \"{\\\"typeid\\\": \\\"autodesk.soliddef:model-1.0.0\\\",\\\"map\\\": {\\\"geometries\\\": {\\\"insert\\\": {\\\"autodesk.soliddef:point-1.0.0\\\": {\\\"04276eca-a978-4fd7-9dd4-1376aac1fa17\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:point-1.0.0\\\",\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": -0.5,\\\"y\\\": -0.5,\\\"z\\\": -0.5}}}},\\\"34b772b3-c681-4bb3-afc0-90642d1a2697\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:point-1.0.0\\\",\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": 0.5,\\\"y\\\": -0.5,\\\"z\\\": -0.5}}}},\\\"37667204-7c64-4549-bfb0-495855da49bf\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:point-1.0.0\\\",\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": -0.5,\\\"y\\\": 0.5,\\\"z\\\": -0.5}}}},\\\"4bf8b73c-c42c-4021-9722-2cff93c664b7\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:point-1.0.0\\\",\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": 0.5,\\\"y\\\": 0.5,\\\"z\\\": 0.5}}}},\\\"9a1bd4f5-ddfd-41f3-917b-e4f02e32b1a4\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:point-1.0.0\\\",\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": 0.5,\\\"y\\\": 0.5,\\\"z\\\": -0.5}}}},\\\"d4251fdb-0dc0-4591-932e-9a91a8a921a0\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:point-1.0.0\\\",\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": -0.5,\\\"y\\\": 0.5,\\\"z\\\": 0.5}}}},\\\"d5e5cc9b-2cab-47a0-8bc0-d2b40b7a8484\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:point-1.0.0\\\",\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": 0.5,\\\"y\\\": -0.5,\\\"z\\\": 0.5}}}},\\\"f8386db2-3165-4712-80df-671c44c36b48\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:point-1.0.0\\\",\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": -0.5,\\\"y\\\": -0.5,\\\"z\\\": 0.5}}}}},\\\"autodesk.soliddef:line-1.0.0\\\": {\\\"0a393595-fed1-49e7-8191-522f0d771580\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:line-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"direction\\\": {\\\"Float64\\\": {\\\"x\\\": 1,\\\"y\\\": 0,\\\"z\\\": 0}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": -0.5,\\\"z\\\": 0.5}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": 1,\\\"high\\\": 0},\\\"enum\\\": {\\\"type\\\": 0}}}} ,\\\"1d082bf2-b71f-4a97-af35-0276554ac5ec\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:line-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"direction\\\": {\\\"Float64\\\": {\\\"x\\\": 1,\\\"y\\\": 0,\\\"z\\\": 0}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 0.5,\\\"z\\\": -0.5}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": 1,\\\"high\\\": 0},\\\"enum\\\": {\\\"type\\\": 0}}}} ,\\\"2dd5d4bb-d8e3-4d65-9a74-0157c42b95c1\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:line-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"direction\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 0,\\\"z\\\": -1}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": -0.5,\\\"y\\\": 0.5,\\\"z\\\": 0}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": 1,\\\"high\\\": 0},\\\"enum\\\": {\\\"type\\\": 0}}}} ,\\\"4851f344-8fca-4d05-9520-5ee0363e12f0\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:line-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"direction\\\": {\\\"Float64\\\": {\\\"x\\\": -1,\\\"y\\\": 0,\\\"z\\\": 0}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 0.5,\\\"z\\\": 0.5}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": 1,\\\"high\\\": 0},\\\"enum\\\": {\\\"type\\\": 0}}}} ,\\\"4c0aa19f-ef23-4b73-9286-d81522eb3a36\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:line-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"direction\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 1,\\\"z\\\": 0}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": 0.5,\\\"y\\\": 0,\\\"z\\\": 0.5}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": 1,\\\"high\\\": 0},\\\"enum\\\": {\\\"type\\\": 0}}}} ,\\\"522fc337-eb0c-4e24-84b1-1c497c8c437a\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:line-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"direction\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": -1,\\\"z\\\": 0}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": 0.5,\\\"y\\\": 0,\\\"z\\\": -0.5}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": 1,\\\"high\\\": 0},\\\"enum\\\": {\\\"type\\\": 0}}}} ,\\\"60735f56-7f22-48ba-81f3-55f4e9ab76eb\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:line-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"direction\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 1,\\\"z\\\": 0}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": -0.5,\\\"y\\\": 0,\\\"z\\\": -0.5}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": 1,\\\"high\\\": 0},\\\"enum\\\": {\\\"type\\\": 0}}}} ,\\\"9026b399-ddd1-4cfa-a855-26db55584868\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:line-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"direction\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 0,\\\"z\\\": -1}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": -0.5,\\\"y\\\": -0.5,\\\"z\\\": 0}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": 1,\\\"high\\\": 0},\\\"enum\\\": {\\\"type\\\": 0}}}} ,\\\"afd5941b-e5a0-47f5-9a14-3a0522b06e40\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:line-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"direction\\\": {\\\"Float64\\\": {\\\"x\\\": -1,\\\"y\\\": 0,\\\"z\\\": 0}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": -0.5,\\\"z\\\": -0.5}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": 1,\\\"high\\\": 0},\\\"enum\\\": {\\\"type\\\": 0}}}} ,\\\"c951e0f4-92fb-4b81-87f1-97b6138c3f52\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:line-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"direction\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 0,\\\"z\\\": -1}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": 0.5,\\\"y\\\": 0.5,\\\"z\\\": 0}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": 1,\\\"high\\\": 0},\\\"enum\\\": {\\\"type\\\": 0}}}} ,\\\"ce800039-1faa-49ea-bd05-4d6d742961fb\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:line-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"direction\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": -1,\\\"z\\\": 0}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": -0.5,\\\"y\\\": 0,\\\"z\\\": 0.5}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": 1,\\\"high\\\": 0},\\\"enum\\\": {\\\"type\\\": 0}}}} ,\\\"f60c72d2-e466-4a33-94d4-b2c15d070ad4\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:line-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"direction\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 0,\\\"z\\\": -1}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"position\\\": {\\\"Float64\\\": {\\\"x\\\": 0.5,\\\"y\\\": -0.5,\\\"z\\\": 0}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": 1,\\\"high\\\": 0},\\\"enum\\\": {\\\"type\\\": 0}}}} },\\\"autodesk.soliddef:plane-1.0.0\\\": {\\\"053ce60d-ded6-4b60-8798-0ba891d58533\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:plane-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"normal\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 0,\\\"z\\\": 1}},\\\"uAxis\\\": {\\\"Float64\\\": {\\\"x\\\": 1,\\\"y\\\": 0,\\\"z\\\": 0}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"origin\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 0,\\\"z\\\": 0.5}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"uRange\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}},\\\"vRange\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"9a34fdef-1928-4ffa-81ec-73aa8b16210a\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:plane-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"normal\\\": {\\\"Float64\\\": {\\\"x\\\": -1,\\\"y\\\": 0,\\\"z\\\": 0}},\\\"uAxis\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": -0,\\\"z\\\": 1}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"origin\\\": {\\\"Float64\\\": {\\\"x\\\": 0.5,\\\"y\\\": 0,\\\"z\\\": 0}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"uRange\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}},\\\"vRange\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"9fd93a20-145d-47fe-9efd-6c38e0b083d9\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:plane-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"normal\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 0,\\\"z\\\": 1}},\\\"uAxis\\\": {\\\"Float64\\\": {\\\"x\\\": 1,\\\"y\\\": 0,\\\"z\\\": 0}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"origin\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 0,\\\"z\\\": -0.5}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"uRange\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}},\\\"vRange\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"cbaec1a4-769d-4190-a7a0-bece7df993c2\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:plane-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"normal\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": -1,\\\"z\\\": 0}},\\\"uAxis\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 0,\\\"z\\\": -1}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"origin\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 0.5,\\\"z\\\": 0}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"uRange\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}},\\\"vRange\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"e892fce7-8414-4735-8a7e-21083aafd09e\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:plane-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"normal\\\": {\\\"Float64\\\": {\\\"x\\\": 1,\\\"y\\\": 0,\\\"z\\\": 0}},\\\"uAxis\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 0,\\\"z\\\": -1}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"origin\\\": {\\\"Float64\\\": {\\\"x\\\": -0.5,\\\"y\\\": 0,\\\"z\\\": 0}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"uRange\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}},\\\"vRange\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"f4725d61-5fc9-4c6e-8c24-c4ebfdcbb681\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:plane-1.0.0\\\",\\\"autodesk.math:vector3d-1.0.0\\\": {\\\"normal\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": 1,\\\"z\\\": -0}},\\\"uAxis\\\": {\\\"Float64\\\": {\\\"x\\\": -0,\\\"y\\\": 0,\\\"z\\\": 1}}},\\\"autodesk.math:point3d-1.0.0\\\": {\\\"origin\\\": {\\\"Float64\\\": {\\\"x\\\": 0,\\\"y\\\": -0.5,\\\"z\\\": 0}}},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"uRange\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}},\\\"vRange\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} }}}},\\\"map\\\": {\\\"topologies\\\": {\\\"insert\\\": {\\\"autodesk.soliddef:body-1.0.0\\\": {\\\"afa7c7ba-7546-43fe-a1ca-410c7672ca0a\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:body-1.0.0\\\",\\\"array\\\": {\\\"lumps\\\": {\\\"insert\\\": [[0,[\\\"1bbc5aec-1efd-482b-9a38-59a34296470a\\\"]]]}}} },\\\"autodesk.soliddef:lump-1.0.0\\\": {\\\"1bbc5aec-1efd-482b-9a38-59a34296470a\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:lump-1.0.0\\\",\\\"array\\\": {\\\"shells\\\": {\\\"insert\\\": [[0,[\\\"809c5879-81c4-433d-9bff-aa3428412ec7\\\"]]]}}} },\\\"autodesk.soliddef:shell-1.0.0\\\": {\\\"809c5879-81c4-433d-9bff-aa3428412ec7\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:shell-1.0.0\\\",\\\"array\\\": {\\\"faces\\\": {\\\"insert\\\": [[0,[\\\"f3a4faf1-51ff-4083-948f-08a2cf70f173\\\",\\\"f5246c0b-37da-410a-89c2-8bd79ed2b8a6\\\",\\\"79971f5c-41e0-4940-bd42-48f5340520f3\\\",\\\"9334d5db-5698-42df-89b5-7a7be1a00a64\\\",\\\"555c744b-d571-453c-a8f4-450fcdba5238\\\",\\\"cfae10c1-8a57-426b-85a1-431c93c3f015\\\"]]]}}} },\\\"autodesk.soliddef:face-1.0.0\\\": {\\\"555c744b-d571-453c-a8f4-450fcdba5238\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:face-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"geometry\\\": \\\"cbaec1a4-769d-4190-a7a0-bece7df993c2\\\"},\\\"array\\\": {\\\"loops\\\": {\\\"insert\\\": [[0,[\\\"ee90ca83-464b-4b24-a2e8-444932f41f02\\\"]]]}}} ,\\\"79971f5c-41e0-4940-bd42-48f5340520f3\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:face-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"geometry\\\": \\\"f4725d61-5fc9-4c6e-8c24-c4ebfdcbb681\\\"},\\\"array\\\": {\\\"loops\\\": {\\\"insert\\\": [[0,[\\\"c6aca7d4-2753-4649-84c0-d003a5a34f41\\\"]]]}}} ,\\\"9334d5db-5698-42df-89b5-7a7be1a00a64\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:face-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"geometry\\\": \\\"e892fce7-8414-4735-8a7e-21083aafd09e\\\"},\\\"array\\\": {\\\"loops\\\": {\\\"insert\\\": [[0,[\\\"839aa128-815a-4bab-91f2-a7fe05b7d8d8\\\"]]]}}} ,\\\"cfae10c1-8a57-426b-85a1-431c93c3f015\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:face-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"geometry\\\": \\\"9a34fdef-1928-4ffa-81ec-73aa8b16210a\\\"},\\\"array\\\": {\\\"loops\\\": {\\\"insert\\\": [[0,[\\\"1f49a32b-b673-414c-aa9b-e5bd57189aec\\\"]]]}}} ,\\\"f3a4faf1-51ff-4083-948f-08a2cf70f173\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:face-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"geometry\\\": \\\"053ce60d-ded6-4b60-8798-0ba891d58533\\\"},\\\"array\\\": {\\\"loops\\\": {\\\"insert\\\": [[0,[\\\"1b0faf21-c79c-4523-ba62-c432e5e87ef3\\\"]]]}}} ,\\\"f5246c0b-37da-410a-89c2-8bd79ed2b8a6\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:face-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"geometry\\\": \\\"9fd93a20-145d-47fe-9efd-6c38e0b083d9\\\"},\\\"array\\\": {\\\"loops\\\": {\\\"insert\\\": [[0,[\\\"32f288ab-a175-44d9-9811-45cd9f355dcb\\\"]]]}}} },\\\"autodesk.soliddef:loop-1.0.0\\\": {\\\"1b0faf21-c79c-4523-ba62-c432e5e87ef3\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:loop-1.0.0\\\",\\\"array\\\": {\\\"coedges\\\": {\\\"insert\\\": [[0,[\\\"8f6e2a63-a852-4b5e-a0a5-fbdc5621e888\\\",\\\"790a2cc8-d8ae-408d-9673-dcef9707b780\\\",\\\"7cf680bb-53ff-46c2-99ee-81584130261a\\\",\\\"18dbaa56-5608-4d7a-81be-bd7daf2aab8e\\\"]]]}}} ,\\\"1f49a32b-b673-414c-aa9b-e5bd57189aec\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:loop-1.0.0\\\",\\\"array\\\": {\\\"coedges\\\": {\\\"insert\\\": [[0,[\\\"b85d97fe-5831-470f-bad3-e421b09c5145\\\",\\\"a5ce4ec3-1679-4d2b-85c6-3c1c5e509259\\\",\\\"70bb5cb1-239d-4891-a320-fc4ea30b3181\\\",\\\"aa3874bf-e780-4b19-af6c-cabd9fe66d67\\\"]]]}}} ,\\\"32f288ab-a175-44d9-9811-45cd9f355dcb\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:loop-1.0.0\\\",\\\"array\\\": {\\\"coedges\\\": {\\\"insert\\\": [[0,[\\\"c1875340-a595-480a-8d42-6edc8c57eedc\\\",\\\"34a0b0e5-cea0-48aa-9fb4-1b322c1f10d5\\\",\\\"0c5d1468-752d-48e0-a287-106414f843c9\\\",\\\"118c7d27-514f-42af-a19e-db06f0aab09f\\\"]]]}}} ,\\\"839aa128-815a-4bab-91f2-a7fe05b7d8d8\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:loop-1.0.0\\\",\\\"array\\\": {\\\"coedges\\\": {\\\"insert\\\": [[0,[\\\"16f0599a-276e-47c2-962d-7571a5e43d67\\\",\\\"2670d844-05b0-4049-91ce-63abd0cb9170\\\",\\\"6ffca90e-4cd5-4eb6-a53f-b70aa641b56d\\\",\\\"4a1fd406-ad36-4cad-8eee-a8138129630e\\\"]]]}}} ,\\\"c6aca7d4-2753-4649-84c0-d003a5a34f41\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:loop-1.0.0\\\",\\\"array\\\": {\\\"coedges\\\": {\\\"insert\\\": [[0,[\\\"e785e3fb-9395-47b7-a6d2-9f54ce130236\\\",\\\"672e769f-5b42-4037-85e8-f9b729263c63\\\",\\\"9b9e960a-f626-4416-b1a4-0b9015092308\\\",\\\"5b5e286b-5730-435e-805e-6913c9022c74\\\"]]]}}} ,\\\"ee90ca83-464b-4b24-a2e8-444932f41f02\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:loop-1.0.0\\\",\\\"array\\\": {\\\"coedges\\\": {\\\"insert\\\": [[0,[\\\"e10d87c3-78fc-4635-8e53-1562ab175bf8\\\",\\\"dc3dfcab-415c-43c0-9335-71d0951d5fc5\\\",\\\"48f7c932-4c4b-4379-9e99-35ffa28506c6\\\",\\\"bc965a1b-25fe-41e4-a0ab-3e4f9df2ac8f\\\"]]]}}} },\\\"autodesk.soliddef:coedge-1.0.0\\\": {\\\"0c5d1468-752d-48e0-a287-106414f843c9\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"edge\\\": \\\"a023bdfe-8c46-4547-bb72-cde1ad4446a2\\\",\\\"partner\\\": \\\"2670d844-05b0-4049-91ce-63abd0cb9170\\\"}} ,\\\"118c7d27-514f-42af-a19e-db06f0aab09f\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"edge\\\": \\\"1a929176-b88c-4776-be64-edebd94cc1c9\\\",\\\"partner\\\": \\\"dc3dfcab-415c-43c0-9335-71d0951d5fc5\\\"}} ,\\\"16f0599a-276e-47c2-962d-7571a5e43d67\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"edge\\\": \\\"dc2a4337-38ae-4c26-8fdc-c3e2dcabed1a\\\",\\\"partner\\\": \\\"48f7c932-4c4b-4379-9e99-35ffa28506c6\\\"}} ,\\\"18dbaa56-5608-4d7a-81be-bd7daf2aab8e\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"edge\\\": \\\"c9d2ad67-dd0e-4da8-9e20-537ee6c79f65\\\",\\\"partner\\\": \\\"5b5e286b-5730-435e-805e-6913c9022c74\\\"}} ,\\\"2670d844-05b0-4049-91ce-63abd0cb9170\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"edge\\\": \\\"a023bdfe-8c46-4547-bb72-cde1ad4446a2\\\",\\\"partner\\\": \\\"0c5d1468-752d-48e0-a287-106414f843c9\\\"}} ,\\\"34a0b0e5-cea0-48aa-9fb4-1b322c1f10d5\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"edge\\\": \\\"0fd15f64-0744-4b59-b32c-128085239188\\\",\\\"partner\\\": \\\"672e769f-5b42-4037-85e8-f9b729263c63\\\"}} ,\\\"48f7c932-4c4b-4379-9e99-35ffa28506c6\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"edge\\\": \\\"dc2a4337-38ae-4c26-8fdc-c3e2dcabed1a\\\",\\\"partner\\\": \\\"16f0599a-276e-47c2-962d-7571a5e43d67\\\"}} ,\\\"4a1fd406-ad36-4cad-8eee-a8138129630e\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"edge\\\": \\\"cf90735c-1eea-4fe8-a53a-947399d06c23\\\",\\\"partner\\\": \\\"7cf680bb-53ff-46c2-99ee-81584130261a\\\"}} ,\\\"5b5e286b-5730-435e-805e-6913c9022c74\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"edge\\\": \\\"c9d2ad67-dd0e-4da8-9e20-537ee6c79f65\\\",\\\"partner\\\": \\\"18dbaa56-5608-4d7a-81be-bd7daf2aab8e\\\"}} ,\\\"672e769f-5b42-4037-85e8-f9b729263c63\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"edge\\\": \\\"0fd15f64-0744-4b59-b32c-128085239188\\\",\\\"partner\\\": \\\"34a0b0e5-cea0-48aa-9fb4-1b322c1f10d5\\\"}} ,\\\"6ffca90e-4cd5-4eb6-a53f-b70aa641b56d\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"edge\\\": \\\"cde6b24a-81de-4d3f-876d-d7c06969ebd5\\\",\\\"partner\\\": \\\"e785e3fb-9395-47b7-a6d2-9f54ce130236\\\"}} ,\\\"70bb5cb1-239d-4891-a320-fc4ea30b3181\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"edge\\\": \\\"6c630455-5cd9-41a0-9e31-ea71ab600ef4\\\",\\\"partner\\\": \\\"e10d87c3-78fc-4635-8e53-1562ab175bf8\\\"}} ,\\\"790a2cc8-d8ae-408d-9673-dcef9707b780\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"edge\\\": \\\"ac11614b-34ac-4140-ae9f-903922dd28b0\\\",\\\"partner\\\": \\\"bc965a1b-25fe-41e4-a0ab-3e4f9df2ac8f\\\"}} ,\\\"7cf680bb-53ff-46c2-99ee-81584130261a\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"edge\\\": \\\"cf90735c-1eea-4fe8-a53a-947399d06c23\\\",\\\"partner\\\": \\\"4a1fd406-ad36-4cad-8eee-a8138129630e\\\"}} ,\\\"8f6e2a63-a852-4b5e-a0a5-fbdc5621e888\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"edge\\\": \\\"27f7575b-9c5e-4a69-8b06-3550777ff27b\\\",\\\"partner\\\": \\\"aa3874bf-e780-4b19-af6c-cabd9fe66d67\\\"}} ,\\\"9b9e960a-f626-4416-b1a4-0b9015092308\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"edge\\\": \\\"6b0a7842-3acd-415a-9fa5-3a5c4be1e8f4\\\",\\\"partner\\\": \\\"b85d97fe-5831-470f-bad3-e421b09c5145\\\"}} ,\\\"a5ce4ec3-1679-4d2b-85c6-3c1c5e509259\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"edge\\\": \\\"6068022f-e563-4fdf-a392-8ade7d3a234c\\\",\\\"partner\\\": \\\"c1875340-a595-480a-8d42-6edc8c57eedc\\\"}} ,\\\"aa3874bf-e780-4b19-af6c-cabd9fe66d67\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"edge\\\": \\\"27f7575b-9c5e-4a69-8b06-3550777ff27b\\\",\\\"partner\\\": \\\"8f6e2a63-a852-4b5e-a0a5-fbdc5621e888\\\"}} ,\\\"b85d97fe-5831-470f-bad3-e421b09c5145\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"edge\\\": \\\"6b0a7842-3acd-415a-9fa5-3a5c4be1e8f4\\\",\\\"partner\\\": \\\"9b9e960a-f626-4416-b1a4-0b9015092308\\\"}} ,\\\"bc965a1b-25fe-41e4-a0ab-3e4f9df2ac8f\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"edge\\\": \\\"ac11614b-34ac-4140-ae9f-903922dd28b0\\\",\\\"partner\\\": \\\"790a2cc8-d8ae-408d-9673-dcef9707b780\\\"}} ,\\\"c1875340-a595-480a-8d42-6edc8c57eedc\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"edge\\\": \\\"6068022f-e563-4fdf-a392-8ade7d3a234c\\\",\\\"partner\\\": \\\"a5ce4ec3-1679-4d2b-85c6-3c1c5e509259\\\"}} ,\\\"dc3dfcab-415c-43c0-9335-71d0951d5fc5\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": true},\\\"String\\\": {\\\"edge\\\": \\\"1a929176-b88c-4776-be64-edebd94cc1c9\\\",\\\"partner\\\": \\\"118c7d27-514f-42af-a19e-db06f0aab09f\\\"}} ,\\\"e10d87c3-78fc-4635-8e53-1562ab175bf8\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"edge\\\": \\\"6c630455-5cd9-41a0-9e31-ea71ab600ef4\\\",\\\"partner\\\": \\\"70bb5cb1-239d-4891-a320-fc4ea30b3181\\\"}} ,\\\"e785e3fb-9395-47b7-a6d2-9f54ce130236\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:coedge-1.0.0\\\",\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"edge\\\": \\\"cde6b24a-81de-4d3f-876d-d7c06969ebd5\\\",\\\"partner\\\": \\\"6ffca90e-4cd5-4eb6-a53f-b70aa641b56d\\\"}} },\\\"autodesk.soliddef:edge-1.0.0\\\": {\\\"0fd15f64-0744-4b59-b32c-128085239188\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:edge-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"geometry\\\": \\\"afd5941b-e5a0-47f5-9a14-3a0522b06e40\\\",\\\"vertex0\\\": \\\"224d7735-a0ef-4e44-a040-542be9614a1e\\\",\\\"vertex1\\\": \\\"6b17fb6c-9508-4dea-9455-db9f014259a1\\\"},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"1a929176-b88c-4776-be64-edebd94cc1c9\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:edge-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"geometry\\\": \\\"1d082bf2-b71f-4a97-af35-0276554ac5ec\\\",\\\"vertex0\\\": \\\"780d32c7-ae3b-4ee2-9bc9-b3e0a0ed0ac3\\\",\\\"vertex1\\\": \\\"65a3b9e7-88c1-4750-a6e4-554775c2cc06\\\"},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"27f7575b-9c5e-4a69-8b06-3550777ff27b\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:edge-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"geometry\\\": \\\"4c0aa19f-ef23-4b73-9286-d81522eb3a36\\\",\\\"vertex0\\\": \\\"93a81101-b5f8-4bc7-931d-c3489cceb47d\\\",\\\"vertex1\\\": \\\"c99a2679-daf5-4271-8b8e-642e3b4b94aa\\\"},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"6068022f-e563-4fdf-a392-8ade7d3a234c\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:edge-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"geometry\\\": \\\"522fc337-eb0c-4e24-84b1-1c497c8c437a\\\",\\\"vertex0\\\": \\\"65a3b9e7-88c1-4750-a6e4-554775c2cc06\\\",\\\"vertex1\\\": \\\"224d7735-a0ef-4e44-a040-542be9614a1e\\\"},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"6b0a7842-3acd-415a-9fa5-3a5c4be1e8f4\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:edge-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"geometry\\\": \\\"f60c72d2-e466-4a33-94d4-b2c15d070ad4\\\",\\\"vertex0\\\": \\\"93a81101-b5f8-4bc7-931d-c3489cceb47d\\\",\\\"vertex1\\\": \\\"224d7735-a0ef-4e44-a040-542be9614a1e\\\"},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"6c630455-5cd9-41a0-9e31-ea71ab600ef4\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:edge-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"geometry\\\": \\\"c951e0f4-92fb-4b81-87f1-97b6138c3f52\\\",\\\"vertex0\\\": \\\"c99a2679-daf5-4271-8b8e-642e3b4b94aa\\\",\\\"vertex1\\\": \\\"65a3b9e7-88c1-4750-a6e4-554775c2cc06\\\"},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"a023bdfe-8c46-4547-bb72-cde1ad4446a2\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:edge-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"geometry\\\": \\\"60735f56-7f22-48ba-81f3-55f4e9ab76eb\\\",\\\"vertex0\\\": \\\"6b17fb6c-9508-4dea-9455-db9f014259a1\\\",\\\"vertex1\\\": \\\"780d32c7-ae3b-4ee2-9bc9-b3e0a0ed0ac3\\\"},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"ac11614b-34ac-4140-ae9f-903922dd28b0\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:edge-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"geometry\\\": \\\"4851f344-8fca-4d05-9520-5ee0363e12f0\\\",\\\"vertex0\\\": \\\"c99a2679-daf5-4271-8b8e-642e3b4b94aa\\\",\\\"vertex1\\\": \\\"36e0e7d0-3878-4b92-9996-d1ec2dd4f0b4\\\"},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"c9d2ad67-dd0e-4da8-9e20-537ee6c79f65\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:edge-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"geometry\\\": \\\"0a393595-fed1-49e7-8191-522f0d771580\\\",\\\"vertex0\\\": \\\"c7187cf7-8f52-4d7e-88c6-077cf0d73548\\\",\\\"vertex1\\\": \\\"93a81101-b5f8-4bc7-931d-c3489cceb47d\\\"},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"cde6b24a-81de-4d3f-876d-d7c06969ebd5\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:edge-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"geometry\\\": \\\"9026b399-ddd1-4cfa-a855-26db55584868\\\",\\\"vertex0\\\": \\\"c7187cf7-8f52-4d7e-88c6-077cf0d73548\\\",\\\"vertex1\\\": \\\"6b17fb6c-9508-4dea-9455-db9f014259a1\\\"},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"cf90735c-1eea-4fe8-a53a-947399d06c23\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:edge-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"geometry\\\": \\\"ce800039-1faa-49ea-bd05-4d6d742961fb\\\",\\\"vertex0\\\": \\\"36e0e7d0-3878-4b92-9996-d1ec2dd4f0b4\\\",\\\"vertex1\\\": \\\"c7187cf7-8f52-4d7e-88c6-077cf0d73548\\\"},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} ,\\\"dc2a4337-38ae-4c26-8fdc-c3e2dcabed1a\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:edge-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"Bool\\\": {\\\"reversed\\\": false},\\\"String\\\": {\\\"geometry\\\": \\\"2dd5d4bb-d8e3-4d65-9a74-0157c42b95c1\\\",\\\"vertex0\\\": \\\"36e0e7d0-3878-4b92-9996-d1ec2dd4f0b4\\\",\\\"vertex1\\\": \\\"780d32c7-ae3b-4ee2-9bc9-b3e0a0ed0ac3\\\"},\\\"autodesk.soliddef:paramrange-1.0.0\\\": {\\\"range\\\": {\\\"Float64\\\": {\\\"low\\\": -0.5,\\\"high\\\": 0.5},\\\"enum\\\": {\\\"type\\\": 1}}}} },\\\"autodesk.soliddef:vertex-1.0.0\\\": {\\\"224d7735-a0ef-4e44-a040-542be9614a1e\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:vertex-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"String\\\": {\\\"geometry\\\": \\\"34b772b3-c681-4bb3-afc0-90642d1a2697\\\"}} ,\\\"36e0e7d0-3878-4b92-9996-d1ec2dd4f0b4\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:vertex-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"String\\\": {\\\"geometry\\\": \\\"d4251fdb-0dc0-4591-932e-9a91a8a921a0\\\"}} ,\\\"65a3b9e7-88c1-4750-a6e4-554775c2cc06\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:vertex-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"String\\\": {\\\"geometry\\\": \\\"9a1bd4f5-ddfd-41f3-917b-e4f02e32b1a4\\\"}} ,\\\"6b17fb6c-9508-4dea-9455-db9f014259a1\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:vertex-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"String\\\": {\\\"geometry\\\": \\\"04276eca-a978-4fd7-9dd4-1376aac1fa17\\\"}} ,\\\"780d32c7-ae3b-4ee2-9bc9-b3e0a0ed0ac3\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:vertex-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"String\\\": {\\\"geometry\\\": \\\"37667204-7c64-4549-bfb0-495855da49bf\\\"}} ,\\\"93a81101-b5f8-4bc7-931d-c3489cceb47d\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:vertex-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"String\\\": {\\\"geometry\\\": \\\"d5e5cc9b-2cab-47a0-8bc0-d2b40b7a8484\\\"}} ,\\\"c7187cf7-8f52-4d7e-88c6-077cf0d73548\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:vertex-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"String\\\": {\\\"geometry\\\": \\\"f8386db2-3165-4712-80df-671c44c36b48\\\"}} ,\\\"c99a2679-daf5-4271-8b8e-642e3b4b94aa\\\": {\\\"typeid\\\": \\\"autodesk.soliddef:vertex-1.0.0\\\",\\\"Float64\\\": {\\\"precision\\\": 0},\\\"String\\\": {\\\"geometry\\\": \\\"4bf8b73c-c42c-4021-9722-2cff93c664b7\\\"}} }}}}} \"\n];"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "411c4ada8d2041778b7c64af5f68c926",
+ "End": "145928029cec47da84518850dd19d050",
+ "Id": "7e31bc078de44938828d5832659a0583",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 100.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "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": "d2763e7c66b64a4da6fc57db4350dcb7",
+ "Name": "Geometry.FromSolidDef",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 701.38209200553513,
+ "Y": 782.97470774193732
+ },
+ {
+ "Id": "f8c8e85f673143e78215b590a379ee76",
+ "Name": "Solid Def representation",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -136.61790799446487,
+ "Y": 782.80220774193731
+ }
+ ],
+ "Annotations": [],
+ "X": 257.1577211690244,
+ "Y": 50.5258207782108,
+ "Zoom": 0.626008640319811
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.FromSolidDef.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.FromSolidDef.md
index 0f2bbe66004..415ff9bedcc 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.FromSolidDef.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.FromSolidDef.md
@@ -1,7 +1,8 @@
## In Depth
-Imports a JSON string and returns an array of imported geometries.
+`Geometry.FromSolidDef` imports a Solid Def JSON string and returns an array of imported geometries. It converts the JSON formatted representation back into geometry format. Use `Geometry.ToSolidDef` to convert geometries into a JSON string format.
+
+In the example below, a Solid Def representation is converted into geometry.
___
## Example File
-
-
+![Geometry.FromSolidDef](./Autodesk.DesignScript.Geometry.Geometry.FromSolidDef_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.FromSolidDef_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.FromSolidDef_img.jpg
new file mode 100644
index 00000000000..97e1d5af095
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.FromSolidDef_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.OrientedBoundingBox.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.OrientedBoundingBox.dyn
new file mode 100644
index 00000000000..c93795fce7c
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.OrientedBoundingBox.dyn
@@ -0,0 +1,718 @@
+{
+ "Uuid": "4b5907af-3c42-483c-a370-b5b58fa04163",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.OrientedBoundingBox",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "ae2c0287cd28496190116dd64cb14b20",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "727fc965c287488a8e4fb26feb745c51",
+ "Name": "centerPoint",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "b0ff971f2a924bc29a53dcac305e2489",
+ "Name": "radius",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "1400ebdedb7348729013414e41dcc592",
+ "Name": "Sphere",
+ "Description": "Sphere",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Sphere.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Create a Solid Sphere cetered at the input Point, with given radius.\n\nSphere.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Sphere"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "bfe6f2833ff24842839a77c0a8617602",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "e766711434a34a418e9caa6dc4bb257e",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d1e5840499ee46bbaa322cac3387e72b",
+ "Name": "xamount",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "40c0191fc95143b3aeb8cbddc1051977",
+ "Name": "yamount",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a21ad5c5b5de4575be30fdbd65ebb0fa",
+ "Name": "zamount",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "fc6f65856c794e7e94ac59e2a6cc27c5",
+ "Name": "Geometry",
+ "Description": "Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Scale@double,double,double",
+ "Replication": "Auto",
+ "Description": "Scale non-uniformly around the origin\n\nGeometry.Scale (xamount: double = 1, yamount: double = 1, zamount: double = 1): Geometry"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "ffdc84f2a7e446a08557e04cb4b0ce88",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "836d505310234c8c9a506b8382a5d69a",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "97c455c3bd834ce5b6101e0a64325884",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "9d771e4dacfc4235963f46c5e9e4bf4f",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "1;\n2.5;\n0.5;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "8cea0316c58e4bfa8a1a6e2523daea44",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "008a0071fb8b40409545b93596b9627e",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "7a4a57d53e8b479ebb1f43a56225ec14",
+ "Name": "origin",
+ "Description": "Point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "327c40c8f4094031adacd9f177eab3e8",
+ "Name": "axis",
+ "Description": "Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "b901432715ef4b828a560b2bc4e62cd3",
+ "Name": "degrees",
+ "Description": "double\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "89b690a48ee5427d994645bca552eabf",
+ "Name": "Geometry",
+ "Description": "Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Rotate@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Vector,double",
+ "Replication": "Auto",
+ "Description": "Rotates an object around an origin and an axis by a specified degree\n\nGeometry.Rotate (origin: Point, axis: Vector, degrees: double = 0): Geometry"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "cd8a8ab8548249fa92501c57a105430a",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "b0a9d63511fd42cca07e4f5c2febf4c4",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "83dd281419724248baa94c9292959de3",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "72d0c18560524510bbbd598e80b3eca8",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "9b616b66c2314a76af8c2f9922347318",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "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",
+ "Id": "965ed3f26ea24a388ea76a4e200c1e94",
+ "NodeType": "FunctionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "51125a01b69d427c8a4092860e3ba661",
+ "Name": "Vector",
+ "Description": "Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ZAxis",
+ "Replication": "Auto",
+ "Description": "Get the canonical Z axis Vector (0,0,1)\n\nVector.ZAxis ( ): Vector"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "db2ff2e07d534c58ba6892614b590aef",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "6da9b0d1c5a94f828ab7c025f16d65a3",
+ "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",
+ "Code": "45;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "bd9633ee78d947f6a78cb6f2c988f176",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "59efc3c2112a408c87742eaecb1f6add",
+ "Name": "boundingBox",
+ "Description": "Autodesk.DesignScript.Geometry.BoundingBox",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "ba689aa73d1348dca5b398c94ca14181",
+ "Name": "Cuboid",
+ "Description": "Returns cuboid representation of the bounding box.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.BoundingBox.ToCuboid",
+ "Replication": "Auto",
+ "Description": "Get the bounding box as a solid cuboid.\n\nBoundingBox.ToCuboid ( ): Cuboid"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d74f505a8b334ab0a0a6bd6a6af54265",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "9ca6128003a64987a702ab0c1a8e9fe0",
+ "Name": "geometry",
+ "Description": "The geometry to which you would like to apply color.\n\nGeometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a964f290d80e4e33936edbfe8700adad",
+ "Name": "color",
+ "Description": "The color.\n\nColor",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "0b3adebb8d234eed8daaaa8692043fe5",
+ "Name": "GeometryColor",
+ "Description": "A Display object.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Modifiers.GeometryColor.ByGeometryColor@Autodesk.DesignScript.Geometry.Geometry,DSCore.Color",
+ "Replication": "Auto",
+ "Description": "Display geometry using a color.\n\nGeometryColor.ByGeometryColor (geometry: Geometry, color: Color): GeometryColor"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "c021feda3f2a4125ad544e268cbb6656",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "9db77859c8214a3e8b3c4731baab90e8",
+ "Name": "alpha",
+ "Description": "Alpha value (between 0 and 255 inclusive)\n\nint\nDefault value : 255",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "4fa7f7256d5041ef89d012b3e71dbb0b",
+ "Name": "red",
+ "Description": "Red value for RGB color model (between 0 and 255 inclusive)\n\nint\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8b3c679dd25545c2b20f4a23f6aa26df",
+ "Name": "green",
+ "Description": "Green value for RGB color model (between 0 and 255 inclusive)\n\nint\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "dd03d70e4dd94f8a8cb794ea0a19d399",
+ "Name": "blue",
+ "Description": "Blue value for RGB color model (between 0 and 255 inclusive)\n\nint\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "5f66dc76b29b49c28382f69a05455d54",
+ "Name": "color",
+ "Description": "Color created from ARGB",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Color.ByARGB@int,int,int,int",
+ "Replication": "Auto",
+ "Description": "Construct a color by alpha, red, green, and blue components.\n\nColor.ByARGB (alpha: int = 255, red: int = 0, green: int = 0, blue: int = 0): Color"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "ca9e0f3629004c5a97a1005dcc22d734",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "7ac11ca0300046b3a927b571276a25fc",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 20.0
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "4ea85da69bcc4465bc1bc1944ca8b8af",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "a1414b63933540f199da7b8334ddb329",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "15e9d4d05b3a4d2c9bd5626a367d8a03",
+ "Name": "BoundingBox",
+ "Description": "BoundingBox",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.OrientedBoundingBox",
+ "Replication": "Auto",
+ "Description": "Gets the minimum-volume, oriented bounding box containing the given geometry.\n\nGeometry.OrientedBoundingBox: BoundingBox"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "1400ebdedb7348729013414e41dcc592",
+ "End": "e766711434a34a418e9caa6dc4bb257e",
+ "Id": "1706646b7f1a4ce395dfb02801ad7d17",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "fc6f65856c794e7e94ac59e2a6cc27c5",
+ "End": "008a0071fb8b40409545b93596b9627e",
+ "Id": "2dccf8d7df84403ebb1b7af471739be8",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "836d505310234c8c9a506b8382a5d69a",
+ "End": "d1e5840499ee46bbaa322cac3387e72b",
+ "Id": "98bdaf3b2f72459da85196c0f3ab6913",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "97c455c3bd834ce5b6101e0a64325884",
+ "End": "40c0191fc95143b3aeb8cbddc1051977",
+ "Id": "2576fa0ba00348649c17c44c199aed0b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9d771e4dacfc4235963f46c5e9e4bf4f",
+ "End": "a21ad5c5b5de4575be30fdbd65ebb0fa",
+ "Id": "b600bdb5cabc4a9980ed3bb7633cb7b3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "89b690a48ee5427d994645bca552eabf",
+ "End": "a1414b63933540f199da7b8334ddb329",
+ "Id": "b3d7728ad9a24d458ad977f508cc01f7",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9b616b66c2314a76af8c2f9922347318",
+ "End": "7a4a57d53e8b479ebb1f43a56225ec14",
+ "Id": "b6b60a31d6634c309bbdc61130cf5f18",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "51125a01b69d427c8a4092860e3ba661",
+ "End": "327c40c8f4094031adacd9f177eab3e8",
+ "Id": "88f3686d257941c2a4e5c47bbc3e0878",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6da9b0d1c5a94f828ab7c025f16d65a3",
+ "End": "b901432715ef4b828a560b2bc4e62cd3",
+ "Id": "183f434fe733440d9c382110d6e963b7",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ba689aa73d1348dca5b398c94ca14181",
+ "End": "9ca6128003a64987a702ab0c1a8e9fe0",
+ "Id": "c3f6343fa2da494a831ff9d560014629",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "5f66dc76b29b49c28382f69a05455d54",
+ "End": "a964f290d80e4e33936edbfe8700adad",
+ "Id": "d190f459199b40428f3ac1b7f558134d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "7ac11ca0300046b3a927b571276a25fc",
+ "End": "9db77859c8214a3e8b3c4731baab90e8",
+ "Id": "e5ae3b5a236549ed9991a8fb8f95aaa3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "15e9d4d05b3a4d2c9bd5626a367d8a03",
+ "End": "59efc3c2112a408c87742eaecb1f6add",
+ "Id": "1d1fcaec19f94ece995a369cb03ae69b",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 100.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": 6.5932755470275879,
+ "EyeY": 4.0049648284912109,
+ "EyeZ": -1.842180609703064,
+ "LookX": -7.7810578346252441,
+ "LookY": -2.7090249061584473,
+ "LookZ": 1.4858139753341675,
+ "UpX": -0.11119390279054642,
+ "UpY": 0.99357199668884277,
+ "UpZ": 0.021232729777693748
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "ae2c0287cd28496190116dd64cb14b20",
+ "Name": "Sphere.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 292.79496345833741,
+ "Y": 150.99119020296149
+ },
+ {
+ "Id": "bfe6f2833ff24842839a77c0a8617602",
+ "Name": "Geometry.Scale",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 678.35834374002764,
+ "Y": 150.99119020296149
+ },
+ {
+ "Id": "ffdc84f2a7e446a08557e04cb4b0ce88",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 292.79496345833741,
+ "Y": 340.47369020296151
+ },
+ {
+ "Id": "8cea0316c58e4bfa8a1a6e2523daea44",
+ "Name": "Geometry.Rotate",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1020.8583437400276,
+ "Y": 150.99119020296149
+ },
+ {
+ "Id": "cd8a8ab8548249fa92501c57a105430a",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 678.35834374002764,
+ "Y": 433.93369020296154
+ },
+ {
+ "Id": "965ed3f26ea24a388ea76a4e200c1e94",
+ "Name": "Vector.ZAxis",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 678.35834374002764,
+ "Y": 681.87619020296154
+ },
+ {
+ "Id": "db2ff2e07d534c58ba6892614b590aef",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 678.35834374002764,
+ "Y": 864.81869020296153
+ },
+ {
+ "Id": "bd9633ee78d947f6a78cb6f2c988f176",
+ "Name": "BoundingBox.ToCuboid",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1786.3583437400275,
+ "Y": 150.99119020296149
+ },
+ {
+ "Id": "d74f505a8b334ab0a0a6bd6a6af54265",
+ "Name": "GeometryColor.ByGeometryColor",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2133.3583437400275,
+ "Y": 150.99119020296149
+ },
+ {
+ "Id": "c021feda3f2a4125ad544e268cbb6656",
+ "Name": "Color.ByARGB",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1788.7949634583374,
+ "Y": 433.93369020296154
+ },
+ {
+ "Id": "ca9e0f3629004c5a97a1005dcc22d734",
+ "Name": "Number",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1553.8583437400275,
+ "Y": 433.93369020296154
+ },
+ {
+ "Id": "4ea85da69bcc4465bc1bc1944ca8b8af",
+ "Name": "Geometry.OrientedBoundingBox",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1367.1083437400275,
+ "Y": 150.99119020296149
+ }
+ ],
+ "Annotations": [],
+ "X": -75.332542997356541,
+ "Y": 107.55662049629757,
+ "Zoom": 0.54994833700804291
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.OrientedBoundingBox.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.OrientedBoundingBox.md
new file mode 100644
index 00000000000..c75507cd027
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.OrientedBoundingBox.md
@@ -0,0 +1,8 @@
+## In Depth
+`Geometry.OrientedBoundingBox` returns a minimum-volume, oriented box defined by the geometry it contains. A BoundingBox is not displayed, but it can be returned as a PolySurface using the `BoundingBox.ToPolySurface` node.
+
+In the example below, a BoundingBox is created for a unioned solid and represented as a PolySurface.
+___
+## Example File
+
+![Geometry.OrientedBoundingBox](./Autodesk.DesignScript.Geometry.Geometry.OrientedBoundingBox_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.OrientedBoundingBox_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.OrientedBoundingBox_img.jpg
new file mode 100644
index 00000000000..694429e6bea
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.OrientedBoundingBox_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(basePlane, degrees).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(basePlane, degrees).md
deleted file mode 100644
index 95f7f85d7df..00000000000
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(basePlane, degrees).md
+++ /dev/null
@@ -1,7 +0,0 @@
-## In Depth
-Rotates an object around the Plane origin and normal by a specified degree.
-___
-## Example File
-
-![Rotate (basePlane, degrees)](./Autodesk.DesignScript.Geometry.Geometry.Rotate(basePlane,%20degrees)_img.jpg)
-
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(basePlane, degrees)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(basePlane, degrees)_img.jpg
deleted file mode 100644
index ebdfe696c22..00000000000
Binary files a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(basePlane, degrees)_img.jpg and /dev/null differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(basePlane, degrees).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, basePlane, degrees).dyn
similarity index 62%
rename from doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(basePlane, degrees).dyn
rename to doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, basePlane, degrees).dyn
index 8cd8eb0eb99..0141cb4e8ba 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(basePlane, degrees).dyn
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, basePlane, degrees).dyn
@@ -1,34 +1,35 @@
{
- "Uuid": "3c9d0464-8643-5ffe-96e5-ab1769818209",
+ "Uuid": "6d6ee96e-5140-4947-a24b-1a488b2c8eb9",
"IsCustomNode": false,
"Description": "",
- "Name": "Rotate",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.Rotate",
"ElementResolver": {
"ResolutionMap": {}
},
"Inputs": [
{
- "Id": "f574c9563efa4ed5b50c6e23239fc856",
+ "Id": "29c47699a5c1473d87ca352babaca6ca",
"Name": "Number Slider",
"Type": "number",
+ "Type2": "number",
"Value": "62.1",
"MaximumValue": 359.0,
"MinimumValue": 1.0,
"StepValue": 0.1,
"NumberType": "Double",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
}
],
"Outputs": [],
"Nodes": [
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "dab20a62bb734d59b6e932f5caad9592",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Cone.ByPointsRadius@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,double",
- "Id": "9353c4dfe5c94c3b89718f7d9b2123ba",
"Inputs": [
{
- "Id": "c2022c20158648afb56e272f54035905",
+ "Id": "6a901d6255984a229bfc6bfb40c45302",
"Name": "startPoint",
"Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
"UsingDefaultValue": true,
@@ -37,7 +38,7 @@
"KeepListStructure": false
},
{
- "Id": "4020e98689d74a06ae3054c8e74fdc43",
+ "Id": "8fae0a3168594a71870722aa9a7c2adb",
"Name": "endPoint",
"Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1)",
"UsingDefaultValue": true,
@@ -46,7 +47,7 @@
"KeepListStructure": false
},
{
- "Id": "b63c9394c082410296efd829e1fff5b8",
+ "Id": "2affc494d06e4e22a783b631d4f6155e",
"Name": "startRadius",
"Description": "double\nDefault value : 1",
"UsingDefaultValue": true,
@@ -57,7 +58,7 @@
],
"Outputs": [
{
- "Id": "0e083d464edd44aeae6a9ebbfb4ecf09",
+ "Id": "9dc65e2f08054a5d869ce5ed8599e788",
"Name": "Cone",
"Description": "Cone",
"UsingDefaultValue": false,
@@ -66,37 +67,37 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Cone.ByPointsRadius@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,double",
"Replication": "Auto",
"Description": "Create a Cone with given base radius at start Point, extending to a apex at end Point.\n\nCone.ByPointsRadius (startPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), endPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1), startRadius: double = 1): Cone"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "5e7826acd9124ae08ff09cadf8499efd",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
- "Id": "fb784abe345a49ce9476f22cbf49e7a9",
"Inputs": [
{
- "Id": "f3baa26f5375442d8c85d75c5986a170",
+ "Id": "b5ca8013431446328cd48f5efa1fbbaf",
"Name": "x",
- "Description": "double\nDefault value : 0",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "ce40b69591d44de49788a749d7cf2fe6",
+ "Id": "19fc4b95cb8340a5957d248c755319aa",
"Name": "y",
- "Description": "double\nDefault value : 0",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "0ae2c703806d426d87cb2c5cfc823bf9",
+ "Id": "fcc6b7fcf76c459aa7a9bc6a69de6ff6",
"Name": "z",
- "Description": "double\nDefault value : 0",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
@@ -105,27 +106,27 @@
],
"Outputs": [
{
- "Id": "68db643b9fb44adeae3586450758e837",
+ "Id": "c59d1776c30f409a87b602bd52359bdf",
"Name": "Point",
- "Description": "Point",
+ "Description": "Point created by coordinates",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
"Replication": "Auto",
"Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "96bed24becad4a75a988bde2a589a25c",
"NodeType": "CodeBlockNode",
- "Code": "5;\n2;\n8;",
- "Id": "47226805f4414bd689711e386a9009d1",
"Inputs": [],
"Outputs": [
{
- "Id": "9c6e4a046221499ca41121793649eeaf",
+ "Id": "c6b8444412474ecab85a72ef2dfdfbe5",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -134,7 +135,7 @@
"KeepListStructure": false
},
{
- "Id": "97975dcc8d494ec39af983930ffdcdc7",
+ "Id": "f98ea84088b54d8e824376d01e551ead",
"Name": "",
"Description": "Value of expression at line 2",
"UsingDefaultValue": false,
@@ -143,7 +144,7 @@
"KeepListStructure": false
},
{
- "Id": "9871b7f929f64b76a7e92d1b0e263bcc",
+ "Id": "60ed0de5c3764275bd0707cc0bfd67e5",
"Name": "",
"Description": "Value of expression at line 3",
"UsingDefaultValue": false,
@@ -153,36 +154,36 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "5;\n2;\n8;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "cbc7b355436f43dba3c337329ea314d2",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.Origin",
- "Id": "cb29ce4de19648ee800f936596f93067",
"Inputs": [],
"Outputs": [
{
- "Id": "eda8062075de425085ed1ba1fee3ebb8",
+ "Id": "50921deaa36043de81bbd904da37d082",
"Name": "Point",
- "Description": "Point",
+ "Description": "Origin point",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.Origin",
"Replication": "Auto",
"Description": "Get the Origin point (0,0,0)\n\nPoint.Origin ( ): Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "644a32a97e51440082606986a87bd84f",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Rotate@Autodesk.DesignScript.Geometry.Plane,double",
- "Id": "93fe6d7d3a13456cb0a0779f77d9a715",
"Inputs": [
{
- "Id": "fdf03355b0b34f8487c9a6d8231e6a17",
+ "Id": "f593a59692f74730b8bd8bd57a9659cb",
"Name": "geometry",
"Description": "Autodesk.DesignScript.Geometry.Geometry",
"UsingDefaultValue": false,
@@ -191,7 +192,7 @@
"KeepListStructure": false
},
{
- "Id": "d255d6586578421785621f4eaf08c83b",
+ "Id": "8857dffb880c45578224e1c252f7f2de",
"Name": "basePlane",
"Description": "Plane",
"UsingDefaultValue": false,
@@ -200,7 +201,7 @@
"KeepListStructure": false
},
{
- "Id": "608f0a035fee47599383d0e42aa2ae15",
+ "Id": "29dece479bc947569331eef58c761660",
"Name": "degrees",
"Description": "double\nDefault value : 0",
"UsingDefaultValue": true,
@@ -211,7 +212,7 @@
],
"Outputs": [
{
- "Id": "4f04e294e6b64093a25d9456a604fe6f",
+ "Id": "23ffc92ba8c645b490ec0127df7749a7",
"Name": "Geometry",
"Description": "Geometry",
"UsingDefaultValue": false,
@@ -220,22 +221,22 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Rotate@Autodesk.DesignScript.Geometry.Plane,double",
"Replication": "Auto",
"Description": "Rotates an object around the Plane origin and normal by a specified degree\n\nGeometry.Rotate (basePlane: Plane, degrees: double = 0): Geometry"
},
{
"ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
- "NodeType": "NumberInputNode",
"NumberType": "Double",
"MaximumValue": 359.0,
"MinimumValue": 1.0,
"StepValue": 0.1,
- "InputValue": 62.1,
- "Id": "f574c9563efa4ed5b50c6e23239fc856",
+ "Id": "29c47699a5c1473d87ca352babaca6ca",
+ "NodeType": "NumberInputNode",
"Inputs": [],
"Outputs": [
{
- "Id": "e0ef1de0a7aa454faf4c4e2941a72d22",
+ "Id": "4675fe9866394b9da89fbe9f10029705",
"Name": "",
"Description": "Double",
"UsingDefaultValue": false,
@@ -245,174 +246,203 @@
}
],
"Replication": "Disabled",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "InputValue": 62.1
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "07575189eaca4aa2ac49ba1dec21d0f5",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Plane.XY",
- "Id": "a7abb5cdaf5849e199f2f163186b4ad0",
"Inputs": [],
"Outputs": [
{
- "Id": "545a14a054b048ff812c5533eb954899",
+ "Id": "588890c6c00d49e792bc7c279da4eaa8",
"Name": "Plane",
- "Description": "Plane",
+ "Description": "Plane at XY plane of world",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Plane.XY",
"Replication": "Auto",
"Description": "Creates a plane in the world XY\n\nPlane.XY ( ): Plane"
}
],
"Connectors": [
{
- "Start": "0e083d464edd44aeae6a9ebbfb4ecf09",
- "End": "fdf03355b0b34f8487c9a6d8231e6a17",
- "Id": "f1dd1ce732024c4b98388efb6c94c2f6"
+ "Start": "9dc65e2f08054a5d869ce5ed8599e788",
+ "End": "f593a59692f74730b8bd8bd57a9659cb",
+ "Id": "44baf9b8a5894b279737fb8376e8de57",
+ "IsHidden": "False"
},
{
- "Start": "68db643b9fb44adeae3586450758e837",
- "End": "4020e98689d74a06ae3054c8e74fdc43",
- "Id": "063cdb39a36c446caca56933690e65cc"
+ "Start": "c59d1776c30f409a87b602bd52359bdf",
+ "End": "8fae0a3168594a71870722aa9a7c2adb",
+ "Id": "9acd577e90e54d9886da7f4ae9650552",
+ "IsHidden": "False"
},
{
- "Start": "9c6e4a046221499ca41121793649eeaf",
- "End": "f3baa26f5375442d8c85d75c5986a170",
- "Id": "d09445369071426ea48d6b1107ead5fd"
+ "Start": "c6b8444412474ecab85a72ef2dfdfbe5",
+ "End": "b5ca8013431446328cd48f5efa1fbbaf",
+ "Id": "9f9a9f6b9fb04eeb9671182ca2ed6609",
+ "IsHidden": "False"
},
{
- "Start": "9c6e4a046221499ca41121793649eeaf",
- "End": "b63c9394c082410296efd829e1fff5b8",
- "Id": "d42f2ed95350413bacc15ab8de226dc9"
+ "Start": "c6b8444412474ecab85a72ef2dfdfbe5",
+ "End": "2affc494d06e4e22a783b631d4f6155e",
+ "Id": "c674097c170944a4b6f82650c090a46d",
+ "IsHidden": "False"
},
{
- "Start": "97975dcc8d494ec39af983930ffdcdc7",
- "End": "ce40b69591d44de49788a749d7cf2fe6",
- "Id": "ff57f5d8d9f34294a1530f1335da7f8d"
+ "Start": "f98ea84088b54d8e824376d01e551ead",
+ "End": "19fc4b95cb8340a5957d248c755319aa",
+ "Id": "23ef465cbe874cfe871223b3c0dcbfa6",
+ "IsHidden": "False"
},
{
- "Start": "9871b7f929f64b76a7e92d1b0e263bcc",
- "End": "0ae2c703806d426d87cb2c5cfc823bf9",
- "Id": "3764900d485e4d419bac69b7ac2262ea"
+ "Start": "60ed0de5c3764275bd0707cc0bfd67e5",
+ "End": "fcc6b7fcf76c459aa7a9bc6a69de6ff6",
+ "Id": "5d7cb8d55e0642128ea6df540822fd0f",
+ "IsHidden": "False"
},
{
- "Start": "eda8062075de425085ed1ba1fee3ebb8",
- "End": "c2022c20158648afb56e272f54035905",
- "Id": "f4faa461ef814b17a13243155365caa3"
+ "Start": "50921deaa36043de81bbd904da37d082",
+ "End": "6a901d6255984a229bfc6bfb40c45302",
+ "Id": "a6fb7fde1b4a44e289b4fd609a2b204a",
+ "IsHidden": "False"
},
{
- "Start": "e0ef1de0a7aa454faf4c4e2941a72d22",
- "End": "608f0a035fee47599383d0e42aa2ae15",
- "Id": "eab8e37cf7f04a8fb11fe9d840b118eb"
+ "Start": "4675fe9866394b9da89fbe9f10029705",
+ "End": "29dece479bc947569331eef58c761660",
+ "Id": "c66b809480b547b5a4763231e2f823b6",
+ "IsHidden": "False"
},
{
- "Start": "545a14a054b048ff812c5533eb954899",
- "End": "d255d6586578421785621f4eaf08c83b",
- "Id": "5444bf89eefa4c8fb02b7897eb76e616"
+ "Start": "588890c6c00d49e792bc7c279da4eaa8",
+ "End": "8857dffb880c45578224e1c252f7f2de",
+ "Id": "dfca654d38924356977c00238537205b",
+ "IsHidden": "False"
}
],
"Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
"Bindings": [],
"View": {
"Dynamo": {
"ScaleFactor": 1.0,
"HasRunWithoutCrash": true,
"IsVisibleInDynamoLibrary": true,
- "Version": "2.0.1.5055",
+ "Version": "2.19.0.5874",
"RunType": "Automatic",
"RunPeriod": "1000"
},
"Camera": {
- "Name": "Background Preview",
- "EyeX": 1.5906540155410767,
- "EyeY": 19.727062225341797,
- "EyeZ": 20.494718551635742,
- "LookX": -0.8273547887802124,
- "LookY": -14.146214485168457,
- "LookZ": -26.17218017578125,
- "UpX": -0.0087090954184532166,
- "UpY": 0.96126168966293335,
- "UpZ": -0.27549973130226135
+ "Name": "_Background Preview",
+ "EyeX": -14.22697925567627,
+ "EyeY": 24.756748199462891,
+ "EyeZ": 17.283315658569336,
+ "LookX": 3.055943489074707,
+ "LookY": -19.082725524902344,
+ "LookZ": -22.633892059326172,
+ "UpX": 0.061782918870449066,
+ "UpY": 0.88701075315475464,
+ "UpZ": -0.45759698748588562
},
+ "ConnectorPins": [],
"NodeViews": [
{
- "ShowGeometry": true,
+ "Id": "dab20a62bb734d59b6e932f5caad9592",
"Name": "Cone.ByPointsRadius",
- "Id": "9353c4dfe5c94c3b89718f7d9b2123ba",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 733.69993499848306,
- "Y": 302.53457531974652
+ "ShowGeometry": true,
+ "X": 780.19993499848306,
+ "Y": 259.03457531974652
},
{
- "ShowGeometry": false,
+ "Id": "5e7826acd9124ae08ff09cadf8499efd",
"Name": "Point.ByCoordinates",
- "Id": "fb784abe345a49ce9476f22cbf49e7a9",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 475.69993499848306,
- "Y": 369.53457531974652
+ "ShowGeometry": false,
+ "X": 455.19993499848306,
+ "Y": 350.03457531974652
},
{
- "ShowGeometry": true,
+ "Id": "96bed24becad4a75a988bde2a589a25c",
"Name": "Code Block",
- "Id": "47226805f4414bd689711e386a9009d1",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 296.69993499848306,
- "Y": 377.96124198641314
+ "ShowGeometry": true,
+ "X": 201.19993499848306,
+ "Y": 358.6895753197465
},
{
- "ShowGeometry": true,
+ "Id": "cbc7b355436f43dba3c337329ea314d2",
"Name": "Point.Origin",
- "Id": "cb29ce4de19648ee800f936596f93067",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 475.69993499848306,
- "Y": 261.53457531974652
+ "ShowGeometry": true,
+ "X": 455.19993499848306,
+ "Y": 202.03457531974652
},
{
- "ShowGeometry": true,
+ "Id": "644a32a97e51440082606986a87bd84f",
"Name": "Geometry.Rotate",
- "Id": "93fe6d7d3a13456cb0a0779f77d9a715",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1132.6999349984831,
- "Y": 419.53457531974652
+ "ShowGeometry": true,
+ "X": 1228.1999349984831,
+ "Y": 420.03457531974652
},
{
- "ShowGeometry": false,
+ "Id": "29c47699a5c1473d87ca352babaca6ca",
"Name": "Number Slider",
- "Id": "f574c9563efa4ed5b50c6e23239fc856",
"IsSetAsInput": true,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 733.69993499848306,
- "Y": 571.53457531974652
+ "ShowGeometry": false,
+ "X": 780.19993499848306,
+ "Y": 631.03457531974652
},
{
- "ShowGeometry": false,
+ "Id": "07575189eaca4aa2ac49ba1dec21d0f5",
"Name": "Plane.XY",
- "Id": "a7abb5cdaf5849e199f2f163186b4ad0",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 733.69993499848306,
- "Y": 462.53457531974652
+ "ShowGeometry": false,
+ "X": 780.19993499848306,
+ "Y": 472.03457531974647
}
],
"Annotations": [],
- "X": -154.784728278406,
- "Y": -25.9829774649526,
- "Zoom": 1.02988563947099
+ "X": -123.8357195820962,
+ "Y": -154.0923529661743,
+ "Zoom": 0.867977507649019
}
}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, basePlane, degrees).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, basePlane, degrees).md
new file mode 100644
index 00000000000..cd539a37014
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, basePlane, degrees).md
@@ -0,0 +1,10 @@
+## In Depth
+`Geometry.Rotate (basePlane, degrees)` rotates an input geometry around an origin point and axis vector by a given degree.
+
+In the example below, a cone is rotated about the Y-axis vector by its end point.
+
+
+___
+## Example File
+
+![Geometry.Rotate(basePlane, degrees)](./Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry,%20basePlane,%20degrees)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, basePlane, degrees)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, basePlane, degrees)_img.jpg
new file mode 100644
index 00000000000..05b494946cd
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, basePlane, degrees)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, origin, axis, degrees).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, origin, axis, degrees).dyn
new file mode 100644
index 00000000000..420edca7ab7
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, origin, axis, degrees).dyn
@@ -0,0 +1,493 @@
+{
+ "Uuid": "7a21b4d6-da96-4642-ac72-38096a8d2d9e",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.Rotate",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "5df4f08568d24e6ea79e9e563f64dc4c",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "44.6",
+ "MaximumValue": 359.0,
+ "MinimumValue": 1.0,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "13e573142a9343d5aec2789c22771d67",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "d9372dccebd24da381a1eb3b4c0db1ca",
+ "Name": "startPoint",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "12981029543e4024b14f84ef839f171e",
+ "Name": "endPoint",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "b7e6fcbe7122491ab4e8db92292da842",
+ "Name": "startRadius",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "d8c893dce194408f9dad462af7b6bc4e",
+ "Name": "Cone",
+ "Description": "Cone",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Cone.ByPointsRadius@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Create a Cone with given base radius at start Point, extending to a apex at end Point.\n\nCone.ByPointsRadius (startPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), endPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1), startRadius: double = 1): Cone"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "ee3dccd2ce4b42aaa81d30f40dfb82f2",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "d615568dc22e4ba2b3d423a17a93b114",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "b2284034971745b794a1a6a154a0d140",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ccbdfcf90c214e47b13d5fb0a7cc3075",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "ff50777b664342e3a9dc1714bb6df9ed",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "5d20c9ef37f1409694160e9e2e2c79c6",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "23327117a90a4f8db4b540367a5adef8",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "16a0f9410142494bb97bf55e4ac3c5cf",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "29a8047f30fc40d2a8c264e64ecdff61",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "5;\n2;\n8;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "2714f9bffdbf462f8b6b8657273d971d",
+ "NodeType": "FunctionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "a4b37155e01c4b9e9a7d40c114b9e56a",
+ "Name": "Point",
+ "Description": "Origin point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.Origin",
+ "Replication": "Auto",
+ "Description": "Get the Origin point (0,0,0)\n\nPoint.Origin ( ): Point"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 359.0,
+ "MinimumValue": 1.0,
+ "StepValue": 0.1,
+ "Id": "5df4f08568d24e6ea79e9e563f64dc4c",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "77cb8626ee544bd29e1e31ac52f372c8",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 44.6
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "f861229e52d4432cab373e1783ffe0e1",
+ "NodeType": "FunctionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "d2caaee0f6a949e79be7739a8d7d0ec8",
+ "Name": "Plane",
+ "Description": "Plane at XY plane of world",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Plane.XY",
+ "Replication": "Auto",
+ "Description": "Creates a plane in the world XY\n\nPlane.XY ( ): Plane"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "9f7707b57cde42d081fd2c911e21b190",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "9f15601e9ec349e3b409c5af6417b1d8",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "c6e711e964964f569c0c58cd78b7eed3",
+ "Name": "origin",
+ "Description": "Point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "81070940bd5544f8832e8927d438f39b",
+ "Name": "axis",
+ "Description": "Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "15adf63fd5a3485fbbec705ae1f3df73",
+ "Name": "degrees",
+ "Description": "double\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "bc18498ebcc947ed9d75d7f96366b9fc",
+ "Name": "Geometry",
+ "Description": "Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Rotate@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Vector,double",
+ "Replication": "Auto",
+ "Description": "Rotates an object around an origin and an axis by a specified degree\n\nGeometry.Rotate (origin: Point, axis: Vector, degrees: double = 0): Geometry"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "156c22bf4ded4e459071376b630c7206",
+ "NodeType": "FunctionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "fad657465578487087a162acf2979138",
+ "Name": "Vector",
+ "Description": "Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.YAxis",
+ "Replication": "Auto",
+ "Description": "Get the canonical Y axis Vector (0,1,0)\n\nVector.YAxis ( ): Vector"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "d8c893dce194408f9dad462af7b6bc4e",
+ "End": "9f15601e9ec349e3b409c5af6417b1d8",
+ "Id": "2971d3f350e449848552e6d983bfea97",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ff50777b664342e3a9dc1714bb6df9ed",
+ "End": "12981029543e4024b14f84ef839f171e",
+ "Id": "d3421c846a174152bed0e846603d9b26",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ff50777b664342e3a9dc1714bb6df9ed",
+ "End": "c6e711e964964f569c0c58cd78b7eed3",
+ "Id": "387e34f4f9844e6696f01deac3708f46",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "23327117a90a4f8db4b540367a5adef8",
+ "End": "d615568dc22e4ba2b3d423a17a93b114",
+ "Id": "61e9f28886e64528ba9e7061b820cf26",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "23327117a90a4f8db4b540367a5adef8",
+ "End": "b7e6fcbe7122491ab4e8db92292da842",
+ "Id": "35273e69b04c4c6f8b1a0183cf8d626d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "16a0f9410142494bb97bf55e4ac3c5cf",
+ "End": "b2284034971745b794a1a6a154a0d140",
+ "Id": "d224dfb598334d4cb1ef3e71813fc279",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "29a8047f30fc40d2a8c264e64ecdff61",
+ "End": "ccbdfcf90c214e47b13d5fb0a7cc3075",
+ "Id": "e5d17457b6d04ff99a4930b7c6d50d1a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a4b37155e01c4b9e9a7d40c114b9e56a",
+ "End": "d9372dccebd24da381a1eb3b4c0db1ca",
+ "Id": "06f7ad4898d04a5ba28420b58deeed8c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "77cb8626ee544bd29e1e31ac52f372c8",
+ "End": "15adf63fd5a3485fbbec705ae1f3df73",
+ "Id": "baf2bf146dbb422a95b27a2a5fafe2ed",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "fad657465578487087a162acf2979138",
+ "End": "81070940bd5544f8832e8927d438f39b",
+ "Id": "6064a03269c1469c96517c5fb0729a03",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5874",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": 17.360422134399414,
+ "EyeY": 14.356039047241211,
+ "EyeZ": -22.005037307739258,
+ "LookX": -5.5490322113037109,
+ "LookY": -6.5384988784790039,
+ "LookZ": 28.051952362060547,
+ "UpX": -0.0016934159211814404,
+ "UpY": 0.9999619722366333,
+ "UpZ": 0.0085604013875126839
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "13e573142a9343d5aec2789c22771d67",
+ "Name": "Cone.ByPointsRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 855.205487096928,
+ "Y": 76.86434976917451
+ },
+ {
+ "Id": "ee3dccd2ce4b42aaa81d30f40dfb82f2",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 530.205487096928,
+ "Y": 200.86434976917451
+ },
+ {
+ "Id": "5d20c9ef37f1409694160e9e2e2c79c6",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 276.205487096928,
+ "Y": 209.51934976917448
+ },
+ {
+ "Id": "2714f9bffdbf462f8b6b8657273d971d",
+ "Name": "Point.Origin",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 530.205487096928,
+ "Y": 53.86434976917451
+ },
+ {
+ "Id": "5df4f08568d24e6ea79e9e563f64dc4c",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 855.205487096928,
+ "Y": 436.864349769175
+ },
+ {
+ "Id": "f861229e52d4432cab373e1783ffe0e1",
+ "Name": "Plane.XY",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 887.268152168607,
+ "Y": 603.867151985068
+ },
+ {
+ "Id": "9f7707b57cde42d081fd2c911e21b190",
+ "Name": "Geometry.Rotate",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1303.205487096928,
+ "Y": 210.86434976917451
+ },
+ {
+ "Id": "156c22bf4ded4e459071376b630c7206",
+ "Name": "Vector.YAxis",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 855.205487096928,
+ "Y": 288.86434976917451
+ }
+ ],
+ "Annotations": [],
+ "X": -102.63365798480334,
+ "Y": 6.6604935247158039,
+ "Zoom": 0.69561644130111611
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, origin, axis, degrees).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, origin, axis, degrees).md
new file mode 100644
index 00000000000..ebda675e542
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, origin, axis, degrees).md
@@ -0,0 +1,9 @@
+## In Depth
+`Geometry.Rotate (origin, axis, degrees)` rotates an input geometry around a base plane by a defined degree.
+
+In the example below, a cone is rotated around the XY plane with a number slider.
+
+___
+## Example File
+
+![Geometry.Rotate(origin, axis, degrees)](./Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry,%20origin,%20axis,%20degrees)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, origin, axis, degrees)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, origin, axis, degrees)_img.jpg
new file mode 100644
index 00000000000..b4943d592bc
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Rotate(geometry, origin, axis, degrees)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(amount).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(amount).md
deleted file mode 100644
index 06bda4aee3e..00000000000
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(amount).md
+++ /dev/null
@@ -1,7 +0,0 @@
-## In Depth
-Scale uniformly around the origin.
-___
-## Example File
-
-![Scale (amount)](./Autodesk.DesignScript.Geometry.Geometry.Scale(amount)_img.jpg)
-
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(amount)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(amount)_img.jpg
deleted file mode 100644
index 1eeefd144e2..00000000000
Binary files a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(amount)_img.jpg and /dev/null differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(amount).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, amount).dyn
similarity index 62%
rename from doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(amount).dyn
rename to doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, amount).dyn
index a14d7a6caf5..9d985c40e4e 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(amount).dyn
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, amount).dyn
@@ -1,34 +1,35 @@
{
- "Uuid": "3c9d0464-8643-5ffe-96e5-ab1769818209",
+ "Uuid": "15717816-43f4-4936-925c-f88328588ea1",
"IsCustomNode": false,
"Description": "",
- "Name": "Scale",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.Scale",
"ElementResolver": {
"ResolutionMap": {}
},
"Inputs": [
{
- "Id": "f574c9563efa4ed5b50c6e23239fc856",
+ "Id": "d8c8dedbc22c4fa9886da484eaebf155",
"Name": "Number Slider",
"Type": "number",
+ "Type2": "number",
"Value": "0.5",
"MaximumValue": 5.0,
"MinimumValue": 0.1,
"StepValue": 0.1,
"NumberType": "Double",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
}
],
"Outputs": [],
"Nodes": [
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "c48c2e96135e4c9083f4eca2965c30a3",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Cone.ByPointsRadius@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,double",
- "Id": "9353c4dfe5c94c3b89718f7d9b2123ba",
"Inputs": [
{
- "Id": "11255cc86e8f4df38350ee2950ffa5d8",
+ "Id": "2c246f2a6d694ba2bc9a21af029225e0",
"Name": "startPoint",
"Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
"UsingDefaultValue": true,
@@ -37,7 +38,7 @@
"KeepListStructure": false
},
{
- "Id": "e038aaf4445e4b4aa58ffe59e55ee83e",
+ "Id": "c52af521d55f4bedb77da4ccdac54f3b",
"Name": "endPoint",
"Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1)",
"UsingDefaultValue": true,
@@ -46,7 +47,7 @@
"KeepListStructure": false
},
{
- "Id": "a6f8ba4847374c23abd21fb91d6cc1b8",
+ "Id": "124f5d4f718e45b1a869d8608af281da",
"Name": "startRadius",
"Description": "double\nDefault value : 1",
"UsingDefaultValue": true,
@@ -57,7 +58,7 @@
],
"Outputs": [
{
- "Id": "c9568851b0c64426aeac8c2e8b041d78",
+ "Id": "81a0219710694f59ae401b21646a6afb",
"Name": "Cone",
"Description": "Cone",
"UsingDefaultValue": false,
@@ -66,37 +67,37 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Cone.ByPointsRadius@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,double",
"Replication": "Auto",
"Description": "Create a Cone with given base radius at start Point, extending to a apex at end Point.\n\nCone.ByPointsRadius (startPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), endPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1), startRadius: double = 1): Cone"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "847ede97f27e450eaaa588eda1839e27",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
- "Id": "fb784abe345a49ce9476f22cbf49e7a9",
"Inputs": [
{
- "Id": "92e1353d58ec49358ce8bf22236b563f",
+ "Id": "d686a90bed184481a2e48a4b6701037d",
"Name": "x",
- "Description": "double\nDefault value : 0",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "0950fcc0c89243de9bcc5039f37dd69b",
+ "Id": "3bf1a491f1e04639972f4eaf66497b05",
"Name": "y",
- "Description": "double\nDefault value : 0",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "f7c49a6c6691489da61769f608d777dc",
+ "Id": "5c5fa926a21840bc8a0d9463aae3acec",
"Name": "z",
- "Description": "double\nDefault value : 0",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
@@ -105,27 +106,27 @@
],
"Outputs": [
{
- "Id": "860e74616e1d4f2d8bc45bd25e06bfb1",
+ "Id": "77566d0de50f43e1a3900acb978b75f3",
"Name": "Point",
- "Description": "Point",
+ "Description": "Point created by coordinates",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
"Replication": "Auto",
"Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "66595c8b24fa4c2dbd31a6ae3f63a8ad",
"NodeType": "CodeBlockNode",
- "Code": "5;\n2;\n8;",
- "Id": "47226805f4414bd689711e386a9009d1",
"Inputs": [],
"Outputs": [
{
- "Id": "50b7458de47b4fee9ad782244e6a5d60",
+ "Id": "b0303bdd5d8c4395b91ddd604c00ca58",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -134,7 +135,7 @@
"KeepListStructure": false
},
{
- "Id": "04de626940c94724832b556e62bb3960",
+ "Id": "4d088d60ff474032a1fb7d5e10531b37",
"Name": "",
"Description": "Value of expression at line 2",
"UsingDefaultValue": false,
@@ -143,7 +144,7 @@
"KeepListStructure": false
},
{
- "Id": "1601058ae8de42c486730890957ecdf1",
+ "Id": "5c707eb438fb4a32bb2646394e94408d",
"Name": "",
"Description": "Value of expression at line 3",
"UsingDefaultValue": false,
@@ -153,41 +154,41 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "5;\n2;\n8;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "0bddc8057044418fa89774bb7b4cead7",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.Origin",
- "Id": "cb29ce4de19648ee800f936596f93067",
"Inputs": [],
"Outputs": [
{
- "Id": "9263de8ae6834f4ebe459fdf3094e24b",
+ "Id": "99a3aa0fe10e4399b04d7b677598a310",
"Name": "Point",
- "Description": "Point",
+ "Description": "Origin point",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.Origin",
"Replication": "Auto",
"Description": "Get the Origin point (0,0,0)\n\nPoint.Origin ( ): Point"
},
{
"ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
- "NodeType": "NumberInputNode",
"NumberType": "Double",
"MaximumValue": 5.0,
"MinimumValue": 0.1,
"StepValue": 0.1,
- "InputValue": 0.5,
- "Id": "f574c9563efa4ed5b50c6e23239fc856",
+ "Id": "d8c8dedbc22c4fa9886da484eaebf155",
+ "NodeType": "NumberInputNode",
"Inputs": [],
"Outputs": [
{
- "Id": "86181f41a0af422eab7f1fd3e5fa98d3",
+ "Id": "0a3e849db927424cb2bedaab7c3043d8",
"Name": "",
"Description": "Double",
"UsingDefaultValue": false,
@@ -197,16 +198,16 @@
}
],
"Replication": "Disabled",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "InputValue": 0.5
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "400cded2b0654eee9c0ca41accea5d94",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Scale@double",
- "Id": "721349478e4d4745acfec4a1b8fa443f",
"Inputs": [
{
- "Id": "116095654b0d408c8c80a3f68390abb4",
+ "Id": "555d28e00aec4b7398d32767a6379be7",
"Name": "geometry",
"Description": "Autodesk.DesignScript.Geometry.Geometry",
"UsingDefaultValue": false,
@@ -215,7 +216,7 @@
"KeepListStructure": false
},
{
- "Id": "d0a97f5b50ba46f3a59411e214df424d",
+ "Id": "8df7edb833ca4b05a88238e738710f26",
"Name": "amount",
"Description": "double\nDefault value : 1",
"UsingDefaultValue": true,
@@ -226,7 +227,7 @@
],
"Outputs": [
{
- "Id": "856ba48d98724f2fb105c918c83f0068",
+ "Id": "e1a0a5f21ab2434189534c2b572aca27",
"Name": "Geometry",
"Description": "Geometry",
"UsingDefaultValue": false,
@@ -235,19 +236,19 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Scale@double",
"Replication": "Auto",
"Description": "Scale uniformly around the origin\n\nGeometry.Scale (amount: double = 1): Geometry"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "ca42ed4eafd24a0d8e1a8bfc42d77ab8",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByBestFitThroughPoints@Autodesk.DesignScript.Geometry.Point[]",
- "Id": "15ef5b70009c4231960d57fcde546108",
"Inputs": [
{
- "Id": "8c7ca67d308644eb9306278f2f274680",
+ "Id": "3501ce7391294f7287938cb9583a91d0",
"Name": "bestFitPoints",
- "Description": "Point[]",
+ "Description": "List of points to best fit line\n\nPoint[]",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
@@ -256,26 +257,26 @@
],
"Outputs": [
{
- "Id": "347fa7bd56124ab68edfee92dad4d52a",
+ "Id": "cd779b2dbdc04ec0827b214d719bbeff",
"Name": "Line",
- "Description": "Line",
+ "Description": "Line from fit through points",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByBestFitThroughPoints@Autodesk.DesignScript.Geometry.Point[]",
"Replication": "Auto",
"Description": "Creates a Line best approximating a scatter plot of Points.\n\nLine.ByBestFitThroughPoints (bestFitPoints: Point[]): Line"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7382bbfe1a474171972d797347494219",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Vertex.PointGeometry",
- "Id": "e53c0cbf226c49c7bddc96e4ffa8b983",
"Inputs": [
{
- "Id": "a3c673e540d044849b1c2b495b9661eb",
+ "Id": "abb533b1cfc648ae8e294fb5dc741433",
"Name": "vertex",
"Description": "Autodesk.DesignScript.Geometry.Vertex",
"UsingDefaultValue": false,
@@ -286,7 +287,7 @@
],
"Outputs": [
{
- "Id": "fd0238de0c25422aa1a227f164c47094",
+ "Id": "3d62b16a33124cefac58a150bd19ec2e",
"Name": "Point",
"Description": "Point",
"UsingDefaultValue": false,
@@ -295,17 +296,17 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vertex.PointGeometry",
"Replication": "Auto",
"Description": "The Point where this Vertex is located\n\nVertex.PointGeometry: Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d4a84960c10c4827b8a9723231964bc0",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Topology.Vertices",
- "Id": "a04281510d5f4a21921258bc60f2a08e",
"Inputs": [
{
- "Id": "50e0279b66d443f49f5c01db672e5c3f",
+ "Id": "dfe1b7ab2e8041eb9bdf1e455d01d2de",
"Name": "topology",
"Description": "Autodesk.DesignScript.Geometry.Topology",
"UsingDefaultValue": false,
@@ -316,7 +317,7 @@
],
"Outputs": [
{
- "Id": "62a4001097dd4da1b1ad40a0bbaf2138",
+ "Id": "4fc74bd1a2714629be8a4f0979dd3d47",
"Name": "Vertex[]",
"Description": "Vertex[]",
"UsingDefaultValue": false,
@@ -325,37 +326,37 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Topology.Vertices",
"Replication": "Auto",
"Description": "The Vertices of the Topology\n\nTopology.Vertices: Vertex[]"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "74ffae9cfcf24837b5d42e91a21b7b64",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadiusNormal@Autodesk.DesignScript.Geometry.Point,double,Autodesk.DesignScript.Geometry.Vector",
- "Id": "e44e013a602a493d9db19dc1f5b491c4",
"Inputs": [
{
- "Id": "3e1646efd60648398f4608e509bd59f1",
+ "Id": "a7b7ff676b2641c690ef5a0ae4fbd6d3",
"Name": "centerPoint",
- "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "bac1b252f410424cb101ee9f6380b86a",
+ "Id": "b7f113a0692b4534b8b5fe919e39f667",
"Name": "radius",
- "Description": "double\nDefault value : 1",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "0feff62c2d2f4b8698e97744f12c6956",
+ "Id": "d9bc4f61abd64d28963a31b133f60957",
"Name": "normal",
- "Description": "Vector\nDefault value : Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)",
+ "Description": "Normal direction vector\n\nVector\nDefault value : Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
@@ -364,26 +365,26 @@
],
"Outputs": [
{
- "Id": "43d5c3e9cff14d80a16b81f2b7c7b1c0",
+ "Id": "81eb703b4c6a4c6eb7d1b687a469ccd7",
"Name": "Circle",
- "Description": "Circle",
+ "Description": "Circle created with center point radius and normal",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadiusNormal@Autodesk.DesignScript.Geometry.Point,double,Autodesk.DesignScript.Geometry.Vector",
"Replication": "Auto",
"Description": "Creates a Circle with specified center Point, radius, and normal direction.\n\nCircle.ByCenterPointRadiusNormal (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1, normal: Vector = Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)): Circle"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "2a35685643a34356a7cd02facebd3ff0",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ByTwoPoints@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
- "Id": "1a560a7bdc98489689ce4883cabc2d25",
"Inputs": [
{
- "Id": "eaa30595fecb4bea97da347cc9fb9489",
+ "Id": "90666b4cf73440a78e6fefb78ba2884a",
"Name": "start",
"Description": "Point",
"UsingDefaultValue": false,
@@ -392,7 +393,7 @@
"KeepListStructure": false
},
{
- "Id": "1ace90ae535240cfb357aa06104087b5",
+ "Id": "5fb7efe9d0074a01bc60858b00b3439f",
"Name": "end",
"Description": "Point",
"UsingDefaultValue": false,
@@ -403,7 +404,7 @@
],
"Outputs": [
{
- "Id": "29104714b626452e887405b7711fae7f",
+ "Id": "07d96e07d5954a529e5eae3859d36327",
"Name": "Vector",
"Description": "Vector",
"UsingDefaultValue": false,
@@ -412,230 +413,266 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ByTwoPoints@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
"Replication": "Auto",
"Description": "Form a Vector by two end points. The result is a vector from the start to the end point.\n\nVector.ByTwoPoints (start: Point, end: Point): Vector"
}
],
"Connectors": [
{
- "Start": "c9568851b0c64426aeac8c2e8b041d78",
- "End": "116095654b0d408c8c80a3f68390abb4",
- "Id": "0166dc36b8fb45bb844171893a079731"
+ "Start": "81a0219710694f59ae401b21646a6afb",
+ "End": "555d28e00aec4b7398d32767a6379be7",
+ "Id": "37dfeda9ef23485096fd6ccded9e0844",
+ "IsHidden": "False"
},
{
- "Start": "c9568851b0c64426aeac8c2e8b041d78",
- "End": "50e0279b66d443f49f5c01db672e5c3f",
- "Id": "8016be2a0e05487d975c42ebece8e798"
+ "Start": "81a0219710694f59ae401b21646a6afb",
+ "End": "dfe1b7ab2e8041eb9bdf1e455d01d2de",
+ "Id": "08c9af3e1e4d46c5b920d315acf4d5e7",
+ "IsHidden": "False"
},
{
- "Start": "860e74616e1d4f2d8bc45bd25e06bfb1",
- "End": "e038aaf4445e4b4aa58ffe59e55ee83e",
- "Id": "afddbbd0f6014ca5909c75fe2462aed2"
+ "Start": "77566d0de50f43e1a3900acb978b75f3",
+ "End": "c52af521d55f4bedb77da4ccdac54f3b",
+ "Id": "1452418b936e4354b57e0cabf776000c",
+ "IsHidden": "False"
},
{
- "Start": "860e74616e1d4f2d8bc45bd25e06bfb1",
- "End": "1ace90ae535240cfb357aa06104087b5",
- "Id": "b6311a687b76440bbd4b0005deabe6da"
+ "Start": "77566d0de50f43e1a3900acb978b75f3",
+ "End": "5fb7efe9d0074a01bc60858b00b3439f",
+ "Id": "f3b2efa2257a4110a5da1fe15a41eaf2",
+ "IsHidden": "False"
},
{
- "Start": "50b7458de47b4fee9ad782244e6a5d60",
- "End": "92e1353d58ec49358ce8bf22236b563f",
- "Id": "39f79fdae5c041409efd27129367ac00"
+ "Start": "b0303bdd5d8c4395b91ddd604c00ca58",
+ "End": "d686a90bed184481a2e48a4b6701037d",
+ "Id": "171f1a91cba147d2b572e9994a761cb7",
+ "IsHidden": "False"
},
{
- "Start": "50b7458de47b4fee9ad782244e6a5d60",
- "End": "a6f8ba4847374c23abd21fb91d6cc1b8",
- "Id": "bec5f8f974534d20bdfb61715e6e892d"
+ "Start": "b0303bdd5d8c4395b91ddd604c00ca58",
+ "End": "124f5d4f718e45b1a869d8608af281da",
+ "Id": "fc6d4aa610f94e41a97d2dc52bd8302a",
+ "IsHidden": "False"
},
{
- "Start": "50b7458de47b4fee9ad782244e6a5d60",
- "End": "bac1b252f410424cb101ee9f6380b86a",
- "Id": "886eed5a0793432f8a95cf4b6f0058eb"
+ "Start": "b0303bdd5d8c4395b91ddd604c00ca58",
+ "End": "b7f113a0692b4534b8b5fe919e39f667",
+ "Id": "2e8e441e15c44cbcb19e5223c86c6bb2",
+ "IsHidden": "False"
},
{
- "Start": "04de626940c94724832b556e62bb3960",
- "End": "0950fcc0c89243de9bcc5039f37dd69b",
- "Id": "2f9f388295cf47cdaeb0799f8578f81e"
+ "Start": "4d088d60ff474032a1fb7d5e10531b37",
+ "End": "3bf1a491f1e04639972f4eaf66497b05",
+ "Id": "0ffd20f35d754f7d8185859c1a5a912c",
+ "IsHidden": "False"
},
{
- "Start": "1601058ae8de42c486730890957ecdf1",
- "End": "f7c49a6c6691489da61769f608d777dc",
- "Id": "dab2c33ae09d4099a38cffbbcfe8528c"
+ "Start": "5c707eb438fb4a32bb2646394e94408d",
+ "End": "5c5fa926a21840bc8a0d9463aae3acec",
+ "Id": "34d5820e455744b6bdd46948ac0fe4de",
+ "IsHidden": "False"
},
{
- "Start": "9263de8ae6834f4ebe459fdf3094e24b",
- "End": "11255cc86e8f4df38350ee2950ffa5d8",
- "Id": "53ba17fdb1df4f4a8bc6aeca23334ff7"
+ "Start": "99a3aa0fe10e4399b04d7b677598a310",
+ "End": "2c246f2a6d694ba2bc9a21af029225e0",
+ "Id": "61aa8bb9dcdb4cba94465831ffe2fb04",
+ "IsHidden": "False"
},
{
- "Start": "9263de8ae6834f4ebe459fdf3094e24b",
- "End": "3e1646efd60648398f4608e509bd59f1",
- "Id": "023e67aaf9c54a4fa4ae5fae69e8849f"
+ "Start": "99a3aa0fe10e4399b04d7b677598a310",
+ "End": "a7b7ff676b2641c690ef5a0ae4fbd6d3",
+ "Id": "10454aceacb84d85ac22c902c3de5986",
+ "IsHidden": "False"
},
{
- "Start": "9263de8ae6834f4ebe459fdf3094e24b",
- "End": "eaa30595fecb4bea97da347cc9fb9489",
- "Id": "4b1fad09d74c463daca2f5cce25b1973"
+ "Start": "99a3aa0fe10e4399b04d7b677598a310",
+ "End": "90666b4cf73440a78e6fefb78ba2884a",
+ "Id": "8fc22956d51642ae83c7c5af35e4a785",
+ "IsHidden": "False"
},
{
- "Start": "86181f41a0af422eab7f1fd3e5fa98d3",
- "End": "d0a97f5b50ba46f3a59411e214df424d",
- "Id": "59f7d3a1535d4689ab8265ae236efbd0"
+ "Start": "0a3e849db927424cb2bedaab7c3043d8",
+ "End": "8df7edb833ca4b05a88238e738710f26",
+ "Id": "42c3f96433354766a8515ba9246e554a",
+ "IsHidden": "False"
},
{
- "Start": "fd0238de0c25422aa1a227f164c47094",
- "End": "8c7ca67d308644eb9306278f2f274680",
- "Id": "31c74da96d9640c4a18f3be35fff91f8"
+ "Start": "3d62b16a33124cefac58a150bd19ec2e",
+ "End": "3501ce7391294f7287938cb9583a91d0",
+ "Id": "d841e71b4e7a43d6b440e1ac3980ea2d",
+ "IsHidden": "False"
},
{
- "Start": "62a4001097dd4da1b1ad40a0bbaf2138",
- "End": "a3c673e540d044849b1c2b495b9661eb",
- "Id": "e7eb54b896b745be917ec91bde828ca6"
+ "Start": "4fc74bd1a2714629be8a4f0979dd3d47",
+ "End": "abb533b1cfc648ae8e294fb5dc741433",
+ "Id": "fc624499337545b1866b67f26fb3760b",
+ "IsHidden": "False"
},
{
- "Start": "29104714b626452e887405b7711fae7f",
- "End": "0feff62c2d2f4b8698e97744f12c6956",
- "Id": "087c71a0f7a841ef8bfa242451b0b7fd"
+ "Start": "07d96e07d5954a529e5eae3859d36327",
+ "End": "d9bc4f61abd64d28963a31b133f60957",
+ "Id": "2ff4c21a039847a4a6bad55f32d133ea",
+ "IsHidden": "False"
}
],
"Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
"Bindings": [],
"View": {
"Dynamo": {
"ScaleFactor": 1.0,
"HasRunWithoutCrash": true,
"IsVisibleInDynamoLibrary": true,
- "Version": "2.0.1.5055",
+ "Version": "2.19.0.5874",
"RunType": "Automatic",
"RunPeriod": "1000"
},
"Camera": {
- "Name": "Background Preview",
- "EyeX": 22.851694107055664,
- "EyeY": 8.0321903228759766,
- "EyeZ": -13.034655570983887,
- "LookX": -13.397122383117676,
- "LookY": -1.9604576826095581,
- "LookZ": 18.651371002197266,
- "UpX": 0.076147742569446564,
- "UpY": 0.99144482612609863,
- "UpZ": -0.10601229965686798
+ "Name": "_Background Preview",
+ "EyeX": 22.194293022155762,
+ "EyeY": 13.061295986175537,
+ "EyeZ": 12.223526000976563,
+ "LookX": -14.287055969238281,
+ "LookY": -3.3092584609985352,
+ "LookZ": -2.3112878799438477,
+ "UpX": -0.0086145587265491486,
+ "UpY": 0.9999619722366333,
+ "UpZ": -0.0013936252798885107
},
+ "ConnectorPins": [],
"NodeViews": [
{
- "ShowGeometry": false,
+ "Id": "c48c2e96135e4c9083f4eca2965c30a3",
"Name": "Cone.ByPointsRadius",
- "Id": "9353c4dfe5c94c3b89718f7d9b2123ba",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 554.41661695367645,
- "Y": 289.48648763088261
+ "ShowGeometry": false,
+ "X": 576.91661695367645,
+ "Y": 325.34486798732212
},
{
- "ShowGeometry": false,
+ "Id": "847ede97f27e450eaaa588eda1839e27",
"Name": "Point.ByCoordinates",
- "Id": "fb784abe345a49ce9476f22cbf49e7a9",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 296.41661695367645,
- "Y": 224.48648763088261
+ "ShowGeometry": false,
+ "X": 251.91661695367645,
+ "Y": 238.09486798732212
},
{
- "ShowGeometry": true,
+ "Id": "66595c8b24fa4c2dbd31a6ae3f63a8ad",
"Name": "Code Block",
- "Id": "47226805f4414bd689711e386a9009d1",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 117.41661695367645,
- "Y": 237.12648763088254
+ "ShowGeometry": true,
+ "X": -2.0833830463235472,
+ "Y": 255.57736798732208
},
{
- "ShowGeometry": true,
+ "Id": "0bddc8057044418fa89774bb7b4cead7",
"Name": "Point.Origin",
- "Id": "cb29ce4de19648ee800f936596f93067",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 296.41661695367645,
- "Y": 107.48648763088261
+ "ShowGeometry": true,
+ "X": 251.91661695367645,
+ "Y": 82.844867987322118
},
{
- "ShowGeometry": false,
+ "Id": "d8c8dedbc22c4fa9886da484eaebf155",
"Name": "Number Slider",
- "Id": "f574c9563efa4ed5b50c6e23239fc856",
"IsSetAsInput": true,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1193.4166169536766,
- "Y": 363.48648763088261
+ "ShowGeometry": false,
+ "X": 1236.9166169536766,
+ "Y": 424.84486798732212
},
{
- "ShowGeometry": true,
+ "Id": "400cded2b0654eee9c0ca41accea5d94",
"Name": "Geometry.Scale",
- "Id": "721349478e4d4745acfec4a1b8fa443f",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1592.4166169536766,
- "Y": 337.48648763088261
+ "ShowGeometry": true,
+ "X": 1684.9166169536766,
+ "Y": 392.508130603522
},
{
- "ShowGeometry": true,
+ "Id": "ca42ed4eafd24a0d8e1a8bfc42d77ab8",
"Name": "Line.ByBestFitThroughPoints",
- "Id": "15ef5b70009c4231960d57fcde546108",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1592.4166169536766,
- "Y": 228.48648763088261
+ "ShowGeometry": true,
+ "X": 1684.9166169536766,
+ "Y": 243.84486798732212
},
{
- "ShowGeometry": true,
+ "Id": "7382bbfe1a474171972d797347494219",
"Name": "Vertex.PointGeometry",
- "Id": "e53c0cbf226c49c7bddc96e4ffa8b983",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1193.4166169536766,
- "Y": 241.48648763088261
+ "ShowGeometry": true,
+ "X": 1236.9166169536766,
+ "Y": 259.84486798732212
},
{
- "ShowGeometry": true,
+ "Id": "d4a84960c10c4827b8a9723231964bc0",
"Name": "Topology.Vertices",
- "Id": "a04281510d5f4a21921258bc60f2a08e",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 873.41661695367645,
- "Y": 241.48648763088261
+ "ShowGeometry": true,
+ "X": 907.91661695367645,
+ "Y": 259.84486798732212
},
{
- "ShowGeometry": true,
+ "Id": "74ffae9cfcf24837b5d42e91a21b7b64",
"Name": "Circle.ByCenterPointRadiusNormal",
- "Id": "e44e013a602a493d9db19dc1f5b491c4",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1592.4166169536766,
- "Y": 68.4864876308826
+ "ShowGeometry": true,
+ "X": 1684.9166169536766,
+ "Y": 30.844867987322118
},
{
- "ShowGeometry": true,
+ "Id": "2a35685643a34356a7cd02facebd3ff0",
"Name": "Vector.ByTwoPoints",
- "Id": "1a560a7bdc98489689ce4883cabc2d25",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1193.4166169536766,
- "Y": 107.48648763088261
+ "ShowGeometry": true,
+ "X": 1236.9166169536766,
+ "Y": 82.844867987322118
}
],
"Annotations": [],
- "X": -317.930616567249,
- "Y": 82.1162898797425,
- "Zoom": 1.03605787560061
+ "X": 35.242871926224382,
+ "Y": 69.635765978868562,
+ "Zoom": 0.54487872805980109
}
}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, amount).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, amount).md
new file mode 100644
index 00000000000..565909f3c42
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, amount).md
@@ -0,0 +1,9 @@
+## In Depth
+`Geometry.Scale (amount)` scales an input geometry from the object centroid by an input factor.
+
+In the example below, a cone is scaled down with a number slider. The original cone edges are drawn for a visual reference.
+
+___
+## Example File
+
+![Geometry.Scale (amount)](./Autodesk.DesignScript.Geometry.Geometry.Scale(geometry,%20amount)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, amount)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, amount)_img.jpg
new file mode 100644
index 00000000000..33af580fe9e
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, amount)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, basePoint, from, to).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, basePoint, from, to).dyn
new file mode 100644
index 00000000000..b9cc59b8cc0
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, basePoint, from, to).dyn
@@ -0,0 +1,574 @@
+{
+ "Uuid": "23acca04-c19a-48e9-92a8-54053e4590ff",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.Scale",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "96721d839d694e0bb1fe02c1c3d3d8c2",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "221824a409594f76b0aab6166214e245",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "53f5d74c219b462c8c5e1b8b799db735",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5fde83003c464d178794725b08d23518",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "61ef680b66a545eaa92cdc8da1909897",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "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",
+ "Id": "f83f42538dce4e13a4df8b2a832de97d",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "56124d23d7724c508ec07ae2fb2cdd9e",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "152c63242dad40298f01f475542df6b0",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "f7da301ec515408d92dfd2c4dba47bfb",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "aeea800475fe47899ebe5189d8b33153",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "5c0201e182a74e07a3c74b16884b7acb",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "0cbe9d30924741929d38c4974e257328",
+ "Name": "",
+ "Description": "location",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "location = 10;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "489ad96589d34d9ea17c8942bc080457",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "96c0afc139ff405facdf15ae0aa80e28",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "addc05a6597c47d2955c8ae0c92d9b01",
+ "Name": "basePoint",
+ "Description": "Point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "639e779d122741c9a436925446e3af65",
+ "Name": "from",
+ "Description": "Point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "b00b69034fa2400cab6944de23884a3c",
+ "Name": "to",
+ "Description": "Point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "393c821d1d5940c6bb1bc37b82febb00",
+ "Name": "Geometry",
+ "Description": "Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Scale@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
+ "Replication": "Auto",
+ "Description": "Scale uniformly around a given point, using two pick points as scalars\n\nGeometry.Scale (basePoint: Point, from: Point, to: Point): Geometry"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "852b53f5b82740d981a1d5ca070d5399",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "cc81792a30ea4da5a6c3fb37eca2bba2",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d1728f63626d487f937204170bb125e4",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "b666332f792b4ba1bada818b39cf75b9",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "af3ae37ee3ed41c2a6fe408a6eb4ef5e",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "5f63c0ffa8364481a021a91e57240309",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ca9fae14fd3448f89f8b24c956a68620",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "16afa60f794b451786a7184e56e16552",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8d7582acb4444c6f828d20e2e9f4dfd9",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "69d18609aa3e4ce797a1c381b8f8c1b4",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "17440d4830a4402094ce75a51617c928",
+ "Name": "",
+ "Description": "location",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "location = 1;"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "61ef680b66a545eaa92cdc8da1909897",
+ "End": "addc05a6597c47d2955c8ae0c92d9b01",
+ "Id": "4b49fc4c0db348898e83e67753209c19",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "aeea800475fe47899ebe5189d8b33153",
+ "End": "b00b69034fa2400cab6944de23884a3c",
+ "Id": "3188c0044e2d4879918b7bc09d4c716c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "0cbe9d30924741929d38c4974e257328",
+ "End": "56124d23d7724c508ec07ae2fb2cdd9e",
+ "Id": "b6bd1b21c0844292bec4385c28df707e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "0cbe9d30924741929d38c4974e257328",
+ "End": "152c63242dad40298f01f475542df6b0",
+ "Id": "45ecb43c48da48dfb5391d92c44f04c3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b666332f792b4ba1bada818b39cf75b9",
+ "End": "96c0afc139ff405facdf15ae0aa80e28",
+ "Id": "0d36b9e36e3c4acfaf40574e39359e9e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8d7582acb4444c6f828d20e2e9f4dfd9",
+ "End": "cc81792a30ea4da5a6c3fb37eca2bba2",
+ "Id": "bb4b6e61072244faa82f4512ffb6f66b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8d7582acb4444c6f828d20e2e9f4dfd9",
+ "End": "639e779d122741c9a436925446e3af65",
+ "Id": "66705fa24c194cf8a8ee90d58ea7ee8f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "17440d4830a4402094ce75a51617c928",
+ "End": "5f63c0ffa8364481a021a91e57240309",
+ "Id": "c88f4f0a864845ea8b8fe89f15fb2a64",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "17440d4830a4402094ce75a51617c928",
+ "End": "ca9fae14fd3448f89f8b24c956a68620",
+ "Id": "b2586e500f1e4f088dd96b05e8efcf52",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 100.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5914",
+ "RunType": "Manual",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -13.789224624633789,
+ "EyeY": 45.495067596435547,
+ "EyeZ": 40.388420104980469,
+ "LookX": -3.4590816497802734,
+ "LookY": -39.485530853271484,
+ "LookZ": -45.890388488769531,
+ "UpX": -0.035576537251472473,
+ "UpY": 0.88089054822921753,
+ "UpZ": -0.4719809889793396
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "96721d839d694e0bb1fe02c1c3d3d8c2",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1153.6395999151841,
+ "Y": 304.47866160939225
+ },
+ {
+ "Id": "f83f42538dce4e13a4df8b2a832de97d",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1153.6395999151841,
+ "Y": 572.47866160939225
+ },
+ {
+ "Id": "5c0201e182a74e07a3c74b16884b7acb",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 829.13959991518414,
+ "Y": 589.30616160939223
+ },
+ {
+ "Id": "489ad96589d34d9ea17c8942bc080457",
+ "Name": "Geometry.Scale",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1534.6395999151841,
+ "Y": 270.47866160939225
+ },
+ {
+ "Id": "852b53f5b82740d981a1d5ca070d5399",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1153.6395999151841,
+ "Y": 70.478661609392248
+ },
+ {
+ "Id": "af3ae37ee3ed41c2a6fe408a6eb4ef5e",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 829.13959991518414,
+ "Y": 204.4786616093923
+ },
+ {
+ "Id": "69d18609aa3e4ce797a1c381b8f8c1b4",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 575.13959991518414,
+ "Y": 221.30616160939229
+ }
+ ],
+ "Annotations": [
+ {
+ "Id": "d012e450ac454b0497e6f53da5f0b4c3",
+ "Title": "Point to scale \"to\"",
+ "DescriptionText": null,
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [],
+ "HasNestedGroups": false,
+ "Left": 1207.1395999151841,
+ "Top": 522.47866160939225,
+ "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": "f83f42538dce4e13a4df8b2a832de97d"
+ },
+ {
+ "Id": "c4ee8af8ad704aa5bd84cd694fb94d72",
+ "Title": "Basepoint from which to Scale geometry around",
+ "DescriptionText": null,
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [],
+ "HasNestedGroups": false,
+ "Left": 1126.6395999151841,
+ "Top": 254.47866160939225,
+ "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": "96721d839d694e0bb1fe02c1c3d3d8c2"
+ },
+ {
+ "Id": "4a8e7bee38f14b1d8a9d6de413d77ce6",
+ "Title": "Geometry to scale",
+ "DescriptionText": null,
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [],
+ "HasNestedGroups": false,
+ "Left": 1231.6395999151841,
+ "Top": 20.478661609392248,
+ "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": "852b53f5b82740d981a1d5ca070d5399"
+ },
+ {
+ "Id": "d7569e411f68420e889c291da685063c",
+ "Title": "This node will scale your geometry around a given base point (Move your geometry to that point) by the total scale factor of the distance between the \"from\" and \"to\" points.",
+ "DescriptionText": null,
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [],
+ "HasNestedGroups": false,
+ "Left": 1511.6395999151841,
+ "Top": 176.47866160939225,
+ "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": "489ad96589d34d9ea17c8942bc080457"
+ },
+ {
+ "Id": "465a5caa09ec436fa7c2de594d08a9d8",
+ "Title": "Point to scale \"from\"",
+ "DescriptionText": null,
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [],
+ "HasNestedGroups": false,
+ "Left": 875.13959991518414,
+ "Top": 154.4786616093923,
+ "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": "af3ae37ee3ed41c2a6fe408a6eb4ef5e"
+ }
+ ],
+ "X": -44.409981566760507,
+ "Y": 188.31609422344752,
+ "Zoom": 0.59376714062500013
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, basePoint, from, to).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, basePoint, from, to).md
new file mode 100644
index 00000000000..019c469c5d5
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, basePoint, from, to).md
@@ -0,0 +1,8 @@
+## In Depth
+`Geometry.Scale (geometry, basePoint, from, to)` scales the given geometry around the given point by the total scale factor of the distance between the `from` and `to` input points.
+
+In the example below, a circle is moved and its size is increased.
+___
+## Example File
+
+![Geometry.Scale(geometry, basePoint, from, to)](./Autodesk.DesignScript.Geometry.Geometry.Scale(geometry,%20basePoint,%20from,%20to)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, basePoint, from, to)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, basePoint, from, to)_img.jpg
new file mode 100644
index 00000000000..0b439209d93
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, basePoint, from, to)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, plane, xamount, yamount, zamount).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, plane, xamount, yamount, zamount).dyn
new file mode 100644
index 00000000000..54ab51d7bbb
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, plane, xamount, yamount, zamount).dyn
@@ -0,0 +1,572 @@
+{
+ "Uuid": "ca4685cb-0228-40d4-ac79-859b45f1fa98",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.Scale",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "355dec18868445199a1d8e486097a0f3",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "2",
+ "MaximumValue": 5.0,
+ "MinimumValue": 0.1,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "8916dff7005647bcb28dd47a1ce514d0",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "1.4",
+ "MaximumValue": 5.0,
+ "MinimumValue": 0.1,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "1f2dff53577645b093f3bb735caf546b",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "0.9",
+ "MaximumValue": 5.0,
+ "MinimumValue": 0.1,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "476461539ed647c6af3d02613b787cc7",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "3be2ff1ae22a42e4b04ce80bac2ea409",
+ "Name": "startPoint",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "2cebe0b218f04e6fbfefd01f39076cf5",
+ "Name": "endPoint",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5f1a84a0f62a496684ad7234c6a987ac",
+ "Name": "startRadius",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "a97dd416b87e45c4a6e85e3399efdd0f",
+ "Name": "Cone",
+ "Description": "Cone",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Cone.ByPointsRadius@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Create a Cone with given base radius at start Point, extending to a apex at end Point.\n\nCone.ByPointsRadius (startPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), endPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1), startRadius: double = 1): Cone"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1f06599545464e6e9e4448b97af889b4",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "3f5cf111ceee47f49eeb66962e56e7c7",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "23979da1b95d4514b8ee95923c4ba98f",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "83f96f0834da425f9c9d8582e0929efa",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "dc00c04adc624afd84aa8619a958c8dc",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "ff1b277f2f3f416baaa1c2c30403f582",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "718004685c894644a0946c77a3d0a469",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "426ccf13eecb44dfb4b92ae45cffa450",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "868680e7302649cfbd2db9eba505c4c8",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "5;\n2;\n8;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "f71add7ba8ab4593ac898e8e76251487",
+ "NodeType": "FunctionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "815d7f0705d04e3ebd1c6c1ac8ab2c07",
+ "Name": "Point",
+ "Description": "Origin point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.Origin",
+ "Replication": "Auto",
+ "Description": "Get the Origin point (0,0,0)\n\nPoint.Origin ( ): Point"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 5.0,
+ "MinimumValue": 0.1,
+ "StepValue": 0.1,
+ "Id": "355dec18868445199a1d8e486097a0f3",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "38923a0c8ea940558bc3a2549ec781cc",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 2.0
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 5.0,
+ "MinimumValue": 0.1,
+ "StepValue": 0.1,
+ "Id": "8916dff7005647bcb28dd47a1ce514d0",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "319fdcb4ba3246328a1c5ca4f599ec43",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 1.4
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 5.0,
+ "MinimumValue": 0.1,
+ "StepValue": 0.1,
+ "Id": "1f2dff53577645b093f3bb735caf546b",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "d014273bf1a148c2a72e556fc01b8cd4",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 0.9
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "fedda5e5ebe3450c91c906eb7cf0087c",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "8f8ecc61f7b04ea195ba0caff413d016",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "e63e8529f47b4e5ea53d5c05337a015e",
+ "Name": "plane",
+ "Description": "Plane",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d43e106af108413b96bbb56ff6bcb7b0",
+ "Name": "xamount",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5cc74c8f5b22458d93c0d756b5727f3d",
+ "Name": "yamount",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1125d867e115447d9ab382b9fcf37d52",
+ "Name": "zamount",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "6d224adc3bf7479b9ce05d2850de09f6",
+ "Name": "Geometry",
+ "Description": "Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Scale@Autodesk.DesignScript.Geometry.Plane,double,double,double",
+ "Replication": "Auto",
+ "Description": "Scale non-uniformly around a given Plane\n\nGeometry.Scale (plane: Plane, xamount: double = 1, yamount: double = 1, zamount: double = 1): Geometry"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "8a35c4abcfb44829a0f4a0d2ef74da94",
+ "NodeType": "FunctionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "c29a8b89c78d4bbd9db1253cd8d7ff65",
+ "Name": "Plane",
+ "Description": "Plane at YZ plane of world",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Plane.YZ",
+ "Replication": "Auto",
+ "Description": "Creates a plane in the world YZ\n\nPlane.YZ ( ): Plane"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "a97dd416b87e45c4a6e85e3399efdd0f",
+ "End": "8f8ecc61f7b04ea195ba0caff413d016",
+ "Id": "ee932ed55d164ae19a21ec6430d7a89b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "dc00c04adc624afd84aa8619a958c8dc",
+ "End": "2cebe0b218f04e6fbfefd01f39076cf5",
+ "Id": "9abb13ca47e943a2b9e35a2b6a3b2ee7",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "718004685c894644a0946c77a3d0a469",
+ "End": "3f5cf111ceee47f49eeb66962e56e7c7",
+ "Id": "6338d5e245574e879570464d05713141",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "718004685c894644a0946c77a3d0a469",
+ "End": "5f1a84a0f62a496684ad7234c6a987ac",
+ "Id": "3cb8e023fe1643ee81d3b23af25655a7",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "426ccf13eecb44dfb4b92ae45cffa450",
+ "End": "23979da1b95d4514b8ee95923c4ba98f",
+ "Id": "311daa9c7e3a4f07a27d46fe80f60409",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "868680e7302649cfbd2db9eba505c4c8",
+ "End": "83f96f0834da425f9c9d8582e0929efa",
+ "Id": "b55982196be149eaadfe6be021d0b7a5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "815d7f0705d04e3ebd1c6c1ac8ab2c07",
+ "End": "3be2ff1ae22a42e4b04ce80bac2ea409",
+ "Id": "d5576a337ea04ec8b7e796f1603a3422",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "38923a0c8ea940558bc3a2549ec781cc",
+ "End": "d43e106af108413b96bbb56ff6bcb7b0",
+ "Id": "d0cff009c9834c839b469bd0b75fb126",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "319fdcb4ba3246328a1c5ca4f599ec43",
+ "End": "5cc74c8f5b22458d93c0d756b5727f3d",
+ "Id": "b7bfe5567b634c66b17ae70246c47be4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d014273bf1a148c2a72e556fc01b8cd4",
+ "End": "1125d867e115447d9ab382b9fcf37d52",
+ "Id": "4215c74c1f9f4adb9815f12185c6f8e0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c29a8b89c78d4bbd9db1253cd8d7ff65",
+ "End": "e63e8529f47b4e5ea53d5c05337a015e",
+ "Id": "79ac1b94842b45809974f7d42592c62f",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": 24.907424926757813,
+ "EyeY": 16.611785888671875,
+ "EyeZ": -21.272761344909668,
+ "LookX": -18.348526000976563,
+ "LookY": -14.592802047729492,
+ "LookZ": 46.1326904296875,
+ "UpX": -0.025780221447348595,
+ "UpY": 0.99756407737731934,
+ "UpZ": 0.064817838370800018
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "476461539ed647c6af3d02613b787cc7",
+ "Name": "Cone.ByPointsRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 870.75597258276957,
+ "Y": -124.28809000127146
+ },
+ {
+ "Id": "1f06599545464e6e9e4448b97af889b4",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 545.75597258276957,
+ "Y": -33.288090001271456
+ },
+ {
+ "Id": "ff1b277f2f3f416baaa1c2c30403f582",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 291.75597258276957,
+ "Y": -24.633090001271484
+ },
+ {
+ "Id": "f71add7ba8ab4593ac898e8e76251487",
+ "Name": "Point.Origin",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 545.75597258276957,
+ "Y": -181.28809000127146
+ },
+ {
+ "Id": "355dec18868445199a1d8e486097a0f3",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 870.75597258276957,
+ "Y": 234.71190999872854
+ },
+ {
+ "Id": "8916dff7005647bcb28dd47a1ce514d0",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 870.75597258276957,
+ "Y": 395.71190999872852
+ },
+ {
+ "Id": "1f2dff53577645b093f3bb735caf546b",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 870.75597258276957,
+ "Y": 554.71190999872852
+ },
+ {
+ "Id": "fedda5e5ebe3450c91c906eb7cf0087c",
+ "Name": "Geometry.Scale",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1318.7559725827696,
+ "Y": 161.71190999872854
+ },
+ {
+ "Id": "8a35c4abcfb44829a0f4a0d2ef74da94",
+ "Name": "Plane.YZ",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 870.75597258276957,
+ "Y": 87.711909998728544
+ }
+ ],
+ "Annotations": [],
+ "X": -215.37852161139062,
+ "Y": 251.1127507619604,
+ "Zoom": 0.77051684820225064
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, plane, xamount, yamount, zamount).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, plane, xamount, yamount, zamount).md
new file mode 100644
index 00000000000..e5e2a1afedd
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, plane, xamount, yamount, zamount).md
@@ -0,0 +1,9 @@
+## In Depth
+`Geometry.Scale (plane, xamount, yamount, zamount)` scales input geometry about a plane by specified X, Y, and Z factors.
+
+The example below shows a cone before and after it is scaled in relationship to the YZ-plane.
+
+___
+## Example File
+
+![Geometry.Scale(plane, xamount, yamount, zamount)](./Autodesk.DesignScript.Geometry.Geometry.Scale(geometry,%20plane,%20xamount,%20yamount,%20zamount)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, plane, xamount, yamount, zamount)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, plane, xamount, yamount, zamount)_img.jpg
new file mode 100644
index 00000000000..fdc609940ed
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, plane, xamount, yamount, zamount)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(xamount, yamount, zamount).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, xamount, yamount, zamount).dyn
similarity index 69%
rename from doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(xamount, yamount, zamount).dyn
rename to doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, xamount, yamount, zamount).dyn
index 92604c5f5cc..6d72b7d831a 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(xamount, yamount, zamount).dyn
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, xamount, yamount, zamount).dyn
@@ -2,7 +2,7 @@
"Uuid": "3c9d0464-8643-5ffe-96e5-ab1769818209",
"IsCustomNode": false,
"Description": "",
- "Name": "Scale",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.Scale",
"ElementResolver": {
"ResolutionMap": {}
},
@@ -11,46 +11,51 @@
"Id": "f574c9563efa4ed5b50c6e23239fc856",
"Name": "Number Slider",
"Type": "number",
- "Value": "2.1",
+ "Type2": "number",
+ "Value": "1.5",
"MaximumValue": 5.0,
"MinimumValue": 0.1,
"StepValue": 0.1,
"NumberType": "Double",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
},
{
"Id": "f164723564c849b0974a103294a65fa5",
"Name": "Number Slider",
"Type": "number",
- "Value": "1.3",
+ "Type2": "number",
+ "Value": "0.6",
"MaximumValue": 5.0,
"MinimumValue": 0.1,
"StepValue": 0.1,
"NumberType": "Double",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
},
{
"Id": "476d6ee51bac40b48d2e56e25541c1da",
"Name": "Number Slider",
"Type": "number",
- "Value": "0.9",
+ "Type2": "number",
+ "Value": "0.7",
"MaximumValue": 5.0,
"MinimumValue": 0.1,
"StepValue": 0.1,
"NumberType": "Double",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
}
],
"Outputs": [],
"Nodes": [
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
- "NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Cone.ByPointsRadius@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,double",
"Id": "9353c4dfe5c94c3b89718f7d9b2123ba",
+ "NodeType": "FunctionNode",
"Inputs": [
{
- "Id": "82d0fa1632ce471180a8a2fb9065792c",
+ "Id": "2bd9b71e771447d5802c06bf5a63bcfc",
"Name": "startPoint",
"Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
"UsingDefaultValue": true,
@@ -59,7 +64,7 @@
"KeepListStructure": false
},
{
- "Id": "a0e5f8093c344fd0ae0fa0b60fcfd019",
+ "Id": "ed168a52e2ad44b9b27bdef4c55850d7",
"Name": "endPoint",
"Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1)",
"UsingDefaultValue": true,
@@ -68,7 +73,7 @@
"KeepListStructure": false
},
{
- "Id": "269dd75101da40fca119d30a36eb5fc6",
+ "Id": "e59cd43617de445aa10e8fe590ed2672",
"Name": "startRadius",
"Description": "double\nDefault value : 1",
"UsingDefaultValue": true,
@@ -79,7 +84,7 @@
],
"Outputs": [
{
- "Id": "282119161423413fa5905d1b53bbe98f",
+ "Id": "1946776834874365bf9ca8335961d1f5",
"Name": "Cone",
"Description": "Cone",
"UsingDefaultValue": false,
@@ -88,37 +93,37 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Cone.ByPointsRadius@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,double",
"Replication": "Auto",
"Description": "Create a Cone with given base radius at start Point, extending to a apex at end Point.\n\nCone.ByPointsRadius (startPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), endPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1), startRadius: double = 1): Cone"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
- "NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
"Id": "fb784abe345a49ce9476f22cbf49e7a9",
+ "NodeType": "FunctionNode",
"Inputs": [
{
- "Id": "4a5bed2b743e408b9ab223e31cd219d1",
+ "Id": "932bfe51b6fa4cfca9595c2676a83e78",
"Name": "x",
- "Description": "double\nDefault value : 0",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "d4fc22cbdfcb4f58a67f392ccf159098",
+ "Id": "97cccc19dbb44722b919df9047440dee",
"Name": "y",
- "Description": "double\nDefault value : 0",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "39ff1dbf06ff4569a550261b494fb1f5",
+ "Id": "4462132c4e9546349f12e6b1c47538a6",
"Name": "z",
- "Description": "double\nDefault value : 0",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
@@ -127,27 +132,27 @@
],
"Outputs": [
{
- "Id": "9ffd68e25a794843bd0d587565b81e18",
+ "Id": "9e46af23286b456c86ba2f4fbe3cb03f",
"Name": "Point",
- "Description": "Point",
+ "Description": "Point created by coordinates",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
"Replication": "Auto",
"Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
- "NodeType": "CodeBlockNode",
- "Code": "5;\n2;\n8;",
"Id": "47226805f4414bd689711e386a9009d1",
+ "NodeType": "CodeBlockNode",
"Inputs": [],
"Outputs": [
{
- "Id": "3354fe2170ec47fa8e68bd1a7b0c82f8",
+ "Id": "4239984a596048cb999c0572a3029029",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -156,7 +161,7 @@
"KeepListStructure": false
},
{
- "Id": "93e2ee95f47a4da39fc670e0a21b13b1",
+ "Id": "2b0d2b71bb4a4ec383b9ff45b8a73bce",
"Name": "",
"Description": "Value of expression at line 2",
"UsingDefaultValue": false,
@@ -165,7 +170,7 @@
"KeepListStructure": false
},
{
- "Id": "6f034d55f45e43b488f65c5d49d749eb",
+ "Id": "fdcba43ca47c486d9d0c343bd73fb544",
"Name": "",
"Description": "Value of expression at line 3",
"UsingDefaultValue": false,
@@ -175,41 +180,41 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "5;\n2;\n8;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
- "NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.Origin",
"Id": "cb29ce4de19648ee800f936596f93067",
+ "NodeType": "FunctionNode",
"Inputs": [],
"Outputs": [
{
- "Id": "2ccf32d88ba2413289aef90e2ee00ae6",
+ "Id": "ad2bcb980d0747a3b215fe81b544163f",
"Name": "Point",
- "Description": "Point",
+ "Description": "Origin point",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.Origin",
"Replication": "Auto",
"Description": "Get the Origin point (0,0,0)\n\nPoint.Origin ( ): Point"
},
{
"ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
- "NodeType": "NumberInputNode",
"NumberType": "Double",
"MaximumValue": 5.0,
"MinimumValue": 0.1,
"StepValue": 0.1,
- "InputValue": 2.1,
"Id": "f574c9563efa4ed5b50c6e23239fc856",
+ "NodeType": "NumberInputNode",
"Inputs": [],
"Outputs": [
{
- "Id": "adc0460e50a94a6187106d1f6f6cb947",
+ "Id": "da57ab3a944d464cbaa3bf709c7c1b11",
"Name": "",
"Description": "Double",
"UsingDefaultValue": false,
@@ -219,16 +224,16 @@
}
],
"Replication": "Disabled",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "InputValue": 1.5
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
- "NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Scale@double,double,double",
"Id": "5aaaa7230fbf462c988802d9d1a38e6d",
+ "NodeType": "FunctionNode",
"Inputs": [
{
- "Id": "343f6e1705ee4fd7a53e5b7b5a9b0355",
+ "Id": "edfbbe203a3647e78dd7c3c552d76386",
"Name": "geometry",
"Description": "Autodesk.DesignScript.Geometry.Geometry",
"UsingDefaultValue": false,
@@ -237,7 +242,7 @@
"KeepListStructure": false
},
{
- "Id": "48ebadd7b2c94f6b8d6f5666a9e3ed5f",
+ "Id": "3ee55143209a42ad8ab0f7b90e0ca027",
"Name": "xamount",
"Description": "double\nDefault value : 1",
"UsingDefaultValue": true,
@@ -246,7 +251,7 @@
"KeepListStructure": false
},
{
- "Id": "2fcb872f27d2479094f911b694f2293a",
+ "Id": "b9f7bc5e711140daaa2842e5d9370d98",
"Name": "yamount",
"Description": "double\nDefault value : 1",
"UsingDefaultValue": true,
@@ -255,7 +260,7 @@
"KeepListStructure": false
},
{
- "Id": "cafff11a54e44219b8f540898c229738",
+ "Id": "e7e538b713784155a319b037fe662d14",
"Name": "zamount",
"Description": "double\nDefault value : 1",
"UsingDefaultValue": true,
@@ -266,7 +271,7 @@
],
"Outputs": [
{
- "Id": "96683ec127df439686f14d9f1e0d8546",
+ "Id": "745104ea6a344501a99443369ca067bd",
"Name": "Geometry",
"Description": "Geometry",
"UsingDefaultValue": false,
@@ -275,22 +280,22 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Scale@double,double,double",
"Replication": "Auto",
"Description": "Scale non-uniformly around the origin\n\nGeometry.Scale (xamount: double = 1, yamount: double = 1, zamount: double = 1): Geometry"
},
{
"ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
- "NodeType": "NumberInputNode",
"NumberType": "Double",
"MaximumValue": 5.0,
"MinimumValue": 0.1,
"StepValue": 0.1,
- "InputValue": 1.3,
"Id": "f164723564c849b0974a103294a65fa5",
+ "NodeType": "NumberInputNode",
"Inputs": [],
"Outputs": [
{
- "Id": "f652e969cba5423fac21ea6f16f26b86",
+ "Id": "3cc22622e52e4f8f8b9f04f41df73153",
"Name": "",
"Description": "Double",
"UsingDefaultValue": false,
@@ -300,21 +305,21 @@
}
],
"Replication": "Disabled",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "InputValue": 0.6
},
{
"ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
- "NodeType": "NumberInputNode",
"NumberType": "Double",
"MaximumValue": 5.0,
"MinimumValue": 0.1,
"StepValue": 0.1,
- "InputValue": 0.9,
"Id": "476d6ee51bac40b48d2e56e25541c1da",
+ "NodeType": "NumberInputNode",
"Inputs": [],
"Outputs": [
{
- "Id": "aeffba552f6d4126b7c8c7567e266213",
+ "Id": "9c4890613c6947a7813b426aa0dbddd0",
"Name": "",
"Description": "Double",
"UsingDefaultValue": false,
@@ -324,18 +329,18 @@
}
],
"Replication": "Disabled",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "InputValue": 0.7
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
- "NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByBestFitThroughPoints@Autodesk.DesignScript.Geometry.Point[]",
"Id": "c2816fc84e564e86a4d8395ce00afde3",
+ "NodeType": "FunctionNode",
"Inputs": [
{
- "Id": "8aa5e59ed74442d6920c0c8f20495d58",
+ "Id": "258678c9549f4dd28aede5f4a81e169c",
"Name": "bestFitPoints",
- "Description": "Point[]",
+ "Description": "List of points to best fit line\n\nPoint[]",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
@@ -344,26 +349,26 @@
],
"Outputs": [
{
- "Id": "0caad4658b3342da9a840f03e5ab0e3c",
+ "Id": "4c77f78ae4db4e9da043ee407241d059",
"Name": "Line",
- "Description": "Line",
+ "Description": "Line from fit through points",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByBestFitThroughPoints@Autodesk.DesignScript.Geometry.Point[]",
"Replication": "Auto",
"Description": "Creates a Line best approximating a scatter plot of Points.\n\nLine.ByBestFitThroughPoints (bestFitPoints: Point[]): Line"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
- "NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Vertex.PointGeometry",
"Id": "11e0afb5a08b4379b971b83d9c022984",
+ "NodeType": "FunctionNode",
"Inputs": [
{
- "Id": "656d16e151ca43edb8941d245d09e838",
+ "Id": "4ee5197e1848487db3101d967125a003",
"Name": "vertex",
"Description": "Autodesk.DesignScript.Geometry.Vertex",
"UsingDefaultValue": false,
@@ -374,7 +379,7 @@
],
"Outputs": [
{
- "Id": "6d98ab0be52842bfa6df069386c266af",
+ "Id": "7fe489c28a8a4c1d9051da59b5ce5111",
"Name": "Point",
"Description": "Point",
"UsingDefaultValue": false,
@@ -383,17 +388,17 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vertex.PointGeometry",
"Replication": "Auto",
"Description": "The Point where this Vertex is located\n\nVertex.PointGeometry: Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
- "NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Topology.Vertices",
"Id": "34d175f7e11743bb9a1af92c61def9f2",
+ "NodeType": "FunctionNode",
"Inputs": [
{
- "Id": "f60184c800834dd6afac206acb22cfcf",
+ "Id": "f94868a827ec4958ba4374ef8d4cf33d",
"Name": "topology",
"Description": "Autodesk.DesignScript.Geometry.Topology",
"UsingDefaultValue": false,
@@ -404,7 +409,7 @@
],
"Outputs": [
{
- "Id": "432d36bce47d43bd9c6fcfb326de3cf3",
+ "Id": "033f68c64b534db081108b52fd92b9da",
"Name": "Vertex[]",
"Description": "Vertex[]",
"UsingDefaultValue": false,
@@ -413,37 +418,37 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Topology.Vertices",
"Replication": "Auto",
"Description": "The Vertices of the Topology\n\nTopology.Vertices: Vertex[]"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
- "NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadiusNormal@Autodesk.DesignScript.Geometry.Point,double,Autodesk.DesignScript.Geometry.Vector",
"Id": "8d8077c482544b0a803bebe8691a2cef",
+ "NodeType": "FunctionNode",
"Inputs": [
{
- "Id": "1f9253b81fb14be5bddb459e4bf2239f",
+ "Id": "48c6f1e6e6ed4ea29a4777f09bf06b55",
"Name": "centerPoint",
- "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "ecee2d7fb20a4c6ead208f812ab79c37",
+ "Id": "11d29aff0d044dc8aac2d7cfb1cd5d91",
"Name": "radius",
- "Description": "double\nDefault value : 1",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "79633a422b08473ebc7cee6e4622e784",
+ "Id": "aabc19b356754ff9abfd2f7fd9c7e2c4",
"Name": "normal",
- "Description": "Vector\nDefault value : Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)",
+ "Description": "Normal direction vector\n\nVector\nDefault value : Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
@@ -452,26 +457,26 @@
],
"Outputs": [
{
- "Id": "931bc1050e8a43d7a0e7dfdc6029f158",
+ "Id": "2e483302c53b417fa0c5695cae8dff80",
"Name": "Circle",
- "Description": "Circle",
+ "Description": "Circle created with center point radius and normal",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadiusNormal@Autodesk.DesignScript.Geometry.Point,double,Autodesk.DesignScript.Geometry.Vector",
"Replication": "Auto",
"Description": "Creates a Circle with specified center Point, radius, and normal direction.\n\nCircle.ByCenterPointRadiusNormal (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1, normal: Vector = Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)): Circle"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
- "NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ByTwoPoints@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
"Id": "e269d27624fc4cfbb46f9ad33eafad57",
+ "NodeType": "FunctionNode",
"Inputs": [
{
- "Id": "067f8fbce92847e88274ed126780444b",
+ "Id": "5081c3d2b9b143f6a61ec084edf1e5d4",
"Name": "start",
"Description": "Point",
"UsingDefaultValue": false,
@@ -480,7 +485,7 @@
"KeepListStructure": false
},
{
- "Id": "c94f9faecda5484e99b58c9f1efcac59",
+ "Id": "830a38182e1a4489be8710a51f12227a",
"Name": "end",
"Description": "Point",
"UsingDefaultValue": false,
@@ -491,7 +496,7 @@
],
"Outputs": [
{
- "Id": "00c1f676d1b34250801a5470d1bad162",
+ "Id": "5aa55a2cf0774bb7a0216945fbda5322",
"Name": "Vector",
"Description": "Vector",
"UsingDefaultValue": false,
@@ -500,115 +505,152 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ByTwoPoints@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
"Replication": "Auto",
"Description": "Form a Vector by two end points. The result is a vector from the start to the end point.\n\nVector.ByTwoPoints (start: Point, end: Point): Vector"
}
],
"Connectors": [
{
- "Start": "282119161423413fa5905d1b53bbe98f",
- "End": "343f6e1705ee4fd7a53e5b7b5a9b0355",
- "Id": "178f70ba1da1455d84f8aa87a9bdf015"
+ "Start": "1946776834874365bf9ca8335961d1f5",
+ "End": "edfbbe203a3647e78dd7c3c552d76386",
+ "Id": "a2d738f8d74a4633a604d11d85e813a8",
+ "IsHidden": "False"
},
{
- "Start": "282119161423413fa5905d1b53bbe98f",
- "End": "f60184c800834dd6afac206acb22cfcf",
- "Id": "864cc64f90b64982b5192b2d74629dcc"
+ "Start": "1946776834874365bf9ca8335961d1f5",
+ "End": "f94868a827ec4958ba4374ef8d4cf33d",
+ "Id": "de447f1ca95e461da443ae3c465db2d6",
+ "IsHidden": "False"
},
{
- "Start": "9ffd68e25a794843bd0d587565b81e18",
- "End": "a0e5f8093c344fd0ae0fa0b60fcfd019",
- "Id": "6f1341056ec14e04acecac38aed563d0"
+ "Start": "9e46af23286b456c86ba2f4fbe3cb03f",
+ "End": "ed168a52e2ad44b9b27bdef4c55850d7",
+ "Id": "31dc7d91839e48b9afcb2f9b3ad7bac3",
+ "IsHidden": "False"
},
{
- "Start": "9ffd68e25a794843bd0d587565b81e18",
- "End": "c94f9faecda5484e99b58c9f1efcac59",
- "Id": "b377850ac7cb4dc9bc658c473da282fb"
+ "Start": "9e46af23286b456c86ba2f4fbe3cb03f",
+ "End": "830a38182e1a4489be8710a51f12227a",
+ "Id": "4a1d1b1ef6a24f779508ebb33bc29476",
+ "IsHidden": "False"
},
{
- "Start": "3354fe2170ec47fa8e68bd1a7b0c82f8",
- "End": "4a5bed2b743e408b9ab223e31cd219d1",
- "Id": "8e478d09f3424c8686c7dc9b75f16f83"
+ "Start": "4239984a596048cb999c0572a3029029",
+ "End": "932bfe51b6fa4cfca9595c2676a83e78",
+ "Id": "c6e2369ad68d4ec2b0e5c43a744f16df",
+ "IsHidden": "False"
},
{
- "Start": "3354fe2170ec47fa8e68bd1a7b0c82f8",
- "End": "269dd75101da40fca119d30a36eb5fc6",
- "Id": "3ac45b1dd6c04a66acc2d9d603dd8ea8"
+ "Start": "4239984a596048cb999c0572a3029029",
+ "End": "e59cd43617de445aa10e8fe590ed2672",
+ "Id": "7272a54ac22f42c3a34074b4b9c8070b",
+ "IsHidden": "False"
},
{
- "Start": "3354fe2170ec47fa8e68bd1a7b0c82f8",
- "End": "ecee2d7fb20a4c6ead208f812ab79c37",
- "Id": "8a076d97f8bd41e4b886472353f6a9ae"
+ "Start": "4239984a596048cb999c0572a3029029",
+ "End": "11d29aff0d044dc8aac2d7cfb1cd5d91",
+ "Id": "1750453dc7b74e6fbc5bfe7fd1c2ec65",
+ "IsHidden": "False"
},
{
- "Start": "93e2ee95f47a4da39fc670e0a21b13b1",
- "End": "d4fc22cbdfcb4f58a67f392ccf159098",
- "Id": "1a740389ae214825b150bdf324f21a10"
+ "Start": "2b0d2b71bb4a4ec383b9ff45b8a73bce",
+ "End": "97cccc19dbb44722b919df9047440dee",
+ "Id": "bee2c09e363e4a6f9a4814c8b5a77a42",
+ "IsHidden": "False"
},
{
- "Start": "6f034d55f45e43b488f65c5d49d749eb",
- "End": "39ff1dbf06ff4569a550261b494fb1f5",
- "Id": "eb38b75859804ad5a5565ee72b13ebd6"
+ "Start": "fdcba43ca47c486d9d0c343bd73fb544",
+ "End": "4462132c4e9546349f12e6b1c47538a6",
+ "Id": "39045ecb6cd7404faf6283ec35ce1997",
+ "IsHidden": "False"
},
{
- "Start": "2ccf32d88ba2413289aef90e2ee00ae6",
- "End": "82d0fa1632ce471180a8a2fb9065792c",
- "Id": "a4f58f2d57d24cde909d712f065510f5"
+ "Start": "ad2bcb980d0747a3b215fe81b544163f",
+ "End": "2bd9b71e771447d5802c06bf5a63bcfc",
+ "Id": "b739c897c4eb434398c3b1e38ae2ce45",
+ "IsHidden": "False"
},
{
- "Start": "2ccf32d88ba2413289aef90e2ee00ae6",
- "End": "1f9253b81fb14be5bddb459e4bf2239f",
- "Id": "2749ce62f1bc491cb3e0fd3065656f94"
+ "Start": "ad2bcb980d0747a3b215fe81b544163f",
+ "End": "48c6f1e6e6ed4ea29a4777f09bf06b55",
+ "Id": "73e2c31e2a4a4e0784bbb8b1b92bb986",
+ "IsHidden": "False"
},
{
- "Start": "2ccf32d88ba2413289aef90e2ee00ae6",
- "End": "067f8fbce92847e88274ed126780444b",
- "Id": "5fee48aecf424639be2345b6c6b1085a"
+ "Start": "ad2bcb980d0747a3b215fe81b544163f",
+ "End": "5081c3d2b9b143f6a61ec084edf1e5d4",
+ "Id": "0f29608803f84a6f8445e8e81ea4774e",
+ "IsHidden": "False"
},
{
- "Start": "adc0460e50a94a6187106d1f6f6cb947",
- "End": "48ebadd7b2c94f6b8d6f5666a9e3ed5f",
- "Id": "905c13ec0229411e9a3d481ff52a1f9b"
+ "Start": "da57ab3a944d464cbaa3bf709c7c1b11",
+ "End": "3ee55143209a42ad8ab0f7b90e0ca027",
+ "Id": "c279a0fcdcab44b4a7554cd950b75a93",
+ "IsHidden": "False"
},
{
- "Start": "f652e969cba5423fac21ea6f16f26b86",
- "End": "2fcb872f27d2479094f911b694f2293a",
- "Id": "d9a3d358ff3d40ab9f2effb7693d79bc"
+ "Start": "3cc22622e52e4f8f8b9f04f41df73153",
+ "End": "b9f7bc5e711140daaa2842e5d9370d98",
+ "Id": "139276ca15f84c71b66946781ec4f24d",
+ "IsHidden": "False"
},
{
- "Start": "aeffba552f6d4126b7c8c7567e266213",
- "End": "cafff11a54e44219b8f540898c229738",
- "Id": "f7e4ad9d149e43c39308c33fd42bcbdb"
+ "Start": "9c4890613c6947a7813b426aa0dbddd0",
+ "End": "e7e538b713784155a319b037fe662d14",
+ "Id": "48f129ea5e0540fe80cc56daf5575a90",
+ "IsHidden": "False"
},
{
- "Start": "6d98ab0be52842bfa6df069386c266af",
- "End": "8aa5e59ed74442d6920c0c8f20495d58",
- "Id": "372423ec822f406798fad94ac41b45c7"
+ "Start": "7fe489c28a8a4c1d9051da59b5ce5111",
+ "End": "258678c9549f4dd28aede5f4a81e169c",
+ "Id": "4f4d6d6d40c54d67aeabfd04061d8fd7",
+ "IsHidden": "False"
},
{
- "Start": "432d36bce47d43bd9c6fcfb326de3cf3",
- "End": "656d16e151ca43edb8941d245d09e838",
- "Id": "a684120a437d4241a73d19e24a8ad973"
+ "Start": "033f68c64b534db081108b52fd92b9da",
+ "End": "4ee5197e1848487db3101d967125a003",
+ "Id": "59e99694514447e992cf5bc9e231d83c",
+ "IsHidden": "False"
},
{
- "Start": "00c1f676d1b34250801a5470d1bad162",
- "End": "79633a422b08473ebc7cee6e4622e784",
- "Id": "1f8886bcd92e442aaf7e339c05bffb6f"
+ "Start": "5aa55a2cf0774bb7a0216945fbda5322",
+ "End": "aabc19b356754ff9abfd2f7fd9c7e2c4",
+ "Id": "0bc642609b8c4f6e85435fde60f473db",
+ "IsHidden": "False"
}
],
"Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
"Bindings": [],
"View": {
"Dynamo": {
"ScaleFactor": 1.0,
"HasRunWithoutCrash": true,
"IsVisibleInDynamoLibrary": true,
- "Version": "2.0.1.5055",
+ "Version": "2.19.0.5874",
"RunType": "Automatic",
"RunPeriod": "1000"
},
"Camera": {
- "Name": "Background Preview",
+ "Name": "_Background Preview",
"EyeX": 28.108333587646484,
"EyeY": 11.678282737731934,
"EyeZ": -17.362056732177734,
@@ -619,141 +661,142 @@
"UpY": 0.99756401777267456,
"UpZ": -0.0566556341946125
},
+ "ConnectorPins": [],
"NodeViews": [
{
- "ShowGeometry": false,
- "Name": "Cone.ByPointsRadius",
"Id": "9353c4dfe5c94c3b89718f7d9b2123ba",
+ "Name": "Cone.ByPointsRadius",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 594.598607111678,
- "Y": 260.48489398819703
+ "ShowGeometry": false,
+ "X": 617.09860711167812,
+ "Y": 216.48489398819703
},
{
- "ShowGeometry": false,
- "Name": "Point.ByCoordinates",
"Id": "fb784abe345a49ce9476f22cbf49e7a9",
+ "Name": "Point.ByCoordinates",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 336.598607111678,
- "Y": 188.48489398819703
+ "ShowGeometry": false,
+ "X": 292.09860711167812,
+ "Y": 112.98489398819703
},
{
- "ShowGeometry": true,
- "Name": "Code Block",
"Id": "47226805f4414bd689711e386a9009d1",
+ "Name": "Code Block",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 157.598607111678,
- "Y": 201.12489398819696
+ "ShowGeometry": true,
+ "X": 38.09860711167812,
+ "Y": 130.467393988197
},
{
- "ShowGeometry": true,
- "Name": "Point.Origin",
"Id": "cb29ce4de19648ee800f936596f93067",
+ "Name": "Point.Origin",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 336.598607111678,
- "Y": 64.484893988197058
+ "ShowGeometry": true,
+ "X": 292.09860711167812,
+ "Y": -45.515106011802942
},
{
- "ShowGeometry": false,
- "Name": "Number Slider",
"Id": "f574c9563efa4ed5b50c6e23239fc856",
+ "Name": "Number Slider",
"IsSetAsInput": true,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1233.5986071116781,
- "Y": 307.48489398819703
+ "ShowGeometry": false,
+ "X": 1277.0986071116781,
+ "Y": 265.48489398819703
},
{
- "ShowGeometry": true,
- "Name": "Geometry.Scale",
"Id": "5aaaa7230fbf462c988802d9d1a38e6d",
+ "Name": "Geometry.Scale",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1632.5986071116781,
- "Y": 321.48489398819703
+ "ShowGeometry": true,
+ "X": 1725.0986071116781,
+ "Y": 314.48489398819703
},
{
- "ShowGeometry": false,
- "Name": "Number Slider",
"Id": "f164723564c849b0974a103294a65fa5",
+ "Name": "Number Slider",
"IsSetAsInput": true,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1233.5986071116781,
- "Y": 391.484893988197
+ "ShowGeometry": false,
+ "X": 1277.0986071116781,
+ "Y": 426.484893988197
},
{
- "ShowGeometry": false,
- "Name": "Number Slider",
"Id": "476d6ee51bac40b48d2e56e25541c1da",
+ "Name": "Number Slider",
"IsSetAsInput": true,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1233.5986071116781,
- "Y": 474.48489398819703
+ "ShowGeometry": false,
+ "X": 1277.0986071116781,
+ "Y": 585.484893988197
},
{
- "ShowGeometry": true,
- "Name": "Line.ByBestFitThroughPoints",
"Id": "c2816fc84e564e86a4d8395ce00afde3",
+ "Name": "Line.ByBestFitThroughPoints",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1632.5986071116781,
- "Y": 212.48489398819703
+ "ShowGeometry": true,
+ "X": 1725.0986071116781,
+ "Y": 167.48489398819703
},
{
- "ShowGeometry": true,
- "Name": "Vertex.PointGeometry",
"Id": "11e0afb5a08b4379b971b83d9c022984",
+ "Name": "Vertex.PointGeometry",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1233.5986071116781,
- "Y": 199.48489398819703
+ "ShowGeometry": true,
+ "X": 1277.0986071116781,
+ "Y": 118.48489398819703
},
{
- "ShowGeometry": true,
- "Name": "Topology.Vertices",
"Id": "34d175f7e11743bb9a1af92c61def9f2",
+ "Name": "Topology.Vertices",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 913.598607111678,
- "Y": 199.48489398819703
+ "ShowGeometry": true,
+ "X": 948.09860711167812,
+ "Y": 118.48489398819703
},
{
- "ShowGeometry": true,
- "Name": "Circle.ByCenterPointRadiusNormal",
"Id": "8d8077c482544b0a803bebe8691a2cef",
+ "Name": "Circle.ByCenterPointRadiusNormal",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1632.5986071116781,
- "Y": 52.48489398819703
+ "ShowGeometry": true,
+ "X": 1725.0986071116781,
+ "Y": -45.51510601180297
},
{
- "ShowGeometry": true,
- "Name": "Vector.ByTwoPoints",
"Id": "e269d27624fc4cfbb46f9ad33eafad57",
+ "Name": "Vector.ByTwoPoints",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1233.5986071116781,
- "Y": 64.484893988197044
+ "ShowGeometry": true,
+ "X": 1277.0986071116781,
+ "Y": -58.51510601180297
}
],
"Annotations": [],
- "X": -332.48248487165,
- "Y": 45.7264966581521,
- "Zoom": 1.03605787560061
+ "X": 62.953786251002839,
+ "Y": 98.9242780097576,
+ "Zoom": 0.54487872805980109
}
}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, xamount, yamount, zamount).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, xamount, yamount, zamount).md
new file mode 100644
index 00000000000..c750cd19f72
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, xamount, yamount, zamount).md
@@ -0,0 +1,8 @@
+## In Depth
+`Geometry.Scale (xamount, yamount, zamount)` scales an input geometry from the object centroid by an input factor.
+
+In the example below, a coneâs scale can be finely tuned with three number sliders. The original cone edges are drawn as a visual reference.
+___
+## Example File
+
+![Geometry.Scale(xamount, yamount, zamount)](./Autodesk.DesignScript.Geometry.Geometry.Scale(geometry,%20xamount,%20yamount,%20zamount)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, xamount, yamount, zamount)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, xamount, yamount, zamount)_img.jpg
new file mode 100644
index 00000000000..71c2d28ddc7
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(geometry, xamount, yamount, zamount)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(xamount, yamount, zamount).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(xamount, yamount, zamount).md
deleted file mode 100644
index 6d4f327ed61..00000000000
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(xamount, yamount, zamount).md
+++ /dev/null
@@ -1,7 +0,0 @@
-## In Depth
-Scale non-uniformly around the origin.
-___
-## Example File
-
-![Scale (xamount, yamount, zamount)](./Autodesk.DesignScript.Geometry.Geometry.Scale(xamount,%20yamount,%20zamount)_img.jpg)
-
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(xamount, yamount, zamount)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(xamount, yamount, zamount)_img.jpg
deleted file mode 100644
index 4fb200606fc..00000000000
Binary files a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Scale(xamount, yamount, zamount)_img.jpg and /dev/null differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB.dyn
index dabf9749947..440ec05fe08 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB.dyn
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB.dyn
@@ -1,81 +1,91 @@
{
- "Uuid": "3c9d0464-8643-5ffe-96e5-ab1769818209",
+ "Uuid": "45e7b53a-c877-477c-9f87-991968155b28",
"IsCustomNode": false,
"Description": "",
- "Name": "SerializeAsSAB",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB",
"ElementResolver": {
- "ResolutionMap": {
- "Color": {
- "Key": "DSCore.Color",
- "Value": "DSCoreNodes.dll"
- },
- "Display": {
- "Key": "Display.Display",
- "Value": "Display.dll"
- }
- }
+ "ResolutionMap": {}
},
"Inputs": [],
"Outputs": [],
"Nodes": [
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "2424301d34a145ee99076f3dc5dd68d9",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid@double",
- "Id": "9222260d07494abbb34a20af71030c41",
"Inputs": [
{
- "Id": "16178e26e51744fdab5e0b7f0c3af430",
- "Name": "curve",
- "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "Id": "9b19faf87cd34eaa9ccd20395722b44c",
+ "Name": "geometry",
+ "Description": "Geometry[]",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
- },
+ }
+ ],
+ "Outputs": [
{
- "Id": "3e7760a894e2466eae792da178f5603a",
- "Name": "distance",
- "Description": "Distance to extrude\n\ndouble\nDefault value : 1",
- "UsingDefaultValue": true,
+ "Id": "f484c914f6bb4274b28d62194c275178",
+ "Name": "int[]",
+ "Description": "int[]",
+ "UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB@Autodesk.DesignScript.Geometry.Geometry[]",
+ "Replication": "Auto",
+ "Description": "Serializes the specified geometry into Standard ACIS Binary(SAB) format and returns serialized binary stream data\n\nGeometry.SerializeAsSAB (geometry: Geometry[]): int[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "a0daed52f6994456a2f98a589ab59f95",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
"Outputs": [
{
- "Id": "bbd1c92d23984abeb5c82bf5d77ffb5c",
- "Name": "Solid",
- "Description": "The extruded Solid",
+ "Id": "105c5e86bfdd42c5b531eea7e085ca28",
+ "Name": "",
+ "Description": "Value of expression at line 1",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
- "Replication": "Auto",
- "Description": "Extrudes a Curve in the Normal direction by the specified distance. Curve must be closed.\n\nCurve.ExtrudeAsSolid (distance: double = 1): Solid"
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "2;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "39f500aab3164286941717599deaf16b",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
- "Id": "30a8c0ffc0304a5b91193a44ccc5f608",
"Inputs": [
{
- "Id": "25cc3041086244ef9418344d26514331",
- "Name": "centerPoint",
- "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "Id": "42a8beb099bc43bdab6e8e09886bc543",
+ "Name": "width",
+ "Description": "Width of cuboid\n\ndouble\nDefault value : 1",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "e29ca60895c443d8bc85305318a150c6",
- "Name": "radius",
- "Description": "double\nDefault value : 1",
+ "Id": "a65971a03fbb4070b1b5478d65b18d20",
+ "Name": "length",
+ "Description": "Length of cuboid\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "803042b59f2d475c843caa350c2aa765",
+ "Name": "height",
+ "Description": "Height of cuboid\n\ndouble\nDefault value : 1",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
@@ -84,28 +94,37 @@
],
"Outputs": [
{
- "Id": "52f6a737762d46898ef9a71fcd4bc89b",
- "Name": "Circle",
- "Description": "Circle",
+ "Id": "5fa5d80d0a1347c99b6287453660bfa3",
+ "Name": "Cuboid",
+ "Description": "Cuboid created by lengths",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Cuboid.ByLengths@double,double,double",
"Replication": "Auto",
- "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ "Description": "Create a Cuboid centered at WCS origin, with width, length, and height.\n\nCuboid.ByLengths (width: double = 1, length: double = 1, height: double = 1): Cuboid"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "5234c4ae9f0043028cae030274649e50",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB@Autodesk.DesignScript.Geometry.Geometry[]",
- "Id": "1c8aa7366a3847edac7cd1805582c1a2",
"Inputs": [
{
- "Id": "eef320c6c5894661a8cf1018a296436d",
- "Name": "geometry",
- "Description": "Geometry[]",
+ "Id": "8760cc837954476eac220777801faf97",
+ "Name": "filePath",
+ "Description": "Path to write to\n\nstring",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "cee8264e67bd4abd91531452701faa59",
+ "Name": "data",
+ "Description": "List of lists to write into CSV\n\nvar[][]",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
@@ -114,38 +133,60 @@
],
"Outputs": [
{
- "Id": "03a1038355864c448d1c4deb554fa536",
- "Name": "int[]",
- "Description": "int[]",
+ "Id": "b229037d2d2446da97729d9524ce74f8",
+ "Name": "void",
+ "Description": "void",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "DSOffice.Data.ExportCSV@string,var[][]",
"Replication": "Auto",
- "Description": "Serializes the specified geometry into Standard ACIS Binary(SAB) format and returns serialized binary stream data\n\nGeometry.SerializeAsSAB (geometry: Geometry[]): int[]"
+ "Description": "Write a list of lists into a file using a comma-separated values format. Outer list represents rows, inner lists represent columns.\n\nData.ExportCSV (filePath: string, data: var[][]): void"
},
{
"ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "f4e0e97fc2194ad9b6d51134c629718e",
"NodeType": "ExtensionNode",
- "Id": "0d7eacf6814d494398ab6534e2e2174c",
"Inputs": [
{
- "Id": "a0cf5420236f4c028b7526c494414a25",
+ "Id": "78b5af065467460398a3f5848cb29b51",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8d7cc15dee0d4bb49ac9fb7f5526dafa",
"Name": "",
- "Description": "Node to evaluate.",
+ "Description": "Node output",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.Filename, CoreNodeModels",
+ "Id": "2c592660460c4b00ad4c10740bcd6201",
+ "NodeType": "ExtensionNode",
+ "Inputs": [],
"Outputs": [
{
- "Id": "b914610c120147f4ae47db666bcdff88",
+ "Id": "beae738eaaad4656b3773fbd99714632",
"Name": "",
- "Description": "Watch contents.",
+ "Description": "File Path",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
@@ -153,94 +194,184 @@
}
],
"Replication": "Disabled",
- "Description": "Visualize the output of node."
+ "Description": "Allows you to select a file on the system and returns its file path",
+ "HintPath": "C:\\Users\\tellro\\Downloads\\UpdatedDynamoSampleGraphs\\cuboidSAB.csv",
+ "InputValue": ".\\cuboidSAB.csv"
}
],
"Connectors": [
{
- "Start": "bbd1c92d23984abeb5c82bf5d77ffb5c",
- "End": "eef320c6c5894661a8cf1018a296436d",
- "Id": "52beb659f6c5435483c99ac785e0741d"
+ "Start": "f484c914f6bb4274b28d62194c275178",
+ "End": "78b5af065467460398a3f5848cb29b51",
+ "Id": "b5904df55ce848f4ab19c83e788ab273",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "105c5e86bfdd42c5b531eea7e085ca28",
+ "End": "42a8beb099bc43bdab6e8e09886bc543",
+ "Id": "c836e734a6d74364ace1ae5876d70c3d",
+ "IsHidden": "False"
},
{
- "Start": "52f6a737762d46898ef9a71fcd4bc89b",
- "End": "16178e26e51744fdab5e0b7f0c3af430",
- "Id": "cc520e12b4f14f89a6506cf5fcaf0c9f"
+ "Start": "105c5e86bfdd42c5b531eea7e085ca28",
+ "End": "a65971a03fbb4070b1b5478d65b18d20",
+ "Id": "7fd4b43619eb4031a79825ba032a596a",
+ "IsHidden": "False"
},
{
- "Start": "03a1038355864c448d1c4deb554fa536",
- "End": "a0cf5420236f4c028b7526c494414a25",
- "Id": "0b7422b62b1b41e3abcbb0dec00d033a"
+ "Start": "105c5e86bfdd42c5b531eea7e085ca28",
+ "End": "803042b59f2d475c843caa350c2aa765",
+ "Id": "fecc920286cc4771bf9b9f0fb35b73c6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "5fa5d80d0a1347c99b6287453660bfa3",
+ "End": "9b19faf87cd34eaa9ccd20395722b44c",
+ "Id": "d47e3b2ce2b9459fbd94e3229071144c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8d7cc15dee0d4bb49ac9fb7f5526dafa",
+ "End": "cee8264e67bd4abd91531452701faa59",
+ "Id": "e3f9901a0f8d4b9f8c7ffa1837138cd0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "beae738eaaad4656b3773fbd99714632",
+ "End": "8760cc837954476eac220777801faf97",
+ "Id": "b65972230c0c442c995e1ee8f32adf28",
+ "IsHidden": "False"
}
],
"Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
"Bindings": [],
"View": {
"Dynamo": {
"ScaleFactor": 1.0,
"HasRunWithoutCrash": true,
"IsVisibleInDynamoLibrary": true,
- "Version": "2.0.1.5055",
+ "Version": "2.19.4.6632",
"RunType": "Automatic",
"RunPeriod": "1000"
},
"Camera": {
- "Name": "Background Preview",
- "EyeX": -0.52827745676040649,
- "EyeY": 3.0270106792449951,
- "EyeZ": 3.8986048698425293,
- "LookX": 3.3505916595458984,
- "LookY": -4.38075065612793,
- "LookZ": -7.4591059684753418,
- "UpX": 0.11156784743070602,
- "UpY": 0.96221798658370972,
- "UpZ": -0.24837298691272736
+ "Name": "_Background Preview",
+ "EyeX": -3.6967225074768066,
+ "EyeY": 6.2835097312927246,
+ "EyeZ": 9.7791213989257813,
+ "LookX": 4.1121954917907715,
+ "LookY": -4.594825267791748,
+ "LookZ": -11.491615295410156,
+ "UpX": 0.048345595598220825,
+ "UpY": 0.98965144157409668,
+ "UpZ": -0.13510327041149139
},
+ "ConnectorPins": [],
"NodeViews": [
{
- "ShowGeometry": true,
- "Name": "Curve.ExtrudeAsSolid",
- "Id": "9222260d07494abbb34a20af71030c41",
+ "Id": "2424301d34a145ee99076f3dc5dd68d9",
+ "Name": "Geometry.SerializeAsSAB",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -211.38446802603653,
- "Y": 2817.235439445
+ "ShowGeometry": true,
+ "X": 520.74950798377211,
+ "Y": 171.92333194220728
},
{
- "ShowGeometry": false,
- "Name": "Circle.ByCenterPointRadius",
- "Id": "30a8c0ffc0304a5b91193a44ccc5f608",
+ "Id": "a0daed52f6994456a2f98a589ab59f95",
+ "Name": "Code Block",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -534.38446802603653,
- "Y": 2817.235439445
+ "ShowGeometry": true,
+ "X": -41.750492016227895,
+ "Y": 205.75083194220727
},
{
- "ShowGeometry": true,
- "Name": "Geometry.SerializeAsSAB",
- "Id": "1c8aa7366a3847edac7cd1805582c1a2",
+ "Id": "39f500aab3164286941717599deaf16b",
+ "Name": "Cuboid.ByLengths",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 88.615531973963471,
- "Y": 2817.235439445
+ "ShowGeometry": true,
+ "X": 212.24950798377211,
+ "Y": 171.92333194220728
},
{
+ "Id": "5234c4ae9f0043028cae030274649e50",
+ "Name": "Data.ExportCSV",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
"ShowGeometry": true,
+ "X": 1259.2495079837722,
+ "Y": 137.92333194220728
+ },
+ {
+ "Id": "f4e0e97fc2194ad9b6d51134c629718e",
"Name": "Watch",
- "Id": "0d7eacf6814d494398ab6534e2e2174c",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 389.61553197396347,
- "Y": 2817.235439445
+ "ShowGeometry": true,
+ "X": 882.24950798377211,
+ "Y": 171.92333194220731
+ },
+ {
+ "Id": "2c592660460c4b00ad4c10740bcd6201",
+ "Name": "File Path",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 885.09798427042711,
+ "Y": 5.6222861760427634
+ }
+ ],
+ "Annotations": [
+ {
+ "Id": "a72e8353dd814ebcbcf6c6fea8f841d9",
+ "Title": "Serialized Binary stream data as Integers",
+ "DescriptionText": null,
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [],
+ "HasNestedGroups": false,
+ "Left": 533.24950798377211,
+ "Top": 121.92333194220728,
+ "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": "2424301d34a145ee99076f3dc5dd68d9"
}
],
- "Annotations": [],
- "X": 749.326350559705,
- "Y": -5329.90689548734,
- "Zoom": 1.90479712435349
+ "X": 193.42363603641479,
+ "Y": 251.58970230823871,
+ "Zoom": 0.50908019745208166
}
}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB.md
index c9014b4092c..4f3fbb4e895 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB.md
@@ -1,7 +1,9 @@
## In Depth
-Serializes the specified geometry into Standard ACIS Binary(SAB) format and returns serialized binary stream data.
+`Geometry.SerializeAsSAB` converts the specified geometry into Standard ACIS Binary (SAB) format and returns serialized binary stream data.
+
+In the example below, a cuboid is converted into SAB format.
+
___
## Example File
-![SerializeAsSAB](./Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB_img.jpg)
-
+![Geometry.SerializeAsSAB](./Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB_img.jpg
index c28cbef04c2..b17702ce2cb 100644
Binary files a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB_img.jpg and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.SerializeAsSAB_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ToSolidDef.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ToSolidDef.dyn
new file mode 100644
index 00000000000..5c7a7f25038
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ToSolidDef.dyn
@@ -0,0 +1,283 @@
+{
+ "Uuid": "67aedf65-4371-4e27-b3da-35550fbad3bc",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.ToSolidDef",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1a750e9b4b42413caab183b592dc14ed",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "c720629f0e054b40b4063c6fc81f9110",
+ "Name": "width",
+ "Description": "Width of cuboid\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8cf8af8b6a6d44e5b5425a6ee7ddffef",
+ "Name": "length",
+ "Description": "Length of cuboid\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "b85f01bd83864c3183803c32d0389dee",
+ "Name": "height",
+ "Description": "Height of cuboid\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "894cea3b2d3443ccbe66c1bdaa08ce9a",
+ "Name": "Cuboid",
+ "Description": "Cuboid created by lengths",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Cuboid.ByLengths@double,double,double",
+ "Replication": "Auto",
+ "Description": "Create a Cuboid centered at WCS origin, with width, length, and height.\n\nCuboid.ByLengths (width: double = 1, length: double = 1, height: double = 1): Cuboid"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "c4065889e9654fe0b53159b6a2125a2d",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "0f07298f01894c948a2766ba2ac01372",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "94108d184b8d4aeb8f7c7cf95fcf079a",
+ "Name": "string",
+ "Description": "Json formatted string",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.ToSolidDef",
+ "Replication": "Auto",
+ "Description": "Convert geometry to Solid Def json\n\nGeometry.ToSolidDef ( ): string"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 420.0,
+ "WatchHeight": 38.0,
+ "Id": "6c18b97d79a04d1d84bc48653d8be7ba",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "8ad5161d1305498d9b7043bb0af3d397",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8119e666b064433698ca51db80bda2d5",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "15afb3e2f2e34babbf95ef37391d0a4f",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "13ac716723164aeaa824a5efae4de17e",
+ "Name": "values",
+ "Description": "A List of values\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "cf92ca2b8edd490ab78426f05b09dabe",
+ "Name": "json",
+ "Description": "A JSON string where primitive types (e.g. double, int, boolean), Lists, and Dictionary's will be turned into the associated JSON type.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Data.StringifyJSON@var[]..[]",
+ "Replication": "Auto",
+ "Description": "Stringify converts an arbitrary value or a list of arbitrary values to JSON. Replication can be used to apply the operation over a list, producing a list of JSON strings.\n\nData.StringifyJSON (values: var[]..[]): string"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "894cea3b2d3443ccbe66c1bdaa08ce9a",
+ "End": "0f07298f01894c948a2766ba2ac01372",
+ "Id": "7396eb77b7134568b2ae8ec173213146",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "94108d184b8d4aeb8f7c7cf95fcf079a",
+ "End": "13ac716723164aeaa824a5efae4de17e",
+ "Id": "7f7cfdf08082482894674ba2f3caecc8",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "cf92ca2b8edd490ab78426f05b09dabe",
+ "End": "8ad5161d1305498d9b7043bb0af3d397",
+ "Id": "ca64e71e4d1e43ffb7343e97cb24119a",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 100.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5874",
+ "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": "1a750e9b4b42413caab183b592dc14ed",
+ "Name": "Cuboid.ByLengths",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 106.06381316072657,
+ "Y": 518.34421969627851
+ },
+ {
+ "Id": "c4065889e9654fe0b53159b6a2125a2d",
+ "Name": "Geometry.ToSolidDef",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 414.56381316072657,
+ "Y": 518.34421969627851
+ },
+ {
+ "Id": "6c18b97d79a04d1d84bc48653d8be7ba",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1062.0638131607266,
+ "Y": 518.34421969627851
+ },
+ {
+ "Id": "15afb3e2f2e34babbf95ef37391d0a4f",
+ "Name": "Data.StringifyJSON",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 744.06381316072657,
+ "Y": 518.34421969627851
+ }
+ ],
+ "Annotations": [
+ {
+ "Id": "3587bdc2882740e1abf260c95cd66fcd",
+ "Title": "Right click on Watch node and \"Copy Contents\" to use Solid Def string representation in another graph",
+ "DescriptionText": null,
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [],
+ "HasNestedGroups": false,
+ "Left": 1161.0638131607266,
+ "Top": 453.34421969627851,
+ "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": "6c18b97d79a04d1d84bc48653d8be7ba"
+ }
+ ],
+ "X": 374.47211842252648,
+ "Y": 93.511323764049166,
+ "Zoom": 0.41299898049384776
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ToSolidDef.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ToSolidDef.md
index 9e05efacac1..8369b8124eb 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ToSolidDef.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ToSolidDef.md
@@ -1,7 +1,9 @@
## In Depth
-Convert geometry to Solid Def json.
-___
-## Example File
+`Geometry.ToSolidDef` converts input geometry into a Solid Def JSON file. By using this node, you can share a JSON formatted representation of geometry instead of sending a file.
+In the example below, a cuboid is converted into a Solid Def. Copy the contents of the Watch node to use the Solid Def string representation in another graph.
+___
+## Example File
+![Geometry.ToSolidDef](./Autodesk.DesignScript.Geometry.Geometry.ToSolidDef_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ToSolidDef_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ToSolidDef_img.jpg
new file mode 100644
index 00000000000..e713d1f3eb7
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.ToSolidDef_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction).md
deleted file mode 100644
index ce0474b8f7f..00000000000
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction).md
+++ /dev/null
@@ -1,7 +0,0 @@
-## In Depth
-Translate geometry in the given direction by the vector length.
-___
-## Example File
-
-![Translate (direction)](./Autodesk.DesignScript.Geometry.Geometry.Translate(direction)_img.jpg)
-
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction)_img.jpg
deleted file mode 100644
index 7ef723c0515..00000000000
Binary files a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction)_img.jpg and /dev/null differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction, distance).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction, distance).dyn
index 49ea2fc2a97..d1a1e3838b4 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction, distance).dyn
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction, distance).dyn
@@ -1,34 +1,35 @@
{
- "Uuid": "3c9d0464-8643-5ffe-96e5-ab1769818209",
+ "Uuid": "661a4b7a-902d-4b55-bebf-475ea8a56e37",
"IsCustomNode": false,
"Description": "",
- "Name": "Translate",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.Translate",
"ElementResolver": {
"ResolutionMap": {}
},
"Inputs": [
{
- "Id": "bf4c316cbccb4c17893587d6b187fabe",
+ "Id": "2162904aca0a42fda1ae5835a3fd68f0",
"Name": "Number Slider",
"Type": "number",
+ "Type2": "number",
"Value": "13.1",
"MaximumValue": 100.0,
"MinimumValue": 0.0,
"StepValue": 0.1,
"NumberType": "Double",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
}
],
"Outputs": [],
"Nodes": [
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "da4ec7f7f02d4a99b48f89e947fac347",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Cone.ByPointsRadius@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,double",
- "Id": "9353c4dfe5c94c3b89718f7d9b2123ba",
"Inputs": [
{
- "Id": "33757a8167484292b9ba10cf5d6f6c5a",
+ "Id": "772a12cae84a43fca9bf2dde08fca415",
"Name": "startPoint",
"Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
"UsingDefaultValue": true,
@@ -37,7 +38,7 @@
"KeepListStructure": false
},
{
- "Id": "b340e8dd778e4163bc65756508acd971",
+ "Id": "203be63b51464090b297630c1a1013de",
"Name": "endPoint",
"Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1)",
"UsingDefaultValue": true,
@@ -46,7 +47,7 @@
"KeepListStructure": false
},
{
- "Id": "f1055d35b3174d20adf8c4268d2ba6a0",
+ "Id": "9b398f2c25b3465a947dc78385670e7f",
"Name": "startRadius",
"Description": "double\nDefault value : 1",
"UsingDefaultValue": true,
@@ -57,7 +58,7 @@
],
"Outputs": [
{
- "Id": "d03cba1082134a9ab293149231fe287a",
+ "Id": "4102fd6c1b3a430991edbd7b40c93b50",
"Name": "Cone",
"Description": "Cone",
"UsingDefaultValue": false,
@@ -66,37 +67,37 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Cone.ByPointsRadius@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,double",
"Replication": "Auto",
"Description": "Create a Cone with given base radius at start Point, extending to a apex at end Point.\n\nCone.ByPointsRadius (startPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), endPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1), startRadius: double = 1): Cone"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "adcf9c630b9d4e4bace0a4064aac9857",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
- "Id": "fb784abe345a49ce9476f22cbf49e7a9",
"Inputs": [
{
- "Id": "6f2f3bfdd11c4576a178a27a1805cb6a",
+ "Id": "68ce183826c54fe3a9571e11c725c072",
"Name": "x",
- "Description": "double\nDefault value : 0",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "c50fc310539a4db1a5b78dff000ca8ce",
+ "Id": "de2d0ac4bc504be3bb4c115abe5ed20c",
"Name": "y",
- "Description": "double\nDefault value : 0",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "7fec0b935e8b481483fadd38cfcbd4cc",
+ "Id": "f95d7cbdc89f4a25b4a40ed8d18530dc",
"Name": "z",
- "Description": "double\nDefault value : 0",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
@@ -105,27 +106,27 @@
],
"Outputs": [
{
- "Id": "2b60b52b0600433798e5ddce3f1fe550",
+ "Id": "3bd1cd12408a4e1f93168d615035d0b9",
"Name": "Point",
- "Description": "Point",
+ "Description": "Point created by coordinates",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
"Replication": "Auto",
"Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "b94e4620241549b7905446bacd8f2575",
"NodeType": "CodeBlockNode",
- "Code": "5;\n2;\n8;",
- "Id": "47226805f4414bd689711e386a9009d1",
"Inputs": [],
"Outputs": [
{
- "Id": "bc835189d5d24b24a1521efe63628e3c",
+ "Id": "87df79e8990c478287cf7e01edfacc59",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -134,7 +135,7 @@
"KeepListStructure": false
},
{
- "Id": "52f09761461f43ab8b87df485721a507",
+ "Id": "c8f154b66c6c40b29357c9ec144558f3",
"Name": "",
"Description": "Value of expression at line 2",
"UsingDefaultValue": false,
@@ -143,7 +144,7 @@
"KeepListStructure": false
},
{
- "Id": "918aaed3f0864478ac9586aa4c1d4b82",
+ "Id": "0f69dc552dbb4135be93bfe0ec9ae0a4",
"Name": "",
"Description": "Value of expression at line 3",
"UsingDefaultValue": false,
@@ -153,36 +154,36 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "5;\n2;\n8;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "ac757ce7226c48f3b97e86b9c5d0ec22",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
- "Id": "af36d39a902b41c5adef72edc68ceae5",
"Inputs": [
{
- "Id": "5ca0d0382ae94e5dab2cd5154be5de74",
+ "Id": "f7031972ca38460284f142e4b005dab5",
"Name": "x",
- "Description": "double\nDefault value : 0",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "25e446c5464d4b1e87af86f6810b0e34",
+ "Id": "b382d33270724877acf5fe22f78f4257",
"Name": "y",
- "Description": "double\nDefault value : 0",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "64f2cb7656084b279259bf0d103e6099",
+ "Id": "230590fd1dd344c1bce924a1cecf8451",
"Name": "z",
- "Description": "double\nDefault value : 0",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
@@ -191,27 +192,27 @@
],
"Outputs": [
{
- "Id": "a72354c4e2b6423793ce398f1064d6ee",
+ "Id": "7e5fbdee2f3e45a8944635556b380c30",
"Name": "Point",
- "Description": "Point",
+ "Description": "Point created by coordinates",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
"Replication": "Auto",
"Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "28a600d8493b48448e946bbd7fe3813b",
"NodeType": "CodeBlockNode",
- "Code": "8;\n2;\n5;",
- "Id": "3273b2aa4cfd4c3c91550de1891faeaa",
"Inputs": [],
"Outputs": [
{
- "Id": "826d6c116d1943cdbe6effaf3f9afa7f",
+ "Id": "47604dc0a1314d16a015e3f49c0b861c",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -220,7 +221,7 @@
"KeepListStructure": false
},
{
- "Id": "ff94a5e205554c09a9e71cdcc3fbfca4",
+ "Id": "f080e54da77d4f5fbcfc7e6b8d537c86",
"Name": "",
"Description": "Value of expression at line 2",
"UsingDefaultValue": false,
@@ -229,7 +230,7 @@
"KeepListStructure": false
},
{
- "Id": "94a921e2ebc64d189e8324d0076dbf2c",
+ "Id": "2260968bd1a14802a09752e4a5c315ef",
"Name": "",
"Description": "Value of expression at line 3",
"UsingDefaultValue": false,
@@ -239,16 +240,16 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "8;\n2;\n5;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "55a85a8cedfa4400a461d6765209c8eb",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Translate@Autodesk.DesignScript.Geometry.Vector,double",
- "Id": "0d1b9508affd4f4ebe765e670335f885",
"Inputs": [
{
- "Id": "91b66f10a73f41fd8c5c25f9fe3ebb7f",
+ "Id": "4e7c188102aa439a93392aba8f27c74d",
"Name": "geometry",
"Description": "Autodesk.DesignScript.Geometry.Geometry",
"UsingDefaultValue": false,
@@ -257,7 +258,7 @@
"KeepListStructure": false
},
{
- "Id": "17c11332bef44a8b97262688b4215aed",
+ "Id": "4f75f9a3c86849ebbd916cc89dba7780",
"Name": "direction",
"Description": "Displacement direction.\n\nVector",
"UsingDefaultValue": false,
@@ -266,7 +267,7 @@
"KeepListStructure": false
},
{
- "Id": "1c653c50ccc94d669a71746c1e25717b",
+ "Id": "825cc58617e6471f8549a597f6242987",
"Name": "distance",
"Description": "Displacement distance along given direction.\n\ndouble",
"UsingDefaultValue": false,
@@ -277,7 +278,7 @@
],
"Outputs": [
{
- "Id": "c0d6183d94c64dfeadd9e16b65e73c10",
+ "Id": "08b7e1def0504ecd95ae5515e64260fb",
"Name": "Geometry",
"Description": "Transformed Geometry.",
"UsingDefaultValue": false,
@@ -286,18 +287,18 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Translate@Autodesk.DesignScript.Geometry.Vector,double",
"Replication": "Auto",
"Description": "Translates any geometry type by the given distance in the given direction.\n\nGeometry.Translate (direction: Vector, distance: double): Geometry"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7f968b4f4b1a481eb1e13a7b44b136d6",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.XAxis",
- "Id": "ccc15590db5b4e9a9f77d8e329120bc9",
"Inputs": [],
"Outputs": [
{
- "Id": "4969f34e1c4a407ba3546ff755efa413",
+ "Id": "09145651f42c4c568e0d2b346f4b9286",
"Name": "Vector",
"Description": "Vector",
"UsingDefaultValue": false,
@@ -306,22 +307,22 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.XAxis",
"Replication": "Auto",
"Description": "Get the canonical X axis Vector (1,0,0)\n\nVector.XAxis ( ): Vector"
},
{
"ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
- "NodeType": "NumberInputNode",
"NumberType": "Double",
"MaximumValue": 100.0,
"MinimumValue": 0.0,
"StepValue": 0.1,
- "InputValue": 13.1,
- "Id": "bf4c316cbccb4c17893587d6b187fabe",
+ "Id": "2162904aca0a42fda1ae5835a3fd68f0",
+ "NodeType": "NumberInputNode",
"Inputs": [],
"Outputs": [
{
- "Id": "9632fc7d45684e549e34d158bfb9acd2",
+ "Id": "6dd57310868d4fa0bfefd20ea5aa9ed1",
"Name": "",
"Description": "Double",
"UsingDefaultValue": false,
@@ -331,179 +332,211 @@
}
],
"Replication": "Disabled",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "InputValue": 13.1
}
],
"Connectors": [
{
- "Start": "d03cba1082134a9ab293149231fe287a",
- "End": "91b66f10a73f41fd8c5c25f9fe3ebb7f",
- "Id": "1c870d69fd71430d9164aad29cd07994"
+ "Start": "4102fd6c1b3a430991edbd7b40c93b50",
+ "End": "4e7c188102aa439a93392aba8f27c74d",
+ "Id": "ba7f46da90624d7fae5d0fed5b4b4260",
+ "IsHidden": "False"
},
{
- "Start": "2b60b52b0600433798e5ddce3f1fe550",
- "End": "b340e8dd778e4163bc65756508acd971",
- "Id": "db54418866624041970275291bf4e9f8"
+ "Start": "3bd1cd12408a4e1f93168d615035d0b9",
+ "End": "203be63b51464090b297630c1a1013de",
+ "Id": "8526d02f28bb4f2cb574e770ffbe6ae8",
+ "IsHidden": "False"
},
{
- "Start": "bc835189d5d24b24a1521efe63628e3c",
- "End": "6f2f3bfdd11c4576a178a27a1805cb6a",
- "Id": "b8b1dcabc0d349569d8ed058f7d4c1c6"
+ "Start": "87df79e8990c478287cf7e01edfacc59",
+ "End": "68ce183826c54fe3a9571e11c725c072",
+ "Id": "9634996205e345159121e033a144f7ac",
+ "IsHidden": "False"
},
{
- "Start": "bc835189d5d24b24a1521efe63628e3c",
- "End": "f1055d35b3174d20adf8c4268d2ba6a0",
- "Id": "5ad7470b5a864b91a18a69b00e7fe87b"
+ "Start": "87df79e8990c478287cf7e01edfacc59",
+ "End": "9b398f2c25b3465a947dc78385670e7f",
+ "Id": "7e7c3ee1b39b41b58375ed2ed3d0c478",
+ "IsHidden": "False"
},
{
- "Start": "52f09761461f43ab8b87df485721a507",
- "End": "c50fc310539a4db1a5b78dff000ca8ce",
- "Id": "be620d4e2aad4d9d8147861a78cef3e0"
+ "Start": "c8f154b66c6c40b29357c9ec144558f3",
+ "End": "de2d0ac4bc504be3bb4c115abe5ed20c",
+ "Id": "c13868696ad34f189f9700e27df41ddd",
+ "IsHidden": "False"
},
{
- "Start": "918aaed3f0864478ac9586aa4c1d4b82",
- "End": "7fec0b935e8b481483fadd38cfcbd4cc",
- "Id": "09b84e5a870f44e99d1035d5238752d6"
+ "Start": "0f69dc552dbb4135be93bfe0ec9ae0a4",
+ "End": "f95d7cbdc89f4a25b4a40ed8d18530dc",
+ "Id": "9ced69408bab4642a85c3e50c1287065",
+ "IsHidden": "False"
},
{
- "Start": "a72354c4e2b6423793ce398f1064d6ee",
- "End": "33757a8167484292b9ba10cf5d6f6c5a",
- "Id": "d614c32b91da43c9a3794ed8a0204247"
+ "Start": "7e5fbdee2f3e45a8944635556b380c30",
+ "End": "772a12cae84a43fca9bf2dde08fca415",
+ "Id": "6cfbb6f219f7402c97a721ad745b44fc",
+ "IsHidden": "False"
},
{
- "Start": "826d6c116d1943cdbe6effaf3f9afa7f",
- "End": "5ca0d0382ae94e5dab2cd5154be5de74",
- "Id": "4c7b1202b1a143c0932ceb3bb6707931"
+ "Start": "47604dc0a1314d16a015e3f49c0b861c",
+ "End": "f7031972ca38460284f142e4b005dab5",
+ "Id": "d011333c6ff54f499b96e0feb162f466",
+ "IsHidden": "False"
},
{
- "Start": "ff94a5e205554c09a9e71cdcc3fbfca4",
- "End": "25e446c5464d4b1e87af86f6810b0e34",
- "Id": "96e0b99a010646d2aa444677ada99bdf"
+ "Start": "f080e54da77d4f5fbcfc7e6b8d537c86",
+ "End": "b382d33270724877acf5fe22f78f4257",
+ "Id": "1a9615e6fbbf4fc59c6e38fe574ec4bc",
+ "IsHidden": "False"
},
{
- "Start": "94a921e2ebc64d189e8324d0076dbf2c",
- "End": "64f2cb7656084b279259bf0d103e6099",
- "Id": "1c5c29a9876b4a1cb1412a9c6253e300"
+ "Start": "2260968bd1a14802a09752e4a5c315ef",
+ "End": "230590fd1dd344c1bce924a1cecf8451",
+ "Id": "b15402baaeb24e3f8a316de61fdd816e",
+ "IsHidden": "False"
},
{
- "Start": "4969f34e1c4a407ba3546ff755efa413",
- "End": "17c11332bef44a8b97262688b4215aed",
- "Id": "0a5f8a585899484aaf184c66d258f30e"
+ "Start": "09145651f42c4c568e0d2b346f4b9286",
+ "End": "4f75f9a3c86849ebbd916cc89dba7780",
+ "Id": "e9bc0f443b1c4a9db1d35ae2f357e206",
+ "IsHidden": "False"
},
{
- "Start": "9632fc7d45684e549e34d158bfb9acd2",
- "End": "1c653c50ccc94d669a71746c1e25717b",
- "Id": "fddc4b5a5b8b41ff9ebb24b104b536c0"
+ "Start": "6dd57310868d4fa0bfefd20ea5aa9ed1",
+ "End": "825cc58617e6471f8549a597f6242987",
+ "Id": "dbd7ab44e7b0414e99bfff1c9bdb16a3",
+ "IsHidden": "False"
}
],
"Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
"Bindings": [],
"View": {
"Dynamo": {
"ScaleFactor": 1.0,
"HasRunWithoutCrash": true,
"IsVisibleInDynamoLibrary": true,
- "Version": "2.0.1.5055",
+ "Version": "2.19.0.5874",
"RunType": "Automatic",
"RunPeriod": "1000"
},
"Camera": {
- "Name": "Background Preview",
- "EyeX": -14.566726684570313,
- "EyeY": 9.7403774261474609,
- "EyeZ": 11.442461967468262,
- "LookX": 15.551612854003906,
- "LookY": -2.5172150135040283,
- "LookZ": -16.279880523681641,
- "UpX": -0.07220284640789032,
- "UpY": 0.9945218563079834,
- "UpZ": 0.0755840316414833
+ "Name": "_Background Preview",
+ "EyeX": -7.6729857921600342,
+ "EyeY": 16.727499961853027,
+ "EyeZ": 40.840293884277344,
+ "LookX": -0.26518034934997559,
+ "LookY": -0.32398033142089844,
+ "LookZ": -48.911052703857422,
+ "UpX": 0.001127219176851213,
+ "UpY": 0.97814762592315674,
+ "UpZ": 0.20790864527225494
},
+ "ConnectorPins": [],
"NodeViews": [
{
- "ShowGeometry": true,
+ "Id": "da4ec7f7f02d4a99b48f89e947fac347",
"Name": "Cone.ByPointsRadius",
- "Id": "9353c4dfe5c94c3b89718f7d9b2123ba",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 799.202088104533,
- "Y": 269.595469803525
+ "ShowGeometry": true,
+ "X": 845.702088104533,
+ "Y": 238.09546980352502
},
{
- "ShowGeometry": false,
+ "Id": "adcf9c630b9d4e4bace0a4064aac9857",
"Name": "Point.ByCoordinates",
- "Id": "fb784abe345a49ce9476f22cbf49e7a9",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 541.202088104533,
- "Y": 362.595469803525
+ "ShowGeometry": false,
+ "X": 520.702088104533,
+ "Y": 367.095469803525
},
{
- "ShowGeometry": true,
+ "Id": "b94e4620241549b7905446bacd8f2575",
"Name": "Code Block",
- "Id": "47226805f4414bd689711e386a9009d1",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 362.202088104533,
- "Y": 371.02213647019164
+ "ShowGeometry": true,
+ "X": 266.702088104533,
+ "Y": 375.750469803525
},
{
- "ShowGeometry": false,
+ "Id": "ac757ce7226c48f3b97e86b9c5d0ec22",
"Name": "Point.ByCoordinates",
- "Id": "af36d39a902b41c5adef72edc68ceae5",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 541.202088104533,
- "Y": 202.59546980352502
+ "ShowGeometry": false,
+ "X": 520.702088104533,
+ "Y": 143.09546980352502
},
{
- "ShowGeometry": true,
+ "Id": "28a600d8493b48448e946bbd7fe3813b",
"Name": "Code Block",
- "Id": "3273b2aa4cfd4c3c91550de1891faeaa",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 362.202088104533,
- "Y": 215.235469803525
+ "ShowGeometry": true,
+ "X": 266.702088104533,
+ "Y": 160.57796980352498
},
{
- "ShowGeometry": true,
+ "Id": "55a85a8cedfa4400a461d6765209c8eb",
"Name": "Geometry.Translate",
- "Id": "0d1b9508affd4f4ebe765e670335f885",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1198.202088104533,
- "Y": 386.595469803525
+ "ShowGeometry": true,
+ "X": 1293.702088104533,
+ "Y": 395.095469803525
},
{
- "ShowGeometry": true,
+ "Id": "7f968b4f4b1a481eb1e13a7b44b136d6",
"Name": "Vector.XAxis",
- "Id": "ccc15590db5b4e9a9f77d8e329120bc9",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 799.202088104533,
- "Y": 429.595469803525
+ "ShowGeometry": true,
+ "X": 845.702088104533,
+ "Y": 451.09546980352496
},
{
- "ShowGeometry": true,
+ "Id": "2162904aca0a42fda1ae5835a3fd68f0",
"Name": "Number Slider",
- "Id": "bf4c316cbccb4c17893587d6b187fabe",
"IsSetAsInput": true,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 799.202088104533,
- "Y": 538.595469803525
+ "ShowGeometry": true,
+ "X": 845.702088104533,
+ "Y": 598.095469803525
}
],
"Annotations": [],
- "X": -420.292892733909,
- "Y": -192.826868877269,
- "Zoom": 1.1988764122517
+ "X": 78.336366016445254,
+ "Y": 15.229919779664613,
+ "Zoom": 0.60122796620338959
}
}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction, distance).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction, distance).md
index 0565fee4cd5..d698cc3e03f 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction, distance).md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction, distance).md
@@ -1,7 +1,11 @@
## In Depth
-Translates any geometry type by the given distance in the given direction.
+`Geometry.Translate (direction, distance)` moves input geometry to a given vector direction. The `distance` input controls the move distance.
+
+In the example below, a cone is translated along the X-axis. Its distance from the original cone is controlled with a number slider.
+
+In the example below, a cuboid is converted into a Solid Def. Copy the contents of the Watch node to use the Solid Def string representation in another graph.
+
___
## Example File
-![Translate (direction, distance)](./Autodesk.DesignScript.Geometry.Geometry.Translate(direction,%20distance)_img.jpg)
-
+![Geometry.Translate](./Autodesk.DesignScript.Geometry.Geometry.Translate(direction,%20distance)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction, distance)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction, distance)_img.jpg
index 390c7aafd61..6dc49068825 100644
Binary files a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction, distance)_img.jpg and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction, distance)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, direction, distance).dyn
similarity index 54%
rename from doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction).dyn
rename to doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, direction, distance).dyn
index fe7a73a3023..d1a1e3838b4 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(direction).dyn
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, direction, distance).dyn
@@ -1,22 +1,35 @@
{
- "Uuid": "3c9d0464-8643-5ffe-96e5-ab1769818209",
+ "Uuid": "661a4b7a-902d-4b55-bebf-475ea8a56e37",
"IsCustomNode": false,
"Description": "",
- "Name": "Translate",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.Translate",
"ElementResolver": {
"ResolutionMap": {}
},
- "Inputs": [],
+ "Inputs": [
+ {
+ "Id": "2162904aca0a42fda1ae5835a3fd68f0",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "13.1",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ }
+ ],
"Outputs": [],
"Nodes": [
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "da4ec7f7f02d4a99b48f89e947fac347",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Cone.ByPointsRadius@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,double",
- "Id": "9353c4dfe5c94c3b89718f7d9b2123ba",
"Inputs": [
{
- "Id": "e87437f4bc194fbdaacb1755e034378e",
+ "Id": "772a12cae84a43fca9bf2dde08fca415",
"Name": "startPoint",
"Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
"UsingDefaultValue": true,
@@ -25,7 +38,7 @@
"KeepListStructure": false
},
{
- "Id": "48b9e50b6b5c43c08312475833dce8bb",
+ "Id": "203be63b51464090b297630c1a1013de",
"Name": "endPoint",
"Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1)",
"UsingDefaultValue": true,
@@ -34,7 +47,7 @@
"KeepListStructure": false
},
{
- "Id": "5c75059887a047679d815da0ccb4ee1f",
+ "Id": "9b398f2c25b3465a947dc78385670e7f",
"Name": "startRadius",
"Description": "double\nDefault value : 1",
"UsingDefaultValue": true,
@@ -45,7 +58,7 @@
],
"Outputs": [
{
- "Id": "a942ae9486114bf0ad27044ff1c8bd9d",
+ "Id": "4102fd6c1b3a430991edbd7b40c93b50",
"Name": "Cone",
"Description": "Cone",
"UsingDefaultValue": false,
@@ -54,37 +67,37 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Cone.ByPointsRadius@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,double",
"Replication": "Auto",
"Description": "Create a Cone with given base radius at start Point, extending to a apex at end Point.\n\nCone.ByPointsRadius (startPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), endPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1), startRadius: double = 1): Cone"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "adcf9c630b9d4e4bace0a4064aac9857",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
- "Id": "fb784abe345a49ce9476f22cbf49e7a9",
"Inputs": [
{
- "Id": "e62ab938590348a6870a2001e9b6f267",
+ "Id": "68ce183826c54fe3a9571e11c725c072",
"Name": "x",
- "Description": "double\nDefault value : 0",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "e1519910d9ff440c9a7f4164faa64194",
+ "Id": "de2d0ac4bc504be3bb4c115abe5ed20c",
"Name": "y",
- "Description": "double\nDefault value : 0",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "8e490955570a4e12b8619e96a2ea98a3",
+ "Id": "f95d7cbdc89f4a25b4a40ed8d18530dc",
"Name": "z",
- "Description": "double\nDefault value : 0",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
@@ -93,27 +106,27 @@
],
"Outputs": [
{
- "Id": "ea1274b321e3434ab1feb45cfbf5c423",
+ "Id": "3bd1cd12408a4e1f93168d615035d0b9",
"Name": "Point",
- "Description": "Point",
+ "Description": "Point created by coordinates",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
"Replication": "Auto",
"Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "b94e4620241549b7905446bacd8f2575",
"NodeType": "CodeBlockNode",
- "Code": "5;\n2;\n8;",
- "Id": "47226805f4414bd689711e386a9009d1",
"Inputs": [],
"Outputs": [
{
- "Id": "fda37bde3bff4918bae30cd10c1797c8",
+ "Id": "87df79e8990c478287cf7e01edfacc59",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -122,7 +135,7 @@
"KeepListStructure": false
},
{
- "Id": "c1187922df394733ac3de443be39d50c",
+ "Id": "c8f154b66c6c40b29357c9ec144558f3",
"Name": "",
"Description": "Value of expression at line 2",
"UsingDefaultValue": false,
@@ -131,7 +144,7 @@
"KeepListStructure": false
},
{
- "Id": "499f49a8c89142b68ffe13bf693f7518",
+ "Id": "0f69dc552dbb4135be93bfe0ec9ae0a4",
"Name": "",
"Description": "Value of expression at line 3",
"UsingDefaultValue": false,
@@ -141,36 +154,36 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "5;\n2;\n8;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "ac757ce7226c48f3b97e86b9c5d0ec22",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
- "Id": "af36d39a902b41c5adef72edc68ceae5",
"Inputs": [
{
- "Id": "d3b7fd707ee143d58930b85a1d4b738a",
+ "Id": "f7031972ca38460284f142e4b005dab5",
"Name": "x",
- "Description": "double\nDefault value : 0",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "ff6b509237604652942a32eea7896138",
+ "Id": "b382d33270724877acf5fe22f78f4257",
"Name": "y",
- "Description": "double\nDefault value : 0",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "0c1f7b6396364a00b7542fdf9678a295",
+ "Id": "230590fd1dd344c1bce924a1cecf8451",
"Name": "z",
- "Description": "double\nDefault value : 0",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
@@ -179,27 +192,27 @@
],
"Outputs": [
{
- "Id": "68c03f4f216a494dbf28a2f18ba24b22",
+ "Id": "7e5fbdee2f3e45a8944635556b380c30",
"Name": "Point",
- "Description": "Point",
+ "Description": "Point created by coordinates",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
"Replication": "Auto",
"Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "28a600d8493b48448e946bbd7fe3813b",
"NodeType": "CodeBlockNode",
- "Code": "8;\n2;\n5;",
- "Id": "3273b2aa4cfd4c3c91550de1891faeaa",
"Inputs": [],
"Outputs": [
{
- "Id": "c8f6486305c8463d84f06e7a93ed12ce",
+ "Id": "47604dc0a1314d16a015e3f49c0b861c",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -208,7 +221,7 @@
"KeepListStructure": false
},
{
- "Id": "2fdd8102d97046cf821179fa02144891",
+ "Id": "f080e54da77d4f5fbcfc7e6b8d537c86",
"Name": "",
"Description": "Value of expression at line 2",
"UsingDefaultValue": false,
@@ -217,7 +230,7 @@
"KeepListStructure": false
},
{
- "Id": "fa0357eb14ae4d8993150647e386609d",
+ "Id": "2260968bd1a14802a09752e4a5c315ef",
"Name": "",
"Description": "Value of expression at line 3",
"UsingDefaultValue": false,
@@ -227,16 +240,16 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "8;\n2;\n5;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "55a85a8cedfa4400a461d6765209c8eb",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Translate@Autodesk.DesignScript.Geometry.Vector",
- "Id": "f3839b60bb8549689e40029318b3a205",
"Inputs": [
{
- "Id": "6c979f317c26445c9202704290478e1a",
+ "Id": "4e7c188102aa439a93392aba8f27c74d",
"Name": "geometry",
"Description": "Autodesk.DesignScript.Geometry.Geometry",
"UsingDefaultValue": false,
@@ -245,9 +258,18 @@
"KeepListStructure": false
},
{
- "Id": "5125db967a9348859d713b5828340245",
+ "Id": "4f75f9a3c86849ebbd916cc89dba7780",
"Name": "direction",
- "Description": "Vector",
+ "Description": "Displacement direction.\n\nVector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "825cc58617e6471f8549a597f6242987",
+ "Name": "distance",
+ "Description": "Displacement distance along given direction.\n\ndouble",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
@@ -256,223 +278,265 @@
],
"Outputs": [
{
- "Id": "a78dce82bc2d4d179ae6b5cc6d128798",
+ "Id": "08b7e1def0504ecd95ae5515e64260fb",
"Name": "Geometry",
- "Description": "Geometry",
+ "Description": "Transformed Geometry.",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Translate@Autodesk.DesignScript.Geometry.Vector,double",
"Replication": "Auto",
- "Description": "Translate geometry in the given direction by the vector length\n\nGeometry.Translate (direction: Vector): Geometry"
+ "Description": "Translates any geometry type by the given distance in the given direction.\n\nGeometry.Translate (direction: Vector, distance: double): Geometry"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7f968b4f4b1a481eb1e13a7b44b136d6",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ByTwoPoints@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
- "Id": "a488bb48b6c549a0949332e00a23d213",
- "Inputs": [
- {
- "Id": "1ba8f5f72b73464a8326f9ba13ec6568",
- "Name": "start",
- "Description": "Point",
- "UsingDefaultValue": false,
- "Level": 2,
- "UseLevels": false,
- "KeepListStructure": false
- },
+ "Inputs": [],
+ "Outputs": [
{
- "Id": "7e414d62b73044b1b14e6eac10ef6b37",
- "Name": "end",
- "Description": "Point",
+ "Id": "09145651f42c4c568e0d2b346f4b9286",
+ "Name": "Vector",
+ "Description": "Vector",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.XAxis",
+ "Replication": "Auto",
+ "Description": "Get the canonical X axis Vector (1,0,0)\n\nVector.XAxis ( ): Vector"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "Id": "2162904aca0a42fda1ae5835a3fd68f0",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
"Outputs": [
{
- "Id": "250e3039ace44c62a979f274c389b670",
- "Name": "Vector",
- "Description": "Vector",
+ "Id": "6dd57310868d4fa0bfefd20ea5aa9ed1",
+ "Name": "",
+ "Description": "Double",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
- "Replication": "Auto",
- "Description": "Form a Vector by two end points. The result is a vector from the start to the end point.\n\nVector.ByTwoPoints (start: Point, end: Point): Vector"
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 13.1
}
],
"Connectors": [
{
- "Start": "a942ae9486114bf0ad27044ff1c8bd9d",
- "End": "6c979f317c26445c9202704290478e1a",
- "Id": "de90e5bd41d84dfcb86ad5cee85e4f02"
- },
- {
- "Start": "ea1274b321e3434ab1feb45cfbf5c423",
- "End": "48b9e50b6b5c43c08312475833dce8bb",
- "Id": "47307997fcb345d6be6663ccc4b3256f"
+ "Start": "4102fd6c1b3a430991edbd7b40c93b50",
+ "End": "4e7c188102aa439a93392aba8f27c74d",
+ "Id": "ba7f46da90624d7fae5d0fed5b4b4260",
+ "IsHidden": "False"
},
{
- "Start": "ea1274b321e3434ab1feb45cfbf5c423",
- "End": "7e414d62b73044b1b14e6eac10ef6b37",
- "Id": "565585a505ac429aa8cd4060fc8988f7"
+ "Start": "3bd1cd12408a4e1f93168d615035d0b9",
+ "End": "203be63b51464090b297630c1a1013de",
+ "Id": "8526d02f28bb4f2cb574e770ffbe6ae8",
+ "IsHidden": "False"
},
{
- "Start": "fda37bde3bff4918bae30cd10c1797c8",
- "End": "e62ab938590348a6870a2001e9b6f267",
- "Id": "cb6f6c75993e4d6698aa65ca34b66464"
+ "Start": "87df79e8990c478287cf7e01edfacc59",
+ "End": "68ce183826c54fe3a9571e11c725c072",
+ "Id": "9634996205e345159121e033a144f7ac",
+ "IsHidden": "False"
},
{
- "Start": "fda37bde3bff4918bae30cd10c1797c8",
- "End": "5c75059887a047679d815da0ccb4ee1f",
- "Id": "53c42e7934da4f3ca3774a86ab8520f3"
+ "Start": "87df79e8990c478287cf7e01edfacc59",
+ "End": "9b398f2c25b3465a947dc78385670e7f",
+ "Id": "7e7c3ee1b39b41b58375ed2ed3d0c478",
+ "IsHidden": "False"
},
{
- "Start": "c1187922df394733ac3de443be39d50c",
- "End": "e1519910d9ff440c9a7f4164faa64194",
- "Id": "954dac3367844ee496d684ec345f16bc"
+ "Start": "c8f154b66c6c40b29357c9ec144558f3",
+ "End": "de2d0ac4bc504be3bb4c115abe5ed20c",
+ "Id": "c13868696ad34f189f9700e27df41ddd",
+ "IsHidden": "False"
},
{
- "Start": "499f49a8c89142b68ffe13bf693f7518",
- "End": "8e490955570a4e12b8619e96a2ea98a3",
- "Id": "5e67a4e0855f49a0a695e97bcc412378"
+ "Start": "0f69dc552dbb4135be93bfe0ec9ae0a4",
+ "End": "f95d7cbdc89f4a25b4a40ed8d18530dc",
+ "Id": "9ced69408bab4642a85c3e50c1287065",
+ "IsHidden": "False"
},
{
- "Start": "68c03f4f216a494dbf28a2f18ba24b22",
- "End": "e87437f4bc194fbdaacb1755e034378e",
- "Id": "5c3580ee685e4cbab3b2646158b5327a"
+ "Start": "7e5fbdee2f3e45a8944635556b380c30",
+ "End": "772a12cae84a43fca9bf2dde08fca415",
+ "Id": "6cfbb6f219f7402c97a721ad745b44fc",
+ "IsHidden": "False"
},
{
- "Start": "68c03f4f216a494dbf28a2f18ba24b22",
- "End": "1ba8f5f72b73464a8326f9ba13ec6568",
- "Id": "6b915edf426c4839a55d98f7cbe6496a"
+ "Start": "47604dc0a1314d16a015e3f49c0b861c",
+ "End": "f7031972ca38460284f142e4b005dab5",
+ "Id": "d011333c6ff54f499b96e0feb162f466",
+ "IsHidden": "False"
},
{
- "Start": "c8f6486305c8463d84f06e7a93ed12ce",
- "End": "d3b7fd707ee143d58930b85a1d4b738a",
- "Id": "04a0d249b22b4ff0b285e33fd366544b"
+ "Start": "f080e54da77d4f5fbcfc7e6b8d537c86",
+ "End": "b382d33270724877acf5fe22f78f4257",
+ "Id": "1a9615e6fbbf4fc59c6e38fe574ec4bc",
+ "IsHidden": "False"
},
{
- "Start": "2fdd8102d97046cf821179fa02144891",
- "End": "ff6b509237604652942a32eea7896138",
- "Id": "7ce28f5a55eb42efb798d05d76102835"
+ "Start": "2260968bd1a14802a09752e4a5c315ef",
+ "End": "230590fd1dd344c1bce924a1cecf8451",
+ "Id": "b15402baaeb24e3f8a316de61fdd816e",
+ "IsHidden": "False"
},
{
- "Start": "fa0357eb14ae4d8993150647e386609d",
- "End": "0c1f7b6396364a00b7542fdf9678a295",
- "Id": "8d1b212f45274b31a41e8cd393d0e2ac"
+ "Start": "09145651f42c4c568e0d2b346f4b9286",
+ "End": "4f75f9a3c86849ebbd916cc89dba7780",
+ "Id": "e9bc0f443b1c4a9db1d35ae2f357e206",
+ "IsHidden": "False"
},
{
- "Start": "250e3039ace44c62a979f274c389b670",
- "End": "5125db967a9348859d713b5828340245",
- "Id": "902dbec3ceba4e6d9541bcfffed1c16c"
+ "Start": "6dd57310868d4fa0bfefd20ea5aa9ed1",
+ "End": "825cc58617e6471f8549a597f6242987",
+ "Id": "dbd7ab44e7b0414e99bfff1c9bdb16a3",
+ "IsHidden": "False"
}
],
"Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
"Bindings": [],
"View": {
"Dynamo": {
"ScaleFactor": 1.0,
"HasRunWithoutCrash": true,
"IsVisibleInDynamoLibrary": true,
- "Version": "2.0.1.5055",
+ "Version": "2.19.0.5874",
"RunType": "Automatic",
"RunPeriod": "1000"
},
"Camera": {
- "Name": "Background Preview",
- "EyeX": -17.001012802124023,
- "EyeY": 10.430407524108887,
- "EyeZ": 13.431360244750977,
- "LookX": 18.684045791625977,
- "LookY": -3.7516071796417236,
- "LookZ": -17.30805778503418,
- "UpX": -0.051173605024814606,
- "UpY": 0.99756401777267456,
- "UpZ": 0.047404918819665909
+ "Name": "_Background Preview",
+ "EyeX": -7.6729857921600342,
+ "EyeY": 16.727499961853027,
+ "EyeZ": 40.840293884277344,
+ "LookX": -0.26518034934997559,
+ "LookY": -0.32398033142089844,
+ "LookZ": -48.911052703857422,
+ "UpX": 0.001127219176851213,
+ "UpY": 0.97814762592315674,
+ "UpZ": 0.20790864527225494
},
+ "ConnectorPins": [],
"NodeViews": [
{
- "ShowGeometry": true,
+ "Id": "da4ec7f7f02d4a99b48f89e947fac347",
"Name": "Cone.ByPointsRadius",
- "Id": "9353c4dfe5c94c3b89718f7d9b2123ba",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 782.37335266502,
- "Y": 201.87359689327548
+ "ShowGeometry": true,
+ "X": 845.702088104533,
+ "Y": 238.09546980352502
},
{
- "ShowGeometry": false,
+ "Id": "adcf9c630b9d4e4bace0a4064aac9857",
"Name": "Point.ByCoordinates",
- "Id": "fb784abe345a49ce9476f22cbf49e7a9",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 524.37335266502,
- "Y": 374.87359689327548
+ "ShowGeometry": false,
+ "X": 520.702088104533,
+ "Y": 367.095469803525
},
{
- "ShowGeometry": true,
+ "Id": "b94e4620241549b7905446bacd8f2575",
"Name": "Code Block",
- "Id": "47226805f4414bd689711e386a9009d1",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 345.37335266502,
- "Y": 383.3002635599421
+ "ShowGeometry": true,
+ "X": 266.702088104533,
+ "Y": 375.750469803525
},
{
- "ShowGeometry": false,
+ "Id": "ac757ce7226c48f3b97e86b9c5d0ec22",
"Name": "Point.ByCoordinates",
- "Id": "af36d39a902b41c5adef72edc68ceae5",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 524.37335266502,
- "Y": 214.87359689327545
+ "ShowGeometry": false,
+ "X": 520.702088104533,
+ "Y": 143.09546980352502
},
{
- "ShowGeometry": true,
+ "Id": "28a600d8493b48448e946bbd7fe3813b",
"Name": "Code Block",
- "Id": "3273b2aa4cfd4c3c91550de1891faeaa",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 345.37335266502,
- "Y": 227.51359689327543
+ "ShowGeometry": true,
+ "X": 266.702088104533,
+ "Y": 160.57796980352498
},
{
- "ShowGeometry": true,
+ "Id": "55a85a8cedfa4400a461d6765209c8eb",
"Name": "Geometry.Translate",
- "Id": "f3839b60bb8549689e40029318b3a205",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1101.3733526650199,
- "Y": 268.87359689327548
+ "ShowGeometry": true,
+ "X": 1293.702088104533,
+ "Y": 395.095469803525
},
{
- "ShowGeometry": true,
- "Name": "Vector.ByTwoPoints",
- "Id": "a488bb48b6c549a0949332e00a23d213",
+ "Id": "7f968b4f4b1a481eb1e13a7b44b136d6",
+ "Name": "Vector.XAxis",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 782.37335266502,
- "Y": 361.87359689327548
+ "ShowGeometry": true,
+ "X": 845.702088104533,
+ "Y": 451.09546980352496
+ },
+ {
+ "Id": "2162904aca0a42fda1ae5835a3fd68f0",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 845.702088104533,
+ "Y": 598.095469803525
}
],
"Annotations": [],
- "X": -432.787822928817,
- "Y": -214.872131636168,
- "Zoom": 1.25584483561315
+ "X": 78.336366016445254,
+ "Y": 15.229919779664613,
+ "Zoom": 0.60122796620338959
}
}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, direction, distance).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, direction, distance).md
new file mode 100644
index 00000000000..97a9bb0d8a5
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, direction, distance).md
@@ -0,0 +1,11 @@
+## In Depth
+`Geometry.Translate (direction, distance)` moves input geometry to a given vector direction. The `distance` input controls the move distance.
+
+In the example below, a cone is translated along the X-axis. Its distance from the original cone is controlled with a number slider.
+
+In the example below, a cuboid is converted into a Solid Def. Copy the contents of the Watch node to use the Solid Def string representation in another graph.
+
+___
+## Example File
+
+![Geometry.Translate](./Autodesk.DesignScript.Geometry.Geometry.Translate(geometry,%20direction,%20distance)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, direction, distance)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, direction, distance)_img.jpg
new file mode 100644
index 00000000000..6dc49068825
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, direction, distance)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, xtranslation, ytranslation, ztranslation).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, xtranslation, ytranslation, ztranslation).dyn
new file mode 100644
index 00000000000..e966064fe2c
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, xtranslation, ytranslation, ztranslation).dyn
@@ -0,0 +1,621 @@
+{
+ "Uuid": "7f9b2664-3099-4afd-b6a1-95647f178dda",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Geometry.Translate",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "fe39a2f8e74b4e93bbb86f7816b8ea39",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "6",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "2baa7eb93ca24735b2602d0a55144772",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "0",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "dec1992ff5564b72bdc04eb4a2eb6b79",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "4.5",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "f20fc6756779434f9d734ece0b5707ff",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "6ddefcf70bc6464ea9cb033fd1262de1",
+ "Name": "startPoint",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "346b012075d046a197e39c4eac8d2c4a",
+ "Name": "endPoint",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "0afff9930100424cb30d073f0b042a74",
+ "Name": "startRadius",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "112e801a8243426fada3f0c56e03b2c9",
+ "Name": "Cone",
+ "Description": "Cone",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Cone.ByPointsRadius@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Create a Cone with given base radius at start Point, extending to a apex at end Point.\n\nCone.ByPointsRadius (startPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), endPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1), startRadius: double = 1): Cone"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "253dfbb801304c5b861a5d688f6e04ff",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "41c593f6cbac44fa871093ef93e197a4",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "e5d71bdad92749999bf5907dc60d9dde",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "0f01ce7235bf437f9bc78120df5296d9",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "56581031d6b142f8b59bc3ddbd8e927f",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "dcbd8228065142138e4c464c9c563a9d",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "c61959f6878747ec89c56877bf4b85c3",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "79fd963952284d1caccd747cad9d548e",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "52cd1bea4ad540a697709be4e92e159d",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "5;\n2;\n8;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "866139498be24e839f7afa8858e31e86",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "a43fe5d6c6dc4ed9881a4aaec441162a",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "29ff70b9e5cb46e29276d7f8909a947f",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d021aefb4500418d97afa649c4d3bd37",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "98f7294a76054a698da43cc2eeea869a",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "2c3571831e3f4b25b3ad4f53290fb06a",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "b2dc9a50886748b7b0fc17a7840ab9cd",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "7bae0cb5c907491096ac7da310f34411",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "4fbccb1747af46568bdb39d1b1fe4439",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "8;\n2;\n5;"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "Id": "fe39a2f8e74b4e93bbb86f7816b8ea39",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "08d87207e5994515a75f1318ac325cc7",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 6.0
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "27c8c63205c940968bb40f6418e6302b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "89a026fa0143491591aa4865203dde2f",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "80d0bd0c7ec64c74b116894d7f68b6d8",
+ "Name": "xTranslation",
+ "Description": "Displacement along X-axis.\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "fe6bd882d0de4fd8a84e64a37806b254",
+ "Name": "yTranslation",
+ "Description": "Displacement along Y-axis.\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "9de9db8c24014718a68dccef6f4ff71d",
+ "Name": "zTranslation",
+ "Description": "Displacement along Z-axis.\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "ecfea17f39bc454d8a839af515a7d1d9",
+ "Name": "Geometry",
+ "Description": "Transformed Geometry.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Translate@double,double,double",
+ "Replication": "Auto",
+ "Description": "Translates any given geometry by the given displacements in the x, y, and z directions defined in WCS respectively.\n\nGeometry.Translate (xTranslation: double = 0, yTranslation: double = 0, zTranslation: double = 0): Geometry"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "Id": "2baa7eb93ca24735b2602d0a55144772",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "561de80d180347c19457226be4f133ea",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 0.0
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "Id": "dec1992ff5564b72bdc04eb4a2eb6b79",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "6c66985b5f5548a0aa6831f7cae5820d",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 4.5
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "112e801a8243426fada3f0c56e03b2c9",
+ "End": "89a026fa0143491591aa4865203dde2f",
+ "Id": "ea5ae4eeb5e048d2993b10625ff69137",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "56581031d6b142f8b59bc3ddbd8e927f",
+ "End": "346b012075d046a197e39c4eac8d2c4a",
+ "Id": "261d4cd857e941a5ae15ab365a4c33aa",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c61959f6878747ec89c56877bf4b85c3",
+ "End": "41c593f6cbac44fa871093ef93e197a4",
+ "Id": "67c50679dcc844379edae0be4ff83bc9",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c61959f6878747ec89c56877bf4b85c3",
+ "End": "0afff9930100424cb30d073f0b042a74",
+ "Id": "16a51335325a4ef5a6bead4171d71319",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "79fd963952284d1caccd747cad9d548e",
+ "End": "e5d71bdad92749999bf5907dc60d9dde",
+ "Id": "dede433cf5f74a16b2030b32a582db05",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "52cd1bea4ad540a697709be4e92e159d",
+ "End": "0f01ce7235bf437f9bc78120df5296d9",
+ "Id": "30d1b1385efd459e8bfc51be08bf50ec",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "98f7294a76054a698da43cc2eeea869a",
+ "End": "6ddefcf70bc6464ea9cb033fd1262de1",
+ "Id": "41646d16f5ac4011a5ce40464328aca3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b2dc9a50886748b7b0fc17a7840ab9cd",
+ "End": "a43fe5d6c6dc4ed9881a4aaec441162a",
+ "Id": "3fcb6e4897e74066b90fa7d3039e42a2",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "7bae0cb5c907491096ac7da310f34411",
+ "End": "29ff70b9e5cb46e29276d7f8909a947f",
+ "Id": "5ee355ab0a7247ee993690de72f7ce00",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4fbccb1747af46568bdb39d1b1fe4439",
+ "End": "d021aefb4500418d97afa649c4d3bd37",
+ "Id": "887d54137d5b46519e304e565bfe5674",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "08d87207e5994515a75f1318ac325cc7",
+ "End": "9de9db8c24014718a68dccef6f4ff71d",
+ "Id": "dc52261a4eba4e9ebfe62f04a4a8506d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "561de80d180347c19457226be4f133ea",
+ "End": "fe6bd882d0de4fd8a84e64a37806b254",
+ "Id": "e31ca245816146d99290c2d7c65bdc51",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6c66985b5f5548a0aa6831f7cae5820d",
+ "End": "80d0bd0c7ec64c74b116894d7f68b6d8",
+ "Id": "d150e4f5feb34d8db950658b2ecd0980",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -5.8434758186340332,
+ "EyeY": 16.81348991394043,
+ "EyeZ": 19.638652801513672,
+ "LookX": 3.5747978687286377,
+ "LookY": -5.7383012771606445,
+ "LookZ": -24.840076446533203,
+ "UpX": 0.0012430736096575856,
+ "UpY": 0.9999619722366333,
+ "UpZ": -0.0086375679820775986
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "f20fc6756779434f9d734ece0b5707ff",
+ "Name": "Cone.ByPointsRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 888.936195462029,
+ "Y": 133.49059604127851
+ },
+ {
+ "Id": "253dfbb801304c5b861a5d688f6e04ff",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 563.936195462029,
+ "Y": 262.49059604127848
+ },
+ {
+ "Id": "dcbd8228065142138e4c464c9c563a9d",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 309.936195462029,
+ "Y": 271.14559604127845
+ },
+ {
+ "Id": "866139498be24e839f7afa8858e31e86",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 563.936195462029,
+ "Y": 38.490596041278479
+ },
+ {
+ "Id": "2c3571831e3f4b25b3ad4f53290fb06a",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 309.936195462029,
+ "Y": 55.973096041278495
+ },
+ {
+ "Id": "fe39a2f8e74b4e93bbb86f7816b8ea39",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 888.936195462029,
+ "Y": 640.49059604127842
+ },
+ {
+ "Id": "27c8c63205c940968bb40f6418e6302b",
+ "Name": "Geometry.Translate",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1336.936195462029,
+ "Y": 352.49059604127848
+ },
+ {
+ "Id": "2baa7eb93ca24735b2602d0a55144772",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 888.936195462029,
+ "Y": 493.49059604127848
+ },
+ {
+ "Id": "dec1992ff5564b72bdc04eb4a2eb6b79",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 888.936195462029,
+ "Y": 346.49059604127848
+ }
+ ],
+ "Annotations": [],
+ "X": 148.2033863467193,
+ "Y": 158.66657132054763,
+ "Zoom": 0.73443653645446583
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, xtranslation, ytranslation, ztranslation).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, xtranslation, ytranslation, ztranslation).md
new file mode 100644
index 00000000000..e61adab955f
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, xtranslation, ytranslation, ztranslation).md
@@ -0,0 +1,8 @@
+## In Depth
+`Geometry.Translate (xTranslation, yTranslation, zTranslation)` moves input geometry according to given displacements along the X, Y, and Z axes.
+
+In the example below, a cone is moved in the X and Z axis directions by a distance controlled by number sliders.
+___
+## Example File
+
+![Geometry.Translate(xTranslation, yTranslation, zTranslation)](./Autodesk.DesignScript.Geometry.Geometry.Translate(geometry,%20xtranslation,%20ytranslation,%20ztranslation)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, xtranslation, ytranslation, ztranslation)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, xtranslation, ytranslation, ztranslation)_img.jpg
new file mode 100644
index 00000000000..23f1c15dfad
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Geometry.Translate(geometry, xtranslation, ytranslation, ztranslation)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Helix.Radius.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Helix.Radius.md
index 1d5ba3f35b8..2e165447063 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Helix.Radius.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Helix.Radius.md
@@ -1,5 +1,8 @@
## In Depth
-Radius will return the center of an input sphere. In the example below, we use a ByBestFit node to create a sphere based on a set of random points. We then use a Radius node to determine the size of the best fit sphere.
+`Helix.Radius` returns the distance from the central axis to the point on the helix on a plane perpendicular to the axis.
+
+In the example below, we create a helix using `Helix.ByAxis`, then use `Helix.Radius` to find the radius of the helix.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Line.ByBestFitThroughPoints.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Line.ByBestFitThroughPoints.md
index c4329c64777..af79f180a22 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Line.ByBestFitThroughPoints.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Line.ByBestFitThroughPoints.md
@@ -1,5 +1,8 @@
## In Depth
-Plane By Best Fit Through Points uses a set of points and finds the plane that best approximates the set. In the example, we use a series of RandomList components to generate random x,y and z coordinates. The points are created By Coordinates, and the list of points is then used as an input for ByBestFitThroughPoints.
+`Line.BestFitThroughPoints` creates a line by approximating a scatter plot of points. The input is a list of points.
+
+In the example below, we use a number slider to control the number of random points generated and then find the best fit line through the set of points.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint.md
index e8aaefa84cc..3f27a7b7f2f 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint.md
@@ -1,5 +1,8 @@
## In Depth
-Reference planes can be created in both Revit projects and families. The reference plane in Revit does not dynamically change with its Dynamo inputs.
+`Line.ByStartPointEndPoint` creates a line between two input points.
+
+In the example below, we use two code blocks to specify the X, Y, and Z coordinates of two points and then create a line between the two points.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsCurve.ByControlPointsWeightsKnots.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsCurve.ByControlPointsWeightsKnots.md
index 65aa1719614..a21ea2bc2f5 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsCurve.ByControlPointsWeightsKnots.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsCurve.ByControlPointsWeightsKnots.md
@@ -1,5 +1,8 @@
## In Depth
-Add in-depth information about ByControlPointsWeightsKnots...
+`NurbsCurve.ByControlPointsWeightsKnots` allows us to manually control the weights and knots of a NurbsCurve. The list of weights should be the same length as the list of control points. The size of the list of knots must be equal to the number of control points plus the degree plus 1.
+
+In the example below, we first create a NurbsCurve by interpolating between a series of random points. We use knots, weights, and control points to find the corresponding parts of that curve. We can use `List.ReplaceItemAtIndex` to modify the list of weights. Finally, we use `NurbsCurve.ByControlPointsWeightsKnots` to recreate a NurbsCurve with the modified weights.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents.dyn
index e6d1995df62..3597764d96c 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents.dyn
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents.dyn
@@ -1,81 +1,621 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+{
+ "Uuid": "139aa0df-4b26-45f7-b486-f11ec05fb55f",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Vector": {
+ "Key": "Autodesk.DesignScript.Geometry.Vector",
+ "Value": "ProtoGeometry.dll"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "e65b8d5c43f6410da92f5c71a1e08e97",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "9dedbd1eb7b44c049138d793fdfe18b1",
+ "Name": "points",
+ "Description": "Point[][]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "df3780ef5f4740978dcdabc99f9c0dc5",
+ "Name": "startUTangents",
+ "Description": "Vector[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "424b9a0c69a84d7e8d38ce5322b8015a",
+ "Name": "endUTangents",
+ "Description": "Vector[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "c7cc031741394b919ba8c12deb6db88e",
+ "Name": "startVTangents",
+ "Description": "Vector[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "631b9050cd414403b3d69616b9b4d5ed",
+ "Name": "endVTangents",
+ "Description": "Vector[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "06d69a7ef4c94603aacb36dae14b952b",
+ "Name": "NurbsSurface",
+ "Description": "NurbsSurface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents@Autodesk.DesignScript.Geometry.Point[][],Autodesk.DesignScript.Geometry.Vector[],Autodesk.DesignScript.Geometry.Vector[],Autodesk.DesignScript.Geometry.Vector[],Autodesk.DesignScript.Geometry.Vector[]",
+ "Replication": "Auto",
+ "Description": "Creates a NurbsSurface with specified interpolated points and U and V degrees. The resultant surface will pass through all of the points. The number of tangents must match the number of points in the corresponding direction. The resultant surface will be degree 3 in both the U and V direction.\n\nNurbsSurface.ByPointsTangents (points: Point[][], startUTangents: Vector[], endUTangents: Vector[], startVTangents: Vector[], endVTangents: Vector[]): NurbsSurface"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1073f72361d841178f067c91f46f106f",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "8d4cff0f6d564e0fb68e027f0107c606",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8817b6e2f80b4705b50a10de8b405038",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "852e62b88f0f46808abbed7e76918806",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "c2f0f95cf86b43aeb644b5cc537f97cf",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "Replication": "CrossProduct",
+ "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "226bc7a252134fdc9cbb0bfc06747b03",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "d53af992a87142ca816dfde94064362e",
+ "Name": "",
+ "Description": "xPoints",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d22a1accec614d7fba5de3e2f92d2a45",
+ "Name": "",
+ "Description": "yPoints",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "xPoints = [-10,0,10];\nyPoints = [-10,0];"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "9647dfaa7b0641b8b05d66894647f218",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "ae1012df66144c56860eeccde70475e4",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "352044ad6b5c4ef89f7f3a929e2017d8",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "90618cc70cc4432abe4493bcc6238cb5",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "31e337fead2647c9ac653051434a4e57",
+ "Name": "",
+ "Description": "Value of expression at line 4",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Vector.ByCoordinates(1, 0, 1);\nVector.ByCoordinates(1, 0, -1);\nVector.ByCoordinates(0, 1, 1);\nVector.ByCoordinates(0, 1, -1);"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "6e2ec52e9d8241c4b88d8356a2d7c3cb",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "c7bdf57e4dd9461c9ab6a95576cdff53",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6428b68adfb8445ba38ddd8604399f3e",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "ba44f097731b4c00aaba97247285be87",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "abb8a1efddf44b5ca424e3954d0a4664",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "9e8760f3086a41c6897b7ae64abd943a",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a88edb46265f449484fdc7e993ba5cfd",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8a7a1f44f0c14117bc73c82eb3a85ae2",
+ "Name": "item2",
+ "Description": "Item Index #2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "4ebe7ef90ffd4fb0bb169f868cef0631",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "1eb53eae24f64958972f730df928de1b",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "c3c0d73bb2ed45c0b14484166c104e2c",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "9aa4292ce82c4d4fbcb836d56b834e1e",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "19fef117ae814a85988620d1566bc4b2",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "461b7caa5e784739abe593a24fde85ed",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "c19a1613bf8344a8a4dcd09b757bde5a",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "7c93c2f80a404bb5a5050abfd115030c",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "814e8dedd3994739a2e6a18153c074da",
+ "Name": "item2",
+ "Description": "Item Index #2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "876df1e6312d407f92646289ad36a148",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "c2f0f95cf86b43aeb644b5cc537f97cf",
+ "End": "9dedbd1eb7b44c049138d793fdfe18b1",
+ "Id": "6d1b60e119104583beb799367abc7af7",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d53af992a87142ca816dfde94064362e",
+ "End": "8d4cff0f6d564e0fb68e027f0107c606",
+ "Id": "d0a392345dbc4bcb8b6efaf2abaec453",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d22a1accec614d7fba5de3e2f92d2a45",
+ "End": "8817b6e2f80b4705b50a10de8b405038",
+ "Id": "470b0767a7884d20a4a22a3c76900a46",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ae1012df66144c56860eeccde70475e4",
+ "End": "c3c0d73bb2ed45c0b14484166c104e2c",
+ "Id": "d9a516a3edc14e878a4744ae8103b01a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ae1012df66144c56860eeccde70475e4",
+ "End": "9aa4292ce82c4d4fbcb836d56b834e1e",
+ "Id": "47f5df2494474924ad2f35522e6dd84c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "352044ad6b5c4ef89f7f3a929e2017d8",
+ "End": "c7bdf57e4dd9461c9ab6a95576cdff53",
+ "Id": "7267382642fb438588798273ff461d1c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "352044ad6b5c4ef89f7f3a929e2017d8",
+ "End": "6428b68adfb8445ba38ddd8604399f3e",
+ "Id": "754c9109ee2041b4b3da4a2bf07834fe",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "90618cc70cc4432abe4493bcc6238cb5",
+ "End": "9e8760f3086a41c6897b7ae64abd943a",
+ "Id": "871da3db24fc491cb5aedfc9fceecf5b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "90618cc70cc4432abe4493bcc6238cb5",
+ "End": "8a7a1f44f0c14117bc73c82eb3a85ae2",
+ "Id": "5ee0186231a744f981daa4928f3f03fb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "90618cc70cc4432abe4493bcc6238cb5",
+ "End": "c19a1613bf8344a8a4dcd09b757bde5a",
+ "Id": "7787c6ac2f28404c8a89dc815d21c364",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "90618cc70cc4432abe4493bcc6238cb5",
+ "End": "7c93c2f80a404bb5a5050abfd115030c",
+ "Id": "ffb9f4aaf678487f96ca417cb59946f3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "90618cc70cc4432abe4493bcc6238cb5",
+ "End": "814e8dedd3994739a2e6a18153c074da",
+ "Id": "8dcd7f1fa786460cb23344c71088706e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "31e337fead2647c9ac653051434a4e57",
+ "End": "a88edb46265f449484fdc7e993ba5cfd",
+ "Id": "81e8b5ac920f45baa55d224b633cce95",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ba44f097731b4c00aaba97247285be87",
+ "End": "631b9050cd414403b3d69616b9b4d5ed",
+ "Id": "8c656e8a9cdc4b82affbb11cea5700ce",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4ebe7ef90ffd4fb0bb169f868cef0631",
+ "End": "df3780ef5f4740978dcdabc99f9c0dc5",
+ "Id": "a3ed56e73ab94153bcb00563193f79e3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "19fef117ae814a85988620d1566bc4b2",
+ "End": "c7cc031741394b919ba8c12deb6db88e",
+ "Id": "af295549bc544298b6bcac00e6e3438a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "876df1e6312d407f92646289ad36a148",
+ "End": "424b9a0c69a84d7e8d38ce5322b8015a",
+ "Id": "50c4a445f50e4d8d82f0e860e286efbe",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "3.0",
+ "Data": {}
+ },
+ {
+ "ExtensionGuid": "DFBD9CC0-DB40-457A-939E-8C8555555A9D",
+ "Name": "Generative Design",
+ "Version": "1.2",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -24.607419967651367,
+ "EyeY": 18.742544174194336,
+ "EyeZ": 24.380161285400391,
+ "LookX": 12.4334716796875,
+ "LookY": -22.468406677246094,
+ "LookZ": -29.738014221191406,
+ "UpX": 0.14761900901794434,
+ "UpY": 0.92387807369232178,
+ "UpZ": -0.35306951403617859
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "e65b8d5c43f6410da92f5c71a1e08e97",
+ "Name": "NurbsSurface.ByPointsTangents",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 642.46989114363782,
+ "Y": 642.07014983825218
+ },
+ {
+ "Id": "1073f72361d841178f067c91f46f106f",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 254.23717479918491,
+ "Y": 361.60201788790584
+ },
+ {
+ "Id": "226bc7a252134fdc9cbb0bfc06747b03",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -141.91207690459345,
+ "Y": 373.4394804730947
+ },
+ {
+ "Id": "9647dfaa7b0641b8b05d66894647f218",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -241.02660259946924,
+ "Y": 663.31007029105763
+ },
+ {
+ "Id": "6e2ec52e9d8241c4b88d8356a2d7c3cb",
+ "Name": "List Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 307.47385082604796,
+ "Y": 726.91581222865761
+ },
+ {
+ "Id": "abb8a1efddf44b5ca424e3954d0a4664",
+ "Name": "List Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 307.44183174349894,
+ "Y": 888.00466968781313
+ },
+ {
+ "Id": "1eb53eae24f64958972f730df928de1b",
+ "Name": "List Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 304.78385020161238,
+ "Y": 573.43189852076284
+ },
+ {
+ "Id": "461b7caa5e784739abe593a24fde85ed",
+ "Name": "List Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 314.43060565733447,
+ "Y": 1092.9848485927082
+ }
+ ],
+ "Annotations": [],
+ "X": 226.36047026720104,
+ "Y": -113.7022393531912,
+ "Zoom": 0.639847040084828
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents.md
index c403311c8af..2361698c780 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents.md
@@ -1,7 +1,9 @@
## In Depth
-Creates a NurbsSurface with specified interpolated points and U and V degrees. The resultant surface will pass through all of the points. The number of tangents must match the number of points in the corresponding direction. The resultant surface will be degree 3 in both the U and V direction.
-___
-## Example File
+`NurbsSurface.ByPointsTangents` creates a smooth surface that passes through each of a grid (list of lists) of points. Specify tangent vectors to control the surface direction at the edges. The number of tangents must match the number of points in the corresponding direction (U - number of lists, V - number of points in each list).
+In the example below, a NurbsSurface is created from given points and U and V tangents.
+___
+## Example File
+![NurbsSurface.ByPointsTangents](./Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents_img.jpg
index 98a233e9d12..a9a07510c9b 100644
Binary files a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents_img.jpg and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.NurbsSurface.ByPointsTangents_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Add.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Add.md
index b005968ece5..bb1ecf4e4a3 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Add.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Add.md
@@ -1,5 +1,8 @@
## In Depth
-Add will return a Vector that is the sum of two other Vectors. In the example below, the sum of the WCS Z axis and X axis Vectors results in a Vector with coordinates of (1,0,1). The new Vector is represented as a Line.
+`Point.Add` adds the x, y, and z components of an input vector to the corresponding coordinates of the input point. This is the same as translating the point by the given vector and is equivalent to using `Geometry.Translate (vector)`.
+
+In the example below, we create a point using a code block to specify the x, y, and z coordinates, then add a world XAxis vector as the `vectorToAdd`. The result is the point translated by a distance of 1 in the positive x-direction.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Subtract.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Subtract.md
index 9dff06df98a..79b7e0c3b3c 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Subtract.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Subtract.md
@@ -1,5 +1,8 @@
## In Depth
-Subtract will return a Vector that is the difference of two other Vectors. In the example below, the difference of the a Vector with coordinates (1,0,1) and WCS Z axis results in a Vector with coordinates of (1,0,0). Adjusting the Vector Direction slider will change the vector's coordinate values and return a different subtracted vector. The Vectors are represented as Lines.
+`Point.Subtract` subtracts the x, y, and z components of an input vector from the corresponding coordinates of the input point. This is the same as translating the point by the reverse of a given vector.
+
+In the example below, we create a point using a code block to specify the x, y, and z coordinates, then add a world XAxis vector as the `vectorToSubtract`. The result is the point translated by a distance of 1 in the negative-x direction.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.X.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.X.md
index 7913cd97397..e42ec2237a7 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.X.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.X.md
@@ -1,5 +1,8 @@
## In Depth
-X returns a double representing a reference point's X coordinate value in the Revit conceptual design environment.
+`Point.X` returns the world space x value of an input point.
+
+In the example below, we use `Point.BySphericalCoordinates` to create a point and then use `Point.X` to return its x coordinate.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Y.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Y.md
index 606d59f76a7..d868af516bb 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Y.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Y.md
@@ -1,5 +1,8 @@
## In Depth
-Y returns a double representing a reference point's Y coordinate value in the Revit conceptual design environment.
+`Point.Y` returns the world space y value of an input point.
+
+In the example below, we use `Point.BySphericalCoordinates` to create a point and then use `Point.Y` to return the y coordinate.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Z.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Z.md
index 5b301cae8df..84b4af59627 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Z.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Point.Z.md
@@ -1,5 +1,8 @@
## In Depth
-Z returns a double representing a reference point's Z coordinate value in the Revit conceptual design environment.
+`Point.Z` returns the world space z value of an input point.
+
+In the example below, we use `Point.BySphericalCoordinates` to create a point and then use `Point.Z` to return its z coordinate.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves(curves, joinTolerance, trimCurves, trimLength).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves(curves, joinTolerance, trimCurves, trimLength).dyn
new file mode 100644
index 00000000000..0d219596c75
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves(curves, joinTolerance, trimCurves, trimLength).dyn
@@ -0,0 +1,448 @@
+{
+ "Uuid": "ece24c9b-d93e-4fa1-b16e-71cd10d2af16",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "dc4a442c37e84394ad07a302e20a6f8b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "9784079fe97a46c3a22d0a0e45f4ed3c",
+ "Name": "circle",
+ "Description": "Circle",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "65f8d02ebb5940148f47645f2d784ad1",
+ "Name": "numberSides",
+ "Description": "int\nDefault value : 5",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "d151ff5499504c9b9df740c8c356b1cd",
+ "Name": "Polygon",
+ "Description": "Polygon",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Polygon.RegularPolygon@Autodesk.DesignScript.Geometry.Circle,int",
+ "Replication": "Auto",
+ "Description": "Construct an inscribed Polygon Curve within a circle.\n\nPolygon.RegularPolygon (circle: Circle, numberSides: int = 5): Polygon"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "b1d759dfde434ef69437cf238612a5c4",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "54c4b5d6359a46d5ba55420ffdf2f4f3",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5c011c76e4ce461f9e8dbc3d0d18cd20",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "b540749554364616a1fb3544c5b71a93",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "Id": "f7194dc99489408d8178b17fe8ad7b67",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "cfb5ead61e1d486e918fe5406d11d448",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 5.0
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "b7ab4ba94b0c440a864bd977ed4fbcb5",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "1e11a702229844d8864bda95258a31da",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "fe7ea0724167405e8286c90a5bcc3f97",
+ "Name": "Geometry[]",
+ "Description": "Geometry[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Explode",
+ "Replication": "Auto",
+ "Description": "Separates compound or non-separated elements into their component parts.\n\nGeometry.Explode ( ): Geometry[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "6671c6bb1ad0486383be9b14c20f6c90",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "6079ad5b8f2049a9a7c0e1c278ccbaa1",
+ "Name": "list",
+ "Description": "List to shuffle.\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "232e7e9a8c6943c188e95c16da3018ce",
+ "Name": "list",
+ "Description": "Randomized list.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.Shuffle@var[]..[]",
+ "Replication": "Auto",
+ "Description": "Shuffles a list, randomizing the order of its items.\n\nList.Shuffle (list: var[]..[]): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "663c199ddc3040cba375dacb6e307c82",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "ecb20e97f60f4dc88e98d2f0763fa8cf",
+ "Name": "curves",
+ "Description": "Curves to group together to create one or more PolyCurves\n\nCurve[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "4d925950694f4ae18518e7ff1226f5b1",
+ "Name": "joinTolerance",
+ "Description": "Tolerance to determine size of gap allowed between curves to be joined\n\ndouble\nDefault value : 0.001",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "aec70093cac74b20999296f6969c5df3",
+ "Name": "trimCurves",
+ "Description": "bool\nDefault value : false",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "540825a8fa3c4952b2cb72ff1214ca2f",
+ "Name": "trimLength",
+ "Description": "double\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e6ce669af362485cb312cfc259214773",
+ "Name": "PolyCurve[]..[]",
+ "Description": "PolyCurve[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves@Autodesk.DesignScript.Geometry.Curve[],double,bool,double",
+ "Replication": "Auto",
+ "Description": "Make one or more polycurves by grouping connected curves. Choose a preferred join tolerance between 1e-6 and 1e-3 units.\n\nPolyCurve.ByGroupedCurves (curves: Curve[], joinTolerance: double = 0.001, trimCurves: bool = false, trimLength: double = 0): PolyCurve[]..[]"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "d151ff5499504c9b9df740c8c356b1cd",
+ "End": "1e11a702229844d8864bda95258a31da",
+ "Id": "d6f2bd8421f344d596164c383b75fe68",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b540749554364616a1fb3544c5b71a93",
+ "End": "9784079fe97a46c3a22d0a0e45f4ed3c",
+ "Id": "b07f2eb1a4014e85bc88d1281aa0b231",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "cfb5ead61e1d486e918fe5406d11d448",
+ "End": "5c011c76e4ce461f9e8dbc3d0d18cd20",
+ "Id": "977f938c8e3749d98571be14d011fa76",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "cfb5ead61e1d486e918fe5406d11d448",
+ "End": "65f8d02ebb5940148f47645f2d784ad1",
+ "Id": "9ef92bfd51784d32ba8633d89a9456e4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "fe7ea0724167405e8286c90a5bcc3f97",
+ "End": "6079ad5b8f2049a9a7c0e1c278ccbaa1",
+ "Id": "4c6f6f42918a49e0871000b36bae1d2d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "232e7e9a8c6943c188e95c16da3018ce",
+ "End": "ecb20e97f60f4dc88e98d2f0763fa8cf",
+ "Id": "9c340984557248b59699414653037026",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 100.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5874",
+ "RunType": "Manual",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -21.393106460571289,
+ "EyeY": 61.044334411621094,
+ "EyeZ": 28.072494506835938,
+ "LookX": 16.393106460571289,
+ "LookY": -50.044334411621094,
+ "LookZ": -36.072494506835938,
+ "UpX": 0.26176926493644714,
+ "UpY": 0.77439266443252563,
+ "UpZ": -0.57601475715637207
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "dc4a442c37e84394ad07a302e20a6f8b",
+ "Name": "Polygon.RegularPolygon",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 970.375,
+ "Y": 289.0
+ },
+ {
+ "Id": "b1d759dfde434ef69437cf238612a5c4",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 593.875,
+ "Y": 141.5
+ },
+ {
+ "Id": "f7194dc99489408d8178b17fe8ad7b67",
+ "Name": "Number Slider",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 145.875,
+ "Y": 323.0
+ },
+ {
+ "Id": "b7ab4ba94b0c440a864bd977ed4fbcb5",
+ "Name": "Geometry.Explode",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1301.0,
+ "Y": 289.0
+ },
+ {
+ "Id": "6671c6bb1ad0486383be9b14c20f6c90",
+ "Name": "List.Shuffle",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1630.5,
+ "Y": 289.0
+ },
+ {
+ "Id": "663c199ddc3040cba375dacb6e307c82",
+ "Name": "PolyCurve.ByGroupedCurves",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2022.5,
+ "Y": 289.0
+ }
+ ],
+ "Annotations": [
+ {
+ "Id": "89ece4adfd1140659fbe17344abd5f1e",
+ "Title": "Creating a pentagon, exploding it and randomizing the curves",
+ "DescriptionText": " ",
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [
+ "dc4a442c37e84394ad07a302e20a6f8b",
+ "b1d759dfde434ef69437cf238612a5c4",
+ "f7194dc99489408d8178b17fe8ad7b67",
+ "b7ab4ba94b0c440a864bd977ed4fbcb5",
+ "6671c6bb1ad0486383be9b14c20f6c90",
+ "5d3c8627243e431ba68a170bec2b7398"
+ ],
+ "HasNestedGroups": false,
+ "Left": 135.875,
+ "Top": 68.5,
+ "Width": 1724.625,
+ "Height": 398.5,
+ "FontSize": 36.0,
+ "GroupStyleId": "bc688959-ce34-4bf5-90f8-6ddd23f80989",
+ "InitialTop": 141.5,
+ "InitialHeight": 326.5,
+ "TextblockHeight": 63.0,
+ "Background": "#FFA4E1FF"
+ },
+ {
+ "Id": "5d3c8627243e431ba68a170bec2b7398",
+ "Title": "All curves are random and thus do not have an ordered way of being joined together. ",
+ "DescriptionText": null,
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [],
+ "HasNestedGroups": false,
+ "Left": 1579.5,
+ "Top": 224.0,
+ "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": "6671c6bb1ad0486383be9b14c20f6c90"
+ },
+ {
+ "Id": "29b69a89b6db459b86f2b8b83145b7a5",
+ "Title": "This node will group curves based on their proximity to other curves, either touching or within a join tolerance to correct re-order and connect them into a single PolyCurve.",
+ "DescriptionText": null,
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [],
+ "HasNestedGroups": false,
+ "Left": 2019.0,
+ "Top": 195.0,
+ "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": 85.857822538222308,
+ "Y": 159.35939758889697,
+ "Zoom": 0.48393088887524149
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves(curves, joinTolerance, trimCurves, trimLength).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves(curves, joinTolerance, trimCurves, trimLength).md
new file mode 100644
index 00000000000..4cbae5d85d9
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves(curves, joinTolerance, trimCurves, trimLength).md
@@ -0,0 +1,8 @@
+## In Depth
+`PolyCurve.ByGroupedCurves` creates a new PolyCurve by grouping multiple connected curves. It groups curves based on their proximity to other curves, either touching or within a given join tolerance, to connect them into a single PolyCurve.
+
+In the example below, a pentagon is exploded and its curves are randomized. `PolyCurve.ByGroupedCurves` is then used to group them into a PolyCurve.
+___
+## Example File
+
+![PolyCurve.ByGroupedCurves](./Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves(curves,%20joinTolerance,%20trimCurves,%20trimLength)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves(curves, joinTolerance, trimCurves, trimLength)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves(curves, joinTolerance, trimCurves, trimLength)_img.jpg
new file mode 100644
index 00000000000..b72b5742594
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves(curves, joinTolerance, trimCurves, trimLength)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves.md
deleted file mode 100644
index 7d895f63ca1..00000000000
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## In Depth
-PolyCurve.ByGroupedCurves will make one or more polycurves by grouping connected curves, (includes lines, arcs, etc.) with a given tolerance.
-___
-## Example File
-
-![PolyCurve.ByGroupedCurves](./Autodesk.DesignScript.Geometry.PolyCurve.ByGroupedCurves_img.png)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves(curves, joinTolerance, trimCurves, trimLength).dyn
similarity index 73%
rename from doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves.dyn
rename to doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves(curves, joinTolerance, trimCurves, trimLength).dyn
index c9c8a7ea34b..bd130ab0465 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves.dyn
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves(curves, joinTolerance, trimCurves, trimLength).dyn
@@ -1,5 +1,5 @@
{
- "Uuid": "3c9d0464-8643-5ffe-96e5-ab1769818209",
+ "Uuid": "7ced7b2d-a631-4369-9d77-6665e8e39744",
"IsCustomNode": false,
"Description": "",
"Name": "Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves",
@@ -8,7 +8,7 @@
},
"Inputs": [
{
- "Id": "74d100b9320c42a19737c18253352c6c",
+ "Id": "fa16955cc9a7434681b29d3351dd8b71",
"Name": "Number",
"Type": "number",
"Type2": "number",
@@ -22,12 +22,11 @@
"Nodes": [
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "cea57dee0ce14bfeb1497c7c8ff0feed",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Polygon.RegularPolygon@Autodesk.DesignScript.Geometry.Circle,int",
- "Id": "e8bd67d92058495087d072431b062d5a",
"Inputs": [
{
- "Id": "028f3749073848838e7c5e1ed952c017",
+ "Id": "b84fc4a4aa9042f0a484b02dc621e657",
"Name": "circle",
"Description": "Circle",
"UsingDefaultValue": false,
@@ -36,7 +35,7 @@
"KeepListStructure": false
},
{
- "Id": "196b2caaa69c47da9b978b950d79813d",
+ "Id": "470ee6113fd34d608177756d3dd6dac2",
"Name": "numberSides",
"Description": "int\nDefault value : 5",
"UsingDefaultValue": true,
@@ -47,7 +46,7 @@
],
"Outputs": [
{
- "Id": "885fe67deb624e16b2b770e5a776bcac",
+ "Id": "0fc71041a9764f28b462864676a656e5",
"Name": "Polygon",
"Description": "Polygon",
"UsingDefaultValue": false,
@@ -56,17 +55,17 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Polygon.RegularPolygon@Autodesk.DesignScript.Geometry.Circle,int",
"Replication": "Auto",
"Description": "Construct an inscribed Polygon Curve within a circle.\n\nPolygon.RegularPolygon (circle: Circle, numberSides: int = 5): Polygon"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "3eb0c793c1834954bcae07ad9b471654",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
- "Id": "15359348927049f6873ee088814ec018",
"Inputs": [
{
- "Id": "a7c19a53b6d24743b3d2077a7c7b4e8e",
+ "Id": "7ecb38d047b744f88ab5fee2b3a0d924",
"Name": "centerPoint",
"Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
"UsingDefaultValue": true,
@@ -75,7 +74,7 @@
"KeepListStructure": false
},
{
- "Id": "0c120af0b03e4d69adb0c86132fa7448",
+ "Id": "da0d349ece154541ae8bca8a394a8c37",
"Name": "radius",
"Description": "Radius\n\ndouble\nDefault value : 1",
"UsingDefaultValue": true,
@@ -86,7 +85,7 @@
],
"Outputs": [
{
- "Id": "e8bce0bc0e6f4960b90d9fbfea32a4f7",
+ "Id": "0ac9bbc0c6964a47b51394bfab0808b4",
"Name": "Circle",
"Description": "Circle created with center point and radius",
"UsingDefaultValue": false,
@@ -95,17 +94,17 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
"Replication": "Auto",
"Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "db852272f12d4658b8e25db0b5471ac1",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double",
- "Id": "ae2cf4d3605b412d995e3dfbda63b359",
"Inputs": [
{
- "Id": "7a32aef3fe6b412da72e9b2446f69901",
+ "Id": "56446a9139b94014b7ad13e5db0e4aff",
"Name": "x",
"Description": "X coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
@@ -114,7 +113,7 @@
"KeepListStructure": false
},
{
- "Id": "07ffe30b5185419bb7305bd0a5cf0f70",
+ "Id": "d13c75a657bb4df5befd296f3e5cf173",
"Name": "y",
"Description": "Y coordinate\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
@@ -125,7 +124,7 @@
],
"Outputs": [
{
- "Id": "488e8561195d4e5da83aa49be51fc691",
+ "Id": "9dd7cdcb5c344552baa81ea81d81a314",
"Name": "Point",
"Description": "Point created by coordinates",
"UsingDefaultValue": false,
@@ -134,18 +133,18 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double",
"Replication": "Auto",
"Description": "Form a Point in the XY plane given two 2 cartesian coordinates. The Z component is 0.\n\nPoint.ByCoordinates (x: double = 0, y: double = 0): Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "2eb4a46c56e14511b867475fb22d0de9",
"NodeType": "CodeBlockNode",
- "Code": "1;\n3;",
- "Id": "1b45a3194e6c4429ae3cb3322157dced",
"Inputs": [],
"Outputs": [
{
- "Id": "88e962e0cfda488f91f5d5d72667562d",
+ "Id": "bc44e22f90d642eeb697182ef9290b66",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -154,7 +153,7 @@
"KeepListStructure": false
},
{
- "Id": "ef6a38994a9d400abd89fd096675d424",
+ "Id": "c15a70d741b7449abeddf7367f56a56d",
"Name": "",
"Description": "Value of expression at line 2",
"UsingDefaultValue": false,
@@ -164,18 +163,18 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "1;\n3;"
},
{
"ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
- "NodeType": "NumberInputNode",
"NumberType": "Double",
- "InputValue": 5.0,
- "Id": "74d100b9320c42a19737c18253352c6c",
+ "Id": "fa16955cc9a7434681b29d3351dd8b71",
+ "NodeType": "NumberInputNode",
"Inputs": [],
"Outputs": [
{
- "Id": "419351d39fc3422f87e3767efafafb2d",
+ "Id": "f7a961de4b81420883d5a8c53e8fd822",
"Name": "",
"Description": "Double",
"UsingDefaultValue": false,
@@ -185,16 +184,16 @@
}
],
"Replication": "Disabled",
- "Description": "Creates a number"
+ "Description": "Creates a number",
+ "InputValue": 5.0
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "f8c951af36d54b87822eacd2fcc28bca",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Explode",
- "Id": "0edebe63c1174265802646b6e9e1f086",
"Inputs": [
{
- "Id": "895cdf3c4a7f4a18bf155a6c58d80401",
+ "Id": "6b273a63e8bc46a29bec564748b47d69",
"Name": "geometry",
"Description": "Autodesk.DesignScript.Geometry.Geometry",
"UsingDefaultValue": false,
@@ -205,7 +204,7 @@
],
"Outputs": [
{
- "Id": "652be9c443b545e29e3c961ff3064f41",
+ "Id": "c5aa598011ad4c62aca920e571d0979f",
"Name": "Geometry[]",
"Description": "Geometry[]",
"UsingDefaultValue": false,
@@ -214,17 +213,17 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Explode",
"Replication": "Auto",
"Description": "Separates compound or non-separated elements into their component parts.\n\nGeometry.Explode ( ): Geometry[]"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "4787fcbe7acf463d877516db6706d220",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves@Autodesk.DesignScript.Geometry.Curve[],double,bool,double",
- "Id": "f7dba8d5ff44407c9a337edd06c62f60",
"Inputs": [
{
- "Id": "f906dfaff37244f5abc832ca6449fb33",
+ "Id": "f5df868a2745417684448ca9b85ddbd9",
"Name": "curves",
"Description": "Curves to join into polycurve\n\nCurve[]",
"UsingDefaultValue": false,
@@ -233,7 +232,7 @@
"KeepListStructure": false
},
{
- "Id": "3fa28aee75f7443eb5d5faa2da0238ca",
+ "Id": "55edd51dd4034031846d67aaabb04594",
"Name": "joinTolerance",
"Description": "Tolerance to determine size of gap allowed between curves to be joined\n\ndouble\nDefault value : 0.001",
"UsingDefaultValue": true,
@@ -242,7 +241,7 @@
"KeepListStructure": false
},
{
- "Id": "cc79d3efb7fa4dccbf7af9a8facbd4e9",
+ "Id": "551e4cb01c8f40e2a967cedf31c61cac",
"Name": "trimCurves",
"Description": "bool\nDefault value : false",
"UsingDefaultValue": true,
@@ -251,7 +250,7 @@
"KeepListStructure": false
},
{
- "Id": "20ca032e6719457e9edadd41ab05a43c",
+ "Id": "e82b43ec7c944b18bd245181aa14bc73",
"Name": "trimLength",
"Description": "double\nDefault value : 0",
"UsingDefaultValue": true,
@@ -262,7 +261,7 @@
],
"Outputs": [
{
- "Id": "11b3687a3596436ebef77218e828687e",
+ "Id": "a25c8ef8278e40559fc63b6aa98f2f2f",
"Name": "PolyCurve",
"Description": "Polycurve created by joined curves",
"UsingDefaultValue": false,
@@ -271,69 +270,70 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves@Autodesk.DesignScript.Geometry.Curve[],double,bool,double",
"Replication": "Auto",
"Description": "Make PolyCurve by joining curves. Flips curve as needed for connectivity. Choose a preferred join tolerance between 1e-6 and 1e-3 units.\n\nPolyCurve.ByJoinedCurves (curves: Curve[], joinTolerance: double = 0.001, trimCurves: bool = false, trimLength: double = 0): PolyCurve"
}
],
"Connectors": [
{
- "Start": "885fe67deb624e16b2b770e5a776bcac",
- "End": "895cdf3c4a7f4a18bf155a6c58d80401",
- "Id": "ab9d6311986949b1be7828fb95577674",
+ "Start": "0fc71041a9764f28b462864676a656e5",
+ "End": "6b273a63e8bc46a29bec564748b47d69",
+ "Id": "032c0c3460864f2abd5786480a0434f2",
"IsHidden": "False"
},
{
- "Start": "e8bce0bc0e6f4960b90d9fbfea32a4f7",
- "End": "028f3749073848838e7c5e1ed952c017",
- "Id": "85c3189780464b0e94c877c834294503",
+ "Start": "0ac9bbc0c6964a47b51394bfab0808b4",
+ "End": "b84fc4a4aa9042f0a484b02dc621e657",
+ "Id": "62f3bb53d3074f49b26810dae69dedd0",
"IsHidden": "False"
},
{
- "Start": "488e8561195d4e5da83aa49be51fc691",
- "End": "a7c19a53b6d24743b3d2077a7c7b4e8e",
- "Id": "9ab75dd6fe574f269d0044ea1fc5dd2e",
+ "Start": "9dd7cdcb5c344552baa81ea81d81a314",
+ "End": "7ecb38d047b744f88ab5fee2b3a0d924",
+ "Id": "c9fe4f085b6840ccb5160b0027759f89",
"IsHidden": "False"
},
{
- "Start": "88e962e0cfda488f91f5d5d72667562d",
- "End": "7a32aef3fe6b412da72e9b2446f69901",
- "Id": "09b46a30c910413f90cb07ee6a699de1",
+ "Start": "bc44e22f90d642eeb697182ef9290b66",
+ "End": "56446a9139b94014b7ad13e5db0e4aff",
+ "Id": "d5df2643a6da4354ab7a80b96ccc21cb",
"IsHidden": "False"
},
{
- "Start": "ef6a38994a9d400abd89fd096675d424",
- "End": "07ffe30b5185419bb7305bd0a5cf0f70",
- "Id": "5f0cd0e7d8014365a4be87c2cdbe295f",
+ "Start": "c15a70d741b7449abeddf7367f56a56d",
+ "End": "d13c75a657bb4df5befd296f3e5cf173",
+ "Id": "cdf5878308704f83ae2f6a3a93f1965c",
"IsHidden": "False"
},
{
- "Start": "419351d39fc3422f87e3767efafafb2d",
- "End": "0c120af0b03e4d69adb0c86132fa7448",
- "Id": "24b7152b5e884b42af43ae207130fc8b",
+ "Start": "f7a961de4b81420883d5a8c53e8fd822",
+ "End": "da0d349ece154541ae8bca8a394a8c37",
+ "Id": "1019084bcc364246826e6ea1cf29a06f",
"IsHidden": "False"
},
{
- "Start": "419351d39fc3422f87e3767efafafb2d",
- "End": "196b2caaa69c47da9b978b950d79813d",
- "Id": "d0f16d97efd8496cb68fa03ca9ba65b6",
+ "Start": "f7a961de4b81420883d5a8c53e8fd822",
+ "End": "470ee6113fd34d608177756d3dd6dac2",
+ "Id": "4f1d15f464814fd7aa187847f63670dc",
"IsHidden": "False"
},
{
- "Start": "652be9c443b545e29e3c961ff3064f41",
- "End": "f906dfaff37244f5abc832ca6449fb33",
- "Id": "ffa4811af30d4409b789a6d7bcec012e",
+ "Start": "c5aa598011ad4c62aca920e571d0979f",
+ "End": "f5df868a2745417684448ca9b85ddbd9",
+ "Id": "735d78c82caa4ac4bcbdd0a55c7c2a27",
"IsHidden": "False"
}
],
"Dependencies": [],
"NodeLibraryDependencies": [],
- "Thumbnail": null,
+ "Thumbnail": "",
"GraphDocumentationURL": null,
"ExtensionWorkspaceData": [
{
"ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
"Name": "Properties",
- "Version": "2.17",
+ "Version": "2.19",
"Data": {}
}
],
@@ -350,15 +350,15 @@
"ScaleFactor": 1.0,
"HasRunWithoutCrash": true,
"IsVisibleInDynamoLibrary": true,
- "Version": "2.17.0.3255",
- "RunType": "Manual",
+ "Version": "2.19.0.5874",
+ "RunType": "Automatic",
"RunPeriod": "1000"
},
"Camera": {
"Name": "_Background Preview",
- "EyeX": -1.3467477338674225,
- "EyeY": 9.1670795838008026,
- "EyeZ": 4.8400235098915392,
+ "EyeX": -5.2865187525749207,
+ "EyeY": 8.4793238639831543,
+ "EyeZ": 3.4582529067993164,
"LookX": 3.300147533416748,
"LookY": -5.7156438827514648,
"LookZ": -6.5646471977233887,
@@ -369,79 +369,79 @@
"ConnectorPins": [],
"NodeViews": [
{
+ "Id": "cea57dee0ce14bfeb1497c7c8ff0feed",
"Name": "Polygon.RegularPolygon",
- "ShowGeometry": true,
- "Id": "e8bd67d92058495087d072431b062d5a",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 287.19563845001596,
- "Y": -99.557196209511176
+ "ShowGeometry": true,
+ "X": 288.46612959296908,
+ "Y": -104.02052099892569
},
{
+ "Id": "3eb0c793c1834954bcae07ad9b471654",
"Name": "Circle.ByCenterPointRadius",
- "ShowGeometry": false,
- "Id": "15359348927049f6873ee088814ec018",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -88.804361549984037,
- "Y": -99.557196209511176
+ "ShowGeometry": false,
+ "X": -95.8617772852532,
+ "Y": -165.88497209429113
},
{
+ "Id": "db852272f12d4658b8e25db0b5471ac1",
"Name": "Point.ByCoordinates",
- "ShowGeometry": false,
- "Id": "ae2cf4d3605b412d995e3dfbda63b359",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -413.60436154998411,
- "Y": -177.55719620951118
+ "ShowGeometry": false,
+ "X": -412.53387040703092,
+ "Y": -182.02052099892569
},
{
+ "Id": "2eb4a46c56e14511b867475fb22d0de9",
"Name": "Code Block",
- "ShowGeometry": false,
- "Id": "1b45a3194e6c4429ae3cb3322157dced",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -668.00436154998408,
- "Y": -168.90219620951117
+ "ShowGeometry": false,
+ "X": -666.53387040703092,
+ "Y": -173.36552099892569
},
{
+ "Id": "fa16955cc9a7434681b29d3351dd8b71",
"Name": "Number",
- "ShowGeometry": false,
- "Id": "74d100b9320c42a19737c18253352c6c",
"IsSetAsInput": true,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -413.60436154998411,
- "Y": 12.442803790488824
+ "ShowGeometry": false,
+ "X": -412.53387040703092,
+ "Y": 7.97947900107431
},
{
+ "Id": "f8c951af36d54b87822eacd2fcc28bca",
"Name": "Geometry.Explode",
- "ShowGeometry": true,
- "Id": "0edebe63c1174265802646b6e9e1f086",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 643.195638450016,
- "Y": -99.557196209511176
+ "ShowGeometry": true,
+ "X": 644.46612959296908,
+ "Y": -104.02052099892569
},
{
+ "Id": "4787fcbe7acf463d877516db6706d220",
"Name": "PolyCurve.ByJoinedCurves",
- "ShowGeometry": true,
- "Id": "f7dba8d5ff44407c9a337edd06c62f60",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 995.99563845001592,
- "Y": -99.557196209511176
+ "ShowGeometry": true,
+ "X": 994.118477263776,
+ "Y": -113.0827926873597
}
],
"Annotations": [],
- "X": 461.68605612107274,
- "Y": 215.59470836825085,
- "Zoom": 0.66060355518809433
+ "X": 414.4583702778699,
+ "Y": 195.04424511807269,
+ "Zoom": 0.58161697902844367
}
}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves(curves, joinTolerance, trimCurves, trimLength).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves(curves, joinTolerance, trimCurves, trimLength).md
new file mode 100644
index 00000000000..b744112606c
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves(curves, joinTolerance, trimCurves, trimLength).md
@@ -0,0 +1,8 @@
+## In Depth
+`PolyCurve.ByJoinedCurves` creates joined curves from a set of curves with matching vertices. You can determine the permissible size of the gap between curves to be joined with the âjoinTolerance` input.
+
+In the example below, a `Polygon.RegularPolygon` is exploded into a curve list and is then rejoined into a PolyCurve.
+___
+## Example File
+
+![PolyCurve.ByJoinedCurves](./Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves(curves,%20joinTolerance,%20trimCurves,%20trimLength)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves(curves, joinTolerance, trimCurves, trimLength)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves(curves, joinTolerance, trimCurves, trimLength)_img.jpg
new file mode 100644
index 00000000000..4ddc60f7921
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves(curves, joinTolerance, trimCurves, trimLength)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves.md
deleted file mode 100644
index bdb213243f4..00000000000
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves.md
+++ /dev/null
@@ -1,7 +0,0 @@
-## In Depth
-Polycurve By Joined Curves creates joined curves from a set of curves with matching vertices. In this example, a RegularPolygon is exploded into a curve list and is then rejoined into a Polycurve.
-___
-## Example File
-
-![ByJoinedCurves](./Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves_img.jpg)
-
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves_img.jpg
deleted file mode 100644
index 57168292208..00000000000
Binary files a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves_img.jpg and /dev/null differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByPoints.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByPoints.md
index 0229ce9e376..b96a29710a9 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByPoints.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.ByPoints.md
@@ -1,5 +1,8 @@
## In Depth
-Revit will generate and contour a mesh from a list of supplied points. The points cannot be collinear.
+`PolyCurve.ByPoints` creates joined curves from a set of vertices. This node also enables toggling between a closed and an open shape with the `connectLastToFirst` input.
+
+In the example below, points are created along a circle and are redrawn with a `PolyCurve.ByPoints` node, creating a closed polygon shape.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Curves.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Curves.md
index 2899b31d92e..9d17eac521b 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Curves.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Curves.md
@@ -1,5 +1,8 @@
## In Depth
-A revision cloud's curves are returned as geometry in Dynamo.
+`PolyCurve.Curves` returns a list of the individual curves that make up an input PolyCurve.
+
+In the example below, we generate a set of random points and then use `PolyCurve.ByPoints` to create an open PolyCurve. We then use `PolyCurve.Curves` to generate a list of the individual curves making up the PolyCurve.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Heal.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Heal.dyn
new file mode 100644
index 00000000000..386d11f5cf8
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Heal.dyn
@@ -0,0 +1,409 @@
+{
+ "Uuid": "8e601d6f-3a54-4d0c-bbb1-f96ac106f176",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.PolyCurve.Heal",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Line": {
+ "Key": "Autodesk.DesignScript.Geometry.Line",
+ "Value": "ProtoGeometry.dll"
+ },
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ },
+ "PolyCurve": {
+ "Key": "Autodesk.DesignScript.Geometry.PolyCurve",
+ "Value": "ProtoGeometry.dll"
+ },
+ "Color": {
+ "Key": "DSCore.Color",
+ "Value": "DSCoreNodes.dll"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "fea628b9698d48abb9366011a5489be5",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "cae171040f6e456b9a40d2b79e994593",
+ "Name": "",
+ "Description": "a",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "e2055df5216e4d57a76ed8e783b73d51",
+ "Name": "",
+ "Description": "b",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "c5384ee03f764bf98a8a6ffbb884cc9d",
+ "Name": "",
+ "Description": "c",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "94d811b052834ae89821e7f57e3bddfd",
+ "Name": "",
+ "Description": "d",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "7d47fccda7a34035b0fb75c7b66b8557",
+ "Name": "",
+ "Description": "t1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "a = Line.ByStartPointEndPoint(Point.ByCoordinates(0, 0, 0), Point.ByCoordinates(1000, 0, 0));\nb = Line.ByStartPointEndPoint(Point.ByCoordinates(1000, 0, 0), Point.ByCoordinates(1000, 1000, 0));\nc = Line.ByStartPointEndPoint(Point.ByCoordinates(1000, 1000, 0), Point.ByCoordinates(0, 1000, 0));\nd = Line.ByStartPointEndPoint(Point.ByCoordinates(0, 1000, 0), Point.ByCoordinates(100, -100, 0));\n\nt1 = [ a, b, c, d ];"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "f98f8afc9189497cacc68f861ef5b880",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "033cbdbd512f4650bff84bdaaadd3e65",
+ "Name": "t1",
+ "Description": "t1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "a467d37750d6446488c8dfc4d4c86d06",
+ "Name": "",
+ "Description": "polyCurve1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "polyCurve1 = PolyCurve.ByJoinedCurves(t1, 0.001, false, 0);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "9ac0e47511c64d07a5faf0a3df5f1642",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "1603a57e3ebf495991e5d2fcaa77d707",
+ "Name": "polyCurve",
+ "Description": "Autodesk.DesignScript.Geometry.PolyCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "38aca096029b4ae18732eefe72bf806c",
+ "Name": "Point[]",
+ "Description": "Point[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolyCurve.Points",
+ "Replication": "Auto",
+ "Description": "Returns the start point of the first component and the end points of every component curve. For a closed polycurve, as the start and end points are the same, the end point is excluded.\n\nPolyCurve.Points: Point[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "897ad78e9daf458eabcba15f1f9a5c03",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "7449a73b352549e7a93ffeba1d229109",
+ "Name": "polyCurve",
+ "Description": "Autodesk.DesignScript.Geometry.PolyCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "63671c34b5d44cb1ab123950adebda9b",
+ "Name": "trimLength",
+ "Description": "If trimLength is greater than 0 then end segments longer than trimLength will not be trimmed.\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "c1c4948fb7e94173a7094bef6ad241d2",
+ "Name": "PolyCurve",
+ "Description": "Non-self-intersecting, non-overlapping PolyCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolyCurve.Heal@double",
+ "Replication": "Auto",
+ "Description": "Heals a self-intersecting PolyCurve by returning a new one that isn't self-intersecting if the overlapping segment length is less than or equal to trimLength.\n\nPolyCurve.Heal (trimLength: double = 0): PolyCurve"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "1c30d89118404504ae845a2e69f5cd64",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "e55e18df204f413883aabd5a6bf21604",
+ "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",
+ "Code": "Color.ByARGB(100,255,75,75);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "0884cd9fd9a94df3b32d290c05e0c1de",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "f09b8deab8e343be9c5dde8cdaf23498",
+ "Name": "geometry",
+ "Description": "The geometry to which you would like to apply color.\n\nGeometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "c85f0fffd8564bf9ad78ca81012f2456",
+ "Name": "color",
+ "Description": "The color.\n\nColor",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "5298572523dc43a3bb717619d159a185",
+ "Name": "GeometryColor",
+ "Description": "A Display object.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Modifiers.GeometryColor.ByGeometryColor@Autodesk.DesignScript.Geometry.Geometry,DSCore.Color",
+ "Replication": "Auto",
+ "Description": "Display geometry using a color.\n\nGeometryColor.ByGeometryColor (geometry: Geometry, color: Color): GeometryColor"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "7d47fccda7a34035b0fb75c7b66b8557",
+ "End": "033cbdbd512f4650bff84bdaaadd3e65",
+ "Id": "528bace2aa044d02a8c386ba8131d16f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a467d37750d6446488c8dfc4d4c86d06",
+ "End": "7449a73b352549e7a93ffeba1d229109",
+ "Id": "640c47b1dfec4bd5a04796cda939dda5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a467d37750d6446488c8dfc4d4c86d06",
+ "End": "f09b8deab8e343be9c5dde8cdaf23498",
+ "Id": "db02e0118a1e451bb2597cf418ccb072",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c1c4948fb7e94173a7094bef6ad241d2",
+ "End": "1603a57e3ebf495991e5d2fcaa77d707",
+ "Id": "43e0028cdb5c472fa572161bb8d20ae5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e55e18df204f413883aabd5a6bf21604",
+ "End": "c85f0fffd8564bf9ad78ca81012f2456",
+ "Id": "10fe9a6ecafd42dbabea47e4263ca5cc",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "3.0",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5874",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": 2412.05712890625,
+ "EyeY": 2370.64111328125,
+ "EyeZ": 410.162353515625,
+ "LookX": -1656.14599609375,
+ "LookY": -2854.080078125,
+ "LookZ": -1060.75390625,
+ "UpX": -0.574835479259491,
+ "UpY": 0.73075836896896362,
+ "UpZ": -0.36817991733551025
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "fea628b9698d48abb9366011a5489be5",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 265.0030442174691,
+ "Y": -92.327868545668224
+ },
+ {
+ "Id": "f98f8afc9189497cacc68f861ef5b880",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1103.0030442174691,
+ "Y": -10.430368545668216
+ },
+ {
+ "Id": "9ac0e47511c64d07a5faf0a3df5f1642",
+ "Name": "PolyCurve.Points",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2131.5030442174689,
+ "Y": -10.257868545668146
+ },
+ {
+ "Id": "897ad78e9daf458eabcba15f1f9a5c03",
+ "Name": "PolyCurve.Heal",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1779.50304421747,
+ "Y": -10.257868545668202
+ },
+ {
+ "Id": "1c30d89118404504ae845a2e69f5cd64",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1683.5255841936626,
+ "Y": -187.9027767627224
+ },
+ {
+ "Id": "0884cd9fd9a94df3b32d290c05e0c1de",
+ "Name": "GeometryColor.ByGeometryColor",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2034.3341452874968,
+ "Y": -284.50106139311112
+ }
+ ],
+ "Annotations": [
+ {
+ "Id": "0838e1e22d53437dab4bbd059baeba27",
+ "Title": "Visualize overlapping PolyCurve",
+ "DescriptionText": " ",
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [
+ "1c30d89118404504ae845a2e69f5cd64",
+ "0884cd9fd9a94df3b32d290c05e0c1de"
+ ],
+ "HasNestedGroups": false,
+ "Left": 1673.5255841936626,
+ "Top": -357.50106139311112,
+ "Width": 690.808561093834,
+ "Height": 301.59828463038872,
+ "FontSize": 36.0,
+ "GroupStyleId": "bc688959-ce34-4bf5-90f8-6ddd23f80989",
+ "InitialTop": -284.50106139311112,
+ "InitialHeight": 241.59828463038872,
+ "TextblockHeight": 63.0,
+ "Background": "#FFA4E1FF"
+ }
+ ],
+ "X": -66.552850919195407,
+ "Y": 331.49256042785674,
+ "Zoom": 0.52965074759975439
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Heal.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Heal.md
new file mode 100644
index 00000000000..5d14741c099
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Heal.md
@@ -0,0 +1,8 @@
+## In Depth
+`PolyCurve.Heal` takes a self-intersecting PolyCurve and returns a new PolyCurve that does not self-intersect. The input PolyCurve may not have more than 3 self-intersections. In other words, if any single segment of the PolyCurve meets or intersects more than 2 other segments, the heal wonât work. Input a `trimLength` greater than 0, and end segments longer than the `trimLength` will not be trimmed.
+
+In the example below, a self-intersecting PolyCurve is healed using `PolyCurve.Heal`.
+___
+## Example File
+
+![PolyCurve.Heal](./Autodesk.DesignScript.Geometry.PolyCurve.Heal_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Heal_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Heal_img.jpg
new file mode 100644
index 00000000000..e3a2d7dc830
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Heal_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Points.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Points.dyn
new file mode 100644
index 00000000000..f700c93f8ed
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Points.dyn
@@ -0,0 +1,493 @@
+{
+ "Uuid": "49b221a5-4e02-49a9-a49e-4593f84cf813",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.PolyCurve.Points",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "f3def252e475423586731ebbf342c5c1",
+ "Name": "Number",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "5",
+ "NumberType": "Double",
+ "Description": "Creates a number",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "a8d90c916f0c4bfe9147851c69965782",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "9a717b4e9acd432b91f06abab50daf46",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "72c6901193454f389dbe2dfc2026e831",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "36624f92be4c41618b2b0412bb013568",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "f85ea29baa284e3e989c3e60af54e006",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "81ce03de9d7442db9fb94adadc817539",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "95f741c48ae14c0aa41d45be8c60a2b2",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "b5b97679a4284a869e4363518071ef2c",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point in the XY plane given two 2 cartesian coordinates. The Z component is 0.\n\nPoint.ByCoordinates (x: double = 0, y: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "2c9a68952f4a4a4c892d97d7730c8a95",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "2e53db3a408f46a3bedaba507ee71f48",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "e4b98094aa5f4654bfeec4f8ab15d953",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "1;\n3;"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "f3def252e475423586731ebbf342c5c1",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "97a23f1b36294508913be939970de203",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 5.0
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d45e5b2520674c5494fa7058e0b76db1",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "06e9db862a7a4c978454288f113c5702",
+ "Name": "circle",
+ "Description": "Circle",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "7a090bc713444de0af39c8e893aac759",
+ "Name": "numberSides",
+ "Description": "int\nDefault value : 5",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "b86fc9cdcc934c70a8b8aaed0a303e87",
+ "Name": "Polygon",
+ "Description": "Polygon",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Polygon.RegularPolygon@Autodesk.DesignScript.Geometry.Circle,int",
+ "Replication": "Auto",
+ "Description": "Construct an inscribed Polygon Curve within a circle.\n\nPolygon.RegularPolygon (circle: Circle, numberSides: int = 5): Polygon"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "44e102d6defe494891ed9658a2265909",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "ac5279e11e2b4d4783a70553e216d28e",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "a18538ffe56d40058c23d39d6af21894",
+ "Name": "Geometry[]",
+ "Description": "Geometry[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Explode",
+ "Replication": "Auto",
+ "Description": "Separates compound or non-separated elements into their component parts.\n\nGeometry.Explode ( ): Geometry[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "26ad119ef2c249e1b37852ef626f75bf",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "e4aa146177724f96a0ac68bd91dc4e03",
+ "Name": "curves",
+ "Description": "Curves to join into polycurve\n\nCurve[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "75481ea4b59c4c51a87cede04046764a",
+ "Name": "joinTolerance",
+ "Description": "Tolerance to determine size of gap allowed between curves to be joined\n\ndouble\nDefault value : 0.001",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "2f87031cc27a4e17a0df49ff4075f20d",
+ "Name": "trimCurves",
+ "Description": "bool\nDefault value : false",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "140662c7671b4476a145b9afeeb27c5e",
+ "Name": "trimLength",
+ "Description": "double\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "5c681a4bbf6743fea363e9f2f3570833",
+ "Name": "PolyCurve",
+ "Description": "Polycurve created by joined curves",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolyCurve.ByJoinedCurves@Autodesk.DesignScript.Geometry.Curve[],double,bool,double",
+ "Replication": "Auto",
+ "Description": "Make PolyCurve by joining curves. Flips curve as needed for connectivity. Choose a preferred join tolerance between 1e-6 and 1e-3 units.\n\nPolyCurve.ByJoinedCurves (curves: Curve[], joinTolerance: double = 0.001, trimCurves: bool = false, trimLength: double = 0): PolyCurve"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "af46bb1f48d84d40b04d6d260c58a7e5",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "b0245fe67b864cfeb7b4e81bcc5874fd",
+ "Name": "polyCurve",
+ "Description": "Autodesk.DesignScript.Geometry.PolyCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "3f8f69f5ee0444498d7771951d5c224c",
+ "Name": "Point[]",
+ "Description": "Point[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolyCurve.Points",
+ "Replication": "Auto",
+ "Description": "Returns the start point of the first component and the end points of every component curve. For a closed polycurve, as the start and end points are the same, the end point is excluded.\n\nPolyCurve.Points: Point[]"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "36624f92be4c41618b2b0412bb013568",
+ "End": "06e9db862a7a4c978454288f113c5702",
+ "Id": "22b5d55fc85e476287febe27df77a621",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b5b97679a4284a869e4363518071ef2c",
+ "End": "9a717b4e9acd432b91f06abab50daf46",
+ "Id": "dba5979c34a9493eb1c9b9c69bb7d3b5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "2e53db3a408f46a3bedaba507ee71f48",
+ "End": "81ce03de9d7442db9fb94adadc817539",
+ "Id": "02e03e9a425d41c3bbc20df2ca1a78cc",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e4b98094aa5f4654bfeec4f8ab15d953",
+ "End": "95f741c48ae14c0aa41d45be8c60a2b2",
+ "Id": "9b108c3646984b3dbc7e314a3ce86348",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "97a23f1b36294508913be939970de203",
+ "End": "72c6901193454f389dbe2dfc2026e831",
+ "Id": "3505ec4303c0427fb063d5a2b67c636c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "97a23f1b36294508913be939970de203",
+ "End": "7a090bc713444de0af39c8e893aac759",
+ "Id": "a26160c40a974e3281a4ff5ff9b851cb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b86fc9cdcc934c70a8b8aaed0a303e87",
+ "End": "ac5279e11e2b4d4783a70553e216d28e",
+ "Id": "a4a1e26657e64144a554ae99a913b757",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a18538ffe56d40058c23d39d6af21894",
+ "End": "e4aa146177724f96a0ac68bd91dc4e03",
+ "Id": "04a29a40427a4d0fb1bf313f9aba8086",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "5c681a4bbf6743fea363e9f2f3570833",
+ "End": "b0245fe67b864cfeb7b4e81bcc5874fd",
+ "Id": "85f87768a6c240d785b7b80e15077670",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5874",
+ "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": "a8d90c916f0c4bfe9147851c69965782",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1155.6720931217778,
+ "Y": 370.135548904635
+ },
+ {
+ "Id": "f85ea29baa284e3e989c3e60af54e006",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 839.0,
+ "Y": 354.0
+ },
+ {
+ "Id": "2c9a68952f4a4a4c892d97d7730c8a95",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 584.99999999999989,
+ "Y": 362.65500000000003
+ },
+ {
+ "Id": "f3def252e475423586731ebbf342c5c1",
+ "Name": "Number",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 839.0,
+ "Y": 544.00000000000034
+ },
+ {
+ "Id": "d45e5b2520674c5494fa7058e0b76db1",
+ "Name": "Polygon.RegularPolygon",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1540.0,
+ "Y": 432.0
+ },
+ {
+ "Id": "44e102d6defe494891ed9658a2265909",
+ "Name": "Geometry.Explode",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1896.0,
+ "Y": 432.0
+ },
+ {
+ "Id": "26ad119ef2c249e1b37852ef626f75bf",
+ "Name": "PolyCurve.ByJoinedCurves",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2245.6523476708071,
+ "Y": 422.93772831156605
+ },
+ {
+ "Id": "af46bb1f48d84d40b04d6d260c58a7e5",
+ "Name": "PolyCurve.Points",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2580.0,
+ "Y": 423.0
+ }
+ ],
+ "Annotations": [],
+ "X": -222.82321595941494,
+ "Y": 37.274299624301818,
+ "Zoom": 0.48391633011669033
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Points.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Points.md
index d8e27e8fbd8..e888591c245 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Points.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Points.md
@@ -1,5 +1,8 @@
## In Depth
-Returns start point for first component curve, and end points for all other component curves. Does not return duplicate points in the case of closed polycurve.
-___
+`PolyCurve.Points` returns the start point for the first component curve, and end points for all other component curves. It does not return duplicate points for closed PolyCurves.
+In the example below, a `Polygon.RegularPolygon` is exploded into a curve list and is then rejoined into a PolyCurve. The PolyCurveâs points are then returned using `PolyCurve.Points`.
+___
+## Example File
+![PolyCurve.Points](./Autodesk.DesignScript.Geometry.PolyCurve.Points_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Points_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Points_img.jpg
new file mode 100644
index 00000000000..ab47cb61a48
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolyCurve.Points_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.ByJoinedSurfaces.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.ByJoinedSurfaces.md
index c26289925bb..9c92444e1e7 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.ByJoinedSurfaces.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.ByJoinedSurfaces.md
@@ -1,5 +1,8 @@
## In Depth
-Solid by Joined Surfaces takes a list of surfaces as an input and will return a single solid defined by the surfaces. The surfaces must define a closed surface. In the example below, we start with a circle as a base geometry. The circle is patched to create a surface, and that surface is translated in the z-direction. We then extrude the circle to produce the sides. List.Create is used to make a list consisting of the base, side, and top surfaces, and then we use ByJoinedSurfaces to turn the list into a single closed solid.
+`PolySurface.ByJoinedSurfaces` returns a new PolySurface joined from a list of surfaces.
+
+In the example below, two surface patches and an extrusion are joined into a PolySurface resembling a cylinder.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.ByLoft(crossSections).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.ByLoft(crossSections).md
index 5d77064a18e..4345f2c7254 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.ByLoft(crossSections).md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.ByLoft(crossSections).md
@@ -1,5 +1,8 @@
## In Depth
-Surface ByLoft with cross sections takes a list of curves as an input. It will produce a surface by lofting between the list of curves in order. In the example below we create two curves, a line and a sine curve. We use List.Create to combine these two curves into a list, which we use as an input for Surface ByLoft. The result is a surface that is lofted between a sine curve on one side, and a line on the other.
+`PolySurface.ByLoft (crossSections)` returns a new PolySurface by lofting between curves in a list.
+
+In the example below, a PolySurface is returned from lofting between two circles.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.BySweep.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.BySweep.dyn
new file mode 100644
index 00000000000..cbe5761591b
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.BySweep.dyn
@@ -0,0 +1,476 @@
+{
+ "Uuid": "1e9207cc-2f7a-4768-aed4-f3edb74f0de4",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.PolySurface.BySweep",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Point.Origin": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ },
+ "Vector.ZAxis": {
+ "Key": "Autodesk.DesignScript.Geometry.Vector",
+ "Value": "ProtoGeometry.dll"
+ },
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "9702af921dba4a4ab35f6f0a73e59b3f",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "f55e8fdc041149d5a228d8f4332ab547",
+ "Name": "center",
+ "Description": "Center point of arc\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0) (disabled)",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "e83772784a3f4969bf236ce9cfd821a8",
+ "Name": "radius",
+ "Description": "Radius of the arc\n\ndouble\nDefault value : 1 (disabled)",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "e5d4b4a0ff46494288feb174eac52e41",
+ "Name": "startAngle",
+ "Description": "Start angle in degrees\n\ndouble\nDefault value : 0 (disabled)",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5277d73a935b4b8686b00b5c1c7f3f6f",
+ "Name": "endAngle",
+ "Description": "End angle in degrees\n\ndouble\nDefault value : 90 (disabled)",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d66d6a5331f6462e8c10f80ddbe29fcf",
+ "Name": "normal",
+ "Description": "A vector defining the normal of the arc\n\nVector\nDefault value : Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1) (disabled)",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "858655dc7e944fc881f4ae4b44c3fbfa",
+ "Name": "Arc",
+ "Description": "Arc created by center point, radius, and angle",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Arc.ByCenterPointRadiusAngle@Autodesk.DesignScript.Geometry.Point,double,double,double,Autodesk.DesignScript.Geometry.Vector",
+ "Replication": "Auto",
+ "Description": "Create an arc by providing it's center point, radius, angle sweep, and normal vector\n\nArc.ByCenterPointRadiusAngle (center: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1, startAngle: double = 0, endAngle: double = 90, normal: Vector = Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)): Arc"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "256ba66635fa484c843ef722de60bb71",
+ "NodeType": "FunctionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "4f18f3f762b64aa6aeb274115d77dd32",
+ "Name": "Point",
+ "Description": "Origin point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.Origin",
+ "Replication": "Auto",
+ "Description": "Get the Origin point (0,0,0)\n\nPoint.Origin ( ): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "2d0da3d9ceb2491c85dbd424e835b9aa",
+ "NodeType": "FunctionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "7f51ff68513d4d359fe24e3c3fd5ba9f",
+ "Name": "Vector",
+ "Description": "Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ZAxis",
+ "Replication": "Auto",
+ "Description": "Get the canonical Z axis Vector (0,0,1)\n\nVector.ZAxis ( ): Vector"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "35530a1991d146b48295ddcb678ef1b2",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "9f4a201f967541debad7f30c9662c79b",
+ "Name": "centerPoint",
+ "Description": "Center point of arc\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0) (disabled)",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "e418e4f3731b41d6b73001dc8820c803",
+ "Name": "startPoint",
+ "Description": "Start point of arc\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(1, 0, 0) (disabled)",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ab6c8d4120214964b1ce32c0e97a71bf",
+ "Name": "endPoint",
+ "Description": "End point of arc\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 1, 0) (disabled)",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "12c3f584fcfe42418e0a465edb6557b1",
+ "Name": "Arc",
+ "Description": "Arc created with center point, start point, and end point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Arc.ByCenterPointStartPointEndPoint@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
+ "Replication": "Auto",
+ "Description": "Create an arc by providing it's center point, start point, and end point\n\nArc.ByCenterPointStartPointEndPoint (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), startPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(1, 0, 0), endPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 1, 0)): Arc"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "05df4541cb514087aa863f31885b7a05",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "3610a5b87aea4017983c3fb66fa31ce2",
+ "Name": "rail",
+ "Description": "Curve to sweep along\n\nCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "c4bc17757dc4447e8e9f89e6b69019b1",
+ "Name": "crossSection",
+ "Description": "Sweep profile\n\nCurve[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8b24e3aa3933428e9cc447be7abdd6f5",
+ "Name": "PolySurface",
+ "Description": "PolySurface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolySurface.BySweep@Autodesk.DesignScript.Geometry.Curve,Autodesk.DesignScript.Geometry.Curve[]",
+ "Replication": "Auto",
+ "Description": "Make Polysurface by sweeping curves along rail.\n\nPolySurface.BySweep (rail: Curve, crossSection: Curve[]): PolySurface"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "c91db8ef52614b5c9aafcd0f66ea98a2",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "ce8d5be7c00d40d09b698601ffcef2e9",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "df2ebd917f784a728c46683465304dc2",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "48cd66c5b60548e4aa2db4c11238939f",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "4;\n0;\n120;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "e8912cda3ad3444b97318e8e4e3de0e5",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "3ebde811022a49eabde102a19ce5fa17",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "efd819ee849b4439adf511f6934b5ad1",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "4727e1ec34e240e4a98a13edd0474cc9",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(2, 0, 4);\nPoint.ByCoordinates(4, 0, 0);\nPoint.ByCoordinates(4, 0, 8);"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "858655dc7e944fc881f4ae4b44c3fbfa",
+ "End": "c4bc17757dc4447e8e9f89e6b69019b1",
+ "Id": "a96d6a0a926d40a9b02dca6b5453a855",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4f18f3f762b64aa6aeb274115d77dd32",
+ "End": "f55e8fdc041149d5a228d8f4332ab547",
+ "Id": "e9af132a90f74a5ca5552a3ee17580e3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "7f51ff68513d4d359fe24e3c3fd5ba9f",
+ "End": "d66d6a5331f6462e8c10f80ddbe29fcf",
+ "Id": "27c3ba26b55f4c3b8ae4c2391eb49487",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "12c3f584fcfe42418e0a465edb6557b1",
+ "End": "3610a5b87aea4017983c3fb66fa31ce2",
+ "Id": "cc0915e35ae342579648a4b8fbe79fc6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ce8d5be7c00d40d09b698601ffcef2e9",
+ "End": "e83772784a3f4969bf236ce9cfd821a8",
+ "Id": "9ef9584aea00424b8f5dfcb487e7d4e2",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "df2ebd917f784a728c46683465304dc2",
+ "End": "e5d4b4a0ff46494288feb174eac52e41",
+ "Id": "107cfc00a4714a839651392e697e70a6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "48cd66c5b60548e4aa2db4c11238939f",
+ "End": "5277d73a935b4b8686b00b5c1c7f3f6f",
+ "Id": "8dc5572e84d7404dbce0fbc476a25cb5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "3ebde811022a49eabde102a19ce5fa17",
+ "End": "9f4a201f967541debad7f30c9662c79b",
+ "Id": "120ec69f08ec46b18f24b7754ab5b48e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "efd819ee849b4439adf511f6934b5ad1",
+ "End": "e418e4f3731b41d6b73001dc8820c803",
+ "Id": "4566a0d293814a35ba30d0a40c24931d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4727e1ec34e240e4a98a13edd0474cc9",
+ "End": "ab6c8d4120214964b1ce32c0e97a71bf",
+ "Id": "365772a8eea0426c99f91a3d8be03a68",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": 5.1350412368774414,
+ "EyeY": 18.239358901977539,
+ "EyeZ": -27.682285308837891,
+ "LookX": 7.8001508712768555,
+ "LookY": -19.142274856567383,
+ "LookZ": 30.915164947509766,
+ "UpX": 0.078032352030277252,
+ "UpY": 0.947767972946167,
+ "UpZ": 0.30926841497421265
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "9702af921dba4a4ab35f6f0a73e59b3f",
+ "Name": "Arc.ByCenterPointRadiusAngle",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1827.7218801032991,
+ "Y": 3592.3876187759988
+ },
+ {
+ "Id": "256ba66635fa484c843ef722de60bb71",
+ "Name": "Point.Origin",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1417.2218801032991,
+ "Y": 3515.1721020131963
+ },
+ {
+ "Id": "2d0da3d9ceb2491c85dbd424e835b9aa",
+ "Name": "Vector.ZAxis",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1417.2218801032991,
+ "Y": 3837.1721020131963
+ },
+ {
+ "Id": "35530a1991d146b48295ddcb678ef1b2",
+ "Name": "Arc.ByCenterPointStartPointEndPoint",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1827.7218801032991,
+ "Y": 3342.8701187759989
+ },
+ {
+ "Id": "05df4541cb514087aa863f31885b7a05",
+ "Name": "PolySurface.BySweep",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2280.2218801032991,
+ "Y": 3341.6546020131964
+ },
+ {
+ "Id": "c91db8ef52614b5c9aafcd0f66ea98a2",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1417.2218801032991,
+ "Y": 3663.6546020131964
+ },
+ {
+ "Id": "e8912cda3ad3444b97318e8e4e3de0e5",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1417.2218801032991,
+ "Y": 3341.6546020131964
+ }
+ ],
+ "Annotations": [],
+ "X": -1122.715081641478,
+ "Y": -2508.8590880447637,
+ "Zoom": 0.822695359375
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.BySweep.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.BySweep.md
index a681a5749db..83778397d4e 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.BySweep.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.BySweep.md
@@ -1,7 +1,10 @@
## In Depth
-Surface by Sweep will create a surface by sweeping an input curve along a specfied path. In the example below, we use a sine curve in the y-direction as the profile curve. We rotate this curve by -90 degrees around the world z-axis to use as a path curve. Surface BySweep moves the profile curve along the path curve creating a surface.
-___
-## Example File
+`PolySurface.BySweep (rail, crossSection)` returns a PolySurface by sweeping a list of connected, non-intersecting lines along a rail. The `crossSection` input can receive a list of connected curves that must meet at a start or end point, or the node will not return a PolySurface. This node is similar to `PolySurface.BySweep (rail, profile)` with the only difference being that the `crossSection` input takes a list of curves while `profile` only takes one curve.
+
+In the example below, a PolySurface is created by sweeping along an arc.
+___
+## Example File
+![PolySurface.BySweep](./Autodesk.DesignScript.Geometry.PolySurface.BySweep_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.BySweep_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.BySweep_img.jpg
new file mode 100644
index 00000000000..8389c93a14d
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.BySweep_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Chamfer.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Chamfer.dyn
new file mode 100644
index 00000000000..76d8b6c5483
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Chamfer.dyn
@@ -0,0 +1,490 @@
+{
+ "Uuid": "2028d521-9ac9-45ee-9b7c-7952abcc1a4c",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.PolySurface.Chamfer",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "f1a8cc0b6efb4e0b8a980a769e819143",
+ "NodeType": "FunctionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "54f4321d782346feba59a9cf91c311df",
+ "Name": "Point",
+ "Description": "Origin point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.Origin",
+ "Replication": "Auto",
+ "Description": "Get the Origin point (0,0,0)\n\nPoint.Origin ( ): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "8ec862a38f4142ba9b92445953e5d47f",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "22ed5c428481471292eb5a78cede57b1",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a9848cfcd7a34aa992b7961ce302a5d5",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "146f991abb23401e991688e295dc5d77",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1248e73f513843fd9908d6a1bcc26e09",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "7833ce1104d54219a99f8e8030a0b18b",
+ "Name": "polySurface",
+ "Description": "Autodesk.DesignScript.Geometry.PolySurface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "dd6791aaa00a4ea9bb917beab6c2730e",
+ "Name": "edges",
+ "Description": "Edge[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "431e402e3d014cebb8b803d90f7747d3",
+ "Name": "offset",
+ "Description": "double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "bceb369f79db4ea5b7de54dbb204dc61",
+ "Name": "PolySurface",
+ "Description": "PolySurface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolySurface.Chamfer@Autodesk.DesignScript.Geometry.Edge[],double",
+ "Replication": "Auto",
+ "Description": "Chamfers a PolySurface along input Edges with a given offset from the edge corner.\n\nPolySurface.Chamfer (edges: Edge[], offset: double): PolySurface"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "61c7139acf3f45b998a8e5dc95f3bc9b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "01a78340907840ab84d97bcee031fde0",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "064767fa517e461bb21a294b3f15680a",
+ "Name": "distance",
+ "Description": "Distance to extrude\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8f0b953932c042388dd764693516a95f",
+ "Name": "Solid",
+ "Description": "The extruded Solid",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid@double",
+ "Replication": "Auto",
+ "Description": "Extrudes a Curve in the Normal direction by the specified distance. Curve must be closed.\n\nCurve.ExtrudeAsSolid (distance: double = 1): Solid"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "08aa111c87074bc5b5bd2b2075189c19",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "719e7d0837c648eba55f206d16ff321c",
+ "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",
+ "Code": "4;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "97444bb44b1f44d3aaff32612ff1e05f",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "83cf7f5c26064a5ea531f7a9bc90e48b",
+ "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",
+ "Code": "0.5;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "6d29d6f9bfa64db0879935ce88a7d720",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "4fb6e2a2358c457bbe75e74853d8c948",
+ "Name": "topology",
+ "Description": "Autodesk.DesignScript.Geometry.Topology",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "65cccd93470741988f9448257a05da53",
+ "Name": "Edge[]",
+ "Description": "Edge[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Topology.Edges",
+ "Replication": "Auto",
+ "Description": "The Edges of the Topology\n\nTopology.Edges: Edge[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "30e881f9ce40432aa228cd4755c6640f",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "07aefa3efbb742d5a9a19f329b8d0aaf",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "d75073adf91c43d2b814a9d2b7f4013b",
+ "Name": "Geometry[]",
+ "Description": "Geometry[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Explode",
+ "Replication": "Auto",
+ "Description": "Separates compound or non-separated elements into their component parts.\n\nGeometry.Explode ( ): Geometry[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "45042abf60674769a0a2fdfd616993b3",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "bd91f588950b4170b8ece3d1ca072f96",
+ "Name": "surfaces",
+ "Description": "Surfaces to join into polysurface\n\nSurface[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "0c4fb81dc3de4fba8b87229b53f1d678",
+ "Name": "PolySurface",
+ "Description": "PolySurface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolySurface.ByJoinedSurfaces@Autodesk.DesignScript.Geometry.Surface[]",
+ "Replication": "Auto",
+ "Description": "Make Polysurface by joining surfaces.\n\nPolySurface.ByJoinedSurfaces (surfaces: Surface[]): PolySurface"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "54f4321d782346feba59a9cf91c311df",
+ "End": "22ed5c428481471292eb5a78cede57b1",
+ "Id": "87b9c38db56840e990250b40fee5fc7f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "146f991abb23401e991688e295dc5d77",
+ "End": "01a78340907840ab84d97bcee031fde0",
+ "Id": "97e20aafcd3f463a888c60a64b23bc9c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8f0b953932c042388dd764693516a95f",
+ "End": "4fb6e2a2358c457bbe75e74853d8c948",
+ "Id": "c47dbfb688634a50854a69a81b7d6536",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8f0b953932c042388dd764693516a95f",
+ "End": "07aefa3efbb742d5a9a19f329b8d0aaf",
+ "Id": "3027c23fed25458aad0d8b4d9d9ebd54",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "719e7d0837c648eba55f206d16ff321c",
+ "End": "064767fa517e461bb21a294b3f15680a",
+ "Id": "da32c1d4964243f59f1b727ee431142c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "719e7d0837c648eba55f206d16ff321c",
+ "End": "a9848cfcd7a34aa992b7961ce302a5d5",
+ "Id": "f0f31fa0a26e4a82a4a4e1200bfa4ff4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "83cf7f5c26064a5ea531f7a9bc90e48b",
+ "End": "431e402e3d014cebb8b803d90f7747d3",
+ "Id": "d163a255db6e496e89c4fe81899efb80",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "65cccd93470741988f9448257a05da53",
+ "End": "dd6791aaa00a4ea9bb917beab6c2730e",
+ "Id": "0d8d8da0c6814f85a9cf405418573ad9",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d75073adf91c43d2b814a9d2b7f4013b",
+ "End": "bd91f588950b4170b8ece3d1ca072f96",
+ "Id": "72d1701f321c45e08474428ece10f5b1",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "0c4fb81dc3de4fba8b87229b53f1d678",
+ "End": "7833ce1104d54219a99f8e8030a0b18b",
+ "Id": "10b9ebe6cdeb4c638f54c0b76056b452",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -8.3436689376831055,
+ "EyeY": 6.9886860847473145,
+ "EyeZ": 8.8846864700317383,
+ "LookX": 12.983955383300781,
+ "LookY": -5.8967127799987793,
+ "LookZ": -15.98281192779541,
+ "UpX": 0.039591424167156219,
+ "UpY": 0.99802666902542114,
+ "UpZ": -0.04873570054769516
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "f1a8cc0b6efb4e0b8a980a769e819143",
+ "Name": "Point.Origin",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -598.36946681259155,
+ "Y": 93.332310710060781
+ },
+ {
+ "Id": "8ec862a38f4142ba9b92445953e5d47f",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": -336.36946681259155,
+ "Y": 150.33231071006077
+ },
+ {
+ "Id": "1248e73f513843fd9908d6a1bcc26e09",
+ "Name": "PolySurface.Chamfer",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1126.6305331874084,
+ "Y": 196.3323107100608
+ },
+ {
+ "Id": "61c7139acf3f45b998a8e5dc95f3bc9b",
+ "Name": "Curve.ExtrudeAsSolid",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 40.130533187408446,
+ "Y": 150.33231071006077
+ },
+ {
+ "Id": "08aa111c87074bc5b5bd2b2075189c19",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -598.36946681259155,
+ "Y": 241.15981071006081
+ },
+ {
+ "Id": "97444bb44b1f44d3aaff32612ff1e05f",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 726.13053318740845,
+ "Y": 390.15981071006075
+ },
+ {
+ "Id": "6d29d6f9bfa64db0879935ce88a7d720",
+ "Name": "Topology.Edges",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 726.13053318740845,
+ "Y": 230.33231071006077
+ },
+ {
+ "Id": "30e881f9ce40432aa228cd4755c6640f",
+ "Name": "Geometry.Explode",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 373.63053318740845,
+ "Y": 70.332310710060767
+ },
+ {
+ "Id": "45042abf60674769a0a2fdfd616993b3",
+ "Name": "PolySurface.ByJoinedSurfaces",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 726.13053318740845,
+ "Y": 70.332310710060824
+ }
+ ],
+ "Annotations": [],
+ "X": 339.45311027464072,
+ "Y": 283.88853177132938,
+ "Zoom": 0.533456488110603
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Chamfer.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Chamfer.md
index 1d8fa195336..a9aacf1340c 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Chamfer.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Chamfer.md
@@ -1,7 +1,9 @@
## In Depth
-Chamfer will return a new solid with chamfered edges. The edges input specifies which edges to chamfer, while the offset input determines the extent of the chamfer. In the example below, we start with a cube using the default inputs. To get the appropriate edges of the cube, we first explode the cube to get the faces as a list of surfaces. We then use a Face.Edges node to extract the edges of the cube. We extract the first edge of each face with GetItemAtIndex. A number slider controls the offset distance for the chamfer.
-___
-## Example File
+`PolySurface.Chamfer` returns a new PolySurface with chamfered edges defined by the `offset` input.
+In the example below, a new PolySurface is returned by chamfering the top and bottom edges of a cylinder by a 0.5 offset. The offset input must be small enough to fit on the PolySurface. This node is similar to `PolySurface.Fillet`, but it returns a PolySurface with new edges.
+___
+## Example File
+![PolySurface.Chamfer](./Autodesk.DesignScript.Geometry.PolySurface.Chamfer_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Chamfer_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Chamfer_img.jpg
new file mode 100644
index 00000000000..bb1933440f5
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Chamfer_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByLine.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByLine.dyn
new file mode 100644
index 00000000000..dab0c0d5881
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByLine.dyn
@@ -0,0 +1,692 @@
+{
+ "Uuid": "d433bf67-a079-460c-b27a-e9053763a394",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByLine",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Color": {
+ "Key": "DSCore.Color",
+ "Value": "DSCoreNodes.dll"
+ },
+ "Display": {
+ "Key": "Display.Display",
+ "Value": "Display.dll"
+ },
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ },
+ "Vector": {
+ "Key": "Autodesk.DesignScript.Geometry.Vector",
+ "Value": "ProtoGeometry.dll"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "5335df623fb34e2389e2a75a06a4a374",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "c70e3b3e9e1c4bf9aaeaf33ac7ccdf98",
+ "Name": "circle",
+ "Description": "Circle",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "be6e731892c74c30a3ebc9089a7d894c",
+ "Name": "numberSides",
+ "Description": "int\nDefault value : 5",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8e7023db597f408cb0371dfa7aabf86b",
+ "Name": "Polygon",
+ "Description": "Polygon",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Polygon.RegularPolygon@Autodesk.DesignScript.Geometry.Circle,int",
+ "Replication": "Auto",
+ "Description": "Construct an inscribed Polygon Curve within a circle.\n\nPolygon.RegularPolygon (circle: Circle, numberSides: int = 5): Polygon"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "41292b5670ed4b039979e2440f38368f",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "76986b667c0a48feaf55a010f81fdfd6",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8a5c3310146a4f198601197afa30cdfa",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "4165ea29ebe7494e962b5598719d45d5",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "cc5766a5aaeb4a90a85ecb7abfb271a5",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "8eb1117998ef4b9f94ad697143c29abc",
+ "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",
+ "Code": "6;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "7fa20a53fdbc42458ecfb3b9a077203d",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "11a1ad80ffe64af9b8efb3fa175cf52f",
+ "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",
+ "Code": "3;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1994817a228b4d43a3654b75f3fbed87",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "73457e6e328a4ae8b42c031bbdc74b57",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8040be8c345a4c74ba830798e20cf62b",
+ "Name": "distance",
+ "Description": "Distance to extrude\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "f659bb8a4fd84e2f86af9e849464e5ba",
+ "Name": "Solid",
+ "Description": "The extruded Solid",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid@double",
+ "Replication": "Auto",
+ "Description": "Extrudes a Curve in the Normal direction by the specified distance. Curve must be closed.\n\nCurve.ExtrudeAsSolid (distance: double = 1): Solid"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "4defb0da28244b379d7f5cc562a90b24",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "dba692c9273b44d0ba1f5d91a632bb51",
+ "Name": "solid",
+ "Description": "Solid which surfaces to use\n\nSolid",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "4f7874f7e54645b589af7a1f38d6e8fc",
+ "Name": "PolySurface",
+ "Description": "PolySurface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolySurface.BySolid@Autodesk.DesignScript.Geometry.Solid",
+ "Replication": "Auto",
+ "Description": "Make Polysurface by surfaces of Solid.\n\nPolySurface.BySolid (solid: Solid): PolySurface"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "2e3a2203810c4873978076774444f826",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "584839803cdd4be9ac8d8034ff79ced6",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "ec3f5c5433154695992c9034339d6cbf",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "ea0e2f1c57d64b58b1cf6a7fece599e5",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "e9ea342e97e34df38449ea533ad64a73",
+ "Name": "polySurface",
+ "Description": "Autodesk.DesignScript.Geometry.PolySurface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "330bb8b9e7d24834a9060a16e7c57889",
+ "Name": "line",
+ "Description": "Line",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e49b6b494b5c431eb410ac941ed96bbe",
+ "Name": "Surface[]",
+ "Description": "Surface[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByLine@Autodesk.DesignScript.Geometry.Line",
+ "Replication": "Auto",
+ "Description": "Locate Surfaces by Line. Takes all surfaces hit by line.\n\nPolySurface.LocateSurfacesByLine (line: Line): Surface[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "00d5772aba6e48ac9c1e291e32e94da1",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "e4c340f95eec4d55b7152cb945977524",
+ "Name": "startPoint",
+ "Description": "Line start point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "66932d262f8f4292a69ee05d98c299cf",
+ "Name": "direction",
+ "Description": "Direction vector\n\nVector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "df4ff10ca431496e91a763a31942b7f5",
+ "Name": "length",
+ "Description": "Length of line\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e5d705fb1e684ef9b1a8c470b5aa6a5a",
+ "Name": "Line",
+ "Description": "Line from start direction and length",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointDirectionLength@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Vector,double",
+ "Replication": "Auto",
+ "Description": "Create a straight Line starting at start Point, extending in Vector direction by specified length.\n\nLine.ByStartPointDirectionLength (startPoint: Point, direction: Vector, length: double = 1): Line"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "d14f7dd4492548cf9db42798b6397fd6",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "a9cd28169e2149b0ba8534b30ac7c833",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "88610f3f6c364193a799d19d8a75504e",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d436f88450d94b908fd0851ffe620e7e",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(6,-6,3);\nVector.ByCoordinates(-6,6,0);\n20;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d8d755c4bd0a4506bf7bcc836cc00db7",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "160e08de96604ea5a675fed18ef24dab",
+ "Name": "geometry",
+ "Description": "The geometry to which you would like to apply color.\n\nGeometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "2e75f785a03a4faf8c7e8369c0697199",
+ "Name": "color",
+ "Description": "The color.\n\nColor",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "52e7ec45173940a794f7f5f567003a09",
+ "Name": "GeometryColor",
+ "Description": "A Display object.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Modifiers.GeometryColor.ByGeometryColor@Autodesk.DesignScript.Geometry.Geometry,DSCore.Color",
+ "Replication": "Auto",
+ "Description": "Display geometry using a color.\n\nGeometryColor.ByGeometryColor (geometry: Geometry, color: Color): GeometryColor"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels",
+ "InputValue": {
+ "R": 161,
+ "G": 196,
+ "B": 208,
+ "A": 255
+ },
+ "Id": "747bc3e75bcc46ccb21f971279deb65b",
+ "NodeType": "ColorInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "b660def6a84848d78cb578348573b418",
+ "Name": "Color",
+ "Description": "Selected Color.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Select a Color from the palette"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "8e7023db597f408cb0371dfa7aabf86b",
+ "End": "73457e6e328a4ae8b42c031bbdc74b57",
+ "Id": "86ea44b1ef764105b33b9743a79c83e5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4165ea29ebe7494e962b5598719d45d5",
+ "End": "c70e3b3e9e1c4bf9aaeaf33ac7ccdf98",
+ "Id": "737266716f624635be36d17d8792b737",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8eb1117998ef4b9f94ad697143c29abc",
+ "End": "be6e731892c74c30a3ebc9089a7d894c",
+ "Id": "238a4cafa7c2403cb0f83e6fea1b54f6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8eb1117998ef4b9f94ad697143c29abc",
+ "End": "8040be8c345a4c74ba830798e20cf62b",
+ "Id": "58bda78034224a598ccc1c67ac8730ee",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "11a1ad80ffe64af9b8efb3fa175cf52f",
+ "End": "8a5c3310146a4f198601197afa30cdfa",
+ "Id": "32fa8b08a1734b54a381b3c1c8d7ad1a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f659bb8a4fd84e2f86af9e849464e5ba",
+ "End": "dba692c9273b44d0ba1f5d91a632bb51",
+ "Id": "ad08573869d14c468908ad486855be3e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4f7874f7e54645b589af7a1f38d6e8fc",
+ "End": "e9ea342e97e34df38449ea533ad64a73",
+ "Id": "f4e89d7924ba408aa0bd5de78d949b3a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4f7874f7e54645b589af7a1f38d6e8fc",
+ "End": "160e08de96604ea5a675fed18ef24dab",
+ "Id": "3c24e8d1333a45529ad65252d1106781",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e49b6b494b5c431eb410ac941ed96bbe",
+ "End": "584839803cdd4be9ac8d8034ff79ced6",
+ "Id": "c3b553649756401a8c2e241d98a633f9",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e5d705fb1e684ef9b1a8c470b5aa6a5a",
+ "End": "330bb8b9e7d24834a9060a16e7c57889",
+ "Id": "8c8d4bdec4e04bf0a9b6c10bd75327fb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a9cd28169e2149b0ba8534b30ac7c833",
+ "End": "e4c340f95eec4d55b7152cb945977524",
+ "Id": "acdd90456aed477ba1bd18a9ab743870",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "88610f3f6c364193a799d19d8a75504e",
+ "End": "66932d262f8f4292a69ee05d98c299cf",
+ "Id": "1c9c43d564b94245aa14078cd87e2154",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d436f88450d94b908fd0851ffe620e7e",
+ "End": "df4ff10ca431496e91a763a31942b7f5",
+ "Id": "5ea9a2969a32476981fd43a47b50a4d0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b660def6a84848d78cb578348573b418",
+ "End": "2e75f785a03a4faf8c7e8369c0697199",
+ "Id": "50191ec37c0e4adca47550db48889a2e",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": 11.591912269592285,
+ "EyeY": 11.734637260437012,
+ "EyeZ": -1.7373466491699219,
+ "LookX": -17.052577972412109,
+ "LookY": -10.119429588317871,
+ "LookZ": 5.44566011428833,
+ "UpX": -0.28010433912277222,
+ "UpY": 0.95579308271408081,
+ "UpZ": 0.089450061321258545
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "5335df623fb34e2389e2a75a06a4a374",
+ "Name": "Polygon.RegularPolygon",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1080.074274633665,
+ "Y": 3228.3836730245202
+ },
+ {
+ "Id": "41292b5670ed4b039979e2440f38368f",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 704.074274633665,
+ "Y": 3150.3836730245202
+ },
+ {
+ "Id": "cc5766a5aaeb4a90a85ecb7abfb271a5",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 704.074274633665,
+ "Y": 3340.21117302452
+ },
+ {
+ "Id": "7fa20a53fdbc42458ecfb3b9a077203d",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 450.074274633665,
+ "Y": 3184.21117302452
+ },
+ {
+ "Id": "1994817a228b4d43a3654b75f3fbed87",
+ "Name": "Curve.ExtrudeAsSolid",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1436.074274633665,
+ "Y": 3228.3836730245202
+ },
+ {
+ "Id": "4defb0da28244b379d7f5cc562a90b24",
+ "Name": "PolySurface.BySolid",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1847.074274633665,
+ "Y": 3235.3836730245202
+ },
+ {
+ "Id": "2e3a2203810c4873978076774444f826",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2701.074274633665,
+ "Y": 3340.3836730245202
+ },
+ {
+ "Id": "ea0e2f1c57d64b58b1cf6a7fece599e5",
+ "Name": "PolySurface.LocateSurfacesByLine",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2271.074274633665,
+ "Y": 3340.3836730245202
+ },
+ {
+ "Id": "00d5772aba6e48ac9c1e291e32e94da1",
+ "Name": "Line.ByStartPointDirectionLength",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1847.074274633665,
+ "Y": 3394.3836730245202
+ },
+ {
+ "Id": "d14f7dd4492548cf9db42798b6397fd6",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1436.074274633665,
+ "Y": 3418.8661730245203
+ },
+ {
+ "Id": "d8d755c4bd0a4506bf7bcc836cc00db7",
+ "Name": "GeometryColor.ByGeometryColor",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2661.3520936663367,
+ "Y": 2908.5314957599953
+ },
+ {
+ "Id": "747bc3e75bcc46ccb21f971279deb65b",
+ "Name": "Color Palette",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2403.0432328117213,
+ "Y": 3017.962883065522
+ }
+ ],
+ "Annotations": [],
+ "X": -193.90336514270064,
+ "Y": -1148.3909416366,
+ "Zoom": 0.47965456062916917
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByLine.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByLine.md
index 9048379483b..a16f5bfe74e 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByLine.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByLine.md
@@ -1,7 +1,9 @@
## In Depth
-LocateSurfacesByLine will return all Surface(s) that a Line intersects. In the example below, a line is found to pass through an extruded hexagon at two places and returns two Surfaces.
-___
-## Example File
+`PolySurface.LocateSurfacesByLine` returns all surfaces that a line intersects.
+In the example below, a line is found to pass through an extruded hexagon at two places and returns two surfaces.
+___
+## Example File
+![PolySurface.LocateSurfacesByLine](./Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByLine_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByLine_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByLine_img.jpg
new file mode 100644
index 00000000000..277158725a7
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByLine_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByPoint.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByPoint.dyn
new file mode 100644
index 00000000000..88b38b826df
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByPoint.dyn
@@ -0,0 +1,692 @@
+{
+ "Uuid": "d66689a6-9314-4f3a-9376-bc79a0c66100",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByPoint",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ },
+ "Vector": {
+ "Key": "Autodesk.DesignScript.Geometry.Vector",
+ "Value": "ProtoGeometry.dll"
+ },
+ "Color": {
+ "Key": "DSCore.Color",
+ "Value": "DSCoreNodes.dll"
+ },
+ "Display": {
+ "Key": "Display.Display",
+ "Value": "Display.dll"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "a71afaef304c4e0192c6931eb1d3a131",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "1100005e120449439d7d294062b020f7",
+ "Name": "circle",
+ "Description": "Circle",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8bd91dd253534ef89441a37dad2f4ab4",
+ "Name": "numberSides",
+ "Description": "int\nDefault value : 5",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "0b2ba41df6bd40279915fd7a4dcafee8",
+ "Name": "Polygon",
+ "Description": "Polygon",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Polygon.RegularPolygon@Autodesk.DesignScript.Geometry.Circle,int",
+ "Replication": "Auto",
+ "Description": "Construct an inscribed Polygon Curve within a circle.\n\nPolygon.RegularPolygon (circle: Circle, numberSides: int = 5): Polygon"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "2dd79e9a8094462b8d9472b2fc2285c2",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "57042e2021e54a63bcc9be150d9afeef",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "e7d046013cf547c182ade71edc901125",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "fcd6ed369ce14b14b82f33876d97fefd",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "d1fe1311b7e9430887a0043ee034c85f",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "066bc9d53fc944dc91de3d987b15e8e5",
+ "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",
+ "Code": "6;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "63b93ddc25e5437a87a96688ec933e8b",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "edb613e1215249928ab1b7f520ad09b9",
+ "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",
+ "Code": "3;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "c9ab3c343c2a4b6d9c018d8ebc3d77d9",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "ff8908ae35cb42e2a0cc554b3b3b4f6e",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "c4af169027d842c980ee2c866c13c44e",
+ "Name": "distance",
+ "Description": "Distance to extrude\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "09f15ca4b775415e997b0fe757ba49b5",
+ "Name": "Solid",
+ "Description": "The extruded Solid",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid@double",
+ "Replication": "Auto",
+ "Description": "Extrudes a Curve in the Normal direction by the specified distance. Curve must be closed.\n\nCurve.ExtrudeAsSolid (distance: double = 1): Solid"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "960562ff9d5546bb94d206e3b27d862a",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "4d1a9ad2b9bb4a2e97e02ce1842d1a4e",
+ "Name": "solid",
+ "Description": "Solid which surfaces to use\n\nSolid",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "b7c833c61bfb4573bbc19fbacf7995cd",
+ "Name": "PolySurface",
+ "Description": "PolySurface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolySurface.BySolid@Autodesk.DesignScript.Geometry.Solid",
+ "Replication": "Auto",
+ "Description": "Make Polysurface by surfaces of Solid.\n\nPolySurface.BySolid (solid: Solid): PolySurface"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "3591bd2cd97643c5a60caca73979b09b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "6abb96aa7c0c4605be19c413b59b59fd",
+ "Name": "polySurface",
+ "Description": "Autodesk.DesignScript.Geometry.PolySurface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "aefd1966d5c943aea34abc0978186140",
+ "Name": "point",
+ "Description": "Point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "4463fffad47b4e40af037900976c34fc",
+ "Name": "direction",
+ "Description": "Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "69173906d6ff45858c8a24b49fbf19eb",
+ "Name": "Surface[]",
+ "Description": "Surface[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByPoint@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Vector",
+ "Replication": "Auto",
+ "Description": "Locate Surfaces by point. Takes first intersection in forward direction. Returns one surface if hit surface interior, two if hit edge interior, and many if hit vertex\n\nPolySurface.LocateSurfacesByPoint (point: Point, direction: Vector): Surface[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "f94559a906b643e79cd533f0a93402ad",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "7688bac2071b454cad2294ae5fc17eca",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "2aed917932ec430e857462a7ab79fe7d",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d51ab135d91744c79f49ce3481fbeb09",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "4810e459919e439a8b0acea822f3ebc3",
+ "Name": "startPoint",
+ "Description": "Line start point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "f319dd2ce797434c9377f361f12fd8ec",
+ "Name": "direction",
+ "Description": "Direction vector\n\nVector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "7467542c6e0440e4b7531b632abbb67a",
+ "Name": "length",
+ "Description": "Length of line\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "641ad24f28da4c25a00f451da5be4eef",
+ "Name": "Line",
+ "Description": "Line from start direction and length",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointDirectionLength@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Vector,double",
+ "Replication": "Auto",
+ "Description": "Create a straight Line starting at start Point, extending in Vector direction by specified length.\n\nLine.ByStartPointDirectionLength (startPoint: Point, direction: Vector, length: double = 1): Line"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "91c38d2d91264a3b894215fe8e7ece48",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "54c8634404a746609f8ca34f5d609571",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "2a3b0483cb1643eb8d21f875d2bfb165",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(-6,1,1);\nVector.ByCoordinates(1,0,0.5);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "f7f5615f8a5e45a4a961bbc6fa8654a1",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "b30f09f51e60413a8f13df402a100ea6",
+ "Name": "geometry",
+ "Description": "The geometry to which you would like to apply color.\n\nGeometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8af67dd3fc37485c816cec145edd4759",
+ "Name": "color",
+ "Description": "The color.\n\nColor",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "3dca525a714945a8a0d00731687bce81",
+ "Name": "GeometryColor",
+ "Description": "A Display object.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Modifiers.GeometryColor.ByGeometryColor@Autodesk.DesignScript.Geometry.Geometry,DSCore.Color",
+ "Replication": "Auto",
+ "Description": "Display geometry using a color.\n\nGeometryColor.ByGeometryColor (geometry: Geometry, color: Color): GeometryColor"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels",
+ "InputValue": {
+ "R": 143,
+ "G": 189,
+ "B": 204,
+ "A": 255
+ },
+ "Id": "dcaa1b79179146cbba45e020711ef936",
+ "NodeType": "ColorInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "d7d3493d3c254cc08b635d96faf7bf98",
+ "Name": "Color",
+ "Description": "Selected Color.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Select a Color from the palette"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "0b2ba41df6bd40279915fd7a4dcafee8",
+ "End": "ff8908ae35cb42e2a0cc554b3b3b4f6e",
+ "Id": "c766f060a9d44b2ab5ebe2156a5d88a1",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "fcd6ed369ce14b14b82f33876d97fefd",
+ "End": "1100005e120449439d7d294062b020f7",
+ "Id": "5a1ff4bf509b44dc9c3e84ed1335b731",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "066bc9d53fc944dc91de3d987b15e8e5",
+ "End": "8bd91dd253534ef89441a37dad2f4ab4",
+ "Id": "5aa84ac7cff043358a081b29cf57f646",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "066bc9d53fc944dc91de3d987b15e8e5",
+ "End": "c4af169027d842c980ee2c866c13c44e",
+ "Id": "2cd4b38c10f1498ba7085f80fd9a2559",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "edb613e1215249928ab1b7f520ad09b9",
+ "End": "e7d046013cf547c182ade71edc901125",
+ "Id": "8ca995ae5f3243e0b04be1ede5f99ea0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "09f15ca4b775415e997b0fe757ba49b5",
+ "End": "4d1a9ad2b9bb4a2e97e02ce1842d1a4e",
+ "Id": "1a89cd14c2954a80ab3deb959d6b8841",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b7c833c61bfb4573bbc19fbacf7995cd",
+ "End": "6abb96aa7c0c4605be19c413b59b59fd",
+ "Id": "27a8d4a1815e42cca23e85b96fd837c0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b7c833c61bfb4573bbc19fbacf7995cd",
+ "End": "b30f09f51e60413a8f13df402a100ea6",
+ "Id": "a9ac3a8bc4ac4db0bf380e6f3913693e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "69173906d6ff45858c8a24b49fbf19eb",
+ "End": "7688bac2071b454cad2294ae5fc17eca",
+ "Id": "b456132a4cc444fca41a30db5db9417d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "54c8634404a746609f8ca34f5d609571",
+ "End": "4810e459919e439a8b0acea822f3ebc3",
+ "Id": "f3e6836373e44d88b6a9c3b1a525c68b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "54c8634404a746609f8ca34f5d609571",
+ "End": "aefd1966d5c943aea34abc0978186140",
+ "Id": "59c79e241fc449e3b8cd4cbafe2f2aeb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "2a3b0483cb1643eb8d21f875d2bfb165",
+ "End": "f319dd2ce797434c9377f361f12fd8ec",
+ "Id": "02e55776750e405baa25d20c23f34f0d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "2a3b0483cb1643eb8d21f875d2bfb165",
+ "End": "4463fffad47b4e40af037900976c34fc",
+ "Id": "4163fc677b32457896d4875bfadaf0fb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d7d3493d3c254cc08b635d96faf7bf98",
+ "End": "8af67dd3fc37485c816cec145edd4759",
+ "Id": "2a4bc2a5f75e4afc99bc8bd3433ab254",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -6.256777286529541,
+ "EyeY": 10.278606414794922,
+ "EyeZ": -12.108186721801758,
+ "LookX": 9.7447071075439453,
+ "LookY": -8.45804500579834,
+ "LookZ": 14.550629615783691,
+ "UpX": 0.12895606458187103,
+ "UpY": 0.97277587652206421,
+ "UpZ": 0.19255498051643372
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "a71afaef304c4e0192c6931eb1d3a131",
+ "Name": "Polygon.RegularPolygon",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1117.074274633665,
+ "Y": 3142.74270204608
+ },
+ {
+ "Id": "2dd79e9a8094462b8d9472b2fc2285c2",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 741.074274633665,
+ "Y": 3064.74270204608
+ },
+ {
+ "Id": "d1fe1311b7e9430887a0043ee034c85f",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 741.074274633665,
+ "Y": 3254.57020204608
+ },
+ {
+ "Id": "63b93ddc25e5437a87a96688ec933e8b",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 487.074274633665,
+ "Y": 3098.57020204608
+ },
+ {
+ "Id": "c9ab3c343c2a4b6d9c018d8ebc3d77d9",
+ "Name": "Curve.ExtrudeAsSolid",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1473.074274633665,
+ "Y": 3142.74270204608
+ },
+ {
+ "Id": "960562ff9d5546bb94d206e3b27d862a",
+ "Name": "PolySurface.BySolid",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1806.074274633665,
+ "Y": 3142.74270204608
+ },
+ {
+ "Id": "3591bd2cd97643c5a60caca73979b09b",
+ "Name": "PolySurface.LocateSurfacesByPoint",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2225.074274633665,
+ "Y": 3227.24270204608
+ },
+ {
+ "Id": "f94559a906b643e79cd533f0a93402ad",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2664.074274633665,
+ "Y": 3227.24270204608
+ },
+ {
+ "Id": "d51ab135d91744c79f49ce3481fbeb09",
+ "Name": "Line.ByStartPointDirectionLength",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2664.074274633665,
+ "Y": 3540.24270204608
+ },
+ {
+ "Id": "91c38d2d91264a3b894215fe8e7ece48",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1806.074274633665,
+ "Y": 3409.3977020460798
+ },
+ {
+ "Id": "f7f5615f8a5e45a4a961bbc6fa8654a1",
+ "Name": "GeometryColor.ByGeometryColor",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2658.2904725554044,
+ "Y": 3031.5251282687964
+ },
+ {
+ "Id": "dcaa1b79179146cbba45e020711ef936",
+ "Name": "Color Palette",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2407.2757327953873,
+ "Y": 3074.2087869097486
+ }
+ ],
+ "Annotations": [],
+ "X": -220.41616148556534,
+ "Y": -1271.3069419068095,
+ "Zoom": 0.52666234791436761
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByPoint.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByPoint.md
index 6cb8c180843..c0a1f718f9d 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByPoint.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByPoint.md
@@ -1,7 +1,9 @@
## In Depth
-LocateSurfacesByPoint will return the first Surface intersected in the forward direction as defined by a Vector. In the example below, the Surface returned is intersected by a Vector originating at the Point. The Vector is represented as a Line.
-___
-## Example File
+`PolySurface.LocateSurfacesByPoint` returns the first surface intersected in the forward direction as defined by a vector.
+In the example below, the surface returned is intersected by a vector originating at the point. The vector is represented as a line.
+___
+## Example File
+![PolySurface.LocateSurfacesByPoint](./Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByPoint_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByPoint_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByPoint_img.jpg
new file mode 100644
index 00000000000..3ed527fbee9
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.LocateSurfacesByPoint_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Surfaces.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Surfaces.dyn
new file mode 100644
index 00000000000..5a24dc80707
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Surfaces.dyn
@@ -0,0 +1,592 @@
+{
+ "Uuid": "6a6df533-57ca-4e20-88ec-b90d7f39e593",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.PolySurface.Surfaces",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Color": {
+ "Key": "DSCore.Color",
+ "Value": "DSCoreNodes.dll"
+ },
+ "Display": {
+ "Key": "Display.Display",
+ "Value": "Display.dll"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "cb068ce429054800b0fc72af4b71f879",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "52c4e030ca644980b6b64cee6afa24d5",
+ "Name": "circle",
+ "Description": "Circle",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "7a1d806bde1649a5b85419bcd9a3cd61",
+ "Name": "numberSides",
+ "Description": "int\nDefault value : 5",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "031985c93fde4d618be5dd5dba843bb4",
+ "Name": "Polygon",
+ "Description": "Polygon",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Polygon.RegularPolygon@Autodesk.DesignScript.Geometry.Circle,int",
+ "Replication": "Auto",
+ "Description": "Construct an inscribed Polygon Curve within a circle.\n\nPolygon.RegularPolygon (circle: Circle, numberSides: int = 5): Polygon"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7dd1362175734f219261038e41d94790",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "eac60ad220ae45808141bb47e351c638",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "deb74cdcdb894811be2c17584badac6a",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "6b2464a4388b4f278be49815c7897e09",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "7ef2629a81f6405ab6f8b7ca5da27f4f",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "dd8caf51d56e46ecbfe7c487def82c1c",
+ "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",
+ "Code": "6;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "d7c8839768bf4dfca48f40cf271b653d",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "8cca2107979e43598619d6f9c9891821",
+ "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",
+ "Code": "3;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "51620966c86f45f08ad64ac8305b5002",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "aabbeff9dec047c5a456b63461e48f51",
+ "Name": "curve",
+ "Description": "Autodesk.DesignScript.Geometry.Curve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "15daff9dda884cfaba6ccd8b185f362b",
+ "Name": "distance",
+ "Description": "Distance to extrude\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "a04761d373af40e3990edc5d7fb39310",
+ "Name": "Solid",
+ "Description": "The extruded Solid",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Curve.ExtrudeAsSolid@double",
+ "Replication": "Auto",
+ "Description": "Extrudes a Curve in the Normal direction by the specified distance. Curve must be closed.\n\nCurve.ExtrudeAsSolid (distance: double = 1): Solid"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "bba4a1bc63f744b89866dab039d8a47f",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "699f28397aad47de94b674323f405925",
+ "Name": "solid",
+ "Description": "Solid which surfaces to use\n\nSolid",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "4d29ee5fb9824547ad3c8c2ef10278c2",
+ "Name": "PolySurface",
+ "Description": "PolySurface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolySurface.BySolid@Autodesk.DesignScript.Geometry.Solid",
+ "Replication": "Auto",
+ "Description": "Make Polysurface by surfaces of Solid.\n\nPolySurface.BySolid (solid: Solid): PolySurface"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7ee931228bc24f469b57e4d0e939a852",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "8093d08c4165464f837e28956852287a",
+ "Name": "polySurface",
+ "Description": "Autodesk.DesignScript.Geometry.PolySurface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "2cd35e9b7b8b436cb1e6b30246065bed",
+ "Name": "Surface[]",
+ "Description": "Surface[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolySurface.Surfaces",
+ "Replication": "Auto",
+ "Description": "Return new Surfaces representing the underlying Surfaces.\n\nPolySurface.Surfaces ( ): Surface[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "626d671a4c3f41129cea8d7e5352becf",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "f46282b2e09443ffbf65455a50ded4a3",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "4260bb17fe294a79844520face83d848",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 102.0,
+ "WatchHeight": 38.0,
+ "Id": "615e7eb1192248a58069d2d7ad20db68",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "3b7e46a2b5a742be94d75dcc47ec89c2",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "04c47b41cc5943cf97c29bd1954cd78d",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "4786808a41ce45a2871bbeef7b87b1ad",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "d3c0612a1663482293e7e7166f6a12dd",
+ "Name": "geometry",
+ "Description": "The geometry to which you would like to apply color.\n\nGeometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "943f14b43cc743db876f66c65a10d1d4",
+ "Name": "color",
+ "Description": "The color.\n\nColor",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8f703b83d4774eb698a5ec87227d1525",
+ "Name": "GeometryColor",
+ "Description": "A Display object.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Modifiers.GeometryColor.ByGeometryColor@Autodesk.DesignScript.Geometry.Geometry,DSCore.Color",
+ "Replication": "Auto",
+ "Description": "Display geometry using a color.\n\nGeometryColor.ByGeometryColor (geometry: Geometry, color: Color): GeometryColor"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels",
+ "InputValue": {
+ "R": 178,
+ "G": 234,
+ "B": 234,
+ "A": 255
+ },
+ "Id": "d1b5d31b1634469b8e53555b118a372b",
+ "NodeType": "ColorInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "d4701e2b08c6413a931e45c1d4dcf2e4",
+ "Name": "Color",
+ "Description": "Selected Color.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Select a Color from the palette"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "031985c93fde4d618be5dd5dba843bb4",
+ "End": "aabbeff9dec047c5a456b63461e48f51",
+ "Id": "347977d4c90e446ab4f9ebaff0461c1c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6b2464a4388b4f278be49815c7897e09",
+ "End": "52c4e030ca644980b6b64cee6afa24d5",
+ "Id": "7cec545d27534016916d11d3b4d6df1b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "dd8caf51d56e46ecbfe7c487def82c1c",
+ "End": "7a1d806bde1649a5b85419bcd9a3cd61",
+ "Id": "fb035ee718cc492f84a8856baa9a339a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "dd8caf51d56e46ecbfe7c487def82c1c",
+ "End": "15daff9dda884cfaba6ccd8b185f362b",
+ "Id": "2e23710bf0c3451c93e6a8819ff12925",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8cca2107979e43598619d6f9c9891821",
+ "End": "deb74cdcdb894811be2c17584badac6a",
+ "Id": "4a0c1abd262c4d2ca7d97f10b7b44c7e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a04761d373af40e3990edc5d7fb39310",
+ "End": "699f28397aad47de94b674323f405925",
+ "Id": "4c8e8190b07c434ca7aee01c3fc07e0d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4d29ee5fb9824547ad3c8c2ef10278c2",
+ "End": "8093d08c4165464f837e28956852287a",
+ "Id": "65fd0270d48e4d3d90c887e45b204384",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4d29ee5fb9824547ad3c8c2ef10278c2",
+ "End": "3b7e46a2b5a742be94d75dcc47ec89c2",
+ "Id": "4caf272f727b46fab85447f3427b04e0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "2cd35e9b7b8b436cb1e6b30246065bed",
+ "End": "f46282b2e09443ffbf65455a50ded4a3",
+ "Id": "dded824faf83444989ea347cf7d8b33a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "2cd35e9b7b8b436cb1e6b30246065bed",
+ "End": "d3c0612a1663482293e7e7166f6a12dd",
+ "Id": "42fe2b7c56484e4090f5ae6ccbbab88f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d4701e2b08c6413a931e45c1d4dcf2e4",
+ "End": "943f14b43cc743db876f66c65a10d1d4",
+ "Id": "c0a0779882854399a93d1f40a3591b28",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -9.1837615966796875,
+ "EyeY": 9.0076513290405273,
+ "EyeZ": 10.286493301391602,
+ "LookX": 11.37481689453125,
+ "LookY": -8.0109405517578125,
+ "LookZ": -15.547768592834473,
+ "UpX": 0.1045607328414917,
+ "UpY": 0.98419559001922607,
+ "UpZ": -0.14291974902153015
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "cb068ce429054800b0fc72af4b71f879",
+ "Name": "Polygon.RegularPolygon",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1259.5661320546551,
+ "Y": 3353.272419171105
+ },
+ {
+ "Id": "7dd1362175734f219261038e41d94790",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 883.5661320546551,
+ "Y": 3275.272419171105
+ },
+ {
+ "Id": "7ef2629a81f6405ab6f8b7ca5da27f4f",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 883.5661320546551,
+ "Y": 3465.0999191711048
+ },
+ {
+ "Id": "d7c8839768bf4dfca48f40cf271b653d",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 629.5661320546551,
+ "Y": 3309.0999191711048
+ },
+ {
+ "Id": "51620966c86f45f08ad64ac8305b5002",
+ "Name": "Curve.ExtrudeAsSolid",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1615.5661320546551,
+ "Y": 3353.272419171105
+ },
+ {
+ "Id": "bba4a1bc63f744b89866dab039d8a47f",
+ "Name": "PolySurface.BySolid",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1948.5661320546551,
+ "Y": 3353.272419171105
+ },
+ {
+ "Id": "7ee931228bc24f469b57e4d0e939a852",
+ "Name": "PolySurface.Surfaces",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 2275.5661320546551,
+ "Y": 3154.522419171105
+ },
+ {
+ "Id": "626d671a4c3f41129cea8d7e5352becf",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2627.5661320546551,
+ "Y": 3239.022419171105
+ },
+ {
+ "Id": "615e7eb1192248a58069d2d7ad20db68",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2627.5661320546551,
+ "Y": 3552.022419171105
+ },
+ {
+ "Id": "4786808a41ce45a2871bbeef7b87b1ad",
+ "Name": "GeometryColor.ByGeometryColor",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2671.1365412596056,
+ "Y": 3038.3546410502381
+ },
+ {
+ "Id": "d1b5d31b1634469b8e53555b118a372b",
+ "Name": "Color Palette",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2395.3380072207665,
+ "Y": 2980.8587504964962
+ }
+ ],
+ "Annotations": [],
+ "X": -288.54023861404369,
+ "Y": -1482.3956829957538,
+ "Zoom": 0.54330014759681033
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Surfaces.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Surfaces.md
index 44f142b2014..8e6c0cdda1a 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Surfaces.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Surfaces.md
@@ -1,7 +1,10 @@
## In Depth
-Surfaces will return the Surfaces that make up a PolySurface. In the example below, a extruded hexagon will return eight individual Surfaces.
-___
-## Example File
+`PolySurface.Surfaces` returns the surfaces that make up a PolySurface.
+
+In the example below, `PolySurface.Surfaces` is used to return eight individual surfaces from an extruded hexagon.
+___
+## Example File
+![PolySurface.Surfaces](./Autodesk.DesignScript.Geometry.PolySurface.Surfaces_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Surfaces_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Surfaces_img.jpg
new file mode 100644
index 00000000000..ebe2e7aaa87
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.Surfaces_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.UnconnectedBoundaries.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.UnconnectedBoundaries.dyn
new file mode 100644
index 00000000000..024bae6d110
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.UnconnectedBoundaries.dyn
@@ -0,0 +1,547 @@
+{
+ "Uuid": "87f3a4c6-c03d-4e6c-88c1-28030772aa65",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.PolySurface.UnconnectedBoundaries",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ },
+ "Color": {
+ "Key": "DSCore.Color",
+ "Value": "DSCoreNodes.dll"
+ },
+ "Display": {
+ "Key": "Display.Display",
+ "Value": "Display.dll"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d0a9548be6aa465abb29d0c8d8b45260",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "0f1fcbb2c1334405b3d65b7dff64e3fc",
+ "Name": "circle",
+ "Description": "Circle",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5fd8f59575484f9785eef885313d9e77",
+ "Name": "numberSides",
+ "Description": "int\nDefault value : 5",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "c29f19b15aaa43778480f2d563e3d930",
+ "Name": "Polygon",
+ "Description": "Polygon",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Polygon.RegularPolygon@Autodesk.DesignScript.Geometry.Circle,int",
+ "Replication": "Auto",
+ "Description": "Construct an inscribed Polygon Curve within a circle.\n\nPolygon.RegularPolygon (circle: Circle, numberSides: int = 5): Polygon"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "a68671bcde6c4cd8b74cbaac07cb5311",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "cede60e09fe740e6aeb4d3ac440eaa28",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "0392998c14104bad8bb0f80cd0e37f9c",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "9db90dedabdc4791a138fb0dee245044",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "08399a9a761c429d9fb95129344fb49c",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "51265b35206f4191a27f34ba88c7c872",
+ "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",
+ "Code": "6;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "dbd7b28f086f48c394b99aa52286f4c7",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "af555b609a8a4583a244fec04d766efc",
+ "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",
+ "Code": "3;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "ef4d29195f3b49319e4b8a51523dbd8e",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "435897fd8cc74394b4472d412f3e48a9",
+ "Name": "crossSections",
+ "Description": "Curves to loft through.\n\nCurve[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "7e9e3e50ccb14df1a4032ddedac93ba2",
+ "Name": "PolySurface",
+ "Description": "PolySurface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolySurface.ByLoft@Autodesk.DesignScript.Geometry.Curve[]",
+ "Replication": "Auto",
+ "Description": "Makes PolySurface by Loft through Curves.\n\nPolySurface.ByLoft (crossSections: Curve[]): PolySurface"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "f5bb0869de3c4e0088f581df0404f88f",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "4643feff88214ccabdccd1e3031bfaad",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1559e2108ad8442caa9cc5cfc278bebc",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(0,0,0);\nPoint.ByCoordinates(0,0,6);"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "9f9d338753dd4157bceaa499aa57b09b",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "5ff41c41bc9f483b8dd0b8dcec72319d",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "51866128a80244cf8ae6d0982d24eaf6",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e0550089edd243a4be4c14d1e7157e21",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "3f5864d3ebf94409a5b54d985ef7b1b5",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "4f5fa667f09147c7bc5a55fd5fda82e2",
+ "Name": "polySurface",
+ "Description": "Autodesk.DesignScript.Geometry.PolySurface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e0d0c6e2691147daa90dab18048c9253",
+ "Name": "PolyCurve[]",
+ "Description": "PolyCurve[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.PolySurface.UnconnectedBoundaries",
+ "Replication": "Auto",
+ "Description": "Compute 2d cell boundaries which are not connected to other Surfaces\n\nPolySurface.UnconnectedBoundaries ( ): PolyCurve[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "b8d196cec13941c294f92b3afd67aa54",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "ec13b82ceebc4933951c362e853f2618",
+ "Name": "geometry",
+ "Description": "The geometry to which you would like to apply color.\n\nGeometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "24be7dd6984a48f285eddb80a52cccb1",
+ "Name": "color",
+ "Description": "The color.\n\nColor",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e1e0133e4b4a40fb92e41576a8ecf4c1",
+ "Name": "GeometryColor",
+ "Description": "A Display object.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Modifiers.GeometryColor.ByGeometryColor@Autodesk.DesignScript.Geometry.Geometry,DSCore.Color",
+ "Replication": "Auto",
+ "Description": "Display geometry using a color.\n\nGeometryColor.ByGeometryColor (geometry: Geometry, color: Color): GeometryColor"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels",
+ "InputValue": {
+ "R": 179,
+ "G": 223,
+ "B": 238,
+ "A": 255
+ },
+ "Id": "c62bf36e98834d19b2d4bd1ba95cd42c",
+ "NodeType": "ColorInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "28fbf24b79de40e1a689fdcef380d213",
+ "Name": "Color",
+ "Description": "Selected Color.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Select a Color from the palette"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "c29f19b15aaa43778480f2d563e3d930",
+ "End": "435897fd8cc74394b4472d412f3e48a9",
+ "Id": "d6cccdb2361d48f596641fbd7534c249",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9db90dedabdc4791a138fb0dee245044",
+ "End": "0f1fcbb2c1334405b3d65b7dff64e3fc",
+ "Id": "a0caef9f7de945b29df1592ba605fc44",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "51265b35206f4191a27f34ba88c7c872",
+ "End": "5fd8f59575484f9785eef885313d9e77",
+ "Id": "34e5bcba9735481ba61653fa3daa2d6a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "af555b609a8a4583a244fec04d766efc",
+ "End": "0392998c14104bad8bb0f80cd0e37f9c",
+ "Id": "b393775885044c01a43bd55e9743ec4e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "7e9e3e50ccb14df1a4032ddedac93ba2",
+ "End": "4f5fa667f09147c7bc5a55fd5fda82e2",
+ "Id": "146f03e8b1e345aaa4ffc018b1ee9ec1",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "7e9e3e50ccb14df1a4032ddedac93ba2",
+ "End": "ec13b82ceebc4933951c362e853f2618",
+ "Id": "323609f88fe1478592b81bbf16b73c2a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4643feff88214ccabdccd1e3031bfaad",
+ "End": "5ff41c41bc9f483b8dd0b8dcec72319d",
+ "Id": "a24d8235051f4e1d8c5370ef639798b3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "1559e2108ad8442caa9cc5cfc278bebc",
+ "End": "51866128a80244cf8ae6d0982d24eaf6",
+ "Id": "b050e7cb717b4bf5b520bb04356f339e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e0550089edd243a4be4c14d1e7157e21",
+ "End": "cede60e09fe740e6aeb4d3ac440eaa28",
+ "Id": "c75f46a4be234199a96651f879a31f9d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "28fbf24b79de40e1a689fdcef380d213",
+ "End": "24be7dd6984a48f285eddb80a52cccb1",
+ "Id": "c4af922bd63f49019fa06310b450544f",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -9.8797941207885742,
+ "EyeY": 12.201346397399902,
+ "EyeZ": 6.7003574371337891,
+ "LookX": 11.1499605178833,
+ "LookY": -12.615135192871094,
+ "LookZ": -12.831369400024414,
+ "UpX": 0.26887628436088562,
+ "UpY": 0.91212010383605957,
+ "UpZ": -0.30942273139953613
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "d0a9548be6aa465abb29d0c8d8b45260",
+ "Name": "Polygon.RegularPolygon",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1457.0365903825871,
+ "Y": 3307.4141078189205
+ },
+ {
+ "Id": "a68671bcde6c4cd8b74cbaac07cb5311",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1081.0365903825871,
+ "Y": 3229.4141078189205
+ },
+ {
+ "Id": "08399a9a761c429d9fb95129344fb49c",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1081.0365903825871,
+ "Y": 3419.2416078189203
+ },
+ {
+ "Id": "dbd7b28f086f48c394b99aa52286f4c7",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 821.03659038258706,
+ "Y": 3341.2416078189203
+ },
+ {
+ "Id": "ef4d29195f3b49319e4b8a51523dbd8e",
+ "Name": "PolySurface.ByLoft",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1813.0365903825871,
+ "Y": 3307.4141078189205
+ },
+ {
+ "Id": "f5bb0869de3c4e0088f581df0404f88f",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 425.03659038258706,
+ "Y": 3160.06910781892
+ },
+ {
+ "Id": "9f9d338753dd4157bceaa499aa57b09b",
+ "Name": "List.Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 821.03659038258706,
+ "Y": 3151.4141078189205
+ },
+ {
+ "Id": "3f5864d3ebf94409a5b54d985ef7b1b5",
+ "Name": "PolySurface.UnconnectedBoundaries",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2191.0365903825868,
+ "Y": 3392.4141078189205
+ },
+ {
+ "Id": "b8d196cec13941c294f92b3afd67aa54",
+ "Name": "GeometryColor.ByGeometryColor",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2233.8261365109624,
+ "Y": 3143.6105685740645
+ },
+ {
+ "Id": "c62bf36e98834d19b2d4bd1ba95cd42c",
+ "Name": "Color Palette",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1979.7478510391356,
+ "Y": 3114.710668804757
+ }
+ ],
+ "Annotations": [],
+ "X": -281.85950330884407,
+ "Y": -1783.2248993967348,
+ "Zoom": 0.64903243119860643
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.UnconnectedBoundaries.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.UnconnectedBoundaries.md
index 46da39b8bc9..e6254715957 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.UnconnectedBoundaries.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.UnconnectedBoundaries.md
@@ -1,7 +1,9 @@
## In Depth
-UnconnectedBoundaries will return PolyCurves that represent open boundaries. In the example below, an extruded hexagon returns it's top and bottom boundaries as PolyCurves since they are unconnected.
-___
-## Example File
+`PolySurface.UnconnectedBoundaries` returns PolyCurves that represent open boundaries.
+In the example below, `PolySurface.UnconnectedBoundaries` returns the top and bottom boundaries of an extruded hexagon as PolyCurves since they are unconnected.
+___
+## Example File
+![PolySurface.UnconnectedBoundaries](./Autodesk.DesignScript.Geometry.PolySurface.UnconnectedBoundaries_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.UnconnectedBoundaries_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.UnconnectedBoundaries_img.jpg
new file mode 100644
index 00000000000..14d3fec3055
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.PolySurface.UnconnectedBoundaries_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Polygon.ByPoints.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Polygon.ByPoints.md
index d5be3cc90ff..cbcae55887c 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Polygon.ByPoints.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Polygon.ByPoints.md
@@ -1,5 +1,8 @@
## In Depth
-Revit will generate and contour a mesh from a list of supplied points. The points cannot be collinear.
+`Polygon.ByPoints` creates a polygon from a list of input points. The points will be connected in the order of the list they originate from.
+
+In the example below, we create a list of random points driven by a number slider. We then use a `Polygon.ByPoints` node to connect the points with lines.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.Area.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.Area.md
index 9f61a08f26d..eaca00ed931 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.Area.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.Area.md
@@ -1,5 +1,8 @@
## In Depth
-Room area is returned as a double.
+`Solid.Area` returns the surface area of a given solid.
+
+In the example below, we start with a cube and then chamfer the edges to produce a new solid. We use `Solid.Area` to find the total area of all the surfaces of this solid.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.ByLoft(crossSections).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.ByLoft(crossSections).md
index 2ebb05491a6..d5308b24c1d 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.ByLoft(crossSections).md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.ByLoft(crossSections).md
@@ -1,5 +1,8 @@
## In Depth
-Surface ByLoft with cross sections takes a list of curves as an input. It will produce a surface by lofting between the list of curves in order. In the example below we create two curves, a line and a sine curve. We use List.Create to combine these two curves into a list, which we use as an input for Surface ByLoft. The result is a surface that is lofted between a sine curve on one side, and a line on the other.
+`Solid.ByLoft (crossSections)` takes a list of closed curves as an input. It produces a solid by lofting between items on the list of curves in order.
+
+In the example below, we start with a circle. We then produce a series of translated circles based on a sine curve. This list of curves is used as the input for `Solid.ByLoft`.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.ByLoft(crossSections, guideCurves).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.ByLoft(crossSections, guideCurves).md
index fbaf054a501..15611630e95 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.ByLoft(crossSections, guideCurves).md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.ByLoft(crossSections, guideCurves).md
@@ -1,5 +1,8 @@
## In Depth
-Surface by Loft with cross sections and guide curves takes a list of cross sections to loft between, and a separate list of guide curves to determine the profile of the loft. In the example below, we use two straight lines as the input cross sections. For the guide curves, we create one sine curve and one straight line. A number slider controls the distance between the sine curve and the straight line. The resulting loft interpolates between the sine curve and the straight line.
+`Solid.ByLoft (crossSections, guideCurves)` allows us to input a list of guide curves to produce different profiles along the perimeter of a lofted solid.
+
+In the example below, we use two offset rectangles as the `crossSections`. Two different guide curves are generated around the perimeter, one based on a cosine function, and the other a simple line.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.ByRevolve.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.ByRevolve.md
index ff6f905b1c7..b281ff7e949 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.ByRevolve.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.ByRevolve.md
@@ -1,5 +1,8 @@
## In Depth
-Surface by Revolve creates a surface by rotating a given profile curve around an axis. The axis is defined by an axisOrigin point, and an axisDirection vector. The start angle determines where to begin the surface, measured in degrees, and the sweepAngle determines how far around the axis to continue the surface. In the example below, we use a curve generated with a cosine function as the profile curve, and two number sliders to control the startAngle and sweepAngle. The axisOrigin and axisDirection are left at the default values of the world origin and world z-axis for this example
+`Solid.ByRevolve` creates a surface by rotating a given profile curve around an axis. The axis is defined by an `axisOrigin` point and an `axisDirection` vector. The start angle determines where to begin the surface, measured in degrees, and the `sweepAngle` determines how far around the axis to continue the surface.
+
+In the example below, we use a curve generated with a cosine function as the profile curve, and two number sliders to control the `startAngle` and `sweepAngle`. The `axisOrigin` and `axisDirection` are left at the default values of the world origin and world z-axis for this example.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.BySweep(profile, path, cutEndOff).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.BySweep(profile, path, cutEndOff).dyn
new file mode 100644
index 00000000000..1bdbe0f864d
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.BySweep(profile, path, cutEndOff).dyn
@@ -0,0 +1,492 @@
+{
+ "Uuid": "598c2fe6-2426-457d-941b-200902fd9cbb",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Solid.BySweep",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Autodesk.DesignScript.Geometry.Vector": {
+ "Key": "Autodesk.DesignScript.Geometry.Vector",
+ "Value": "ProtoGeometry.dll"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "b240c0b2541842068e44e4d341ae9d3b",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "7c2f43991277455cbbf630ee04bb588b",
+ "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",
+ "Code": "0..180..36;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "74ec12cb76ce453c8105e2d059cdaaf2",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "fa4668ce31f9480f83571bb5f48e6800",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1bb1bd77ea0c402bbe95de46e572a39e",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "b9dcd432fd33407f910aff5a7cd73712",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "139820281e354451b1780f3ed6fb4957",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "9803ce0ab39c4c9e8b5b943c5910736c",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "abcec8c74f104f7c8c95773a05c292e7",
+ "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",
+ "Code": "0..5..1;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "fec23ce640b440749239963ec699544e",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "7b34655f33214ec9849facb8c72ac246",
+ "Name": "angle",
+ "Description": "Angle in degrees to take the cosine of.\n\ndouble",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "9fbe7925df404d5db35b44281af986f3",
+ "Name": "double",
+ "Description": "Cosine of the angle",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.Cos@double",
+ "Replication": "Auto",
+ "Description": "Finds the cosine of an angle.\n\nMath.Cos (angle: double): double"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "5e98c00419d74de990fb16007d8ca46c",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "6ab33bc64fcb43be9bf9d2bb6f219a30",
+ "Name": "points",
+ "Description": "Points for nurbs curve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "862bd534fe454769ba202522ba2812d8",
+ "Name": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByPoints@Autodesk.DesignScript.Geometry.Point[]",
+ "Replication": "Auto",
+ "Description": "Create a BSplineCurve by interpolating between points.\n\nNurbsCurve.ByPoints (points: Point[]): NurbsCurve"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "f49b582c13a74dc0a194b1627677c28e",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "56030561156d4c7eba19248ed27a887c",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "9609531868e442ccb21f655f4f15fe85",
+ "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",
+ "Code": "x-2;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "ddbf22de8fa2432caf7dec8d1e762ec3",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "f3bcfa9e53e94fc792f4ca0a7cb90186",
+ "Name": "width",
+ "Description": "Width of rectangle\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "b09751c2f07d4352bb4a5bd53f01a618",
+ "Name": "length",
+ "Description": "Length of rectangle\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "cdbf1bcf76f04fc082498f20203fffc3",
+ "Name": "Rectangle",
+ "Description": "Rectangle created by width and length",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Rectangle.ByWidthLength@double,double",
+ "Replication": "Auto",
+ "Description": "Create a Rectangle centered at the WCS origin in the WCS XY Plane, with specified width (X Axis length), and length (Y Axis length).\n\nRectangle.ByWidthLength (width: double = 1, length: double = 1): Rectangle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "15f537a2164c4abc83934a4831ca84b8",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "ec27fb06413b48fdb931d07025510762",
+ "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",
+ "Code": "2;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "eab75881686641cc9dfc439d9da2ceeb",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "2480c6d0d9c2465a9a1de31ae20b8a86",
+ "Name": "profile",
+ "Description": "A closed curve that will be the profile of the sweep\n\nCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1141d67a4681404cb1056c019d81216e",
+ "Name": "path",
+ "Description": "The path that represent the sweep path\n\nCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "b17d365201774b7783b02bf23beab3b1",
+ "Name": "cutEndOff",
+ "Description": "Cut the end of the sweep and make it normal to the path\n\nbool\nDefault value : false",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "f1ff5c0d9a76477690ad00cb39ff8be6",
+ "Name": "Solid",
+ "Description": "A solid by sweeping the profile curve along a path",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Solid.BySweep@Autodesk.DesignScript.Geometry.Curve,Autodesk.DesignScript.Geometry.Curve,bool",
+ "Replication": "Auto",
+ "Description": "Sweep a closed Curve along a path.\n\nSolid.BySweep (profile: Curve, path: Curve, cutEndOff: bool = false): Solid"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "7c2f43991277455cbbf630ee04bb588b",
+ "End": "7b34655f33214ec9849facb8c72ac246",
+ "Id": "a08468a387704b48b9ba5b4736eee183",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "139820281e354451b1780f3ed6fb4957",
+ "End": "6ab33bc64fcb43be9bf9d2bb6f219a30",
+ "Id": "9572195016f14576b5290c207cc3d5e8",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "abcec8c74f104f7c8c95773a05c292e7",
+ "End": "b9dcd432fd33407f910aff5a7cd73712",
+ "Id": "99d12453600f49e18ecf448e0c99b2a6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9fbe7925df404d5db35b44281af986f3",
+ "End": "56030561156d4c7eba19248ed27a887c",
+ "Id": "b4ff8c3fb6944b8b931d99821eff7322",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "862bd534fe454769ba202522ba2812d8",
+ "End": "1141d67a4681404cb1056c019d81216e",
+ "Id": "fd49ac2e9e764f8bab349b25ac8ec261",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9609531868e442ccb21f655f4f15fe85",
+ "End": "fa4668ce31f9480f83571bb5f48e6800",
+ "Id": "3f966b966a2e43bcb7e19f9c162e214e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "cdbf1bcf76f04fc082498f20203fffc3",
+ "End": "2480c6d0d9c2465a9a1de31ae20b8a86",
+ "Id": "3df19b96641f4caaac23916383a46f10",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ec27fb06413b48fdb931d07025510762",
+ "End": "f3bcfa9e53e94fc792f4ca0a7cb90186",
+ "Id": "ccd1caf77d3d40a3a02b975df8e02161",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -10.677200317382813,
+ "EyeY": 5.7709708213806152,
+ "EyeZ": 7.5597376823425293,
+ "LookX": 10.980081558227539,
+ "LookY": -0.21393844485282898,
+ "LookZ": -8.58186149597168,
+ "UpX": -0.15708129107952118,
+ "UpY": 0.97992467880249023,
+ "UpZ": 0.12277230620384216
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "b240c0b2541842068e44e4d341ae9d3b",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -1016.363565111724,
+ "Y": 186.55819007606192
+ },
+ {
+ "Id": "74ec12cb76ce453c8105e2d059cdaaf2",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -188.36356511172403,
+ "Y": 226.90319007606195
+ },
+ {
+ "Id": "9803ce0ab39c4c9e8b5b943c5910736c",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -442.36356511172403,
+ "Y": 334.73069007606193
+ },
+ {
+ "Id": "fec23ce640b440749239963ec699544e",
+ "Name": "Math.Cos",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -745.363565111724,
+ "Y": 186.73069007606193
+ },
+ {
+ "Id": "5e98c00419d74de990fb16007d8ca46c",
+ "Name": "NurbsCurve.ByPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 136.63643488827597,
+ "Y": 226.90319007606195
+ },
+ {
+ "Id": "f49b582c13a74dc0a194b1627677c28e",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -442.36356511172403,
+ "Y": 186.73069007606193
+ },
+ {
+ "Id": "ddbf22de8fa2432caf7dec8d1e762ec3",
+ "Name": "Rectangle.ByWidthLength",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 136.63643488827597,
+ "Y": 48.903190076061946
+ },
+ {
+ "Id": "15f537a2164c4abc83934a4831ca84b8",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -188.36356511172403,
+ "Y": 48.730690076061933
+ },
+ {
+ "Id": "eab75881686641cc9dfc439d9da2ceeb",
+ "Name": "Solid.BySweep",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 509.82191967437552,
+ "Y": 57.112976387281265
+ }
+ ],
+ "Annotations": [],
+ "X": 818.13151240417938,
+ "Y": 98.485606357878567,
+ "Zoom": 0.68483242074758288
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.BySweep(profile, path, cutEndOff).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.BySweep(profile, path, cutEndOff).md
new file mode 100644
index 00000000000..cce4acd2e95
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.BySweep(profile, path, cutEndOff).md
@@ -0,0 +1,8 @@
+## In Depth
+`Solid.BySweep` creates a solid by sweeping an input closed profile curve along a specified path.
+
+In the example below, we use a rectangle as the base profile curve. The path is created by using a cosine function with a sequence of angles to vary the x-coordinates of a set of points. The points are used as the input to a `NurbsCurve.ByPoints` node. We then create a solid by sweeping the rectangle along the created cosine curve.
+___
+## Example File
+
+![Solid.BySweep](./Autodesk.DesignScript.Geometry.Solid.BySweep(profile,%20path,%20cutEndOff)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.BySweep(profile, path, cutEndOff)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.BySweep(profile, path, cutEndOff)_img.jpg
new file mode 100644
index 00000000000..2c386f7988a
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.BySweep(profile, path, cutEndOff)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.BySweep2Rails.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.BySweep2Rails.md
index e302fa5b11f..029d11d8c42 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.BySweep2Rails.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Solid.BySweep2Rails.md
@@ -1,5 +1,8 @@
## In Depth
-Surface by Sweep 2 Rails takes an input curve and uses two guide curves to sweep the profile curve along. In the example below, we use a half-circle as the input profile. We create two diverging lines to use as the rail curves for a BySweep2Rails node. The result is a surface with a half-circle profile that grows as the arc moves along the diverging lines.
+`Solid.BySweep2Rails` returns a new solid from a curve profile swept along two curve rails.
+
+In the example below, a new solid is returned from sweeping a circle along two arcs as rails. Switching the arc inputs in `path` and `guideRail` will change which arc the sweep is perpendicular to.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Area.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Area.md
index a460c53f97f..3e779c62890 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Area.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Area.md
@@ -1,5 +1,8 @@
## In Depth
-Room area is returned as a double.
+`Surface.Area` returns the area of a given surface.
+
+In the example below, we create a surface by filling in a NurbsCurve. We then use `Surface.Area` to find the total area of this surface.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ByLoft(crossSections, guideCurves).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ByLoft(crossSections, guideCurves).dyn
new file mode 100644
index 00000000000..1c582850c75
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ByLoft(crossSections, guideCurves).dyn
@@ -0,0 +1,904 @@
+{
+ "Uuid": "1a95efd8-9b4d-4d46-8062-58c33543aa41",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Surface.ByLoft",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Math": {
+ "Key": "DSCore.Math",
+ "Value": "DSCoreNodes.dll"
+ },
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ }
+ }
+ },
+ "Inputs": [
+ {
+ "Id": "551c02cd02f2489d8ee299a953523fdc",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "2.9",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "f4ab7d87f0994bee846928b36cc5e65a",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "5.9",
+ "MaximumValue": 10.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "6f860554040d4f1d92215b4793174c61",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "d4c759b9ebc147d0b68f6056377c3614",
+ "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",
+ "Code": "0..10..1;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "e7e34ff533f1474eaba02b85dc4a5db2",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "2b8ac9911c1f4c90bcf519c505b25394",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "c69b031ea8584076918679c80fa5e109",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8871d3da23a4494dbfc48352d740b5af",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8530a99d3f8f4f758edfaaf70cdfa676",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "66ebc58d24a14e37ba4ffba2cd5bd2f2",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "594e7d785738494e97748ebbbe540483",
+ "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",
+ "Code": "0..360..36;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "23d02c95b5ae4f80a908c1ba53ee60ca",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "08e2632346114c8082224fdc9ab29bb5",
+ "Name": "a",
+ "Description": "a",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d52bc593ae6b4efaa8f20cbe12e985b7",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "d27dd588722c4bcab59de225bf0a7df7",
+ "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",
+ "Code": "a*Math.Sin(x);"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "Id": "551c02cd02f2489d8ee299a953523fdc",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "261f54d1a8394e4c82a87bb201bf0c20",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 2.9
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "c4eac7b3bbc84efebedf7b25343dabbd",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "963e68777e5948a8b91cab273b069abf",
+ "Name": "points",
+ "Description": "Points for nurbs curve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "9818ff680c2541589f396355cdae13f3",
+ "Name": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByPoints@Autodesk.DesignScript.Geometry.Point[]",
+ "Replication": "Auto",
+ "Description": "Create a BSplineCurve by interpolating between points.\n\nNurbsCurve.ByPoints (points: Point[]): NurbsCurve"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "99ed6956869f4bafbd492921381ff6e6",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "1fba7a7cf4cf4aeaae918ee8e804ddb3",
+ "Name": "startPoint",
+ "Description": "Line start point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "fd5e882ee82f47a08d3601129205ca86",
+ "Name": "endPoint",
+ "Description": "Line end point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "f74beda5f04645ac939dd4c3686ca250",
+ "Name": "Line",
+ "Description": "Line from start and end point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
+ "Replication": "Auto",
+ "Description": "Creates a straight Line between two input Points.\n\nLine.ByStartPointEndPoint (startPoint: Point, endPoint: Point): Line"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "5e828b5f5b944133addc9f813be740e0",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "1c4641dc65c1467a8bd0eaede5f5bc54",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "95b789fa47b2448a9fefa63687f4c32e",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(0, 10, 0);\nPoint.ByCoordinates(10, 10, 0);"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "9089cd8f9cc74a2789f009a955917c8d",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "6e7d357b98984e6ea571a1cb6e7f1b80",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "06648fdb6bf44d4eb8be2d9bab5d0eda",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "fe2e88b36be34ad9b2efd40c2998e1e8",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "370f74cf91044a8596a16e26db637ef7",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "0f7801eec49f4e17912317cc76a464dd",
+ "Name": "startPoint",
+ "Description": "Line start point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "2d57914daebe48dbba4ccc436973fc29",
+ "Name": "endPoint",
+ "Description": "Line end point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "0c000719819a4041a87dbfd0d653a526",
+ "Name": "Line",
+ "Description": "Line from start and end point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
+ "Replication": "Auto",
+ "Description": "Creates a straight Line between two input Points.\n\nLine.ByStartPointEndPoint (startPoint: Point, endPoint: Point): Line"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "9412092622074a988e7ea1578fe51ec6",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "5bf32d1e442341c4a94b3bc4fe789a7a",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "11f067a5e59d4b429bc329f17dda7642",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(0, 0, 0);\nPoint.ByCoordinates(10, 0, 0);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "78a01b00b1e049e6b300bbd9c02e28e8",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "42cc93af4d5f4da0a6aa467907dd1f5f",
+ "Name": "crossSections",
+ "Description": "Curves to loft through\n\nCurve[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "fedca907015740ec99c97c94b714debc",
+ "Name": "guideCurves",
+ "Description": "Curve[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "d9de9c321a8246638f237f12fc114cf9",
+ "Name": "Surface",
+ "Description": "Surface created by loft",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.ByLoft@Autodesk.DesignScript.Geometry.Curve[],Autodesk.DesignScript.Geometry.Curve[]",
+ "Replication": "Auto",
+ "Description": "Create a Surface by lofting between input cross section Curves.\n\nSurface.ByLoft (crossSections: Curve[], guideCurves: Curve[]): Surface"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "4101d4bc40fa4340965ff1558b10b656",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "0a7295010cf84b0692cd8ef07a0112a6",
+ "Name": "startPoint",
+ "Description": "Line start point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "620fed5a0ce94040bba7a14db6bf7e9c",
+ "Name": "endPoint",
+ "Description": "Line end point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "ee3a04a49ddf4e3ab81ec8691e123f60",
+ "Name": "Line",
+ "Description": "Line from start and end point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
+ "Replication": "Auto",
+ "Description": "Creates a straight Line between two input Points.\n\nLine.ByStartPointEndPoint (startPoint: Point, endPoint: Point): Line"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "7aa3242ffda043ba884032423c92d8dc",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "2f356d855b534065818b543165faa544",
+ "Name": "a",
+ "Description": "a",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "54e685d454cb4edeac067aacf136cf4a",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "bb234aaf006f4506a8d7d0e3f4660ac0",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(a, 0, 0);\nPoint.ByCoordinates(a, 10, 0);"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "a37c4b43eaa74db69011f0694febe89e",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "51beb7ba4ca648789cb26c6586805a78",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1ca159147e1e45938e52a6489f9810a9",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "ec89b15315c04d198e0538549840fbf6",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 10.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "Id": "f4ab7d87f0994bee846928b36cc5e65a",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "7812fbd8cbbc44c59d2795bde9a1eae2",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 5.9
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "d4c759b9ebc147d0b68f6056377c3614",
+ "End": "c69b031ea8584076918679c80fa5e109",
+ "Id": "ab505d9d528e4f349872b0fcbf6fcd8b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8530a99d3f8f4f758edfaaf70cdfa676",
+ "End": "963e68777e5948a8b91cab273b069abf",
+ "Id": "d5d6085e412e479f8d18659d58325107",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "594e7d785738494e97748ebbbe540483",
+ "End": "d52bc593ae6b4efaa8f20cbe12e985b7",
+ "Id": "696c5980d4024e92b5e75b5b9292c289",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d27dd588722c4bcab59de225bf0a7df7",
+ "End": "8871d3da23a4494dbfc48352d740b5af",
+ "Id": "fdfc50a796954233b11377f221005152",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "261f54d1a8394e4c82a87bb201bf0c20",
+ "End": "08e2632346114c8082224fdc9ab29bb5",
+ "Id": "516ab621d5944e5f86c7998d6d072f46",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9818ff680c2541589f396355cdae13f3",
+ "End": "1ca159147e1e45938e52a6489f9810a9",
+ "Id": "e359aeba9ac44e3caabcd21eb300ab20",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f74beda5f04645ac939dd4c3686ca250",
+ "End": "6e7d357b98984e6ea571a1cb6e7f1b80",
+ "Id": "6fb0a8e9816e404db9c4a9e5ad692454",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "1c4641dc65c1467a8bd0eaede5f5bc54",
+ "End": "1fba7a7cf4cf4aeaae918ee8e804ddb3",
+ "Id": "64e2f32abafe430f876a237b30e34402",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "95b789fa47b2448a9fefa63687f4c32e",
+ "End": "fd5e882ee82f47a08d3601129205ca86",
+ "Id": "1737aacf2c904560940d333e6a618946",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "fe2e88b36be34ad9b2efd40c2998e1e8",
+ "End": "42cc93af4d5f4da0a6aa467907dd1f5f",
+ "Id": "b89caa040cca482b9a90581d79922ae8",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "0c000719819a4041a87dbfd0d653a526",
+ "End": "06648fdb6bf44d4eb8be2d9bab5d0eda",
+ "Id": "a92c075e51b94c81a6ed7827bb834c18",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "5bf32d1e442341c4a94b3bc4fe789a7a",
+ "End": "0f7801eec49f4e17912317cc76a464dd",
+ "Id": "fa3ffdb0acee469ea3cb358008d6b7ad",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "11f067a5e59d4b429bc329f17dda7642",
+ "End": "2d57914daebe48dbba4ccc436973fc29",
+ "Id": "8be3ae36d59d48b7b4723bcd2f6cecd8",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ee3a04a49ddf4e3ab81ec8691e123f60",
+ "End": "51beb7ba4ca648789cb26c6586805a78",
+ "Id": "ebcc13a70a6c4a52be1bcf6cdc60980d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "54e685d454cb4edeac067aacf136cf4a",
+ "End": "0a7295010cf84b0692cd8ef07a0112a6",
+ "Id": "44cf8c2ed20b4f7ca865389864628f16",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "bb234aaf006f4506a8d7d0e3f4660ac0",
+ "End": "620fed5a0ce94040bba7a14db6bf7e9c",
+ "Id": "ddaf98ac8d3a475c93137bf9d027a956",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ec89b15315c04d198e0538549840fbf6",
+ "End": "fedca907015740ec99c97c94b714debc",
+ "Id": "4ecce1c165ed4da3afc1e1a6e9d71421",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "7812fbd8cbbc44c59d2795bde9a1eae2",
+ "End": "2f356d855b534065818b543165faa544",
+ "Id": "f1a7baabc3974c71b8e2111950a82a5a",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -17.110317230224609,
+ "EyeY": 10.710041046142578,
+ "EyeZ": 8.3238821029663086,
+ "LookX": 16.732326507568359,
+ "LookY": -4.6189045906066895,
+ "LookZ": -21.657403945922852,
+ "UpX": -0.029865782707929611,
+ "UpY": 0.99880611896514893,
+ "UpZ": 0.038656629621982574
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "6f860554040d4f1d92215b4793174c61",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -170.09728324938442,
+ "Y": 312.31791865093749
+ },
+ {
+ "Id": "e7e34ff533f1474eaba02b85dc4a5db2",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 277.90271675061558,
+ "Y": 335.4904186509375
+ },
+ {
+ "Id": "66ebc58d24a14e37ba4ffba2cd5bd2f2",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -618.09728324938442,
+ "Y": 551.14541865093747
+ },
+ {
+ "Id": "23d02c95b5ae4f80a908c1ba53ee60ca",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -170.09728324938442,
+ "Y": 460.3179186509376
+ },
+ {
+ "Id": "551c02cd02f2489d8ee299a953523fdc",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -618.09728324938442,
+ "Y": 403.3179186509376
+ },
+ {
+ "Id": "c4eac7b3bbc84efebedf7b25343dabbd",
+ "Name": "NurbsCurve.ByPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 725.90271675061558,
+ "Y": 334.4904186509375
+ },
+ {
+ "Id": "99ed6956869f4bafbd492921381ff6e6",
+ "Name": "Line.ByStartPointEndPoint",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 725.90271675061558,
+ "Y": -197.50958134906247
+ },
+ {
+ "Id": "5e828b5f5b944133addc9f813be740e0",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 277.90271675061558,
+ "Y": -188.85458134906244
+ },
+ {
+ "Id": "9089cd8f9cc74a2789f009a955917c8d",
+ "Name": "List.Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1096.9027167506156,
+ "Y": -37.509581349062472
+ },
+ {
+ "Id": "370f74cf91044a8596a16e26db637ef7",
+ "Name": "Line.ByStartPointEndPoint",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 725.90271675061558,
+ "Y": -20.509581349062472
+ },
+ {
+ "Id": "9412092622074a988e7ea1578fe51ec6",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 277.90271675061558,
+ "Y": -11.8545813490625
+ },
+ {
+ "Id": "78a01b00b1e049e6b300bbd9c02e28e8",
+ "Name": "Surface.ByLoft",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1356.9027167506156,
+ "Y": 34.490418650937528
+ },
+ {
+ "Id": "4101d4bc40fa4340965ff1558b10b656",
+ "Name": "Line.ByStartPointEndPoint",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 725.90271675061558,
+ "Y": 157.49041865093753
+ },
+ {
+ "Id": "7aa3242ffda043ba884032423c92d8dc",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 277.90271675061558,
+ "Y": 165.1454186509375
+ },
+ {
+ "Id": "a37c4b43eaa74db69011f0694febe89e",
+ "Name": "List.Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1096.9027167506156,
+ "Y": 140.49041865093753
+ },
+ {
+ "Id": "f4ab7d87f0994bee846928b36cc5e65a",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -170.09728324938442,
+ "Y": 165.1454186509375
+ }
+ ],
+ "Annotations": [],
+ "X": 410.3531956566851,
+ "Y": 171.152389631812,
+ "Zoom": 0.52486542792448354
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ByLoft(crossSections, guideCurves).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ByLoft(crossSections, guideCurves).md
index 6df7c2328af..352eb57cb31 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ByLoft(crossSections, guideCurves).md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ByLoft(crossSections, guideCurves).md
@@ -1,7 +1,9 @@
## In Depth
-Surface by Loft with cross sections and guide curves takes a list of cross sections to loft between, and a separate list of guide curves to determine the profile of the loft. In the example below, we use two straight lines as the input cross sections. For the guide curves, we create one sine curve and one straight line. A number slider controls the distance between the sine curve and the straight line. The resulting loft interpolates between the sine curve and the straight line.
-___
-## Example File
+`Surface.ByLoft (crossSections, guideCurves)` takes a list of cross sections to loft between, and a separate list of guide curves to determine the profile of the loft.
+In the example below, we use two straight lines as the input cross sections. For the guide curves, we create one sine curve and one straight line. A number slider controls the distance between the sine curve and the straight line. The resulting loft interpolates between the sine curve and the straight line.
+___
+## Example File
+![Surface.ByLoft](./Autodesk.DesignScript.Geometry.Surface.ByLoft(crossSections,%20guideCurves)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ByLoft(crossSections, guideCurves)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ByLoft(crossSections, guideCurves)_img.jpg
new file mode 100644
index 00000000000..7ef975da318
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ByLoft(crossSections, guideCurves)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.BySweep(profile, path, cutEndOff).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.BySweep(profile, path, cutEndOff).dyn
new file mode 100644
index 00000000000..e6f5fb3f9d7
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.BySweep(profile, path, cutEndOff).dyn
@@ -0,0 +1,546 @@
+{
+ "Uuid": "adebc203-078f-4e62-9938-2edda8d244ee",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Surface.BySweep",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Math": {
+ "Key": "DSCore.Math",
+ "Value": "DSCoreNodes.dll"
+ },
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "e165226a11b348d0ada633517a0ea2ab",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "27e8e9bd809047eeb117072d9735fbaf",
+ "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",
+ "Code": "0..10..1;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "cb378d260fb64cbb8aa954233ce749ee",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "8c85891f98b7446db7a9907a670c59cf",
+ "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",
+ "Code": "0..360..36;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1daa3dffaa2a4f46b68ac7a49bd23eea",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "55e9a55fb7f2467ea21cef2da0caa53b",
+ "Name": "angle",
+ "Description": "Angle in degrees to take the sine of.\n\ndouble",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "dc2cfbde44b3495f911b83526e7f513f",
+ "Name": "double",
+ "Description": "Sine of the angle.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.Sin@double",
+ "Replication": "Auto",
+ "Description": "Finds the sine of an angle.\n\nMath.Sin (angle: double): double"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "016ddadbd94a4469abb650e0b8ffa2b1",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "d34c4a8b00a543a8ba8fda0738a232b3",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "26af34ebcbf44284a70a8cd1d14963ad",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "116ae947b29c4537aaf1419470648b9b",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "301e2cf3bf6e4c4fbc68d7813b517d8e",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "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",
+ "Id": "ffaa060cba4045c586c1f0cc9b809c30",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "6ad1a21eee8d41049bb3b24bde538f3a",
+ "Name": "points",
+ "Description": "Points for nurbs curve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "dcc52cbd8d7c44fc9dea039521e500e1",
+ "Name": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByPoints@Autodesk.DesignScript.Geometry.Point[]",
+ "Replication": "Auto",
+ "Description": "Create a BSplineCurve by interpolating between points.\n\nNurbsCurve.ByPoints (points: Point[]): NurbsCurve"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "e7a7f6b0e654436080a8b9bb653e2a8f",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "4a82678308904173ae1f34f8682da2e4",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "747a9ba1908641409563d747632089ab",
+ "Name": "origin",
+ "Description": "Point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ded356198bf944b59ef664340dfe3f31",
+ "Name": "axis",
+ "Description": "Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5dd9c3c373864baba0ed3cf5db60f556",
+ "Name": "degrees",
+ "Description": "double\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "30125b4a0362448a8df32f40f7aa7810",
+ "Name": "Geometry",
+ "Description": "Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Rotate@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Vector,double",
+ "Replication": "Auto",
+ "Description": "Rotates an object around an origin and an axis by a specified degree\n\nGeometry.Rotate (origin: Point, axis: Vector, degrees: double = 0): Geometry"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "af76b1ce20684422bacff094c96f3a9f",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "669a0c529c48448f8dabb0cd59e5347f",
+ "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",
+ "Code": "-90;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "3335ba36cda641f5b9cc578c4f427375",
+ "NodeType": "FunctionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "4aaafac64c4e45c7b2f8c05665a39c6c",
+ "Name": "Point",
+ "Description": "Origin point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.Origin",
+ "Replication": "Auto",
+ "Description": "Get the Origin point (0,0,0)\n\nPoint.Origin ( ): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1e5f5ae90ee64b37b4e9a09428dadc9e",
+ "NodeType": "FunctionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "95afe843791c47828f132d074d7797d6",
+ "Name": "Vector",
+ "Description": "Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ZAxis",
+ "Replication": "Auto",
+ "Description": "Get the canonical Z axis Vector (0,0,1)\n\nVector.ZAxis ( ): Vector"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "dba36c740beb4342bbfd33c62a89461b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "aa386a592db74e5fa20ec5222c5e4ca3",
+ "Name": "profile",
+ "Description": "Curve to sweep\n\nCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "48863d185d0a452aab748743d22d09e1",
+ "Name": "path",
+ "Description": "Path curve used to sweep along\n\nCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "76e7682e263e431ebb588acc59602b60",
+ "Name": "cutEndOff",
+ "Description": "Cut the end of the sweep and make it normal to the path\n\nbool\nDefault value : false",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "23829cad5f414292b93ac92af773c711",
+ "Name": "Surface",
+ "Description": "Surface created by sweeping profile along path",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.BySweep@Autodesk.DesignScript.Geometry.Curve,Autodesk.DesignScript.Geometry.Curve,bool",
+ "Replication": "Auto",
+ "Description": "Create a Surface by sweeping a profile Curve along a path.\n\nSurface.BySweep (profile: Curve, path: Curve, cutEndOff: bool = false): Surface"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "27e8e9bd809047eeb117072d9735fbaf",
+ "End": "26af34ebcbf44284a70a8cd1d14963ad",
+ "Id": "59eef013af794bd09a73ca87981e2588",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8c85891f98b7446db7a9907a670c59cf",
+ "End": "55e9a55fb7f2467ea21cef2da0caa53b",
+ "Id": "62038d07282c446a9db35403990912b0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "dc2cfbde44b3495f911b83526e7f513f",
+ "End": "116ae947b29c4537aaf1419470648b9b",
+ "Id": "06cc9335645d46ba936d838a2ae2bc1d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "301e2cf3bf6e4c4fbc68d7813b517d8e",
+ "End": "6ad1a21eee8d41049bb3b24bde538f3a",
+ "Id": "d622e075b687407899642f77e6a50b07",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "dcc52cbd8d7c44fc9dea039521e500e1",
+ "End": "4a82678308904173ae1f34f8682da2e4",
+ "Id": "b1e89e329767445c8e8346c954a3206b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "dcc52cbd8d7c44fc9dea039521e500e1",
+ "End": "aa386a592db74e5fa20ec5222c5e4ca3",
+ "Id": "2b3ed20a6da643fca920cd31bda2cb80",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "30125b4a0362448a8df32f40f7aa7810",
+ "End": "48863d185d0a452aab748743d22d09e1",
+ "Id": "e359c52560784e8fbdbf0f6680aa96ae",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "669a0c529c48448f8dabb0cd59e5347f",
+ "End": "5dd9c3c373864baba0ed3cf5db60f556",
+ "Id": "4d21b1e24b4947caa6c7bb35e52a8db3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4aaafac64c4e45c7b2f8c05665a39c6c",
+ "End": "747a9ba1908641409563d747632089ab",
+ "Id": "e46c558396fd4836bcb523cfcba31776",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "95afe843791c47828f132d074d7797d6",
+ "End": "ded356198bf944b59ef664340dfe3f31",
+ "Id": "7a7d2c49af9b46cc8bbf5dbbf82e890f",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -12.151876449584961,
+ "EyeY": 10.257155418395996,
+ "EyeZ": 4.30262565612793,
+ "LookX": 16.018514633178711,
+ "LookY": -5.6682891845703125,
+ "LookZ": -8.9196844100952148,
+ "UpX": 0.073107823729515076,
+ "UpY": 0.996492862701416,
+ "UpZ": -0.040709063410758972
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "e165226a11b348d0ada633517a0ea2ab",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -32.770273301801126,
+ "Y": -166.01259982636884
+ },
+ {
+ "Id": "cb378d260fb64cbb8aa954233ce749ee",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -303.77027330180113,
+ "Y": -18.012599826368813
+ },
+ {
+ "Id": "1daa3dffaa2a4f46b68ac7a49bd23eea",
+ "Name": "Math.Sin",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -32.770273301801126,
+ "Y": -17.840099826368828
+ },
+ {
+ "Id": "016ddadbd94a4469abb650e0b8ffa2b1",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 270.22972669819887,
+ "Y": -142.84009982636883
+ },
+ {
+ "Id": "ffaa060cba4045c586c1f0cc9b809c30",
+ "Name": "NurbsCurve.ByPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 595.22972669819887,
+ "Y": -142.84009982636883
+ },
+ {
+ "Id": "e7a7f6b0e654436080a8b9bb653e2a8f",
+ "Name": "Geometry.Rotate",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 930.22972669819887,
+ "Y": 31.159900173631172
+ },
+ {
+ "Id": "af76b1ce20684422bacff094c96f3a9f",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 595.22972669819887,
+ "Y": 298.98740017363122
+ },
+ {
+ "Id": "3335ba36cda641f5b9cc578c4f427375",
+ "Name": "Point.Origin",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 595.22972669819887,
+ "Y": 4.159900173631172
+ },
+ {
+ "Id": "1e5f5ae90ee64b37b4e9a09428dadc9e",
+ "Name": "Vector.ZAxis",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 595.22972669819887,
+ "Y": 151.15990017363117
+ },
+ {
+ "Id": "dba36c740beb4342bbfd33c62a89461b",
+ "Name": "Surface.BySweep",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1263.7028101069766,
+ "Y": -25.783407418411684
+ }
+ ],
+ "Annotations": [],
+ "X": 246.6123195350774,
+ "Y": 410.41720037883647,
+ "Zoom": 0.62740812659763423
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.BySweep(profile, path, cutEndOff).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.BySweep(profile, path, cutEndOff).md
new file mode 100644
index 00000000000..661d715bd13
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.BySweep(profile, path, cutEndOff).md
@@ -0,0 +1,10 @@
+## In Depth
+`Surface.BySweep (profile, path, cutEndOff)` creates a surface by sweeping an input curve along a specified path. The `cutEndOff` input controls whether to cut the end of the sweep and make it normal to the path.
+
+In the example below, we use a sine curve in the y-direction as the profile curve. We rotate this curve by -90 degrees around the world z-axis to use as a path curve. Surface BySweep moves the profile curve along the path curve creating a surface.
+
+
+___
+## Example File
+
+![Surface.BySweep](./Autodesk.DesignScript.Geometry.Surface.BySweep(profile,%20path,%20cutEndOff)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.BySweep(profile, path, cutEndOff)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.BySweep(profile, path, cutEndOff)_img.jpg
new file mode 100644
index 00000000000..cf338e35dbc
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.BySweep(profile, path, cutEndOff)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness).dyn
new file mode 100644
index 00000000000..c208bcb9e12
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness).dyn
@@ -0,0 +1,582 @@
+{
+ "Uuid": "4cadb0ed-635c-44ed-b83e-bb9642d9601e",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Surface.Thicken",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Math": {
+ "Key": "DSCore.Math",
+ "Value": "DSCoreNodes.dll"
+ },
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ }
+ }
+ },
+ "Inputs": [
+ {
+ "Id": "9b8d8a483fc244cc869903e0298f7c79",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "0.8",
+ "MaximumValue": 20.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "46f950b5fe6145b8b18e8376297a4add",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "23643f2fb52d47e7a1802214bae0a5e2",
+ "Name": "path",
+ "Description": "The input path to sweep along.\n\nCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "c2fed4d4ae8348e987029affd1e590b9",
+ "Name": "guideRail",
+ "Description": "A rail to guide the orientation of the sweep.\n\nCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "f6d2430732944b38aa904a6c7e3827f7",
+ "Name": "profile",
+ "Description": "The profile curve to sweep along the path.\n\nCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "f40f4141953e417d99c879c9fd972ce9",
+ "Name": "Surface",
+ "Description": "Surface created by sweeping two rails",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.BySweep2Rails@Autodesk.DesignScript.Geometry.Curve,Autodesk.DesignScript.Geometry.Curve,Autodesk.DesignScript.Geometry.Curve",
+ "Replication": "Auto",
+ "Description": "Sweep the cross section curve along a path guided by a two rails\n\nSurface.BySweep2Rails (path: Curve, guideRail: Curve, profile: Curve): Surface"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "c602bcf62d04417780faf5ab8d1c8754",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "18a3c1ef337a46e3b48eb577eaf4bb2b",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "4fa39a2ba5344769898e406d18247e04",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(0,1,0);\nPoint.ByCoordinates(10,6,0);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "465066644bdc4ad8b381cdb43bef4659",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "d20c3425065a49b7949403fc27d24dd7",
+ "Name": "startPoint",
+ "Description": "Line start point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "095aa4fcc1294a4894c3f53b9b27e704",
+ "Name": "endPoint",
+ "Description": "Line end point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "ee6f82ec6fea4132b197751367f012c3",
+ "Name": "Line",
+ "Description": "Line from start and end point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
+ "Replication": "Auto",
+ "Description": "Creates a straight Line between two input Points.\n\nLine.ByStartPointEndPoint (startPoint: Point, endPoint: Point): Line"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "47bf6e834e034077a11820b48f2fd328",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "1c102cdf6ee5424d90b0a8726f3dcfc5",
+ "Name": "startPoint",
+ "Description": "Line start point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "0033296a528e47bbb6361295f9a257a6",
+ "Name": "endPoint",
+ "Description": "Line end point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "79487042973e437495fa93c6921b519e",
+ "Name": "Line",
+ "Description": "Line from start and end point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
+ "Replication": "Auto",
+ "Description": "Creates a straight Line between two input Points.\n\nLine.ByStartPointEndPoint (startPoint: Point, endPoint: Point): Line"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "472340e7974847ec8f7dd34f399ab060",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "2102d649d2da4cb2963b2dc448a04c74",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "82c27e9da7c84301a816dbd95c8c3f73",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(0,-1,0);\nPoint.ByCoordinates(10,-1,0);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "8071412212ac46f9856121fd80444f1c",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "d7601527c1c94240bd059a01b60862fa",
+ "Name": "firstPoint",
+ "Description": "1st point of arc\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "c8be23c7687c4c219bdf6bc5ea258f60",
+ "Name": "secondPoint",
+ "Description": "2nd point of arc\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "51cdbff78aaa4e30a9f4412cb5b43eb7",
+ "Name": "thirdPoint",
+ "Description": "3rd point of arc\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "1e2d52d0abd94a8e90b9ca1518b73c09",
+ "Name": "Arc",
+ "Description": "Arc created from three points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Arc.ByThreePoints@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
+ "Replication": "Auto",
+ "Description": "Create an arc by providing three sequential points along its circumference.\n\nArc.ByThreePoints (firstPoint: Point, secondPoint: Point, thirdPoint: Point): Arc"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "ee8b86682e4d4a35bbe3af2667838194",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "1da36deb96364d7a9ab07a764c4b799d",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8e6dc679451b45568eaabff72d89f6a6",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "4d5f77ef90424b118792821e77ce221f",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(0,-1,0);\nPoint.ByCoordinates(0,0,1);\nPoint.ByCoordinates(0,1,0);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "0c6b81740bc24e55a4ea6e82f5a877c1",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "57693d85f262470982f4d5d7cc52b302",
+ "Name": "surface",
+ "Description": "Autodesk.DesignScript.Geometry.Surface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "61543a55614f4c4e80502de355d55644",
+ "Name": "thickness",
+ "Description": "Amount to thicken\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "249f43528931434d9ea95d0227ce29d5",
+ "Name": "Solid",
+ "Description": "Thickened surface as solid",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.Thicken@double",
+ "Replication": "Auto",
+ "Description": "Thicken Surface into a Solid, extruding in the direction of Surface normals on both sides of the Surface.\n\nSurface.Thicken (thickness: double = 1): Solid"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 20.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "Id": "9b8d8a483fc244cc869903e0298f7c79",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "6ffaf0673a234eca90a6813868da119f",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 0.8
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "f40f4141953e417d99c879c9fd972ce9",
+ "End": "57693d85f262470982f4d5d7cc52b302",
+ "Id": "9e51575eecc34496a64894a9593644c0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "18a3c1ef337a46e3b48eb577eaf4bb2b",
+ "End": "d20c3425065a49b7949403fc27d24dd7",
+ "Id": "f9ed649192fe4a588b7ac5f01d4601a2",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4fa39a2ba5344769898e406d18247e04",
+ "End": "095aa4fcc1294a4894c3f53b9b27e704",
+ "Id": "99297dd41daf4ef28f67bdcc0279e54c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ee6f82ec6fea4132b197751367f012c3",
+ "End": "c2fed4d4ae8348e987029affd1e590b9",
+ "Id": "b480761a39d3480ea2d570cc495a2eb4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "79487042973e437495fa93c6921b519e",
+ "End": "23643f2fb52d47e7a1802214bae0a5e2",
+ "Id": "ec92295d3c7a47169ea88df73f0a411b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "2102d649d2da4cb2963b2dc448a04c74",
+ "End": "1c102cdf6ee5424d90b0a8726f3dcfc5",
+ "Id": "deeeae543ed4439484395502846f8935",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "82c27e9da7c84301a816dbd95c8c3f73",
+ "End": "0033296a528e47bbb6361295f9a257a6",
+ "Id": "cf8ee4ab1a9d42f3b30b7ac706136fcb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "1e2d52d0abd94a8e90b9ca1518b73c09",
+ "End": "f6d2430732944b38aa904a6c7e3827f7",
+ "Id": "5201857263cd419f98a6cb0d9faab284",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "1da36deb96364d7a9ab07a764c4b799d",
+ "End": "d7601527c1c94240bd059a01b60862fa",
+ "Id": "1c6db565ea6a466cb4d54336a2050f4b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8e6dc679451b45568eaabff72d89f6a6",
+ "End": "c8be23c7687c4c219bdf6bc5ea258f60",
+ "Id": "d317afeb396e484b9b2a044d7cabd902",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4d5f77ef90424b118792821e77ce221f",
+ "End": "51cdbff78aaa4e30a9f4412cb5b43eb7",
+ "Id": "b51b41d7498e4085ad5860ff72059232",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6ffaf0673a234eca90a6813868da119f",
+ "End": "61543a55614f4c4e80502de355d55644",
+ "Id": "a7e73532fe3e435eaf7a5d24b09ff292",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -12.151876449584961,
+ "EyeY": 10.257155418395996,
+ "EyeZ": 4.30262565612793,
+ "LookX": 16.018514633178711,
+ "LookY": -5.6682891845703125,
+ "LookZ": -8.9196844100952148,
+ "UpX": 0.073107823729515076,
+ "UpY": 0.996492862701416,
+ "UpZ": -0.040709063410758972
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "46f950b5fe6145b8b18e8376297a4add",
+ "Name": "Surface.BySweep2Rails",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 616.06536709016132,
+ "Y": -9.73849970432562
+ },
+ {
+ "Id": "c602bcf62d04417780faf5ab8d1c8754",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -165.93463290983868,
+ "Y": 32.916500295674382
+ },
+ {
+ "Id": "465066644bdc4ad8b381cdb43bef4659",
+ "Name": "Line.ByStartPointEndPoint",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 245.06536709016132,
+ "Y": 24.261500295674381
+ },
+ {
+ "Id": "47bf6e834e034077a11820b48f2fd328",
+ "Name": "Line.ByStartPointEndPoint",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 245.06536709016132,
+ "Y": -152.73849970432562
+ },
+ {
+ "Id": "472340e7974847ec8f7dd34f399ab060",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -165.93463290983868,
+ "Y": -144.08349970432559
+ },
+ {
+ "Id": "8071412212ac46f9856121fd80444f1c",
+ "Name": "Arc.ByThreePoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 245.06536709016132,
+ "Y": 201.26150029567438
+ },
+ {
+ "Id": "ee8b86682e4d4a35bbe3af2667838194",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -165.93463290983868,
+ "Y": 218.7440002956744
+ },
+ {
+ "Id": "0c6b81740bc24e55a4ea6e82f5a877c1",
+ "Name": "Surface.Thicken",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1064.0653670901613,
+ "Y": 79.261500295674381
+ },
+ {
+ "Id": "9b8d8a483fc244cc869903e0298f7c79",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 616.06536709016132,
+ "Y": 202.26150029567438
+ }
+ ],
+ "Annotations": [],
+ "X": 144.48276377952061,
+ "Y": 274.18425344347753,
+ "Zoom": 0.62740812659763423
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness).md
new file mode 100644
index 00000000000..2d8760b0b92
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness).md
@@ -0,0 +1,10 @@
+## In Depth
+`Surface.Thicken` creates a solid by offsetting a surface according to the thickness input, capping the ends to close the solid.
+
+In the example below, we first create a surface by using a `Surface.BySweep2Rails`. We then create a solid by using a number slider to determine the thickness input of a `Surface.Thicken` node.
+
+
+___
+## Example File
+
+![Surface.Thicken](./Autodesk.DesignScript.Geometry.Surface.Thicken(surface,%20thickness)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness)_img.jpg
new file mode 100644
index 00000000000..820353c76f3
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness, both_sides).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness, both_sides).dyn
new file mode 100644
index 00000000000..2b187d6f706
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness, both_sides).dyn
@@ -0,0 +1,636 @@
+{
+ "Uuid": "33bd972a-0d56-4b8b-beaf-78f68f1458eb",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Surface.Thicken",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Math": {
+ "Key": "DSCore.Math",
+ "Value": "DSCoreNodes.dll"
+ },
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ }
+ }
+ },
+ "Inputs": [
+ {
+ "Id": "6b938f6412874a88a9f9cbce39b4659e",
+ "Name": "Number Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "0.8",
+ "MaximumValue": 20.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "6c13743477774b739a2d4c15c7f2485e",
+ "Name": "Boolean",
+ "Type": "boolean",
+ "Type2": "boolean",
+ "Value": "true",
+ "Description": "Enables selection between True and False",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "0b37921be50f4b44b9acf040806751a6",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "774f754ef974414e8215798920bffe98",
+ "Name": "path",
+ "Description": "The input path to sweep along.\n\nCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "9f6d0e1602c04a00a57c9911dc392df5",
+ "Name": "guideRail",
+ "Description": "A rail to guide the orientation of the sweep.\n\nCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1646f3d541044e07b4aa2dde28381dc4",
+ "Name": "profile",
+ "Description": "The profile curve to sweep along the path.\n\nCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "2a40c877769c488e833ffd8f2f3ce333",
+ "Name": "Surface",
+ "Description": "Surface created by sweeping two rails",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.BySweep2Rails@Autodesk.DesignScript.Geometry.Curve,Autodesk.DesignScript.Geometry.Curve,Autodesk.DesignScript.Geometry.Curve",
+ "Replication": "Auto",
+ "Description": "Sweep the cross section curve along a path guided by a two rails\n\nSurface.BySweep2Rails (path: Curve, guideRail: Curve, profile: Curve): Surface"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "e45204ff0fd847c38e917d1786e7ae00",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "ad2494e7e88748f0b74cec91f3384ee2",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "de7bd5c3c84e4a18a46abd8d4cb40ff4",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(0,1,0);\nPoint.ByCoordinates(10,6,0);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "6f2ecab363e24aeb817f0a03f8ccb990",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "55b1414f0e2d4d09b72acb43b4e9b0dc",
+ "Name": "startPoint",
+ "Description": "Line start point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6ebfe84fa5aa4ebab92303ef01099567",
+ "Name": "endPoint",
+ "Description": "Line end point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "a377bc54e32a43dab3463ad369da2303",
+ "Name": "Line",
+ "Description": "Line from start and end point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
+ "Replication": "Auto",
+ "Description": "Creates a straight Line between two input Points.\n\nLine.ByStartPointEndPoint (startPoint: Point, endPoint: Point): Line"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7a69c3d67aa84f42b750d03bdbd33027",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "89bb47379bc44287ab2114d957ca68ff",
+ "Name": "startPoint",
+ "Description": "Line start point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "daa6031d17974499b44652e8ed79e9b6",
+ "Name": "endPoint",
+ "Description": "Line end point\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "b491462085e844e0a23cd02875b955c6",
+ "Name": "Line",
+ "Description": "Line from start and end point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
+ "Replication": "Auto",
+ "Description": "Creates a straight Line between two input Points.\n\nLine.ByStartPointEndPoint (startPoint: Point, endPoint: Point): Line"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "a1b10149239f4fab843c567cc89b3f77",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "e7b29d194ef5443c8db865bc9f6728ff",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ec1e9fc4b914448f90f362b0db189115",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(0,-1,0);\nPoint.ByCoordinates(10,-1,0);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "0577b79ffb894a06999e1c9eb5586e36",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "deee18ba534c48e7af1195ab305f5597",
+ "Name": "firstPoint",
+ "Description": "1st point of arc\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ed2c9dd8651e444887465990ba2d9b41",
+ "Name": "secondPoint",
+ "Description": "2nd point of arc\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6971e0a94f2d4c678ed1d9472332db05",
+ "Name": "thirdPoint",
+ "Description": "3rd point of arc\n\nPoint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "b873c08aee344e30af98f599c0216ee8",
+ "Name": "Arc",
+ "Description": "Arc created from three points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Arc.ByThreePoints@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Point",
+ "Replication": "Auto",
+ "Description": "Create an arc by providing three sequential points along its circumference.\n\nArc.ByThreePoints (firstPoint: Point, secondPoint: Point, thirdPoint: Point): Arc"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "9672236780264b6f977b885b5511fe95",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "8142e26075ac4f51a215408705ba9453",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "f88331d2eed3498e9eb0328beeea460c",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "94543f4a30c74691a855efbb16fa3023",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(0,-1,0);\nPoint.ByCoordinates(0,0,1);\nPoint.ByCoordinates(0,1,0);"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 20.0,
+ "MinimumValue": 0.0,
+ "StepValue": 0.1,
+ "Id": "6b938f6412874a88a9f9cbce39b4659e",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "e6d8ec96f76e4ec6b4ec24b4afaa1080",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 0.8
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "df916e36aa08400cb18713f2e3f38ab9",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "e825ea2586f3448e8260344fc830aa79",
+ "Name": "surface",
+ "Description": "Autodesk.DesignScript.Geometry.Surface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8e4d387ba06f4565a91e7d7d3f34d89d",
+ "Name": "thickness",
+ "Description": "Amount to thicken\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "93e1ec717e7946a0b185706395291c03",
+ "Name": "both_sides",
+ "Description": "True to thicken on both sides, false to thicken on one side\n\nbool\nDefault value : true",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "1bb97561ff354232931cefbec08aee9d",
+ "Name": "Solid",
+ "Description": "Thickened surface as solid",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.Thicken@double,bool",
+ "Replication": "Auto",
+ "Description": "Thicken Surface into a Solid, extruding in the direction of Surface normals. If both_sides parameter is true, surface is thickened on both sides.\n\nSurface.Thicken (thickness: double = 1, both_sides: bool = true): Solid"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.BoolSelector, CoreNodeModels",
+ "Id": "6c13743477774b739a2d4c15c7f2485e",
+ "NodeType": "BooleanInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "eac8f8382e204a138c0ad6f770b9ee58",
+ "Name": "",
+ "Description": "Boolean",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Enables selection between True and False",
+ "InputValue": true
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "2a40c877769c488e833ffd8f2f3ce333",
+ "End": "e825ea2586f3448e8260344fc830aa79",
+ "Id": "a8fe20c6dbf64976b66b95e687cc908c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ad2494e7e88748f0b74cec91f3384ee2",
+ "End": "55b1414f0e2d4d09b72acb43b4e9b0dc",
+ "Id": "a6985f13c09d4b7c9f21958d900753b6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "de7bd5c3c84e4a18a46abd8d4cb40ff4",
+ "End": "6ebfe84fa5aa4ebab92303ef01099567",
+ "Id": "1ea14680920d4f23956d856f8a5e198b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a377bc54e32a43dab3463ad369da2303",
+ "End": "9f6d0e1602c04a00a57c9911dc392df5",
+ "Id": "7879bbd64f4b4dd08d5a870925ea1a73",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b491462085e844e0a23cd02875b955c6",
+ "End": "774f754ef974414e8215798920bffe98",
+ "Id": "9a6303341c474059b6cfc2cfb4c3e5a3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e7b29d194ef5443c8db865bc9f6728ff",
+ "End": "89bb47379bc44287ab2114d957ca68ff",
+ "Id": "d1b1ee199347491dabf6cea4f75090e2",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ec1e9fc4b914448f90f362b0db189115",
+ "End": "daa6031d17974499b44652e8ed79e9b6",
+ "Id": "027894ac62284bdc9145c9c171cf3c76",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b873c08aee344e30af98f599c0216ee8",
+ "End": "1646f3d541044e07b4aa2dde28381dc4",
+ "Id": "3b26e6b5cc4a4fd3bf7cef9d531cd018",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8142e26075ac4f51a215408705ba9453",
+ "End": "deee18ba534c48e7af1195ab305f5597",
+ "Id": "52ba2a0ebea5495da7303399683ce95b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f88331d2eed3498e9eb0328beeea460c",
+ "End": "ed2c9dd8651e444887465990ba2d9b41",
+ "Id": "b232ec8ea5cf4095921e336a831f8a16",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "94543f4a30c74691a855efbb16fa3023",
+ "End": "6971e0a94f2d4c678ed1d9472332db05",
+ "Id": "08f7732899ec4b6a96cb76da5dca4cb7",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e6d8ec96f76e4ec6b4ec24b4afaa1080",
+ "End": "8e4d387ba06f4565a91e7d7d3f34d89d",
+ "Id": "8299d9e32afc408fb9ab871449895372",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "eac8f8382e204a138c0ad6f770b9ee58",
+ "End": "93e1ec717e7946a0b185706395291c03",
+ "Id": "b3cf61dcb1da490c9a08d31a030ce31b",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -12.151876449584961,
+ "EyeY": 10.257155418395996,
+ "EyeZ": 4.30262565612793,
+ "LookX": 16.018514633178711,
+ "LookY": -5.6682891845703125,
+ "LookZ": -8.9196844100952148,
+ "UpX": 0.073107823729515076,
+ "UpY": 0.996492862701416,
+ "UpZ": -0.040709063410758972
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "0b37921be50f4b44b9acf040806751a6",
+ "Name": "Surface.BySweep2Rails",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 616.06536709016132,
+ "Y": -51.738499704325619
+ },
+ {
+ "Id": "e45204ff0fd847c38e917d1786e7ae00",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -165.93463290983868,
+ "Y": -9.083499704325618
+ },
+ {
+ "Id": "6f2ecab363e24aeb817f0a03f8ccb990",
+ "Name": "Line.ByStartPointEndPoint",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 245.06536709016132,
+ "Y": -17.738499704325619
+ },
+ {
+ "Id": "7a69c3d67aa84f42b750d03bdbd33027",
+ "Name": "Line.ByStartPointEndPoint",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 245.06536709016132,
+ "Y": -194.73849970432562
+ },
+ {
+ "Id": "a1b10149239f4fab843c567cc89b3f77",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -165.93463290983868,
+ "Y": -186.08349970432559
+ },
+ {
+ "Id": "0577b79ffb894a06999e1c9eb5586e36",
+ "Name": "Arc.ByThreePoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 245.06536709016132,
+ "Y": 159.26150029567438
+ },
+ {
+ "Id": "9672236780264b6f977b885b5511fe95",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -165.93463290983868,
+ "Y": 176.7440002956744
+ },
+ {
+ "Id": "6b938f6412874a88a9f9cbce39b4659e",
+ "Name": "Number Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 616.06536709016132,
+ "Y": 161.26150029567438
+ },
+ {
+ "Id": "df916e36aa08400cb18713f2e3f38ab9",
+ "Name": "Surface.Thicken",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1064.0653670901613,
+ "Y": 105.26150029567438
+ },
+ {
+ "Id": "6c13743477774b739a2d4c15c7f2485e",
+ "Name": "Boolean",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 616.06536709016132,
+ "Y": 308.26150029567441
+ }
+ ],
+ "Annotations": [],
+ "X": 236.82282238548305,
+ "Y": 186.70255741877492,
+ "Zoom": 0.8476185719982261
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness, both_sides).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness, both_sides).md
new file mode 100644
index 00000000000..696e833afc3
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness, both_sides).md
@@ -0,0 +1,9 @@
+## In Depth
+`Surface.Thicken (surface, thickness, both_sides)` creates a solid by offsetting a surface according to the `thickness` input and by capping the ends to close the solid. This node has an extra input to specify whether or not to thicken on both sides. The `both_sides` input takes a Boolean value: True to thicken on both sides, and False to thicken on one side. Note that the `thickness` parameter determines the total thickness of the final solid, so if `both_sides` is set to True, the result will be offset from the original surface by half the input thickness on both sides.
+
+In the example below, we first create a surface by using a `Surface.BySweep2Rails`. We then create a solid by using a number slider to determine the `thickness` input of a `Surface.Thicken` node. A Boolean toggle controls whether to thicken on both sides or just one.
+
+___
+## Example File
+
+![Surface.Thicken](./Autodesk.DesignScript.Geometry.Surface.Thicken(surface,%20thickness,%20both_sides)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness, both_sides)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness, both_sides)_img.jpg
new file mode 100644
index 00000000000..27ad54a9f36
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.Thicken(surface, thickness, both_sides)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface(surface, limitSurface).dyn
similarity index 69%
rename from doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface.dyn
rename to doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface(surface, limitSurface).dyn
index 6bcc9c040a8..955be9c9ab8 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface.dyn
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface(surface, limitSurface).dyn
@@ -1,5 +1,5 @@
{
- "Uuid": "3c9d0464-8643-5ffe-96e5-ab1769818209",
+ "Uuid": "f621dfe0-6bbb-4146-891e-c0e97be5ab33",
"IsCustomNode": false,
"Description": "",
"Name": "Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface",
@@ -8,11 +8,11 @@
},
"Inputs": [
{
- "Id": "4fd25c7abb42406eb64183323b390da8",
+ "Id": "d1d2bf4c35824acf9947d4e22f00d964",
"Name": "Number Slider",
"Type": "number",
"Type2": "number",
- "Value": "5",
+ "Value": "6",
"MaximumValue": 10.0,
"MinimumValue": 3.0,
"StepValue": 1.0,
@@ -21,7 +21,7 @@
"SelectedIndex": 0
},
{
- "Id": "5b4d90107c974168b1d6053bc480a259",
+ "Id": "382ccf0846064287b785f182cd44ac1b",
"Name": "Boolean",
"Type": "boolean",
"Type2": "boolean",
@@ -34,12 +34,11 @@
"Nodes": [
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "c781287922f34a0b929fd8eefb4c8513",
"NodeType": "FunctionNode",
- "FunctionSignature": "DSCore.Math.RandomList@int",
- "Id": "7d7435f4dcd14a1bb0693f701ecda485",
"Inputs": [
{
- "Id": "b28dc369bd84427888a5c22efe281c8b",
+ "Id": "0533fc834568477c9a33015b07f4cf6e",
"Name": "amount",
"Description": "Amount of random numbers the result list will contain.\n\nint",
"UsingDefaultValue": false,
@@ -50,7 +49,7 @@
],
"Outputs": [
{
- "Id": "fa1407d53f3843909fe092e7554be8ed",
+ "Id": "5e1ee44909c24b26a980307dc25306cb",
"Name": "number",
"Description": "List of random numbers between 0 and 1.",
"UsingDefaultValue": false,
@@ -59,22 +58,22 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
"Replication": "Auto",
"Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
},
{
"ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
- "NodeType": "NumberInputNode",
"NumberType": "Double",
"MaximumValue": 10.0,
"MinimumValue": 3.0,
"StepValue": 1.0,
- "InputValue": 5.0,
- "Id": "4fd25c7abb42406eb64183323b390da8",
+ "Id": "d1d2bf4c35824acf9947d4e22f00d964",
+ "NodeType": "NumberInputNode",
"Inputs": [],
"Outputs": [
{
- "Id": "4066f07b08774a64914edc66635e14ff",
+ "Id": "2ee4f82e99484ee98a69f87f90e97f42",
"Name": "",
"Description": "Double",
"UsingDefaultValue": false,
@@ -84,16 +83,16 @@
}
],
"Replication": "Disabled",
- "Description": "Produces numeric values"
+ "Description": "Produces numeric values",
+ "InputValue": 6.0
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "16c02f1f6e31445aa5f7ee52bd3a882f",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCylindricalCoordinates@Autodesk.DesignScript.Geometry.CoordinateSystem,double,double,double",
- "Id": "11d18d7068564c249a8beb42837e0216",
"Inputs": [
{
- "Id": "edbcf0ef0f764de2b5bcfa343b9f2a09",
+ "Id": "89912ac557a649c3b630fcb56f1ad6ff",
"Name": "coordinateSystem",
"Description": "Coordinate system to build the point in\n\nCoordinateSystem\nDefault value : Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)",
"UsingDefaultValue": true,
@@ -102,7 +101,7 @@
"KeepListStructure": false
},
{
- "Id": "547ff2e1368946cda31be9b2ccd41aac",
+ "Id": "b6b392b117a7463e85eb259ea4fce6f4",
"Name": "angle",
"Description": "The angle is the rotation from the X axis in the coordinate system around the Z axis in degrees\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
@@ -111,7 +110,7 @@
"KeepListStructure": false
},
{
- "Id": "42af7131f08b415db916928fbff5f480",
+ "Id": "daa4ecc3389c4253a65be752d94ec4e4",
"Name": "elevation",
"Description": "The elevation of the point above the XY plane\n\ndouble\nDefault value : 0",
"UsingDefaultValue": true,
@@ -120,7 +119,7 @@
"KeepListStructure": false
},
{
- "Id": "655bd93715d64c11bab8c7897492806e",
+ "Id": "b281453570e946d5ad30d1b90c8a9544",
"Name": "radius",
"Description": "The distance from the origin of the coordinate system\n\ndouble\nDefault value : 1",
"UsingDefaultValue": true,
@@ -131,7 +130,7 @@
],
"Outputs": [
{
- "Id": "794cdf2e847a4ca39527a9adf0aa71cc",
+ "Id": "9bd5847774494f36824a4ab0276b3e18",
"Name": "Point",
"Description": "Point at cylindrical coordinates",
"UsingDefaultValue": false,
@@ -140,17 +139,17 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCylindricalCoordinates@Autodesk.DesignScript.Geometry.CoordinateSystem,double,double,double",
"Replication": "Auto",
"Description": "Form a Point in the given coordinate system given its position in cylindrical coordinates.\n\nPoint.ByCylindricalCoordinates (coordinateSystem: CoordinateSystem = Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0), angle: double = 0, elevation: double = 0, radius: double = 1): Point"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "9c56292549904150b06194441f061605",
"NodeType": "CodeBlockNode",
- "Code": "x*5;",
- "Id": "7ba7b96cdf3e43f2a51ba6620e80f8e9",
"Inputs": [
{
- "Id": "090b5f7032f946998b1c4f0b20f3a24d",
+ "Id": "102408db56734b47bd8b3f90d2be3746",
"Name": "x",
"Description": "x",
"UsingDefaultValue": false,
@@ -161,7 +160,7 @@
],
"Outputs": [
{
- "Id": "e3ae108edfc447c1a104a33f4ccc4e36",
+ "Id": "65fb96051eea4e67a9987c4a2c996b3d",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -171,16 +170,16 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "x*5;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "9fe1d9b4b2c0486e938e1399f3d0015b",
"NodeType": "CodeBlockNode",
- "Code": "0..360..360/(a-1);",
- "Id": "2946ae2a7ef446f2bdb3bc8fb1fdd096",
"Inputs": [
{
- "Id": "ebcb66900c86485f9780730e6be4c0f2",
+ "Id": "536cc8dc23c74c3d918d68974c736dd8",
"Name": "a",
"Description": "a",
"UsingDefaultValue": false,
@@ -191,7 +190,7 @@
],
"Outputs": [
{
- "Id": "5e86218e2afc42f9839a79dc2a239993",
+ "Id": "5976b8d22ac248b7b66bdacbb199127b",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -201,16 +200,16 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "0..360..360/(a-1);"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "b3d6af9fc1f84f9880be0049af1ec521",
"NodeType": "FunctionNode",
- "FunctionSignature": "DSCore.Math.RandomList@int",
- "Id": "1d2c81b61c9f4392a480c371469110ff",
"Inputs": [
{
- "Id": "43a70262e54645e6a41c227fe634e7c8",
+ "Id": "be9d5046bee94081a087f08234b73734",
"Name": "amount",
"Description": "Amount of random numbers the result list will contain.\n\nint",
"UsingDefaultValue": false,
@@ -221,7 +220,7 @@
],
"Outputs": [
{
- "Id": "dac0ef9f74e447f7b7a1863cca5e2425",
+ "Id": "b120c30ce3644d2a8fc3bbbef95d73f0",
"Name": "number",
"Description": "List of random numbers between 0 and 1.",
"UsingDefaultValue": false,
@@ -230,17 +229,17 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
"Replication": "Auto",
"Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "3a2cadb4acbd435f85c1d486613bae6d",
"NodeType": "CodeBlockNode",
- "Code": "x*5;",
- "Id": "403c70ad0cb443cc82e7c920b8c41695",
"Inputs": [
{
- "Id": "513931cf64db4d269530fea1ac32d5fd",
+ "Id": "84343fe528ed4551a0174d078763ea11",
"Name": "x",
"Description": "x",
"UsingDefaultValue": false,
@@ -251,7 +250,7 @@
],
"Outputs": [
{
- "Id": "20800cd5e4ac4ace81ca2f5d1e18019f",
+ "Id": "a4b32aaa4c134cb7a4bf2a6dcf216e65",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -261,16 +260,16 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "x*5;"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "3ded9baff0be4e85ba0169dedc1798b4",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByPoints@Autodesk.DesignScript.Geometry.Point[],bool",
- "Id": "ca5657b3d8fa40a4a4a1338d2cb535f4",
"Inputs": [
{
- "Id": "ba392ae15bb74d55a7f2bf7a2b9faa5b",
+ "Id": "0a429f1d4447463288f412580a1ef58b",
"Name": "points",
"Description": "Points for nurbs curve\n\nPoint[]",
"UsingDefaultValue": false,
@@ -279,7 +278,7 @@
"KeepListStructure": false
},
{
- "Id": "53039927e34f4de8b98ad4baae769a08",
+ "Id": "1d58306723484bfb8f3bdadf1f66854e",
"Name": "closeCurve",
"Description": "bool\nDefault value : false",
"UsingDefaultValue": true,
@@ -290,7 +289,7 @@
],
"Outputs": [
{
- "Id": "3be7b51b397a49dda079f15098d7274c",
+ "Id": "27797976ccd24c4ebc075afec72124fc",
"Name": "NurbsCurve",
"Description": "Nurbscurve created from points",
"UsingDefaultValue": false,
@@ -299,18 +298,18 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByPoints@Autodesk.DesignScript.Geometry.Point[],bool",
"Replication": "Auto",
"Description": "Create a BSplineCurve by interpolating between points.\n\nNurbsCurve.ByPoints (points: Point[], closeCurve: bool = false): NurbsCurve"
},
{
"ConcreteType": "CoreNodeModels.Input.BoolSelector, CoreNodeModels",
+ "Id": "382ccf0846064287b785f182cd44ac1b",
"NodeType": "BooleanInputNode",
- "InputValue": true,
- "Id": "5b4d90107c974168b1d6053bc480a259",
"Inputs": [],
"Outputs": [
{
- "Id": "4f96e7892f7c47ff8edd8f83d732b151",
+ "Id": "7cdfd647bb6d477ead949a8a5a38ba29",
"Name": "",
"Description": "Boolean",
"UsingDefaultValue": false,
@@ -320,16 +319,16 @@
}
],
"Replication": "Disabled",
- "Description": "Enables selection between True and False"
+ "Description": "Enables selection between True and False",
+ "InputValue": true
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "b30ee66b733e46eb99a0f60ff95d89de",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.ByPatch@Autodesk.DesignScript.Geometry.Curve",
- "Id": "1cc850ca1a66404c947b2896bb67bebf",
"Inputs": [
{
- "Id": "f1ff786499dc4e43b4b6458b8e808d30",
+ "Id": "487a40daaa41474fb2c416afbe0ce6e7",
"Name": "closedCurve",
"Description": "Closed curve used as surface boundary\n\nCurve",
"UsingDefaultValue": false,
@@ -340,7 +339,7 @@
],
"Outputs": [
{
- "Id": "91231d9225354053aad7bff1b9afb078",
+ "Id": "4e6ec47e29174823a82328674fcbf194",
"Name": "Surface",
"Description": "Surface created by patch",
"UsingDefaultValue": false,
@@ -349,28 +348,37 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.ByPatch@Autodesk.DesignScript.Geometry.Curve",
"Replication": "Auto",
"Description": "Create a Surface by filling in the interior of a closed boundary defined by input Curves.\n\nSurface.ByPatch (closedCurve: Curve): Surface"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "bee86d53b4724bb6b25e69d7217de3a5",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface",
- "Id": "bb20643ccb7647b7845ef733b2d07775",
"Inputs": [
{
- "Id": "d019a03a701246fd8ad0352c9ebdce21",
+ "Id": "f8f9fc4218b2483a972fe3e562db3b46",
"Name": "surface",
"Description": "Autodesk.DesignScript.Geometry.Surface",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
+ },
+ {
+ "Id": "8b9a4e44b87e434695d4cac8c3fd38c7",
+ "Name": "limitSurface",
+ "Description": "Determines if the surface should be restored to its original parameter range before conversion. An example of when the parameter range of a surface is limited is after a Trim operation.\n\nbool\nDefault value : true",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
}
],
"Outputs": [
{
- "Id": "3118591e618d42988b3729f014b06418",
+ "Id": "ce3703fb27fc41059641f3a167ce2231",
"Name": "NurbsSurface",
"Description": "NurbsSurface",
"UsingDefaultValue": false,
@@ -379,93 +387,94 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface@bool",
"Replication": "Auto",
- "Description": "Gets a Nurbs representation of the Surface. This method may approximate Surface in certain circumstances.\n\nSurface.ToNurbsSurface ( ): NurbsSurface"
+ "Description": "Gets a Nurbs representation of the Surface. This method may approximate Surface in certain circumstances.\n\nSurface.ToNurbsSurface (limitSurface: bool = true): NurbsSurface"
}
],
"Connectors": [
{
- "Start": "fa1407d53f3843909fe092e7554be8ed",
- "End": "090b5f7032f946998b1c4f0b20f3a24d",
- "Id": "40b469824f12471283933d0e1bfbb018",
+ "Start": "5e1ee44909c24b26a980307dc25306cb",
+ "End": "102408db56734b47bd8b3f90d2be3746",
+ "Id": "dd0103f322ae4383bc35ead9a85d9d49",
"IsHidden": "False"
},
{
- "Start": "4066f07b08774a64914edc66635e14ff",
- "End": "b28dc369bd84427888a5c22efe281c8b",
- "Id": "595d9b4bd6d64644be6adf541c5c8247",
+ "Start": "2ee4f82e99484ee98a69f87f90e97f42",
+ "End": "0533fc834568477c9a33015b07f4cf6e",
+ "Id": "9d26d31c3f1b4c90acec10f8cc65ea1f",
"IsHidden": "False"
},
{
- "Start": "4066f07b08774a64914edc66635e14ff",
- "End": "ebcb66900c86485f9780730e6be4c0f2",
- "Id": "c4be3dd584f94a3b9d51a94c3e3ed802",
+ "Start": "2ee4f82e99484ee98a69f87f90e97f42",
+ "End": "536cc8dc23c74c3d918d68974c736dd8",
+ "Id": "e1c7ec3d87a345a5ab7debc9652a9b19",
"IsHidden": "False"
},
{
- "Start": "4066f07b08774a64914edc66635e14ff",
- "End": "43a70262e54645e6a41c227fe634e7c8",
- "Id": "25a2ea2c8d3e4a42ab36153fca9ee390",
+ "Start": "2ee4f82e99484ee98a69f87f90e97f42",
+ "End": "be9d5046bee94081a087f08234b73734",
+ "Id": "2a2ad47be80c4ae68c6fdee8480773b1",
"IsHidden": "False"
},
{
- "Start": "794cdf2e847a4ca39527a9adf0aa71cc",
- "End": "ba392ae15bb74d55a7f2bf7a2b9faa5b",
- "Id": "9a2dbcd4489d4d35a5fd70df42863089",
+ "Start": "9bd5847774494f36824a4ab0276b3e18",
+ "End": "0a429f1d4447463288f412580a1ef58b",
+ "Id": "8ed5a45363c947d78cf9cae1fbda239e",
"IsHidden": "False"
},
{
- "Start": "e3ae108edfc447c1a104a33f4ccc4e36",
- "End": "655bd93715d64c11bab8c7897492806e",
- "Id": "ac011453409344a29f184c84f19fa733",
+ "Start": "65fb96051eea4e67a9987c4a2c996b3d",
+ "End": "b281453570e946d5ad30d1b90c8a9544",
+ "Id": "b7f7f89faaef4f9492efe944d25f24c3",
"IsHidden": "False"
},
{
- "Start": "5e86218e2afc42f9839a79dc2a239993",
- "End": "547ff2e1368946cda31be9b2ccd41aac",
- "Id": "323e135552b54454bfbf94d450ddc8d4",
+ "Start": "5976b8d22ac248b7b66bdacbb199127b",
+ "End": "b6b392b117a7463e85eb259ea4fce6f4",
+ "Id": "026ab32044054574bb702963033de2c2",
"IsHidden": "False"
},
{
- "Start": "dac0ef9f74e447f7b7a1863cca5e2425",
- "End": "513931cf64db4d269530fea1ac32d5fd",
- "Id": "6e26902e923544b38c2551999962cbf1",
+ "Start": "b120c30ce3644d2a8fc3bbbef95d73f0",
+ "End": "84343fe528ed4551a0174d078763ea11",
+ "Id": "5b82244b1b064918b56cf9a6f68f4deb",
"IsHidden": "False"
},
{
- "Start": "20800cd5e4ac4ace81ca2f5d1e18019f",
- "End": "42af7131f08b415db916928fbff5f480",
- "Id": "df6dfb12a0234163810cce27e0eba00b",
+ "Start": "a4b32aaa4c134cb7a4bf2a6dcf216e65",
+ "End": "daa4ecc3389c4253a65be752d94ec4e4",
+ "Id": "ff928df78e094c448125d1bcf67179a9",
"IsHidden": "False"
},
{
- "Start": "3be7b51b397a49dda079f15098d7274c",
- "End": "f1ff786499dc4e43b4b6458b8e808d30",
- "Id": "2ce774abb7ad4a30968b7ad7e948368d",
+ "Start": "27797976ccd24c4ebc075afec72124fc",
+ "End": "487a40daaa41474fb2c416afbe0ce6e7",
+ "Id": "7717f42044a94271a7eee53e02213221",
"IsHidden": "False"
},
{
- "Start": "4f96e7892f7c47ff8edd8f83d732b151",
- "End": "53039927e34f4de8b98ad4baae769a08",
- "Id": "63468dcace7248d5a86747240edefae1",
+ "Start": "7cdfd647bb6d477ead949a8a5a38ba29",
+ "End": "1d58306723484bfb8f3bdadf1f66854e",
+ "Id": "52e8bc27c2ca4250bda93b4ee3dbb804",
"IsHidden": "False"
},
{
- "Start": "91231d9225354053aad7bff1b9afb078",
- "End": "d019a03a701246fd8ad0352c9ebdce21",
- "Id": "ea14ff73de784a4199183b6a2577a3cf",
+ "Start": "4e6ec47e29174823a82328674fcbf194",
+ "End": "f8f9fc4218b2483a972fe3e562db3b46",
+ "Id": "cff6fa438515448aac95944dd762f073",
"IsHidden": "False"
}
],
"Dependencies": [],
"NodeLibraryDependencies": [],
- "Thumbnail": null,
+ "Thumbnail": "",
"GraphDocumentationURL": null,
"ExtensionWorkspaceData": [
{
"ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
"Name": "Properties",
- "Version": "2.17",
+ "Version": "2.19",
"Data": {}
}
],
@@ -482,15 +491,15 @@
"ScaleFactor": 1.0,
"HasRunWithoutCrash": true,
"IsVisibleInDynamoLibrary": true,
- "Version": "2.17.0.3255",
- "RunType": "Manual",
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
"RunPeriod": "1000"
},
"Camera": {
"Name": "_Background Preview",
- "EyeX": -6.5809869766235352,
- "EyeY": 11.254499435424805,
- "EyeZ": 11.339029312133789,
+ "EyeX": -5.4902410507202148,
+ "EyeY": 15.053728103637695,
+ "EyeZ": 8.7998876571655273,
"LookX": 8.7498655319213867,
"LookY": -14.094080924987793,
"LookZ": -17.329778671264648,
@@ -501,119 +510,119 @@
"ConnectorPins": [],
"NodeViews": [
{
+ "Id": "c781287922f34a0b929fd8eefb4c8513",
"Name": "Math.RandomList",
- "ShowGeometry": true,
- "Id": "7d7435f4dcd14a1bb0693f701ecda485",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -578.5030953668745,
- "Y": 307.55904850481738
+ "ShowGeometry": true,
+ "X": -579.30309536687446,
+ "Y": 299.337465921565
},
{
+ "Id": "d1d2bf4c35824acf9947d4e22f00d964",
"Name": "Number Slider",
- "ShowGeometry": true,
- "Id": "4fd25c7abb42406eb64183323b390da8",
"IsSetAsInput": true,
"IsSetAsOutput": false,
"Excluded": false,
+ "ShowGeometry": true,
"X": -1027.3030953668745,
- "Y": 160.55904850481735
+ "Y": 152.337465921565
},
{
+ "Id": "16c02f1f6e31445aa5f7ee52bd3a882f",
"Name": "Point.ByCylindricalCoordinates",
- "ShowGeometry": true,
- "Id": "11d18d7068564c249a8beb42837e0216",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 95.096904633125632,
- "Y": 92.731548504817368
+ "ShowGeometry": true,
+ "X": 95.696904633125541,
+ "Y": 84.509965921565026
},
{
+ "Id": "9c56292549904150b06194441f061605",
"Name": "Code Block",
- "ShowGeometry": true,
- "Id": "7ba7b96cdf3e43f2a51ba6620e80f8e9",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -257.70309536687444,
- "Y": 307.55904850481738
+ "ShowGeometry": true,
+ "X": -258.30309536687446,
+ "Y": 299.337465921565
},
{
+ "Id": "9fe1d9b4b2c0486e938e1399f3d0015b",
"Name": "Code Block",
- "ShowGeometry": true,
- "Id": "2946ae2a7ef446f2bdb3bc8fb1fdd096",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -257.70309536687444,
- "Y": 13.559048504817383
+ "ShowGeometry": true,
+ "X": -258.30309536687446,
+ "Y": 5.3374659215650126
},
{
+ "Id": "b3d6af9fc1f84f9880be0049af1ec521",
"Name": "Math.RandomList",
- "ShowGeometry": true,
- "Id": "1d2c81b61c9f4392a480c371469110ff",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -578.5030953668745,
- "Y": 160.55904850481735
+ "ShowGeometry": true,
+ "X": -579.30309536687446,
+ "Y": 152.337465921565
},
{
+ "Id": "3a2cadb4acbd435f85c1d486613bae6d",
"Name": "Code Block",
- "ShowGeometry": true,
- "Id": "403c70ad0cb443cc82e7c920b8c41695",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": -257.70309536687444,
- "Y": 160.55904850481735
+ "ShowGeometry": true,
+ "X": -258.30309536687446,
+ "Y": 152.337465921565
},
{
+ "Id": "3ded9baff0be4e85ba0169dedc1798b4",
"Name": "NurbsCurve.ByPoints",
- "ShowGeometry": true,
- "Id": "ca5657b3d8fa40a4a4a1338d2cb535f4",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 499.09690463312563,
- "Y": 199.73154850481734
+ "ShowGeometry": true,
+ "X": 499.69690463312554,
+ "Y": 191.50996592156503
},
{
+ "Id": "382ccf0846064287b785f182cd44ac1b",
"Name": "Boolean",
- "ShowGeometry": true,
- "Id": "5b4d90107c974168b1d6053bc480a259",
"IsSetAsInput": true,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 93.975966004966722,
- "Y": 338.48967124849963
+ "ShowGeometry": true,
+ "X": 95.696904633125541,
+ "Y": 332.509965921565
},
{
+ "Id": "b30ee66b733e46eb99a0f60ff95d89de",
"Name": "Surface.ByPatch",
- "ShowGeometry": true,
- "Id": "1cc850ca1a66404c947b2896bb67bebf",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 859.89690463312559,
- "Y": 199.73154850481734
+ "ShowGeometry": true,
+ "X": 859.69690463312554,
+ "Y": 191.50996592156503
},
{
+ "Id": "bee86d53b4724bb6b25e69d7217de3a5",
"Name": "Surface.ToNurbsSurface",
- "ShowGeometry": true,
- "Id": "bb20643ccb7647b7845ef733b2d07775",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 1204.6969046331255,
- "Y": 199.73154850481734
+ "ShowGeometry": true,
+ "X": 1214.3061051508912,
+ "Y": 175.91481092450368
}
],
"Annotations": [],
- "X": 758.3734812666645,
- "Y": 298.69424106709329,
- "Zoom": 0.7136876006441224
+ "X": 577.54028474958955,
+ "Y": 125.09092957339169,
+ "Zoom": 0.55877561722545954
}
}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface(surface, limitSurface).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface(surface, limitSurface).md
new file mode 100644
index 00000000000..78e9389ff3e
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface(surface, limitSurface).md
@@ -0,0 +1,10 @@
+## In Depth
+`Surface.ToNurbsSurface` takes a surface as input and returns a NurbsSurface that approximates the input surface. The `limitSurface` input determines if the surface should be restored to its original parameter range before conversion, for example, when the parameter range of a surface is limited is after a Trim operation.
+
+In the example below, we create a surface using a `Surface.ByPatch` node with a closed NurbsCurve as an input. Note that when we use this surface as the input for a `Surface.ToNurbsSurface` node, the result is an untrimmed NurbsSurface with four sides.
+
+
+___
+## Example File
+
+![Surface.ToNurbsSurface](./Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface(surface,%20limitSurface)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface(surface, limitSurface)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface(surface, limitSurface)_img.jpg
new file mode 100644
index 00000000000..a1b03e0c293
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface(surface, limitSurface)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface.md
deleted file mode 100644
index 0e1ef6db5e6..00000000000
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface.md
+++ /dev/null
@@ -1,7 +0,0 @@
-## In Depth
-Surface To Nurbs Surface takes a surface as input and returns a Nurbs Surface that approximates the input surface. In the example below, we create a surface using a ByPatch node with a close Nurbs Curve as an input. Note that when we use this surface as the input for a ToNurbsSurface node, the result is an untrimmed Nurbs Surface with four sides.
-___
-## Example File
-
-![ToNurbsSurface](./Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface_img.jpg)
-
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface_img.jpg
deleted file mode 100644
index 2de207a2f38..00000000000
Binary files a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.ToNurbsSurface_img.jpg and /dev/null differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.TrimWithEdgeLoops(surface, loops, tolerance).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.TrimWithEdgeLoops(surface, loops, tolerance).dyn
new file mode 100644
index 00000000000..54ded366c8d
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.TrimWithEdgeLoops(surface, loops, tolerance).dyn
@@ -0,0 +1,628 @@
+{
+ "Uuid": "c3900289-e7fe-4db3-bccb-6dd7385d9e5c",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Surface.TrimWithEdgeLoops",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ },
+ "Vector.XAxis": {
+ "Key": "Autodesk.DesignScript.Geometry.Vector",
+ "Value": "ProtoGeometry.dll"
+ },
+ "Vector": {
+ "Key": "Autodesk.DesignScript.Geometry.Vector",
+ "Value": "ProtoGeometry.dll"
+ },
+ "Math": {
+ "Key": "DSCore.Math",
+ "Value": "DSCoreNodes.dll"
+ },
+ "PolyCurve": {
+ "Key": "Autodesk.DesignScript.Geometry.PolyCurve",
+ "Value": "ProtoGeometry.dll"
+ },
+ "Color": {
+ "Key": "DSCore.Color",
+ "Value": "DSCoreNodes.dll"
+ },
+ "Display": {
+ "Key": "Display.Display",
+ "Value": "Display.dll"
+ }
+ }
+ },
+ "Inputs": [
+ {
+ "Id": "e706c795414a46db8ea50bb5c34dee5c",
+ "Name": "Trimmed Surface Geometry",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "0.3",
+ "MaximumValue": 1.0,
+ "MinimumValue": -4.0,
+ "StepValue": 0.1,
+ "NumberType": "Double",
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7d29d965759c4a6091d44c155f12517c",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "7c489496f7844a17af38f90b590ab6ea",
+ "Name": "closedCurve",
+ "Description": "Closed curve used as surface boundary\n\nCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "5f3c2dc5f8f546918930935551b487fb",
+ "Name": "Surface",
+ "Description": "Surface created by patch",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.ByPatch@Autodesk.DesignScript.Geometry.Curve",
+ "Replication": "Auto",
+ "Description": "Create a Surface by filling in the interior of a closed boundary defined by input Curves.\n\nSurface.ByPatch (closedCurve: Curve): Surface"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "dc345f78f0f54322b4a856a206da145b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "cce21458240f4331b3aa706e80c81508",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "81f7aa6dd0984ebcad54f842f9f23955",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "bbc590775ec94fa1bd03c5bb28696d89",
+ "Name": "normal",
+ "Description": "Normal direction vector\n\nVector\nDefault value : Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "261909961e504ed2a92b26a2c599f6a9",
+ "Name": "Circle",
+ "Description": "Circle created with center point radius and normal",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadiusNormal@Autodesk.DesignScript.Geometry.Point,double,Autodesk.DesignScript.Geometry.Vector",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with specified center Point, radius, and normal direction.\n\nCircle.ByCenterPointRadiusNormal (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1, normal: Vector = Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "4116bb8fc536488a8c21dc6d835dcf44",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "11155c04d6bf41139e61c27de3994557",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "ea5fa713620c46a08b5b27f3050fe4ea",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8cf18e761d814f39a62f65722774e73d",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d606f18a142b4997b1f35b8acebfd0e4",
+ "Name": "",
+ "Description": "Value of expression at line 4",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "7637989616b745bb85b9a9a34fd6ee93",
+ "Name": "",
+ "Description": "pt1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "49818a91e5e54229acc7dee4b0300641",
+ "Name": "",
+ "Description": "pt2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "329ad89fdfa944cea6dfb73821335cbf",
+ "Name": "",
+ "Description": "pt3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d151d01487734d0fbb073739cbf30d8b",
+ "Name": "",
+ "Description": "pt4",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "27c6ba5803ee4e8dabdd72ccd0ce5499",
+ "Name": "",
+ "Description": "pts",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "21ac8901ae704924a8345ba77d59e785",
+ "Name": "",
+ "Description": "pCurve",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ba200c6d9d0c4decb538c612ba0a1855",
+ "Name": "",
+ "Description": "pFillet",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6803f07fc9054897969db2a438e9179f",
+ "Name": "",
+ "Description": "pt5",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1bc004eda98c443999886c4caf6829ac",
+ "Name": "",
+ "Description": "pt6",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5d9ba9971da44486b5dac665d86045fa",
+ "Name": "",
+ "Description": "pt7",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "9988ca56d2af4d58989f21a74913948d",
+ "Name": "",
+ "Description": "pt8",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ba149d71e7bf4ed9abd7a4e0fade3597",
+ "Name": "",
+ "Description": "pts2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "360606f3a2cf4551a20792848cda688d",
+ "Name": "",
+ "Description": "pCurve2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "9aa0455e19834b07a1abe7ced9af5f8a",
+ "Name": "",
+ "Description": "pFillet2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "e4230cc32bfc41bc87cb83be11976cee",
+ "Name": "",
+ "Description": "loops",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "//Surface to trim\nPoint.ByCoordinates(0,0,0);\n6;\nVector.XAxis();\n\n//Inner loop 1\npt1 = Point.ByCoordinates(0,3,4);\npt2 = Point.ByCoordinates(0,2,4);\npt3 = Point.ByCoordinates(0,x*-1,-2);\npt4 = Point.ByCoordinates(0,5,2);\npts = [pt1, pt2, pt3, pt4];\npCurve = PolyCurve.ByPoints(pts, true);\npFillet = PolyCurve.Fillet(pCurve, 0.25);\n\n//Inner loop 2\npt5 = Point.ByCoordinates(0,-3,-4);\npt6 = Point.ByCoordinates(0,-2,-4);\npt7 = Point.ByCoordinates(0,x,2);\npt8 = Point.ByCoordinates(0,-5,-2);\npts2 = [pt5, pt6, pt7, pt8];\npCurve2 = PolyCurve.ByPoints(pts2, true);\npFillet2 = PolyCurve.Fillet(pCurve2, 0.25);\n\n//Inner loops\nloops = [pFillet, pFillet2];"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
+ "NumberType": "Double",
+ "MaximumValue": 1.0,
+ "MinimumValue": -4.0,
+ "StepValue": 0.1,
+ "Id": "e706c795414a46db8ea50bb5c34dee5c",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "299d11a0c4d84d619d0dc052f4090a80",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces numeric values",
+ "InputValue": 0.3
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "a99d309dd7c24588acd4545b29294280",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "3c52be18b7f84f749519d6c2e128205b",
+ "Name": "geometry",
+ "Description": "The geometry to which you would like to apply color.\n\nGeometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "bcb7fbbc0911444abd0e95f166974a3f",
+ "Name": "color",
+ "Description": "The color.\n\nColor",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "4c3ff321a10f42b28d7c98e1f964d3e9",
+ "Name": "GeometryColor",
+ "Description": "A Display object.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Modifiers.GeometryColor.ByGeometryColor@Autodesk.DesignScript.Geometry.Geometry,DSCore.Color",
+ "Replication": "Auto",
+ "Description": "Display geometry using a color.\n\nGeometryColor.ByGeometryColor (geometry: Geometry, color: Color): GeometryColor"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels",
+ "InputValue": {
+ "R": 151,
+ "G": 192,
+ "B": 206,
+ "A": 255
+ },
+ "Id": "44fa8aa9dc814f18aef4568aa15ebc8b",
+ "NodeType": "ColorInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "fdffe1a8836f4159ae8022ccc1858d71",
+ "Name": "Color",
+ "Description": "Selected Color.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Select a Color from the palette"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "96ce02d60663460cb451c4e86e2841d5",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "b78a3c80d74f4ff5bb316a6044483462",
+ "Name": "surface",
+ "Description": "Autodesk.DesignScript.Geometry.Surface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "3560abe90c7f41dbbd79885f31563cd6",
+ "Name": "loops",
+ "Description": "PolyCurve[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d5b6bf1e136a4609843b1f0087f21897",
+ "Name": "tolerance",
+ "Description": "double\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "bca94bfb84c14695b399779105091ef9",
+ "Name": "Surface",
+ "Description": "Surface",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Surface.TrimWithEdgeLoops@Autodesk.DesignScript.Geometry.PolyCurve[],double",
+ "Replication": "Auto",
+ "Description": "Trims the surface with a collection of one or more closed PolyCurves. One of the loops needs to be the boundary loop of the input surface. In addition, one or more inner loops need to be added for holes.\n\nSurface.TrimWithEdgeLoops (loops: PolyCurve[], tolerance: double = 0): Surface"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "5f3c2dc5f8f546918930935551b487fb",
+ "End": "3c52be18b7f84f749519d6c2e128205b",
+ "Id": "0add38d0a9fe4d1dbc52055a1c41202e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "5f3c2dc5f8f546918930935551b487fb",
+ "End": "b78a3c80d74f4ff5bb316a6044483462",
+ "Id": "a0da163225db41408766a2d8ce65771f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "261909961e504ed2a92b26a2c599f6a9",
+ "End": "7c489496f7844a17af38f90b590ab6ea",
+ "Id": "ad47aa4c38f34ad6a617f68440cddcef",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ea5fa713620c46a08b5b27f3050fe4ea",
+ "End": "cce21458240f4331b3aa706e80c81508",
+ "Id": "c8c4c5748ad647a6a35a9cbaa58c4534",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8cf18e761d814f39a62f65722774e73d",
+ "End": "81f7aa6dd0984ebcad54f842f9f23955",
+ "Id": "77eb39cf77a84271969f9b8a3dc9f80e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d606f18a142b4997b1f35b8acebfd0e4",
+ "End": "bbc590775ec94fa1bd03c5bb28696d89",
+ "Id": "a9248efa88864566abd90077a5959148",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e4230cc32bfc41bc87cb83be11976cee",
+ "End": "3560abe90c7f41dbbd79885f31563cd6",
+ "Id": "ae9f7baa8ec0426cb68e60f7779accfb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "299d11a0c4d84d619d0dc052f4090a80",
+ "End": "11155c04d6bf41139e61c27de3994557",
+ "Id": "c31904759b254d71b92f0232216ec000",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "fdffe1a8836f4159ae8022ccc1858d71",
+ "End": "bcb7fbbc0911444abd0e95f166974a3f",
+ "Id": "78148ded9e7c430cb46461cef3d805ad",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": 15.819687843322754,
+ "EyeY": 5.5620708465576172,
+ "EyeZ": -6.5477018356323242,
+ "LookX": -16.385435104370117,
+ "LookY": -4.33048152923584,
+ "LookZ": 7.60958194732666,
+ "UpX": -0.017411366105079651,
+ "UpY": 0.99981570243835449,
+ "UpZ": 0.00808618776500225
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "7d29d965759c4a6091d44c155f12517c",
+ "Name": "Surface.ByPatch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 2105.2558996906128,
+ "Y": 3805.2979507192154
+ },
+ {
+ "Id": "dc345f78f0f54322b4a856a206da145b",
+ "Name": "Circle.ByCenterPointRadiusNormal",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1673.2558996906125,
+ "Y": 3805.2979507192154
+ },
+ {
+ "Id": "4116bb8fc536488a8c21dc6d835dcf44",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1125.2558996906125,
+ "Y": 3815.262950719215
+ },
+ {
+ "Id": "e706c795414a46db8ea50bb5c34dee5c",
+ "Name": "Trimmed Surface Geometry",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 677.25589969061252,
+ "Y": 3815.262950719215
+ },
+ {
+ "Id": "a99d309dd7c24588acd4545b29294280",
+ "Name": "GeometryColor.ByGeometryColor",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2481.1448132811338,
+ "Y": 3573.3965829988888
+ },
+ {
+ "Id": "44fa8aa9dc814f18aef4568aa15ebc8b",
+ "Name": "Color Palette",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2207.3384737522993,
+ "Y": 3613.7780935049386
+ },
+ {
+ "Id": "96ce02d60663460cb451c4e86e2841d5",
+ "Name": "Surface.TrimWithEdgeLoops",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2477.12769391776,
+ "Y": 3823.865280155384
+ }
+ ],
+ "Annotations": [],
+ "X": -454.04766337765545,
+ "Y": -2191.8190491059809,
+ "Zoom": 0.63737993559788708
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.TrimWithEdgeLoops(surface, loops, tolerance).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.TrimWithEdgeLoops(surface, loops, tolerance).md
new file mode 100644
index 00000000000..3d8e92a0b60
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.TrimWithEdgeLoops(surface, loops, tolerance).md
@@ -0,0 +1,11 @@
+## In Depth
+`Surface.TrimWithEdgeLoops` trims the surface with a collection of one or more closed PolyCurves that must all lie on the surface within the specified tolerance. If one or more holes need to be trimmed from the input surface, there must be one outer loop specified for the boundary of the surface and one inner loop for each hole. If the region between the surface boundary and the hole(s) needs to be trimmed, only the loop for each hole should be provided. For a periodic surface with no outer loop such as a spherical surface, the trimmed region can be controlled by reversing the direction of the loop curve.
+
+The tolerance is the tolerance used when deciding whether curve ends are coincident and whether a curve and surface are coincident. The supplied tolerance cannot be smaller than any of the tolerances used in the creation of the input PolyCurves. The default value of 0.0 means that the largest tolerance used in the creation of the input PolyCurves will be used.
+
+In the example below, two loops are trimmed out of a surface, returning two new surfaces highlighted in blue. The number slider adjusts the shape of the new surfaces.
+
+___
+## Example File
+
+![Surface.TrimWithEdgeLoops](./Autodesk.DesignScript.Geometry.Surface.TrimWithEdgeLoops(surface,%20loops,%20tolerance)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.TrimWithEdgeLoops(surface, loops, tolerance)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.TrimWithEdgeLoops(surface, loops, tolerance)_img.jpg
new file mode 100644
index 00000000000..726ddd7de98
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Surface.TrimWithEdgeLoops(surface, loops, tolerance)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.UV.ByCoordinates.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.UV.ByCoordinates.md
index ec0bd6173fa..b2d881230d8 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.UV.ByCoordinates.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.UV.ByCoordinates.md
@@ -1,5 +1,8 @@
## In Depth
-Reference points are created in the Revit conceptual design environment.
+`UV.ByCoordinates` will return a UV from two lists of doubles. U and V are the horizontal and vertical coordinates, respectively, that define how 2D textures are applied to a 3D surface.
+
+In the example below, a UV is returned from 400 random values to create a Delaunay triangulation of a NurbsSurface.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Scale(vector, xScaleFactor, yScaleFactor, zScaleFactor).dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Scale(vector, xScaleFactor, yScaleFactor, zScaleFactor).dyn
new file mode 100644
index 00000000000..32eb1fa23a7
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Scale(vector, xScaleFactor, yScaleFactor, zScaleFactor).dyn
@@ -0,0 +1,643 @@
+{
+ "Uuid": "111cf6f6-c4ce-4bdb-8db3-472f0949aaf6",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Autodesk.DesignScript.Geometry.Vector.Scale",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "149651b06b454fd6a9c2a0302c1103a9",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "214353ad7009475493f91c6067fdccba",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "bcee67db4a4d4ff1a137f030f5025885",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "4da101597e9546139bb0f3a888a50c28",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "1cb974396497441e84b48cc184f0a3ff",
+ "Name": "Vector",
+ "Description": "Vector created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.ByCoordinates@double,double,double",
+ "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",
+ "Id": "5dd6bf4863824faf91ef85623e357fae",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "52c596de45ae4271a5e19f0bcc69b301",
+ "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",
+ "Code": "1;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "6c8310f38b96449f8f88bd7eb4873744",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "7c8bb65ac6a64583b66fafa08e6ab052",
+ "Name": "vector",
+ "Description": "Autodesk.DesignScript.Geometry.Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "bd78dc8a0ac94ea19e3d182be9b72b68",
+ "Name": "double",
+ "Description": "double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Length",
+ "Replication": "Auto",
+ "Description": "Get the length of the vector otherwise known as the Euclidean norm.\n\nVector.Length: double"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 140.0,
+ "WatchHeight": 38.4,
+ "Id": "7b94ac48d72746fa954c0598a31a7c1e",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "29966581515740ae9fe6bea7546fe9b7",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "70aba4282e904901aac869da6bd9088f",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 140.0,
+ "WatchHeight": 38.4,
+ "Id": "7754a3af90b14041b8610c575f9877c5",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "6da3d5411018460bb7595f300431c1c6",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "ec601449ab104741bd0f79f4453388ec",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1a9e6708d97845a4801fa32914c57421",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "ed90e8bab26941e3b9c125740dc9fc03",
+ "Name": "vector",
+ "Description": "Autodesk.DesignScript.Geometry.Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "372ead3b2b7b4553884779ea8b83df92",
+ "Name": "double",
+ "Description": "double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Length",
+ "Replication": "Auto",
+ "Description": "Get the length of the vector otherwise known as the Euclidean norm.\n\nVector.Length: double"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "4eb49fdafed1499ea6f15d6c91361bce",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "4c3988c5d0af44b28d50e3e9b05efee1",
+ "Name": "vector",
+ "Description": "Autodesk.DesignScript.Geometry.Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a2e8d3e7b8d244f7a778bb2feb48c907",
+ "Name": "xScaleFactor",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "3837a01fe2314e2d8f50d19a6a8affbf",
+ "Name": "yScaleFactor",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "7c823df4e1fa46be8f59feccca31e5b0",
+ "Name": "zScaleFactor",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "d53995a012374411aa6451180a5085da",
+ "Name": "Vector",
+ "Description": "Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Scale@double,double,double",
+ "Replication": "Auto",
+ "Description": "Scale Vector non-uniformly around the origin\n\nVector.Scale (xScaleFactor: double = 1, yScaleFactor: double = 1, zScaleFactor: double = 1): Vector"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 27.2,
+ "WatchHeight": 38.4,
+ "Id": "ca663badb76449f58b966fdbb1e8669d",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "a7cdb9a7a4d44613810703c18fb1d000",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "fd037518fdf347b4917cd3dda46c9713",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "6ca2b44cbc6c4c069e4781c8eed0496b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "c9f3605f425142e49b818e97c7ec8051",
+ "Name": "vector",
+ "Description": "Autodesk.DesignScript.Geometry.Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "b19fe0d673104996a812f95b98a51041",
+ "Name": "double",
+ "Description": "double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Length",
+ "Replication": "Auto",
+ "Description": "Get the length of the vector otherwise known as the Euclidean norm.\n\nVector.Length: double"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "383a5a5a95164061adcbbd34cf12815b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "5b4184ae3b7240d58086f98d70097154",
+ "Name": "vector",
+ "Description": "Autodesk.DesignScript.Geometry.Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "e2e5e2e5c3d640cd92f9b12dd05484d9",
+ "Name": "xScaleFactor",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "08d43ba84ecd403c9a785c2bff9722b4",
+ "Name": "yScaleFactor",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "34045992774e412c8d21fb0cdc13b550",
+ "Name": "zScaleFactor",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "6a9e98ec88ef44c991224050835dcc6b",
+ "Name": "Vector",
+ "Description": "Vector",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Scale@double,double,double",
+ "Replication": "Auto",
+ "Description": "Scale Vector non-uniformly around the origin\n\nVector.Scale (xScaleFactor: double = 1, yScaleFactor: double = 1, zScaleFactor: double = 1): Vector"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "c822eaff2c62419ebc4de600f0961087",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "381e0f9e007a4f60af869b1ab8f9c687",
+ "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",
+ "Code": "2;"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "1cb974396497441e84b48cc184f0a3ff",
+ "End": "4c3988c5d0af44b28d50e3e9b05efee1",
+ "Id": "49ce457bca0149aa85c6d6f4ef6d9c16",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "1cb974396497441e84b48cc184f0a3ff",
+ "End": "ed90e8bab26941e3b9c125740dc9fc03",
+ "Id": "f7288872a1db4be399bbe979b86ccc0e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "1cb974396497441e84b48cc184f0a3ff",
+ "End": "5b4184ae3b7240d58086f98d70097154",
+ "Id": "565ba4224e974a2a81782b91be2d56f7",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "52c596de45ae4271a5e19f0bcc69b301",
+ "End": "214353ad7009475493f91c6067fdccba",
+ "Id": "4498bd859a41434db59bfcf9926f8f44",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "52c596de45ae4271a5e19f0bcc69b301",
+ "End": "bcee67db4a4d4ff1a137f030f5025885",
+ "Id": "160d1f36cbac4bcf88827f0799a95625",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "52c596de45ae4271a5e19f0bcc69b301",
+ "End": "4da101597e9546139bb0f3a888a50c28",
+ "Id": "2acfc2f7a5144239a0aca18fd3354da4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "bd78dc8a0ac94ea19e3d182be9b72b68",
+ "End": "29966581515740ae9fe6bea7546fe9b7",
+ "Id": "461524f71a3f4f0db760c51ff95a1284",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "372ead3b2b7b4553884779ea8b83df92",
+ "End": "6da3d5411018460bb7595f300431c1c6",
+ "Id": "171a70a2a6ea4b1d8d91193c90db99fb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d53995a012374411aa6451180a5085da",
+ "End": "7c8bb65ac6a64583b66fafa08e6ab052",
+ "Id": "da435a852a04427a934fd00ec3a30d6f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b19fe0d673104996a812f95b98a51041",
+ "End": "a7cdb9a7a4d44613810703c18fb1d000",
+ "Id": "4115207f8d944062b76c595023c33d38",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6a9e98ec88ef44c991224050835dcc6b",
+ "End": "c9f3605f425142e49b818e97c7ec8051",
+ "Id": "9d228ba79ba54bed858f984cc02ea398",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "381e0f9e007a4f60af869b1ab8f9c687",
+ "End": "a2e8d3e7b8d244f7a778bb2feb48c907",
+ "Id": "e021e2d4c0a84d12b2358bac4e338300",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "381e0f9e007a4f60af869b1ab8f9c687",
+ "End": "08d43ba84ecd403c9a785c2bff9722b4",
+ "Id": "a2b745f682d2445d923a5426bc0c0cac",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "381e0f9e007a4f60af869b1ab8f9c687",
+ "End": "34045992774e412c8d21fb0cdc13b550",
+ "Id": "c2567daa2e0644ec8d499b558825cc0e",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -2.3680846691131592,
+ "EyeY": 3.16054105758667,
+ "EyeZ": -10.044923782348633,
+ "LookX": 3.8618874549865723,
+ "LookY": -0.66080021858215332,
+ "LookZ": 6.5273284912109375,
+ "UpX": -0.06558285653591156,
+ "UpY": 0.99167114496231079,
+ "UpZ": -0.11084761470556259
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "149651b06b454fd6a9c2a0302c1103a9",
+ "Name": "Vector.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2394.3275265767497,
+ "Y": 3871.23247073368
+ },
+ {
+ "Id": "5dd6bf4863824faf91ef85623e357fae",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2140.3275265767497,
+ "Y": 3905.05997073368
+ },
+ {
+ "Id": "6c8310f38b96449f8f88bd7eb4873744",
+ "Name": "Vector.Length",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 3068.3275265767497,
+ "Y": 3919.23247073368
+ },
+ {
+ "Id": "7b94ac48d72746fa954c0598a31a7c1e",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 3376.3275265767497,
+ "Y": 3919.23247073368
+ },
+ {
+ "Id": "7754a3af90b14041b8610c575f9877c5",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 3376.3275265767497,
+ "Y": 3768.23247073368
+ },
+ {
+ "Id": "1a9e6708d97845a4801fa32914c57421",
+ "Name": "Vector.Length",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 3068.3275265767497,
+ "Y": 3768.23247073368
+ },
+ {
+ "Id": "4eb49fdafed1499ea6f15d6c91361bce",
+ "Name": "Vector.Scale",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2727.3275265767497,
+ "Y": 3871.23247073368
+ },
+ {
+ "Id": "ca663badb76449f58b966fdbb1e8669d",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 3376.3275265767497,
+ "Y": 4070.23247073368
+ },
+ {
+ "Id": "6ca2b44cbc6c4c069e4781c8eed0496b",
+ "Name": "Vector.Length",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 3068.3275265767497,
+ "Y": 4070.23247073368
+ },
+ {
+ "Id": "383a5a5a95164061adcbbd34cf12815b",
+ "Name": "Vector.Scale",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2727.3275265767497,
+ "Y": 4118.23247073368
+ },
+ {
+ "Id": "c822eaff2c62419ebc4de600f0961087",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 2394.3275265767497,
+ "Y": 4186.0599707336805
+ }
+ ],
+ "Annotations": [],
+ "X": -675.85951208778488,
+ "Y": -1526.4036443658533,
+ "Zoom": 0.46370552382733077
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Scale(vector, xScaleFactor, yScaleFactor, zScaleFactor).md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Scale(vector, xScaleFactor, yScaleFactor, zScaleFactor).md
new file mode 100644
index 00000000000..5c2c9d64bc4
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Scale(vector, xScaleFactor, yScaleFactor, zScaleFactor).md
@@ -0,0 +1,9 @@
+## In Depth
+`Vector.Scale (vector, xScaleFactor, yScaleFactor, zScaleFactor)` returns a new vector scaled non-uniformly in the X, Y, and Z directions.
+
+In the example below, two new vectors are scaled from an X scale factor and Y/Z scale factors, respectively. All given scale factors are 2, yet different vector lengths are returned from scaling in different and/or multiple directions.
+
+___
+## Example File
+
+![Vector.Scale](./Autodesk.DesignScript.Geometry.Vector.Scale(vector,%20xScaleFactor,%20yScaleFactor,%20zScaleFactor)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Scale(vector, xScaleFactor, yScaleFactor, zScaleFactor)_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Scale(vector, xScaleFactor, yScaleFactor, zScaleFactor)_img.jpg
new file mode 100644
index 00000000000..dc373b67648
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Scale(vector, xScaleFactor, yScaleFactor, zScaleFactor)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Z.dyn b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Z.dyn
index 9e5964c33ca..5dc9b474406 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Z.dyn
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Z.dyn
@@ -1,8 +1,8 @@
{
- "Uuid": "3c9d0464-8643-5ffe-96e5-ab1769818209",
+ "Uuid": "b28933ce-a7c4-48ce-af6e-d354a4e006ff",
"IsCustomNode": false,
"Description": "",
- "Name": "Z",
+ "Name": "Autodesk.DesignScript.Geometry.Vector.Z",
"ElementResolver": {
"ResolutionMap": {
"Point": {
@@ -17,47 +17,48 @@
},
"Inputs": [
{
- "Id": "b8fc629975a445ffa681797e35fd8042",
+ "Id": "c827651eef88487ab612e34b04f6e15c",
"Name": "Vector Scale",
"Type": "number",
+ "Type2": "number",
"Value": "1.65",
"MaximumValue": 2.0,
"MinimumValue": 1.0,
"StepValue": 0.01,
"NumberType": "Double",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "SelectedIndex": 0
}
],
"Outputs": [],
"Nodes": [
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "b743a19a2230487b8e5cf55683b8e880",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointDirectionLength@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Vector,double",
- "Id": "6d1ee31ae12c4eab8b51c20d47755015",
"Inputs": [
{
- "Id": "ac92e80c505d4ea7a68ad8a2d2a1696c",
+ "Id": "ae0213ab90ae49b1976acdd808529d08",
"Name": "startPoint",
- "Description": "Point",
+ "Description": "Line start point\n\nPoint",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "e379b0273c0c4fa68865357988981c9e",
+ "Id": "df26943265d94874983d0fda2ea969d9",
"Name": "direction",
- "Description": "Vector",
+ "Description": "Direction vector\n\nVector",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
},
{
- "Id": "b88e4335c7974225a8fd857da44faaa1",
+ "Id": "e3637b9c33e543d18bda072d74f064bc",
"Name": "length",
- "Description": "double\nDefault value : 1",
+ "Description": "Length of line\n\ndouble\nDefault value : 1",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
@@ -66,25 +67,28 @@
],
"Outputs": [
{
- "Id": "44623ba9ce644339a571de7448a99f95",
+ "Id": "acc16b5382b745d2a699b417fd5c8d46",
"Name": "Line",
- "Description": "Line",
+ "Description": "Line from start direction and length",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Line.ByStartPointDirectionLength@Autodesk.DesignScript.Geometry.Point,Autodesk.DesignScript.Geometry.Vector,double",
"Replication": "Auto",
"Description": "Create a straight Line starting at start Point, extending in Vector direction by specified length.\n\nLine.ByStartPointDirectionLength (startPoint: Point, direction: Vector, length: double = 1): Line"
},
{
"ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 27.2,
+ "WatchHeight": 38.4,
+ "Id": "b7f9cd398d7f4f2299ab4940d217f2a2",
"NodeType": "ExtensionNode",
- "Id": "9b79cf50ce83432bbe01330522ae3dfb",
"Inputs": [
{
- "Id": "ba3b3f405e6c4682aeb8aaa5e0d5d40b",
+ "Id": "a440b288f13a43f498fa1cd8d3332b41",
"Name": "",
"Description": "Node to evaluate.",
"UsingDefaultValue": false,
@@ -95,7 +99,7 @@
],
"Outputs": [
{
- "Id": "1fc0c2934f234ce0be69fc02b063e8de",
+ "Id": "2ff5ca1f9da84f718f38cc2dc1b4d093",
"Name": "",
"Description": "Watch contents.",
"UsingDefaultValue": false,
@@ -105,17 +109,16 @@
}
],
"Replication": "Disabled",
- "Description": "Visualize the output of node."
+ "Description": "Visualizes a node's output"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "1bb4946e914245bba169bfc501e18bb9",
"NodeType": "CodeBlockNode",
- "Code": "Point.ByCoordinates(0,2,0);\nVector.ByCoordinates(4,2,3);",
- "Id": "b2f274f8a001463b84f919669986dec5",
"Inputs": [],
"Outputs": [
{
- "Id": "c1133eb4143e4c92af52bd41231b146e",
+ "Id": "c2b8f39bd790430abb674a638434cd9e",
"Name": "",
"Description": "Value of expression at line 1",
"UsingDefaultValue": false,
@@ -124,7 +127,7 @@
"KeepListStructure": false
},
{
- "Id": "f131975a02c441c5ab83a4fa4a7ea197",
+ "Id": "771aa1583f8f4d0aa2e54281badadb7e",
"Name": "",
"Description": "Value of expression at line 2",
"UsingDefaultValue": false,
@@ -134,21 +137,21 @@
}
],
"Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(0,2,0);\nVector.ByCoordinates(4,2,3);"
},
{
"ConcreteType": "CoreNodeModels.Input.DoubleSlider, CoreNodeModels",
- "NodeType": "NumberInputNode",
"NumberType": "Double",
"MaximumValue": 2.0,
"MinimumValue": 1.0,
"StepValue": 0.01,
- "InputValue": 1.65,
- "Id": "b8fc629975a445ffa681797e35fd8042",
+ "Id": "c827651eef88487ab612e34b04f6e15c",
+ "NodeType": "NumberInputNode",
"Inputs": [],
"Outputs": [
{
- "Id": "569c7ccdca3c48208fbcd782ff518863",
+ "Id": "65452d1995af40ae9291b2315b65714a",
"Name": "",
"Description": "Double",
"UsingDefaultValue": false,
@@ -158,16 +161,16 @@
}
],
"Replication": "Disabled",
- "Description": "A slider that produces numeric values."
+ "Description": "Produces numeric values",
+ "InputValue": 1.65
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "539bde5f63bb4679b741a1efabb947b4",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Scale@double",
- "Id": "5cc0666e903141948c079c526d64b536",
"Inputs": [
{
- "Id": "45c771ee4e76467698c6facc569b7201",
+ "Id": "1dea5a23a8164e50807586d6683f7cbb",
"Name": "vector",
"Description": "Autodesk.DesignScript.Geometry.Vector",
"UsingDefaultValue": false,
@@ -176,9 +179,9 @@
"KeepListStructure": false
},
{
- "Id": "37ee545a12794760b154f31baeb51792",
+ "Id": "e4ff7d8b6108466497372a9f2e941d89",
"Name": "scale_factor",
- "Description": "double\nDefault value : 1",
+ "Description": "Scale factor\n\ndouble\nDefault value : 1",
"UsingDefaultValue": true,
"Level": 2,
"UseLevels": false,
@@ -187,25 +190,28 @@
],
"Outputs": [
{
- "Id": "e972f628bc96487c8c92c5d261de7109",
+ "Id": "2faccf4036ba47c59c1fb4e0c5994e06",
"Name": "Vector",
- "Description": "Vector",
+ "Description": "Scaled vector",
"UsingDefaultValue": false,
"Level": 2,
"UseLevels": false,
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Scale@double",
"Replication": "Auto",
"Description": "Scale Vector uniformly around the origin\n\nVector.Scale (scale_factor: double = 1): Vector"
},
{
"ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 49.6,
+ "WatchHeight": 38.4,
+ "Id": "721fe57caf5546fc9fb5fe2a0a6a0608",
"NodeType": "ExtensionNode",
- "Id": "beb23d6dcc2f4a9a85d81f988ba6b3b1",
"Inputs": [
{
- "Id": "397c7d5b87e541539e2f2557e003c91f",
+ "Id": "7d8e44c48adb48bf996ed3b2f77a26f0",
"Name": "",
"Description": "Node to evaluate.",
"UsingDefaultValue": false,
@@ -216,7 +222,7 @@
],
"Outputs": [
{
- "Id": "c7e2ad343cd144348ebfaad08b09e0ae",
+ "Id": "c6a2bfe3ac7b493a9f5497eda2b1b72f",
"Name": "",
"Description": "Watch contents.",
"UsingDefaultValue": false,
@@ -226,16 +232,15 @@
}
],
"Replication": "Disabled",
- "Description": "Visualize the output of node."
+ "Description": "Visualizes a node's output"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "ef904e758e524ac08e86d1b3b03d2286",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Length",
- "Id": "b0cc6cb7929c44e7852b0f68ff15f88f",
"Inputs": [
{
- "Id": "efa6a03474ce4049863bca3e1e579aba",
+ "Id": "010922a510d646039886e1369c865e88",
"Name": "vector",
"Description": "Autodesk.DesignScript.Geometry.Vector",
"UsingDefaultValue": false,
@@ -246,7 +251,7 @@
],
"Outputs": [
{
- "Id": "270e223431c7402a8d4dbbd4ea7cf0ed",
+ "Id": "92b0e600812742d3993ccae8428555a8",
"Name": "double",
"Description": "double",
"UsingDefaultValue": false,
@@ -255,17 +260,17 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Length",
"Replication": "Auto",
- "Description": "Get the length of the vector - otherwise known as the Euclidean norm\n\nVector.Length: double"
+ "Description": "Get the length of the vector otherwise known as the Euclidean norm.\n\nVector.Length: double"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "5138f09bfa184eeb80877b29f8323917",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Z",
- "Id": "7577e97b30a74957b1bf28e693c48894",
"Inputs": [
{
- "Id": "33dee35212394145b35adaa7cf64936c",
+ "Id": "20a559de5f5349c1889e1266c170b85a",
"Name": "vector",
"Description": "Autodesk.DesignScript.Geometry.Vector",
"UsingDefaultValue": false,
@@ -276,7 +281,7 @@
],
"Outputs": [
{
- "Id": "4a982f361d254845b39b069c7597f1cf",
+ "Id": "6166473e124d4d9b836aef1a14a13565",
"Name": "double",
"Description": "double",
"UsingDefaultValue": false,
@@ -285,17 +290,17 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Z",
"Replication": "Auto",
- "Description": "Get the Z component of a Vector\n\nVector.Z: double"
+ "Description": "Get the Z value of a vector.\n\nVector.Z: double"
},
{
"ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "43f9a7cfc61d42dd84ed1b6b9409b219",
"NodeType": "FunctionNode",
- "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Z",
- "Id": "c87e7c7f7bc74f25920b2a23a9be4d86",
"Inputs": [
{
- "Id": "8ad564b79da94307b37dcc757edc585e",
+ "Id": "407fd992ce8e4cc08f5ea772dac6ec47",
"Name": "vector",
"Description": "Autodesk.DesignScript.Geometry.Vector",
"UsingDefaultValue": false,
@@ -306,7 +311,7 @@
],
"Outputs": [
{
- "Id": "830ec4801f444ee6bcd5120add465a18",
+ "Id": "e4d7674335b0498a920034762c897cf5",
"Name": "double",
"Description": "double",
"UsingDefaultValue": false,
@@ -315,200 +320,210 @@
"KeepListStructure": false
}
],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Vector.Z",
"Replication": "Auto",
- "Description": "Get the Z component of a Vector\n\nVector.Z: double"
- },
- {
- "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
- "NodeType": "CodeBlockNode",
- "Code": "",
- "Id": "0e491365773d425ea5574210459832c5",
- "Inputs": [],
- "Outputs": [],
- "Replication": "Disabled",
- "Description": "Allows for DesignScript code to be authored directly"
+ "Description": "Get the Z value of a vector.\n\nVector.Z: double"
}
],
"Connectors": [
{
- "Start": "c1133eb4143e4c92af52bd41231b146e",
- "End": "ac92e80c505d4ea7a68ad8a2d2a1696c",
- "Id": "184d86e724914fe59465c9088c636adf"
+ "Start": "c2b8f39bd790430abb674a638434cd9e",
+ "End": "ae0213ab90ae49b1976acdd808529d08",
+ "Id": "29f48636c6e240a997561f96b6366a88",
+ "IsHidden": "False"
},
{
- "Start": "f131975a02c441c5ab83a4fa4a7ea197",
- "End": "e379b0273c0c4fa68865357988981c9e",
- "Id": "c364452be3744960965ad43a2a5e3efb"
+ "Start": "771aa1583f8f4d0aa2e54281badadb7e",
+ "End": "df26943265d94874983d0fda2ea969d9",
+ "Id": "ca7271f7c2d44ccb82862a7afec7786b",
+ "IsHidden": "False"
},
{
- "Start": "f131975a02c441c5ab83a4fa4a7ea197",
- "End": "45c771ee4e76467698c6facc569b7201",
- "Id": "679ed38a4d1446edab2808b78c35541b"
+ "Start": "771aa1583f8f4d0aa2e54281badadb7e",
+ "End": "1dea5a23a8164e50807586d6683f7cbb",
+ "Id": "b2dc53e9a99444229f2485aed182bfd0",
+ "IsHidden": "False"
},
{
- "Start": "f131975a02c441c5ab83a4fa4a7ea197",
- "End": "8ad564b79da94307b37dcc757edc585e",
- "Id": "9ddac0df12bd4e05bb8c988f447bfc7f"
+ "Start": "771aa1583f8f4d0aa2e54281badadb7e",
+ "End": "407fd992ce8e4cc08f5ea772dac6ec47",
+ "Id": "0d22eea670ff466da13d1366752116c9",
+ "IsHidden": "False"
},
{
- "Start": "569c7ccdca3c48208fbcd782ff518863",
- "End": "37ee545a12794760b154f31baeb51792",
- "Id": "7fbbf3e698af4afda114cb3a19d5b686"
+ "Start": "65452d1995af40ae9291b2315b65714a",
+ "End": "e4ff7d8b6108466497372a9f2e941d89",
+ "Id": "d6093af411824a6abe80e61a44b279f1",
+ "IsHidden": "False"
},
{
- "Start": "e972f628bc96487c8c92c5d261de7109",
- "End": "efa6a03474ce4049863bca3e1e579aba",
- "Id": "a725762fdd2f4f66823ad1aa638381a4"
+ "Start": "2faccf4036ba47c59c1fb4e0c5994e06",
+ "End": "010922a510d646039886e1369c865e88",
+ "Id": "50ec043b15124d469ca0badd5c239591",
+ "IsHidden": "False"
},
{
- "Start": "e972f628bc96487c8c92c5d261de7109",
- "End": "33dee35212394145b35adaa7cf64936c",
- "Id": "02817af73ee346b28b4e66fe007198be"
+ "Start": "2faccf4036ba47c59c1fb4e0c5994e06",
+ "End": "20a559de5f5349c1889e1266c170b85a",
+ "Id": "0d914c03563b44d79f7a3e194d951e69",
+ "IsHidden": "False"
},
{
- "Start": "270e223431c7402a8d4dbbd4ea7cf0ed",
- "End": "b88e4335c7974225a8fd857da44faaa1",
- "Id": "77c4503ba76d4ae186ebb4d992784f94"
+ "Start": "92b0e600812742d3993ccae8428555a8",
+ "End": "e3637b9c33e543d18bda072d74f064bc",
+ "Id": "6348f49b51604b00bd6f85857871f4ab",
+ "IsHidden": "False"
},
{
- "Start": "4a982f361d254845b39b069c7597f1cf",
- "End": "397c7d5b87e541539e2f2557e003c91f",
- "Id": "011cca1bc57f4f448c9bf0f6d13ce18c"
+ "Start": "6166473e124d4d9b836aef1a14a13565",
+ "End": "7d8e44c48adb48bf996ed3b2f77a26f0",
+ "Id": "6681ed0730ca4c1b9567a636922fa1a5",
+ "IsHidden": "False"
},
{
- "Start": "830ec4801f444ee6bcd5120add465a18",
- "End": "ba3b3f405e6c4682aeb8aaa5e0d5d40b",
- "Id": "bb7f90ecb81f4a35a0113a3e7a544454"
+ "Start": "e4d7674335b0498a920034762c897cf5",
+ "End": "a440b288f13a43f498fa1cd8d3332b41",
+ "Id": "ce330dc028f3482a91d781d8c0d45a13",
+ "IsHidden": "False"
}
],
"Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
"Bindings": [],
"View": {
"Dynamo": {
"ScaleFactor": 1.0,
"HasRunWithoutCrash": true,
"IsVisibleInDynamoLibrary": true,
- "Version": "2.0.1.5055",
- "RunType": "Automatic",
+ "Version": "2.19.0.5742",
+ "RunType": "Manual",
"RunPeriod": "1000"
},
"Camera": {
- "Name": "Background Preview",
- "EyeX": -2.022646427154541,
- "EyeY": 8.1483144760131836,
- "EyeZ": 4.4798989295959473,
- "LookX": 2.7799487113952637,
- "LookY": -7.4253988265991211,
- "LookZ": -12.051481246948242,
- "UpX": 0.0716925710439682,
- "UpY": 0.94776839017868042,
- "UpZ": -0.31079769134521484
+ "Name": "_Background Preview",
+ "EyeX": -11.20389461517334,
+ "EyeY": 17.720888137817383,
+ "EyeZ": 21.985492706298828,
+ "LookX": 6.20389461517334,
+ "LookY": -6.7208881378173828,
+ "LookZ": -29.985492706298828,
+ "UpX": 0.0,
+ "UpY": 1.0,
+ "UpZ": 0.0
},
+ "ConnectorPins": [],
"NodeViews": [
{
- "ShowGeometry": true,
+ "Id": "b743a19a2230487b8e5cf55683b8e880",
"Name": "Line.ByStartPointDirectionLength",
- "Id": "6d1ee31ae12c4eab8b51c20d47755015",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 3725.2175766366431,
- "Y": 3819.89312774838
+ "ShowGeometry": true,
+ "X": 3710.031881419729,
+ "Y": 3711.2021157451677
},
{
- "ShowGeometry": true,
+ "Id": "b7f9cd398d7f4f2299ab4940d217f2a2",
"Name": "Watch",
- "Id": "9b79cf50ce83432bbe01330522ae3dfb",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 3530.3145161311227,
- "Y": 3913.3102894390863
+ "ShowGeometry": true,
+ "X": 3737.6603860926266,
+ "Y": 4012.7184708853547
},
{
- "ShowGeometry": true,
+ "Id": "1bb4946e914245bba169bfc501e18bb9",
"Name": "Code Block",
- "Id": "b2f274f8a001463b84f919669986dec5",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 2708.8970724672727,
- "Y": 3859.5742314161466
+ "ShowGeometry": true,
+ "X": 2642.6603860926266,
+ "Y": 3900.2009708853548
},
{
- "ShowGeometry": true,
+ "Id": "c827651eef88487ab612e34b04f6e15c",
"Name": "Vector Scale",
- "Id": "b8fc629975a445ffa681797e35fd8042",
"IsSetAsInput": true,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 2655.10319554861,
- "Y": 4094.25408697423
+ "ShowGeometry": true,
+ "X": 2634.9244047842153,
+ "Y": 4096.3983774274111
},
{
- "ShowGeometry": true,
+ "Id": "539bde5f63bb4679b741a1efabb947b4",
"Name": "Vector.Scale",
- "Id": "5cc0666e903141948c079c526d64b536",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 3007.80233960227,
- "Y": 4069.34975810021
+ "ShowGeometry": true,
+ "X": 3096.1860870272058,
+ "Y": 4106.3399662124575
},
{
- "ShowGeometry": true,
+ "Id": "721fe57caf5546fc9fb5fe2a0a6a0608",
"Name": "Watch",
- "Id": "beb23d6dcc2f4a9a85d81f988ba6b3b1",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 3528.9683361919829,
- "Y": 4016.4843387362462
+ "ShowGeometry": true,
+ "X": 3737.6603860926266,
+ "Y": 4164.7184708853547
},
{
- "ShowGeometry": true,
+ "Id": "ef904e758e524ac08e86d1b3b03d2286",
"Name": "Vector.Length",
- "Id": "b0cc6cb7929c44e7852b0f68ff15f88f",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 3338.96260462975,
- "Y": 4159.54381402233
+ "ShowGeometry": true,
+ "X": 3432.9758066533741,
+ "Y": 3871.1390316330185
},
{
- "ShowGeometry": true,
+ "Id": "5138f09bfa184eeb80877b29f8323917",
"Name": "Vector.Z",
- "Id": "7577e97b30a74957b1bf28e693c48894",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 3267.7750376260924,
- "Y": 4016.4843387362462
+ "ShowGeometry": true,
+ "X": 3429.6603860926266,
+ "Y": 4164.7184708853547
},
{
- "ShowGeometry": true,
+ "Id": "43f9a7cfc61d42dd84ed1b6b9409b219",
"Name": "Vector.Z",
- "Id": "c87e7c7f7bc74f25920b2a23a9be4d86",
"IsSetAsInput": false,
"IsSetAsOutput": false,
"Excluded": false,
- "X": 3266.778264681403,
- "Y": 3913.3102894390863
- },
- {
"ShowGeometry": true,
- "Name": "Code Block",
- "Id": "0e491365773d425ea5574210459832c5",
- "IsSetAsInput": false,
- "IsSetAsOutput": false,
- "Excluded": false,
- "X": 2809.0,
- "Y": 4202.0
+ "X": 3429.6603860926266,
+ "Y": 4014.7184708853547
}
],
"Annotations": [],
- "X": -2654.4358752323133,
- "Y": -3572.9092596659311,
- "Zoom": 1.0032375029116336
+ "X": -1625.3404083055402,
+ "Y": -2504.6476668377768,
+ "Zoom": 0.71455759610627723
}
}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Z.md b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Z.md
index b46ac1f155b..13a3268f8e4 100644
--- a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Z.md
+++ b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Z.md
@@ -1,7 +1,9 @@
## In Depth
-Z returns a double representing a reference point's Z coordinate value in the Revit conceptual design environment.
+`Vector.Z` returns a double representing a reference pointâs Z coordinate value.
+
+In the example below, two `Vector.Z` nodes are used to compare the Z coordinate values of an original and scaled vector.
+
___
## Example File
-![Z](./Autodesk.DesignScript.Geometry.Vector.Z_img.jpg)
-
+![Vector.Z](./Autodesk.DesignScript.Geometry.Vector.Z_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Z_img.jpg b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Z_img.jpg
index bfda9dc77ba..f97da7a4d9c 100644
Binary files a/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Z_img.jpg and b/doc/distrib/NodeHelpFiles/Autodesk.DesignScript.Geometry.Vector.Z_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.GroupByKey.dyn b/doc/distrib/NodeHelpFiles/DSCore.List.GroupByKey.dyn
new file mode 100644
index 00000000000..5f3d1486ae1
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.GroupByKey.dyn
@@ -0,0 +1,426 @@
+{
+ "Uuid": "ba3ce1ca-4a82-4697-bbce-cd68b8cdda8d",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "DSCore.List.GroupByKey",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "58d21de2edf54c1fbc45376121758f75",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "11d65ca2eb574b5c8a1a28d9b35c8cf5",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "38a3f88024024638aa711ebad8958776",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "aef6856c750a440fa5b877b0b510a9af",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "7056a2a89720404ba47b4b17c0bd2a47",
+ "Name": "amount",
+ "Description": "Amount of random numbers the result list will contain.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "7e47d1e133d04ed0a6fa5a00d5142447",
+ "Name": "number",
+ "Description": "List of random numbers between 0 and 1.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
+ "Replication": "Auto",
+ "Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "c088bafe734540c4b699f98f95c27eed",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "6da42f99c57041da8e2bd04c3e309c55",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "cb2365710e90401a808a7877b1ef6b51",
+ "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",
+ "Code": "x*5;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "4de0cf403a8f4743967ba9ee772e1057",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "e412a7e87179423fa4c389f420e524e0",
+ "Name": "number",
+ "Description": "Number to round down\n\ndouble",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "3608ea1f1b0e48a1b665ea6e436bf65d",
+ "Name": "int",
+ "Description": "First integer smaller than the number",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.Floor@double",
+ "Replication": "Auto",
+ "Description": "Returns the first integer smaller than the number.\n\nMath.Floor (number: double): int"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "be55be2ea9434c89b4ea25820075eff4",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "1ce7510176c94ceea71c29865279da19",
+ "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",
+ "Code": "10;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "2d1c0e5312de49d99d211012a9737657",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "e99af83ca85447cf85281afd7c90fc17",
+ "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",
+ "Code": "0..9..1;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "c0b4495913774b97ae543d989d257251",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "d2d19b746ed74a09a43668815ed8adcc",
+ "Name": "list",
+ "Description": "List of items to group as sublists\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "2b1a11a01b1749928a2a50001563acbb",
+ "Name": "keys",
+ "Description": "Key values, one per item in the input list, used for grouping the items\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "2271a2a99036425681dc0f4ae5cc40aa",
+ "Name": "groups",
+ "Description": "list of sublists, with items grouped by like key values",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "2a2f068715154703889869a1281fdb6e",
+ "Name": "uniqueKeys",
+ "Description": "key value corresponding to each group",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.GroupByKey@var[]..[],var[]..[]",
+ "Replication": "Auto",
+ "Description": "Group items into sub-lists based on their like key values\n\nList.GroupByKey (list: var[]..[], keys: var[]..[]): var[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 182.0,
+ "WatchHeight": 334.0,
+ "Id": "6275bf8964ba44bfa2b7c3ea9d851975",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "65a9b056ba074906af56ad7de4b067e7",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "6c39c0c2c0c34239acdf802ce3d93217",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "38a3f88024024638aa711ebad8958776",
+ "End": "2b1a11a01b1749928a2a50001563acbb",
+ "Id": "1de29811329147b586dfcfa9ebad2728",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "7e47d1e133d04ed0a6fa5a00d5142447",
+ "End": "6da42f99c57041da8e2bd04c3e309c55",
+ "Id": "67b172fc1df449888755126feb2376ea",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "cb2365710e90401a808a7877b1ef6b51",
+ "End": "e412a7e87179423fa4c389f420e524e0",
+ "Id": "a16f111093554e54b35aa285b149b72a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "3608ea1f1b0e48a1b665ea6e436bf65d",
+ "End": "11d65ca2eb574b5c8a1a28d9b35c8cf5",
+ "Id": "d2125f3b794c419d92ca04597c58ba8f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "1ce7510176c94ceea71c29865279da19",
+ "End": "7056a2a89720404ba47b4b17c0bd2a47",
+ "Id": "a051e3ee4c2e499ba7e3b7365fde5527",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e99af83ca85447cf85281afd7c90fc17",
+ "End": "d2d19b746ed74a09a43668815ed8adcc",
+ "Id": "e31a2dab3c73422fb0ff58775c04598c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "2271a2a99036425681dc0f4ae5cc40aa",
+ "End": "65a9b056ba074906af56ad7de4b067e7",
+ "Id": "4b34c2aaf5a24c12a97ef1cbcbd9885f",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -13.988694190979004,
+ "EyeY": 18.264490127563477,
+ "EyeZ": 21.429862976074219,
+ "LookX": 16.723785400390625,
+ "LookY": -5.2774238586425781,
+ "LookZ": -19.588394165039063,
+ "UpX": -0.009065740741789341,
+ "UpY": 0.99990254640579224,
+ "UpZ": 0.010618607513606548
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "58d21de2edf54c1fbc45376121758f75",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 302.501436626844,
+ "Y": 131.519626222477
+ },
+ {
+ "Id": "aef6856c750a440fa5b877b0b510a9af",
+ "Name": "Math.RandomList",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -565.49856337315555,
+ "Y": 131.34712622247744
+ },
+ {
+ "Id": "c088bafe734540c4b699f98f95c27eed",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -244.49856337315555,
+ "Y": 131.34712622247744
+ },
+ {
+ "Id": "4de0cf403a8f4743967ba9ee772e1057",
+ "Name": "Math.Floor",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 9.5014366268444519,
+ "Y": 131.51962622247746
+ },
+ {
+ "Id": "be55be2ea9434c89b4ea25820075eff4",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -819.49856337315555,
+ "Y": 131.17462622247743
+ },
+ {
+ "Id": "2d1c0e5312de49d99d211012a9737657",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 140.389641087658,
+ "Y": -60.4416921128201
+ },
+ {
+ "Id": "c0b4495913774b97ae543d989d257251",
+ "Name": "List.GroupByKey",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 679.50143662684445,
+ "Y": 40.519626222477442
+ },
+ {
+ "Id": "6275bf8964ba44bfa2b7c3ea9d851975",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 984.86789690969658,
+ "Y": 32.134533349760773
+ }
+ ],
+ "Annotations": [],
+ "X": 662.924994525159,
+ "Y": 204.95908523623751,
+ "Zoom": 0.43442824678868786
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.GroupByKey.md b/doc/distrib/NodeHelpFiles/DSCore.List.GroupByKey.md
new file mode 100644
index 00000000000..c1f3e0fc684
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.GroupByKey.md
@@ -0,0 +1,8 @@
+## In Depth
+`List.GroupByKey` groups items from an input list based on a list of keys. The list of keys should have the same number of elements as the input list. Items in the original list that correspond to matching keys are grouped together in an output list.
+
+In the example below, we use a range of numbers between 0 and 9 as the input list. We also generate a list of 10 random numbers between 0 and 4 to use as the keys. `List.GroupByKey` outputs a nested list of elements, grouped according to the corresponding key. It also outputs a list of the unique keys.
+___
+## Example File
+
+![List.GroupByKey](./DSCore.List.GroupByKey_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.GroupByKey_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.GroupByKey_img.jpg
new file mode 100644
index 00000000000..748e824cbd7
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/DSCore.List.GroupByKey_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Insert.dyn b/doc/distrib/NodeHelpFiles/DSCore.List.Insert.dyn
new file mode 100644
index 00000000000..a54cafb73f0
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Insert.dyn
@@ -0,0 +1,394 @@
+{
+ "Uuid": "a4b7741a-778e-4326-97f6-a5d7795cb0af",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "DSCore.List.Insert",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "b5c2449a66a6455e800dc12d069b4f39",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "a5e141f4181c4c35b450077f2ff402cb",
+ "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",
+ "Code": "0..12..#6;"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "e8d39e9c482b4ab8bbe6dbbdc86fef4a",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "9ab5f1aea6d94a86980ed13784c61782",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "135adb1c063a43d1b541b4271498246b",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "c9a8b04b98d342e89d318f24666fcc9b",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "4679ecc55f1e46749ab1cbd41a0afdc1",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "1ee64d9e4c954015a9f6b44f8e520229",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "3d03d167d2264cde8de762a5840ae360",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "1fa6494e9c3f48d8bc6801a5d2b5dcda",
+ "Name": "list",
+ "Description": "The list the element will be inserted to\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "7a6e0b292bb94f97942960cecb0eef32",
+ "Name": "element",
+ "Description": "The element to be inserted\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "caacc9f925114cdab696840f32a4b8c8",
+ "Name": "index",
+ "Description": "Specifies the location in the list of the element to be inserted\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "211366c4e08c4ef8b899d00e0e91c0b5",
+ "Name": "list",
+ "Description": "List with the element inserted",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.Insert@var[]..[],var[]..[],int",
+ "Replication": "Auto",
+ "Description": "Inserts an element into a list at specified index.\n\nList.Insert (list: var[]..[], element: var[]..[], index: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "18c95556047840fdb9202ae1524b5163",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "949445a6b9dc4563880bc978fbc84bf0",
+ "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",
+ "Code": "2;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "428044e5faed45df9f77c3ef733d05d6",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "35445dc7f6da4473a09f77c3b285ca16",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "dc91327520b84606a8531ca97deea906",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "\"Hello\";\n\"List!\";"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "4e6afd6e384a4e07aa06e42a1f15ba3e",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "ead042457c174b14b698838afd4eb3b4",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "cc001fa75a224e20bee16caaf7dd6cd4",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "3b79f3a3e6c14b9e8bae72ff4af4bc17",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "a5e141f4181c4c35b450077f2ff402cb",
+ "End": "9ab5f1aea6d94a86980ed13784c61782",
+ "Id": "abbe27bf17444bcab4ce8a115d30fa36",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a5e141f4181c4c35b450077f2ff402cb",
+ "End": "1fa6494e9c3f48d8bc6801a5d2b5dcda",
+ "Id": "706129739d7a48c19c9b9ab36e863809",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "211366c4e08c4ef8b899d00e0e91c0b5",
+ "End": "4679ecc55f1e46749ab1cbd41a0afdc1",
+ "Id": "391dd9bcb2ef4e59ab38aa90ba6887b5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "949445a6b9dc4563880bc978fbc84bf0",
+ "End": "caacc9f925114cdab696840f32a4b8c8",
+ "Id": "3d70c8cd93c44cb390577075d9ba53cb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "35445dc7f6da4473a09f77c3b285ca16",
+ "End": "ead042457c174b14b698838afd4eb3b4",
+ "Id": "0986065adb124f2dbcecbc9c2ec1fb48",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "dc91327520b84606a8531ca97deea906",
+ "End": "cc001fa75a224e20bee16caaf7dd6cd4",
+ "Id": "8f492b312d2f45b2adedec34eb283e98",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "3b79f3a3e6c14b9e8bae72ff4af4bc17",
+ "End": "7a6e0b292bb94f97942960cecb0eef32",
+ "Id": "0509b22381ed4e7bb6eaec6fc3d22540",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -10.351632118225098,
+ "EyeY": 13.915582656860352,
+ "EyeZ": 16.000629425048828,
+ "LookX": 16.128910064697266,
+ "LookY": -8.1650753021240234,
+ "LookZ": -20.504016876220703,
+ "UpX": 0.053885128349065781,
+ "UpY": 0.99619466066360474,
+ "UpZ": -0.068501941859722137
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "b5c2449a66a6455e800dc12d069b4f39",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 115.16802123486298,
+ "Y": 2630.5505679965549
+ },
+ {
+ "Id": "e8d39e9c482b4ab8bbe6dbbdc86fef4a",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 675.168021234863,
+ "Y": 2492.7230679965551
+ },
+ {
+ "Id": "c9a8b04b98d342e89d318f24666fcc9b",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 675.168021234863,
+ "Y": 2806.7230679965551
+ },
+ {
+ "Id": "3d03d167d2264cde8de762a5840ae360",
+ "Name": "List.Insert",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 378.168021234863,
+ "Y": 2807.6969668546303
+ },
+ {
+ "Id": "18c95556047840fdb9202ae1524b5163",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 115.16802123486298,
+ "Y": 2956.5505679965549
+ },
+ {
+ "Id": "428044e5faed45df9f77c3ef733d05d6",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -138.83197876513702,
+ "Y": 2786.3780679965548
+ },
+ {
+ "Id": "4e6afd6e384a4e07aa06e42a1f15ba3e",
+ "Name": "List.Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 115.16802123486298,
+ "Y": 2777.7230679965551
+ }
+ ],
+ "Annotations": [],
+ "X": 314.80125600083085,
+ "Y": -2120.153337040756,
+ "Zoom": 0.86534757118927974
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Insert.md b/doc/distrib/NodeHelpFiles/DSCore.List.Insert.md
new file mode 100644
index 00000000000..816e539c987
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Insert.md
@@ -0,0 +1,9 @@
+## In Depth
+`List.Insert` places multiple elements into a list at a given index.
+
+In the example below, a list containing two strings, "Hello" and "List!", is inserted at index value 2 as a sublist, producing a new list that is one index longer than the original list.
+
+___
+## Example File
+
+![List.Insert](./DSCore.List.Insert_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Insert_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.Insert_img.jpg
new file mode 100644
index 00000000000..05f1e10df20
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/DSCore.List.Insert_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.NormalizeDepth.dyn b/doc/distrib/NodeHelpFiles/DSCore.List.NormalizeDepth.dyn
new file mode 100644
index 00000000000..e7c8fc324e0
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.NormalizeDepth.dyn
@@ -0,0 +1,405 @@
+{
+ "Uuid": "8ab083ac-c167-480a-be7b-c4ff443c668b",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "DSCore.List.NormalizeDepth",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "ce489f7971194d1896d7532f0ebff74b",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "6e1cc85ef2df41fdbca31ac63aa21375",
+ "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",
+ "Code": "0..12..#6;"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "868ffe038f1f41d3b65bf53918941e41",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "a5f69505c56c4b978ce602904a6f27f5",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "0f2507a3d6f04d83ad18b8653b7c1d1e",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "e9550dbeca12417bb1c3b839917dc0f5",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "1635ff1727384cfba1fe7187f5982496",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1a8b5cf60de04a44a4ff067dde0a21b3",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "88a86f19cabe41b18d55fe1c3c83fd82",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "bfd2b813ac5749faaae156b72d7d4c35",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "abdf0dd685b448ae85958d0ce2e36ba3",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a759366fb278473a80f1b50a4c7cc00e",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "26e06b46245843f484acd622d5539a3e",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "59ca9d60ea6541c887b122ab6c99cb6e",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "df37c3d1cb554f9d95db837f9ace4381",
+ "Name": "list",
+ "Description": "The list whose depth is to be normalized according to the rank.\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "345e9a4147f349fbabcd56bce8a12103",
+ "Name": "rank",
+ "Description": "The rank the list is to be normalized to. Default value is 1.\n\nint\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "95fcab0ce9564e918541e9b5b8c7935d",
+ "Name": "list",
+ "Description": "The list with the normalized rank.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.NormalizeDepth@var[]..[],int",
+ "Replication": "Shortest",
+ "Description": "Returns multidimensional list according the rank given.\n\nList.NormalizeDepth (list: var[]..[], rank: int = 1): var[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 230.0,
+ "WatchHeight": 415.0,
+ "Id": "36a3753cb26c46d4bf5d9d4a9e3873eb",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "aca5435cbd9744e997986aa59a965c43",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "064a0edfb33b4cb099e103c72fe6d9e7",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "21e38cc46754410aa6f7abe4e6c3fe1a",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "df2c47317ff04540bde98a3ca979cb5d",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 3
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "6e1cc85ef2df41fdbca31ac63aa21375",
+ "End": "1635ff1727384cfba1fe7187f5982496",
+ "Id": "8b757294473648c8bcfc45d052158894",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6e1cc85ef2df41fdbca31ac63aa21375",
+ "End": "1a8b5cf60de04a44a4ff067dde0a21b3",
+ "Id": "8a92307b66204f629fb78fdc0783bbd5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6e1cc85ef2df41fdbca31ac63aa21375",
+ "End": "abdf0dd685b448ae85958d0ce2e36ba3",
+ "Id": "8866a76090e54f7990c0d4c1b771e8eb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "0f2507a3d6f04d83ad18b8653b7c1d1e",
+ "End": "df37c3d1cb554f9d95db837f9ace4381",
+ "Id": "4fb02fdd588547cb937abb74331153ca",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "88a86f19cabe41b18d55fe1c3c83fd82",
+ "End": "a759366fb278473a80f1b50a4c7cc00e",
+ "Id": "7a3b90af2e7e462f92d212791d3fbf6c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "26e06b46245843f484acd622d5539a3e",
+ "End": "a5f69505c56c4b978ce602904a6f27f5",
+ "Id": "7c5c4f6f97514ebab951fab8d71c8db7",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "95fcab0ce9564e918541e9b5b8c7935d",
+ "End": "aca5435cbd9744e997986aa59a965c43",
+ "Id": "e75633737bff4981a6fd77d47cb96b2b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "df2c47317ff04540bde98a3ca979cb5d",
+ "End": "345e9a4147f349fbabcd56bce8a12103",
+ "Id": "5653603c795349b9b04abfff204cf970",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -10.351632118225098,
+ "EyeY": 13.915582656860352,
+ "EyeZ": 16.000629425048828,
+ "LookX": 16.128910064697266,
+ "LookY": -8.1650753021240234,
+ "LookZ": -20.504016876220703,
+ "UpX": 0.053885128349065781,
+ "UpY": 0.99619466066360474,
+ "UpZ": -0.068501941859722137
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "ce489f7971194d1896d7532f0ebff74b",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -419.86230523087744,
+ "Y": 2942.78783442289
+ },
+ {
+ "Id": "868ffe038f1f41d3b65bf53918941e41",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 363.13769476912256,
+ "Y": 2908.96033442289
+ },
+ {
+ "Id": "e9550dbeca12417bb1c3b839917dc0f5",
+ "Name": "List.Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -156.86230523087744,
+ "Y": 2942.96033442289
+ },
+ {
+ "Id": "bfd2b813ac5749faaae156b72d7d4c35",
+ "Name": "List.Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 103.13769476912256,
+ "Y": 2908.96033442289
+ },
+ {
+ "Id": "59ca9d60ea6541c887b122ab6c99cb6e",
+ "Name": "List.NormalizeDepth",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 740.13769476912262,
+ "Y": 2909.8810086027847
+ },
+ {
+ "Id": "36a3753cb26c46d4bf5d9d4a9e3873eb",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1064.1376947691226,
+ "Y": 2908.96033442289
+ },
+ {
+ "Id": "21e38cc46754410aa6f7abe4e6c3fe1a",
+ "Name": "Integer Slider",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 296.89638241700129,
+ "Y": 3242.5309509242124
+ }
+ ],
+ "Annotations": [],
+ "X": 345.04955947313556,
+ "Y": -2049.3232409355041,
+ "Zoom": 0.77084898905121679
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.NormalizeDepth.md b/doc/distrib/NodeHelpFiles/DSCore.List.NormalizeDepth.md
new file mode 100644
index 00000000000..b327b958cf8
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.NormalizeDepth.md
@@ -0,0 +1,10 @@
+## In Depth
+`List.NormalizeDepth` returns a new list of uniform depth to a specified rank, or list depth.
+
+Like `List.Flatten`, you can use `List.NormalizeDepth` to return a one-dimensional list (a list with a single level). But you can also use it to add list levels. The node normalizes the input list to a depth of your choosing.
+
+In the example below, a list containing 2 lists of unequal depth can be normalized to different ranks with an integer slider. By normalizing the depths at different ranks, the list increases or decreases in depth, but is always uniform. A list of rank 1 returns a single list of elements, while a list of rank 3 returns 2 levels of sublists.
+___
+## Example File
+
+![List.NormalizeDepth](./DSCore.List.NormalizeDepth_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.NormalizeDepth_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.NormalizeDepth_img.jpg
new file mode 100644
index 00000000000..09ce4c0b1a0
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/DSCore.List.NormalizeDepth_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Reorder.dyn b/doc/distrib/NodeHelpFiles/DSCore.List.Reorder.dyn
new file mode 100644
index 00000000000..d41041f51ac
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Reorder.dyn
@@ -0,0 +1,445 @@
+{
+ "Uuid": "900944ba-235b-47de-92db-7ca167dc370e",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "DSCore.List.Reorder",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "a56ddb32f8924bde951838397bf6dc1b",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "37572891ebb8426d94364e232b088dd4",
+ "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",
+ "Code": "0..12..#6;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d6a7a310e5444f93b8942c7ab8ecee38",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "e8c0763fc07e46cc9869596f4bbbde6e",
+ "Name": "list",
+ "Description": "The list to be reordered\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a0c3a86d6b2143ca878fda81d92697b6",
+ "Name": "indices",
+ "Description": "The indices used to reorder the items in the list\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "5889bad8669a4923bc7d6528d2ebff39",
+ "Name": "list",
+ "Description": "Reordered list",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.Reorder@var[]..[],var[]..[]",
+ "Replication": "Auto",
+ "Description": "Reorders the input list based on the given list of indices.\n\nList.Reorder (list: var[]..[], indices: var[]..[]): var[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "776e1ad679b14680881164d091a6e742",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "4c6df04397c842028b46fc391e6ef7de",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "2b5b9e549b5f42c8ae5a81f919296d76",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "d20bde923e10410c93fef674fdc1e321",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "e682395fdff04d0083ca036ef8d46eb3",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e93715a8f1de452f9069bf4837a63aa3",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "1851f31786cf451ba17413f9ce4b0ea9",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "045b488b6ef5408f860c1bfbf66e99c1",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "119b7fd85a2f47c3ae37ccbb31be7f38",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6099266795a640db80b5d1371f0d66ec",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a78f1ba099f7480aa2f12d1595639367",
+ "Name": "",
+ "Description": "Value of expression at line 4",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8ddd38a8eee24c1fa63778965199e47f",
+ "Name": "",
+ "Description": "Value of expression at line 5",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "80b95a4bf08749878ee8935fa493409c",
+ "Name": "",
+ "Description": "Value of expression at line 6",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "1;\n5;\n4;\n2;\n0;\n3;"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "c4e906ab92f34cd5bf3139585b99cdeb",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "ace16cc04881449c802b7689817274f0",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "31a92bb429a54cd1b84c53436cb947e7",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6cae826fddbb4841931f3866aae7a71b",
+ "Name": "item2",
+ "Description": "Item Index #2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "567db54be9874a9a9905b7133604d9ba",
+ "Name": "item3",
+ "Description": "Item Index #3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "730cc50bbc8b44f49716786bfbea88cf",
+ "Name": "item4",
+ "Description": "Item Index #4",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "dc9251ab19834f8aa7d74b171a6b8008",
+ "Name": "item5",
+ "Description": "Item Index #5",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e9dda715fe884586a9c6809498c755be",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "37572891ebb8426d94364e232b088dd4",
+ "End": "4c6df04397c842028b46fc391e6ef7de",
+ "Id": "33aa70e42eb54feb98269ee65f292839",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "5889bad8669a4923bc7d6528d2ebff39",
+ "End": "e682395fdff04d0083ca036ef8d46eb3",
+ "Id": "f93fc7ecedaa450ebdcf2dc181445cdd",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "2b5b9e549b5f42c8ae5a81f919296d76",
+ "End": "e8c0763fc07e46cc9869596f4bbbde6e",
+ "Id": "d81297efcc7b49c3b4884935d8179d63",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "045b488b6ef5408f860c1bfbf66e99c1",
+ "End": "ace16cc04881449c802b7689817274f0",
+ "Id": "3dddb8d298cb40c294d95ef484999526",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "119b7fd85a2f47c3ae37ccbb31be7f38",
+ "End": "31a92bb429a54cd1b84c53436cb947e7",
+ "Id": "35836db82c83454f815a5e2905b6a50f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6099266795a640db80b5d1371f0d66ec",
+ "End": "6cae826fddbb4841931f3866aae7a71b",
+ "Id": "549f499b1d5a4fc0972eab8029830a51",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a78f1ba099f7480aa2f12d1595639367",
+ "End": "567db54be9874a9a9905b7133604d9ba",
+ "Id": "c7984cc38d9f479c8fdefac8f4aa7945",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8ddd38a8eee24c1fa63778965199e47f",
+ "End": "730cc50bbc8b44f49716786bfbea88cf",
+ "Id": "e30ac6c80665489bb279d44a576d369c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "80b95a4bf08749878ee8935fa493409c",
+ "End": "dc9251ab19834f8aa7d74b171a6b8008",
+ "Id": "5b1b247f6b0d475e96bd1b79947d6b8a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e9dda715fe884586a9c6809498c755be",
+ "End": "a0c3a86d6b2143ca878fda81d92697b6",
+ "Id": "1af22fba568a414c94a45e0d44c05e2e",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -10.351632118225098,
+ "EyeY": 13.915582656860352,
+ "EyeZ": 16.000629425048828,
+ "LookX": 16.128910064697266,
+ "LookY": -8.1650753021240234,
+ "LookZ": -20.504016876220703,
+ "UpX": 0.053885128349065781,
+ "UpY": 0.99619466066360474,
+ "UpZ": -0.068501941859722137
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "a56ddb32f8924bde951838397bf6dc1b",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -340.46764361356844,
+ "Y": 2859.1130432151695
+ },
+ {
+ "Id": "d6a7a310e5444f93b8942c7ab8ecee38",
+ "Name": "List.Reorder",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 299.53235638643156,
+ "Y": 2999.2855432151696
+ },
+ {
+ "Id": "776e1ad679b14680881164d091a6e742",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -77.467643613568441,
+ "Y": 2859.2855432151696
+ },
+ {
+ "Id": "d20bde923e10410c93fef674fdc1e321",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 590.5323563864315,
+ "Y": 2999.2855432151696
+ },
+ {
+ "Id": "1851f31786cf451ba17413f9ce4b0ea9",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -340.46764361356844,
+ "Y": 3217.2505432151693
+ },
+ {
+ "Id": "c4e906ab92f34cd5bf3139585b99cdeb",
+ "Name": "List.Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -77.467643613568441,
+ "Y": 3173.2855432151696
+ }
+ ],
+ "Annotations": [],
+ "X": 404.28289390335965,
+ "Y": -2885.363386533646,
+ "Zoom": 1.0196740536202169
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Reorder.md b/doc/distrib/NodeHelpFiles/DSCore.List.Reorder.md
new file mode 100644
index 00000000000..7e6bf6678c4
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Reorder.md
@@ -0,0 +1,8 @@
+## In Depth
+`List.Reorder` returns a new list with its items reordered based on a list of indices.
+
+In the example below, a new list is created by manually changing the index order. Each input index assigns a new place on the list for the original list items. For example, item0 is 1, so the first item on the new list is 2.4, which is index 1 on the original list. Item1 is 5, so the second item on the new list is 12, which is index 5 on the original list, and so on.
+___
+## Example File
+
+![List.Reorder](./DSCore.List.Reorder_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Reorder_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.Reorder_img.jpg
new file mode 100644
index 00000000000..6c3ef809c00
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/DSCore.List.Reorder_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.ReplaceItemAtIndex.dyn b/doc/distrib/NodeHelpFiles/DSCore.List.ReplaceItemAtIndex.dyn
new file mode 100644
index 00000000000..8ef2f02f122
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.ReplaceItemAtIndex.dyn
@@ -0,0 +1,324 @@
+{
+ "Uuid": "ae4527a7-d38f-4942-affa-e7bd5ac3a9d8",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "DSCore.List.ReplaceItemAtIndex",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "37a624baca924e59871052dd1b92883c",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "22feed9316ea4d5c9f6743ff3124a759",
+ "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",
+ "Code": "0..5..1;"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "694689a38b1043d9a09798f07ba6bb23",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "2d991d6014e64325984ab277c157e488",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "0ac657d003c247598d613fe909205058",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "626ae416b93240c4b4cc33d957ff699c",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "e0207d21df694b75abf687316a82ba06",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "b225cdd9f2394d249ee5be9df32a8b09",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "aa62dfb6909f4db488629b5d97d4c716",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "5826769886ba46e38d755bfaad78bf03",
+ "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",
+ "Code": "3;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "7c8dfbfdee754a3da5ed49f4e8648b61",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "b74f5654374f4deb91ccf19c3805ea5d",
+ "Name": "list",
+ "Description": "List to replace an item in.\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "48389811e26e48128464e97f199be236",
+ "Name": "index",
+ "Description": "Index of the item to be replaced.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "2fda449159c94171bc5363c386367568",
+ "Name": "item",
+ "Description": "The item to insert.\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e274b250d1d34d63bc28c0099dac4bae",
+ "Name": "list",
+ "Description": "A new list with the item replaced.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.ReplaceItemAtIndex@var[]..[],int,var[]..[]",
+ "Replication": "Auto",
+ "Description": "Replace an item from the given list that's located at the specified index.\n\nList.ReplaceItemAtIndex (list: var[]..[], index: int, item: var[]..[]): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "8d4ba7afb0194479a02d2441847314f3",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "b949db20a4e043dca9d47846af259874",
+ "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",
+ "Code": "10;"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "22feed9316ea4d5c9f6743ff3124a759",
+ "End": "2d991d6014e64325984ab277c157e488",
+ "Id": "e15281fb884d454ca7321beeeb6e1ba9",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "0ac657d003c247598d613fe909205058",
+ "End": "b74f5654374f4deb91ccf19c3805ea5d",
+ "Id": "ff80973699c2410482436b4554013d5c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "5826769886ba46e38d755bfaad78bf03",
+ "End": "48389811e26e48128464e97f199be236",
+ "Id": "02a1adceb9fc4806a8c54413ac87ea8e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e274b250d1d34d63bc28c0099dac4bae",
+ "End": "e0207d21df694b75abf687316a82ba06",
+ "Id": "5c58310f857e441b9dc41d0cd73cb981",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b949db20a4e043dca9d47846af259874",
+ "End": "2fda449159c94171bc5363c386367568",
+ "Id": "680122c5583a499990337d10e80fa600",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "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": "37a624baca924e59871052dd1b92883c",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -205.4045156296965,
+ "Y": 178.49181227385287
+ },
+ {
+ "Id": "694689a38b1043d9a09798f07ba6bb23",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 48.595484370303495,
+ "Y": 178.66431227385289
+ },
+ {
+ "Id": "626ae416b93240c4b4cc33d957ff699c",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 782.59548437030344,
+ "Y": 403.66431227385289
+ },
+ {
+ "Id": "aa62dfb6909f4db488629b5d97d4c716",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 48.595484370303495,
+ "Y": 493.49181227385287
+ },
+ {
+ "Id": "7c8dfbfdee754a3da5ed49f4e8648b61",
+ "Name": "List.ReplaceItemAtIndex",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 425.5954843703035,
+ "Y": 404.64798256934273
+ },
+ {
+ "Id": "8d4ba7afb0194479a02d2441847314f3",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 48.595484370303495,
+ "Y": 640.49181227385293
+ }
+ ],
+ "Annotations": [],
+ "X": 238.81439296426072,
+ "Y": -139.26084631160057,
+ "Zoom": 1.0166007905138339
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.ReplaceItemAtIndex.md b/doc/distrib/NodeHelpFiles/DSCore.List.ReplaceItemAtIndex.md
new file mode 100644
index 00000000000..f18a6d7ea9e
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.ReplaceItemAtIndex.md
@@ -0,0 +1,8 @@
+## In Depth
+`List.ReplaceItemAtIndex` replaces an item on the input list at a given index.
+
+In the example below, we start with a range of numbers from 0 to 5. We then use a `List.ReplaceItemAtIndex` node to replace the item at index 3 with a new item, in this case the integer 10.
+___
+## Example File
+
+![List.ReplaceItemAtIndex](./DSCore.List.ReplaceItemAtIndex_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.ReplaceItemAtIndex_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.ReplaceItemAtIndex_img.jpg
new file mode 100644
index 00000000000..52ad3709eaa
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/DSCore.List.ReplaceItemAtIndex_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Reverse.dyn b/doc/distrib/NodeHelpFiles/DSCore.List.Reverse.dyn
new file mode 100644
index 00000000000..21101981b3f
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Reverse.dyn
@@ -0,0 +1,421 @@
+{
+ "Uuid": "fc027501-0b9a-4832-b219-af4cc1350be9",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "DSCore.List.Reverse",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "8720ea5196bd40a7beb41782321bed28",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "1",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "6d473ebf81834397adb062c841fb71f3",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "25",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "fb73812f5c7a4df9b529a8b02ec8acfe",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "2",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "CoreNodeModels.Range, CoreNodeModels",
+ "Id": "00b410bc79dd45149e9c9be7fcb5cbcb",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "d345bd27bd284fd986fd0fe37d5f3bdf",
+ "Name": "start",
+ "Description": "Number or letter to start the sequence at\r\nDefault value: 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "67c722e8f94c41178bfb7078a76ce8af",
+ "Name": "end",
+ "Description": "Number or letter to end the sequence at\r\nDefault value: 9",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a93b3002e1e54ec59e1097fe3e2fffed",
+ "Name": "step",
+ "Description": "Space between numbers or letters\r\nDefault value: 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "93c9ef9739664b958696485588f9399f",
+ "Name": "list",
+ "Description": "New list of type: var[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Longest",
+ "Description": "Creates a sequence of numbers or letters in the given range"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "26fac243a7a840cdba92bf68a2b94de5",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "099aa8c3b4be4331ac066b51830b7cde",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "c96ab816a64d46e9b0850c27060dad2c",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "8720ea5196bd40a7beb41782321bed28",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "d764c7d5ac35401ca1aaabc6d2d534db",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 1
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "6d473ebf81834397adb062c841fb71f3",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "e7b6ea07ff774cc795f97b611a2f416a",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 25
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "fb73812f5c7a4df9b529a8b02ec8acfe",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "57bcfee92d0f4d11b74f03fee3333241",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 2
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "75a1335f483c405991e382a6fafa90b2",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "b2961acd5d214303a548635d10f54dd8",
+ "Name": "list",
+ "Description": "List to be reversed.\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "162606ec888847248710be99fa2a2f19",
+ "Name": "list",
+ "Description": "Reversed list",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.Reverse@var[]..[]",
+ "Replication": "Auto",
+ "Description": "Creates a new list containing the items of the given list but in reverse order.\n\nList.Reverse (list: var[]..[]): var[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "cf885acd3409403f9395acc551c6745c",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "808d937440b24d86b8b4444271c08b04",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "fd139ec1e3354082a5358f4576e81d40",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "93c9ef9739664b958696485588f9399f",
+ "End": "099aa8c3b4be4331ac066b51830b7cde",
+ "Id": "10b33281dc4a458ca8be0d13e50cd592",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c96ab816a64d46e9b0850c27060dad2c",
+ "End": "b2961acd5d214303a548635d10f54dd8",
+ "Id": "5c6910a093d24d0d9fe631cd3c5f5677",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d764c7d5ac35401ca1aaabc6d2d534db",
+ "End": "d345bd27bd284fd986fd0fe37d5f3bdf",
+ "Id": "34407ee02b114b0b852d79acaf60b24f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e7b6ea07ff774cc795f97b611a2f416a",
+ "End": "67c722e8f94c41178bfb7078a76ce8af",
+ "Id": "20ba2f3ce6ce49509b8743ebc5057e70",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "57bcfee92d0f4d11b74f03fee3333241",
+ "End": "a93b3002e1e54ec59e1097fe3e2fffed",
+ "Id": "d269cec7238948709cd13662d75024ee",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "162606ec888847248710be99fa2a2f19",
+ "End": "808d937440b24d86b8b4444271c08b04",
+ "Id": "d0b451cb55434c73b5941c2896884b01",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -13.988694190979004,
+ "EyeY": 18.264490127563477,
+ "EyeZ": 21.429862976074219,
+ "LookX": 16.723785400390625,
+ "LookY": -5.2774238586425781,
+ "LookZ": -19.588394165039063,
+ "UpX": -0.009065740741789341,
+ "UpY": 0.99990254640579224,
+ "UpZ": 0.010618607513606548
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "00b410bc79dd45149e9c9be7fcb5cbcb",
+ "Name": "Range",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -82.275381148499946,
+ "Y": 34.373574300271045
+ },
+ {
+ "Id": "26fac243a7a840cdba92bf68a2b94de5",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 195.72461885150005,
+ "Y": 34.373574300271059
+ },
+ {
+ "Id": "8720ea5196bd40a7beb41782321bed28",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -530.2753811485,
+ "Y": -78.626425699728955
+ },
+ {
+ "Id": "6d473ebf81834397adb062c841fb71f3",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -530.2753811485,
+ "Y": 68.373574300271045
+ },
+ {
+ "Id": "fb73812f5c7a4df9b529a8b02ec8acfe",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -530.2753811485,
+ "Y": 215.37357430027106
+ },
+ {
+ "Id": "75a1335f483c405991e382a6fafa90b2",
+ "Name": "List.Reverse",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 572.7246188515,
+ "Y": 34.373574300271059
+ },
+ {
+ "Id": "cf885acd3409403f9395acc551c6745c",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 841.7246188515,
+ "Y": 34.373574300271059
+ }
+ ],
+ "Annotations": [],
+ "X": 443.54405103515518,
+ "Y": 237.55553878098934,
+ "Zoom": 0.77986658580958157
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Reverse.md b/doc/distrib/NodeHelpFiles/DSCore.List.Reverse.md
new file mode 100644
index 00000000000..19c5ca735fb
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Reverse.md
@@ -0,0 +1,8 @@
+## In Depth
+`List.Reverse` takes the items in a list and creates a new list with the order of items reversed.
+
+In the example, we first generate a list using `Range`, which produces numbers in increasing order. Then, we use `List.Reverse` to switch the order of the items in the list.
+___
+## Example File
+
+![List.Reverse](./DSCore.List.Reverse_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Reverse_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.Reverse_img.jpg
new file mode 100644
index 00000000000..4e50d14f201
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/DSCore.List.Reverse_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.ShiftIndices.dyn b/doc/distrib/NodeHelpFiles/DSCore.List.ShiftIndices.dyn
new file mode 100644
index 00000000000..e47ea85ad5a
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.ShiftIndices.dyn
@@ -0,0 +1,483 @@
+{
+ "Uuid": "1f24d059-b133-4168-88ca-fe041d440fe4",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "DSCore.List.ShiftIndices",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "7e572aea7c07447f81aed73b6d069ab3",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "1",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "27e29d8bf150412c8bf386a663503116",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "25",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "e9914af921ce4d45b0c461ec8b62b388",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "2",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "769bc65ff1b7403a9ee4a64251612700",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "3",
+ "MaximumValue": 10.0,
+ "MinimumValue": -10.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "CoreNodeModels.Range, CoreNodeModels",
+ "Id": "fee270f7470f4c189e90ebd031f77f8a",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "3b547fff6dfc4c158acb3e179c041de1",
+ "Name": "start",
+ "Description": "Number or letter to start the sequence at\r\nDefault value: 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "dc0b647c895b49d38445aa5a3ad4dcb1",
+ "Name": "end",
+ "Description": "Number or letter to end the sequence at\r\nDefault value: 9",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "f061c06405dc414baaa3d23dedcb1796",
+ "Name": "step",
+ "Description": "Space between numbers or letters\r\nDefault value: 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "53e9d2979f4244b787f85a348d280f9a",
+ "Name": "list",
+ "Description": "New list of type: var[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Longest",
+ "Description": "Creates a sequence of numbers or letters in the given range"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "ba1a7cff46cd425e9118b34863875113",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "1554a4a368864481be0cda4503b930a4",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "867df9d430bb4674821c4d4da8c31e1d",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "7e572aea7c07447f81aed73b6d069ab3",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "496cb2bdc56c4ba5b18edabc3a428ded",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 1
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "27e29d8bf150412c8bf386a663503116",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "2f557d040538471da952c88ab0aef647",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 25
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "e9914af921ce4d45b0c461ec8b62b388",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "68e62cd078a14b3d93878938cbd16f8d",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 2
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "bc25c44bdd834995bbe262043e7c2bf3",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "c0e617635c2c4c63beb95628cf037414",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "9cc695d357254335a98a1ecf69bdc0af",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "0cbd206774234d618a85c68e38dffe22",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "448b8bbf65884eb29ec8d06a6326d6b4",
+ "Name": "list",
+ "Description": "List to be shifted.\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "314fdae4b4af44deb7ef3a94582ee00a",
+ "Name": "amount",
+ "Description": "Amount to shift indices by. If negative, indices will be shifted to the left.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "968deec90fd644398a7e5d6f1e44c4a2",
+ "Name": "list",
+ "Description": "Shifted list.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.ShiftIndices@var[]..[],int",
+ "Replication": "Auto",
+ "Description": "Shifts indices in the list to the right by the given amount.\n\nList.ShiftIndices (list: var[]..[], amount: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 10,
+ "MinimumValue": -10,
+ "StepValue": 1,
+ "Id": "769bc65ff1b7403a9ee4a64251612700",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "c4209104d64d48e0a5a0641d6f76c3f5",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 3
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "53e9d2979f4244b787f85a348d280f9a",
+ "End": "1554a4a368864481be0cda4503b930a4",
+ "Id": "4ff67a94b5a244b2b737a2852bef2a19",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "867df9d430bb4674821c4d4da8c31e1d",
+ "End": "448b8bbf65884eb29ec8d06a6326d6b4",
+ "Id": "6be5b04ae8364d1f8f0dcc706bd2e1d8",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "496cb2bdc56c4ba5b18edabc3a428ded",
+ "End": "3b547fff6dfc4c158acb3e179c041de1",
+ "Id": "78b7581411954d9ebe2ff216485b14cf",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "2f557d040538471da952c88ab0aef647",
+ "End": "dc0b647c895b49d38445aa5a3ad4dcb1",
+ "Id": "ae1d62e2f40b433683ba422994af9dfe",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "68e62cd078a14b3d93878938cbd16f8d",
+ "End": "f061c06405dc414baaa3d23dedcb1796",
+ "Id": "a208fb2a1fab48a29928448547e7b04a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "968deec90fd644398a7e5d6f1e44c4a2",
+ "End": "c0e617635c2c4c63beb95628cf037414",
+ "Id": "c1177b0c798f49ddb964382059d49480",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c4209104d64d48e0a5a0641d6f76c3f5",
+ "End": "314fdae4b4af44deb7ef3a94582ee00a",
+ "Id": "3cb67b9af3da483184a6a47b48c640f1",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -13.988694190979004,
+ "EyeY": 18.264490127563477,
+ "EyeZ": 21.429862976074219,
+ "LookX": 16.723785400390625,
+ "LookY": -5.2774238586425781,
+ "LookZ": -19.588394165039063,
+ "UpX": -0.009065740741789341,
+ "UpY": 0.99990254640579224,
+ "UpZ": 0.010618607513606548
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "fee270f7470f4c189e90ebd031f77f8a",
+ "Name": "Range",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -85.019269920661031,
+ "Y": -50.8937049115776
+ },
+ {
+ "Id": "ba1a7cff46cd425e9118b34863875113",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 192.98073007933897,
+ "Y": -50.8937049115776
+ },
+ {
+ "Id": "7e572aea7c07447f81aed73b6d069ab3",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -533.019269920661,
+ "Y": -163.8937049115776
+ },
+ {
+ "Id": "27e29d8bf150412c8bf386a663503116",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -533.019269920661,
+ "Y": -16.8937049115776
+ },
+ {
+ "Id": "e9914af921ce4d45b0c461ec8b62b388",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -533.019269920661,
+ "Y": 130.1062950884224
+ },
+ {
+ "Id": "bc25c44bdd834995bbe262043e7c2bf3",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 935.980730079339,
+ "Y": 89.1062950884224
+ },
+ {
+ "Id": "0cbd206774234d618a85c68e38dffe22",
+ "Name": "List.ShiftIndices",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 640.980730079339,
+ "Y": 89.1062950884224
+ },
+ {
+ "Id": "769bc65ff1b7403a9ee4a64251612700",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 192.98073007933897,
+ "Y": 263.10629508842237
+ }
+ ],
+ "Annotations": [],
+ "X": 422.59036719242278,
+ "Y": 256.87531759237618,
+ "Zoom": 0.736540664375716
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.ShiftIndices.md b/doc/distrib/NodeHelpFiles/DSCore.List.ShiftIndices.md
new file mode 100644
index 00000000000..fff62b0a77a
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.ShiftIndices.md
@@ -0,0 +1,8 @@
+## In Depth
+`List.ShiftIndices` shifts the position of the items in a list by the `amount` input. A positive number in the `amount` input shifts the numbers up, while a negative number shifts the indices backwards. The items wrap around, causing items at the back of the list to wrap to the beginning.
+
+In the example below, we first generate a list with `Range`, then shift the indices forward by 3. The final 3 numbers from the original list wrap around to become the first 3 numbers on the new list.
+___
+## Example File
+
+![List.ShiftIndices](./DSCore.List.ShiftIndices_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.ShiftIndices_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.ShiftIndices_img.jpg
new file mode 100644
index 00000000000..58d554ea062
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/DSCore.List.ShiftIndices_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Shuffle(list).dyn b/doc/distrib/NodeHelpFiles/DSCore.List.Shuffle(list).dyn
new file mode 100644
index 00000000000..93b89c96e03
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Shuffle(list).dyn
@@ -0,0 +1,421 @@
+{
+ "Uuid": "ced47393-e047-4723-8238-cbde5a87376f",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "DSCore.List.Shuffle",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "75c9b1c5be89470897a1f09337962fb5",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "1",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "f840a8287aa646db87b3092ad8c6c830",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "25",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "fb643d479f224927b6bd9cdbdd635b4a",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "2",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "CoreNodeModels.Range, CoreNodeModels",
+ "Id": "4beb4b4b881f4935806156d660fc81a2",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "51f55760b5104bbc9ea2d2b4725979b1",
+ "Name": "start",
+ "Description": "Number or letter to start the sequence at\r\nDefault value: 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "45b98f6dcc8c4120bc946f355e2ce8d0",
+ "Name": "end",
+ "Description": "Number or letter to end the sequence at\r\nDefault value: 9",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "891086ad9cfe474e9e7ed32bc6c986f3",
+ "Name": "step",
+ "Description": "Space between numbers or letters\r\nDefault value: 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e24bc3f739ee4e01b6032ac9b614fe64",
+ "Name": "list",
+ "Description": "New list of type: var[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Longest",
+ "Description": "Creates a sequence of numbers or letters in the given range"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "cd51b68bedc34bf8b24b17642dfbeb50",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "d2ff5ba4bf304a7b97e3b1feda6d2224",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "96e868e2b5f0484fb820334a1ad71e4e",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "75c9b1c5be89470897a1f09337962fb5",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "10141d6d3ade44fca5c30583aaa53ff5",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 1
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "f840a8287aa646db87b3092ad8c6c830",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "0a7b7be8b4e9428d9d492b9c443bfe99",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 25
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "fb643d479f224927b6bd9cdbdd635b4a",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "80ba4d60474047abaa0bc047c417b4ff",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 2
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "0391ce1456774b8a85cb595c94ef4d94",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "1429349ac3114b2e8ac3a4d00e0b3c20",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "69274b5fe8334a8199cae54284248e1e",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "f93aa38b94834821aa9008f02793125b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "fcc8acc46c3549e28e4e4e77a7d98388",
+ "Name": "list",
+ "Description": "List to shuffle.\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "0fc8f367abcd4ea1ab68f352d0504f2c",
+ "Name": "list",
+ "Description": "Randomized list.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.Shuffle@var[]..[]",
+ "Replication": "Auto",
+ "Description": "Shuffles a list, randomizing the order of its items.\n\nList.Shuffle (list: var[]..[]): var[]..[]"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "e24bc3f739ee4e01b6032ac9b614fe64",
+ "End": "d2ff5ba4bf304a7b97e3b1feda6d2224",
+ "Id": "0a9e95897f6c48a0b5caeba5ad5fd00e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "96e868e2b5f0484fb820334a1ad71e4e",
+ "End": "fcc8acc46c3549e28e4e4e77a7d98388",
+ "Id": "b7f22f9aa79843e799fea534dc9327af",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "10141d6d3ade44fca5c30583aaa53ff5",
+ "End": "51f55760b5104bbc9ea2d2b4725979b1",
+ "Id": "4aaef8389e50405cbc4bf31406f6304c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "0a7b7be8b4e9428d9d492b9c443bfe99",
+ "End": "45b98f6dcc8c4120bc946f355e2ce8d0",
+ "Id": "9e2e83849e324147806c6e4d671d0219",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "80ba4d60474047abaa0bc047c417b4ff",
+ "End": "891086ad9cfe474e9e7ed32bc6c986f3",
+ "Id": "150368bf7dd54e979e0e67cd75d6a3c9",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "0fc8f367abcd4ea1ab68f352d0504f2c",
+ "End": "1429349ac3114b2e8ac3a4d00e0b3c20",
+ "Id": "571235a6c79f43d2a21550cbc9d14eff",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -13.988694190979004,
+ "EyeY": 18.264490127563477,
+ "EyeZ": 21.429862976074219,
+ "LookX": 16.723785400390625,
+ "LookY": -5.2774238586425781,
+ "LookZ": -19.588394165039063,
+ "UpX": -0.009065740741789341,
+ "UpY": 0.99990254640579224,
+ "UpZ": 0.010618607513606548
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "4beb4b4b881f4935806156d660fc81a2",
+ "Name": "Range",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -82.275381148499946,
+ "Y": 34.2135069877429
+ },
+ {
+ "Id": "cd51b68bedc34bf8b24b17642dfbeb50",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 195.72461885150005,
+ "Y": 34.213506987742917
+ },
+ {
+ "Id": "75c9b1c5be89470897a1f09337962fb5",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -530.2753811485,
+ "Y": -78.7864930122571
+ },
+ {
+ "Id": "f840a8287aa646db87b3092ad8c6c830",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -530.2753811485,
+ "Y": 68.2135069877429
+ },
+ {
+ "Id": "fb643d479f224927b6bd9cdbdd635b4a",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -530.2753811485,
+ "Y": 215.2135069877429
+ },
+ {
+ "Id": "0391ce1456774b8a85cb595c94ef4d94",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 841.7246188515,
+ "Y": 34.213506987742917
+ },
+ {
+ "Id": "f93aa38b94834821aa9008f02793125b",
+ "Name": "List.Shuffle",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 572.7246188515,
+ "Y": 34.213506987742917
+ }
+ ],
+ "Annotations": [],
+ "X": 443.54405103515518,
+ "Y": 237.68036992951039,
+ "Zoom": 0.77986658580958157
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Shuffle(list).md b/doc/distrib/NodeHelpFiles/DSCore.List.Shuffle(list).md
new file mode 100644
index 00000000000..afafa17cddf
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Shuffle(list).md
@@ -0,0 +1,8 @@
+## In Depth
+`List.Shuffle` randomizes the order of list items.
+
+In the example below, we first generate a list using `Range` and then use `List.Shuffle` to produce a randomized list.
+___
+## Example File
+
+![List.Shuffle](./DSCore.List.Shuffle(list)_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Shuffle(list)_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.Shuffle(list)_img.jpg
new file mode 100644
index 00000000000..1bb697ea1ae
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/DSCore.List.Shuffle(list)_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Sort.dyn b/doc/distrib/NodeHelpFiles/DSCore.List.Sort.dyn
new file mode 100644
index 00000000000..779e247a51e
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Sort.dyn
@@ -0,0 +1,390 @@
+{
+ "Uuid": "5de7be83-1537-4cd2-b0bc-54026092646e",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "DSCore.List.Sort",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "120ad7303dac4ef689accfd7dbc0f244",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "25",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "b0d0b5b7831e457c830f2c2fe94f709a",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "226f18122ab84e93a014ae61e3a5f57e",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "75e6a79e3ccf4d11bcbb8818f9f36443",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "411904574e9d44e8a6f2f9444170945d",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "cbd1d136053142f5b9bd1d8f67be57f9",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "3a2e590ad675469382788c5516bd434d",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "a9b896c3b63c47cca8849a223f907602",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "ebafc536a7ca437baf10ff1624ae3a59",
+ "Name": "amount",
+ "Description": "Amount of random numbers the result list will contain.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "4e8b4d6e40bb42ff87f023af90288acd",
+ "Name": "number",
+ "Description": "List of random numbers between 0 and 1.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
+ "Replication": "Auto",
+ "Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "eea5904080a24afea187c34d2a0950e3",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "adf1ed4ac9874fdab53609fcaad4052e",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "ad92f779b87c4c65bd521c18d029c99f",
+ "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",
+ "Code": "x*10;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "aebcd727a08448a39fb001c297408e43",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "26c4ac44218c449ba62037f1a6719c9c",
+ "Name": "number",
+ "Description": "Number to round down\n\ndouble",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "de43fd0b889543e6bdcbebd151f0c074",
+ "Name": "int",
+ "Description": "First integer smaller than the number",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.Floor@double",
+ "Replication": "Auto",
+ "Description": "Returns the first integer smaller than the number.\n\nMath.Floor (number: double): int"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "120ad7303dac4ef689accfd7dbc0f244",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "e638b35bce4d4d42bd60a3613a507e93",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 25
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "a6c6fe0272b841a1acd206f482243a39",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "c34de4fccd8447c2afd860d3fbefe11a",
+ "Name": "list",
+ "Description": "List of items to be sorted\n\nvar[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "145a05c92c6f4925a7caea4358de510c",
+ "Name": "int[]",
+ "Description": "The indices of the items in the sorted list",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.Sort@var[]",
+ "Replication": "Auto",
+ "Description": "Sorts a list by the items and return their indices.\n\nList.Sort (list: var[]): var[]..[]"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "75e6a79e3ccf4d11bcbb8818f9f36443",
+ "End": "c34de4fccd8447c2afd860d3fbefe11a",
+ "Id": "997f0fb7992940d9997e59d6e7d6685f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4e8b4d6e40bb42ff87f023af90288acd",
+ "End": "adf1ed4ac9874fdab53609fcaad4052e",
+ "Id": "6a63b92b381b4126bfab569ba44f5e0e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ad92f779b87c4c65bd521c18d029c99f",
+ "End": "26c4ac44218c449ba62037f1a6719c9c",
+ "Id": "b92ceaca475744269ac50c7b2eadc6d6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "de43fd0b889543e6bdcbebd151f0c074",
+ "End": "226f18122ab84e93a014ae61e3a5f57e",
+ "Id": "847837c11f1c4db5a74cc1ff4d4ed67a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e638b35bce4d4d42bd60a3613a507e93",
+ "End": "ebafc536a7ca437baf10ff1624ae3a59",
+ "Id": "f5bf549a928b4b859a8451cc4e53788e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "145a05c92c6f4925a7caea4358de510c",
+ "End": "cbd1d136053142f5b9bd1d8f67be57f9",
+ "Id": "b8e5457f0fa548b4bada3b0e96e6e6d8",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -13.988694190979004,
+ "EyeY": 18.264490127563477,
+ "EyeZ": 21.429862976074219,
+ "LookX": 16.723785400390625,
+ "LookY": -5.2774238586425781,
+ "LookZ": -19.588394165039063,
+ "UpX": -0.009065740741789341,
+ "UpY": 0.99990254640579224,
+ "UpZ": 0.010618607513606548
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "b0d0b5b7831e457c830f2c2fe94f709a",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 537.06489409598748,
+ "Y": -7.1328576841236782
+ },
+ {
+ "Id": "411904574e9d44e8a6f2f9444170945d",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1190.0648940959875,
+ "Y": -7.1328576841236782
+ },
+ {
+ "Id": "a9b896c3b63c47cca8849a223f907602",
+ "Name": "Math.RandomList",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -330.93510590401252,
+ "Y": -7.3053576841236634
+ },
+ {
+ "Id": "eea5904080a24afea187c34d2a0950e3",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -9.9351059040125165,
+ "Y": -7.3053576841236634
+ },
+ {
+ "Id": "aebcd727a08448a39fb001c297408e43",
+ "Name": "Math.Floor",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 244.06489409598748,
+ "Y": -7.1328576841236782
+ },
+ {
+ "Id": "120ad7303dac4ef689accfd7dbc0f244",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -778.93510590401252,
+ "Y": -7.3053576841236634
+ },
+ {
+ "Id": "a6c6fe0272b841a1acd206f482243a39",
+ "Name": "List.Sort",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 914.06489409598748,
+ "Y": -7.1328576841236782
+ }
+ ],
+ "Annotations": [],
+ "X": 475.99757176872669,
+ "Y": 259.61432434629694,
+ "Zoom": 0.572573463935886
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Sort.md b/doc/distrib/NodeHelpFiles/DSCore.List.Sort.md
new file mode 100644
index 00000000000..e959037a367
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Sort.md
@@ -0,0 +1,8 @@
+## In Depth
+`List.Sort` organizes a list of items according to the built-in ordering for the data type. For example, a list of numbers is sorted from smallest to largest, while a list of strings is sorted alphabetically.
+
+In the example below, we use `Math.RandomList` to first generate a list of random numbers between 0 and 1. We then multiply by 10 and use a `Math.Floor` operation to get a list of random integers between 0 and 9. `List.Sort` then creates a sorted list from smallest to largest number.
+___
+## Example File
+
+![List.Sort](./DSCore.List.Sort_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.SortByKey.dyn b/doc/distrib/NodeHelpFiles/DSCore.List.SortByKey.dyn
new file mode 100644
index 00000000000..128aa43743f
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.SortByKey.dyn
@@ -0,0 +1,473 @@
+{
+ "Uuid": "1976ff2e-1adc-4090-a3cf-77dd0ad5b676",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "DSCore.List.SortByKey",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "08ece734fda54032829b6523f5b36460",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "3917e95da6f84c3bb75e6c75443a56e1",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "ce4ff81837684d44ab20411cef338ab1",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "931bd23aba9d4adf9f35b41319996829",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "8e93425917ba41bfa361899c15bcbc78",
+ "Name": "amount",
+ "Description": "Amount of random numbers the result list will contain.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "2b6e1ac888ad4ef8af6f0e1f0b91eabf",
+ "Name": "number",
+ "Description": "List of random numbers between 0 and 1.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
+ "Replication": "Auto",
+ "Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "3c326be856814407a8d4ca4df9eeccc4",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "7fdbaf1fe1d140a4b19a436b3c7dcc45",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "65c49dd2e3ad4cf2980919d1e16c6da0",
+ "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",
+ "Code": "x*5;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "e2d47027b5be46f1894c3e2d3edbfdc4",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "8d31c82cded84b0a84deb138d7b4c89c",
+ "Name": "number",
+ "Description": "Number to round down\n\ndouble",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "fc52839afb88486e908e098affc2e61b",
+ "Name": "int",
+ "Description": "First integer smaller than the number",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.Floor@double",
+ "Replication": "Auto",
+ "Description": "Returns the first integer smaller than the number.\n\nMath.Floor (number: double): int"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "eba9495a02a54932bc9c7dee64ad74da",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "3958b81bab514dd8a1800c0437bc9235",
+ "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",
+ "Code": "10;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "3063f76967e147a0afe49f310875fc09",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "f2a1eb4143f14357b7287d3a8f3e53c5",
+ "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",
+ "Code": "0..9..1;"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "f44f81f2c0a14a969150f265c64c944e",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "05c332d7e98e47f4b2d276766a9f1c4f",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "90639ee6ce944fe48457af89a9d67135",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "ada1e41fda124aaba5b458a5eb15c6ed",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "32c3909724214ffd90db7f2bf2b09012",
+ "Name": "list",
+ "Description": "list to be sorted\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1dbf7b7f3f3d451bacc2e932526be18d",
+ "Name": "keys",
+ "Description": "list of keys, keys have to be sortable (e.g. numbers,strings)\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "72deb5dae5e84820a94e62c44ce2913e",
+ "Name": "sortedList",
+ "Description": "type: var[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "f4f15050ab9f4c7f86399e8c0b77fbab",
+ "Name": "sortedKeys",
+ "Description": "type: var[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.SortByKey@var[]..[],var[]..[]",
+ "Replication": "Auto",
+ "Description": "Sort list based on its keys\n\nList.SortByKey (list: var[]..[], keys: var[]..[]): var[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "de5c9bf89f6f478b82b94935725d18c2",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "34a0635580c447b18c665512ed6ca6d0",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "f158868997ce4bd490d3101b1a002608",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "ce4ff81837684d44ab20411cef338ab1",
+ "End": "1dbf7b7f3f3d451bacc2e932526be18d",
+ "Id": "f4d21c520b3a49b8b7353266c1923842",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "2b6e1ac888ad4ef8af6f0e1f0b91eabf",
+ "End": "7fdbaf1fe1d140a4b19a436b3c7dcc45",
+ "Id": "17acf9c06ef94b8a93bccccb3fc93d6c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "65c49dd2e3ad4cf2980919d1e16c6da0",
+ "End": "8d31c82cded84b0a84deb138d7b4c89c",
+ "Id": "6aaea11592fc4541a97f35ec354e47d7",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "fc52839afb88486e908e098affc2e61b",
+ "End": "3917e95da6f84c3bb75e6c75443a56e1",
+ "Id": "713a9abb440444c6b366f7c57a3b45b6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "3958b81bab514dd8a1800c0437bc9235",
+ "End": "8e93425917ba41bfa361899c15bcbc78",
+ "Id": "ebfb84f689b148b89de067b4197deb1a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f2a1eb4143f14357b7287d3a8f3e53c5",
+ "End": "32c3909724214ffd90db7f2bf2b09012",
+ "Id": "a533027b12c940f2a2d98bc347fe9191",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "72deb5dae5e84820a94e62c44ce2913e",
+ "End": "05c332d7e98e47f4b2d276766a9f1c4f",
+ "Id": "00002be2414a465582c1073e102acbdf",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f4f15050ab9f4c7f86399e8c0b77fbab",
+ "End": "34a0635580c447b18c665512ed6ca6d0",
+ "Id": "bf619824de884b89ad940cff696a4479",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -13.988694190979004,
+ "EyeY": 18.264490127563477,
+ "EyeZ": 21.429862976074219,
+ "LookX": 16.723785400390625,
+ "LookY": -5.2774238586425781,
+ "LookZ": -19.588394165039063,
+ "UpX": -0.009065740741789341,
+ "UpY": 0.99990254640579224,
+ "UpZ": 0.010618607513606548
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "08ece734fda54032829b6523f5b36460",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 335.67845414599606,
+ "Y": 223.19875114319393
+ },
+ {
+ "Id": "931bd23aba9d4adf9f35b41319996829",
+ "Name": "Math.RandomList",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -532.321545854004,
+ "Y": 223.02625114319392
+ },
+ {
+ "Id": "3c326be856814407a8d4ca4df9eeccc4",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -211.32154585400394,
+ "Y": 223.02625114319392
+ },
+ {
+ "Id": "e2d47027b5be46f1894c3e2d3edbfdc4",
+ "Name": "Math.Floor",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 42.678454145996056,
+ "Y": 223.1987511431939
+ },
+ {
+ "Id": "eba9495a02a54932bc9c7dee64ad74da",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -786.321545854004,
+ "Y": 222.8537511431939
+ },
+ {
+ "Id": "3063f76967e147a0afe49f310875fc09",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 335.67845414599606,
+ "Y": 75.026251143193917
+ },
+ {
+ "Id": "f44f81f2c0a14a969150f265c64c944e",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1033.6784541459961,
+ "Y": -7.8012488568060689
+ },
+ {
+ "Id": "ada1e41fda124aaba5b458a5eb15c6ed",
+ "Name": "List.SortByKey",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 712.678454145996,
+ "Y": 132.19875114319393
+ },
+ {
+ "Id": "de5c9bf89f6f478b82b94935725d18c2",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1033.6784541459961,
+ "Y": 306.19875114319393
+ }
+ ],
+ "Annotations": [],
+ "X": 636.8697928358024,
+ "Y": 258.297012056242,
+ "Zoom": 0.42716338221268479
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.SortByKey.md b/doc/distrib/NodeHelpFiles/DSCore.List.SortByKey.md
new file mode 100644
index 00000000000..703da6f9947
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.SortByKey.md
@@ -0,0 +1,8 @@
+## In Depth
+`List.SortByKey` takes an input list to sort and a list of corresponding sortable keys, such as numbers or strings. `List.SortByKey` sorts the list of keys in ascending order and rearranges the input list to correspond to the new order of the sorted keys. This node outputs both the rearranged list and the sorted list of keys.
+
+In the example below, we use a range from 0 to 9 as our input list. For the list of keys, we generate a list of 10 random numbers between 0 and 4. The list of keys is sorted numerically, while the range from 0 to 9 is rearranged according to the order of the corresponding elements from the list of keys.
+___
+## Example File
+
+![List.SortByKey](./DSCore.List.SortByKey_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.SortByKey_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.SortByKey_img.jpg
new file mode 100644
index 00000000000..f20f45bcad0
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/DSCore.List.SortByKey_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.SortIndexByValue.dyn b/doc/distrib/NodeHelpFiles/DSCore.List.SortIndexByValue.dyn
new file mode 100644
index 00000000000..8b37499e769
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.SortIndexByValue.dyn
@@ -0,0 +1,326 @@
+{
+ "Uuid": "d6824de2-22de-4ba6-bce4-fd6fcfc1f06b",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "DSCore.List.SortIndexByValue",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "919fc9350b754a9cac068d553bdf3101",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "0888f4f53bc241e3aaf7699686a3302c",
+ "Name": "amount",
+ "Description": "Amount of random numbers the result list will contain.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "be6ad3116a804b4fa56dfd156479ac63",
+ "Name": "number",
+ "Description": "List of random numbers between 0 and 1.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.Math.RandomList@int",
+ "Replication": "Auto",
+ "Description": "Produces a list containing the given amount of random doubles in the range of [0, 1).\n\nMath.RandomList (amount: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "582a307e0c9d4942bd4e7db6c3fc80cb",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "fe58c82674964d2bab63a51cb185aaa6",
+ "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",
+ "Code": "10;"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "cab006e38ed34a46ba691681d015b744",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "ec7cf9d649b74df2a10e53b95eda15d0",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "da564c4b2735418c94fbda7487e1a4b0",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "863d480931e647808ce75cb9b040684c",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "8e63e298c98b4cafa527531a84b34e6e",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "c072d80e19644d0fb89f069a14a948b4",
+ "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",
+ "Code": "x*10;"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "f36307899a4d4ff0a49794179e437c45",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "7a9d8168da2842c5a90fd3d696af3fa0",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "3e5c0eb500a94e6ea3adcfeca1397a83",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "25aff17bfb00464ab86a93be13d6f40b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "f10525bd02174285ad76d9656c6a5c59",
+ "Name": "list",
+ "Description": "List of items to be sorted\n\ndouble[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "a5bb3157e798423792e7aac580a59849",
+ "Name": "int[]",
+ "Description": "The indices of the items in the sorted list",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.SortIndexByValue@double[]",
+ "Replication": "Auto",
+ "Description": "Sorts a list by the items and return their indices.\n\nList.SortIndexByValue (list: double[]): var[]..[]"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "be6ad3116a804b4fa56dfd156479ac63",
+ "End": "8e63e298c98b4cafa527531a84b34e6e",
+ "Id": "906843de10e54a5cbaa248c7771a992d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "fe58c82674964d2bab63a51cb185aaa6",
+ "End": "0888f4f53bc241e3aaf7699686a3302c",
+ "Id": "54f991b0f07a4d7f9708f617511c6dfd",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "da564c4b2735418c94fbda7487e1a4b0",
+ "End": "f10525bd02174285ad76d9656c6a5c59",
+ "Id": "25637285aa1d4228a8abc366b21a964c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c072d80e19644d0fb89f069a14a948b4",
+ "End": "ec7cf9d649b74df2a10e53b95eda15d0",
+ "Id": "5542c4466d154ddca6067f123b95bf79",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a5bb3157e798423792e7aac580a59849",
+ "End": "7a9d8168da2842c5a90fd3d696af3fa0",
+ "Id": "9e81ef3b31b3444a837b2e3f9b04a42f",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -10.351632118225098,
+ "EyeY": 13.915582656860352,
+ "EyeZ": 16.000629425048828,
+ "LookX": 16.128910064697266,
+ "LookY": -8.1650753021240234,
+ "LookZ": -20.504016876220703,
+ "UpX": 0.053885128349065781,
+ "UpY": 0.99619466066360474,
+ "UpZ": -0.068501941859722137
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "919fc9350b754a9cac068d553bdf3101",
+ "Name": "Math.RandomList",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -291.604557578705,
+ "Y": 2982.62279804387
+ },
+ {
+ "Id": "582a307e0c9d4942bd4e7db6c3fc80cb",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -545.604557578705,
+ "Y": 2982.4502980438697
+ },
+ {
+ "Id": "cab006e38ed34a46ba691681d015b744",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 283.395442421295,
+ "Y": 2982.79529804387
+ },
+ {
+ "Id": "863d480931e647808ce75cb9b040684c",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 29.395442421295,
+ "Y": 2982.62279804387
+ },
+ {
+ "Id": "f36307899a4d4ff0a49794179e437c45",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 999.395442421295,
+ "Y": 2982.79529804387
+ },
+ {
+ "Id": "25aff17bfb00464ab86a93be13d6f40b",
+ "Name": "List.SortIndexByValue",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 660.395442421295,
+ "Y": 2982.79529804387
+ }
+ ],
+ "Annotations": [],
+ "X": 559.122871320804,
+ "Y": -1256.2359272777765,
+ "Zoom": 0.49443248490669595
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.SortIndexByValue.md b/doc/distrib/NodeHelpFiles/DSCore.List.SortIndexByValue.md
new file mode 100644
index 00000000000..decc78dd44f
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.SortIndexByValue.md
@@ -0,0 +1,8 @@
+## In Depth
+`List.SortIndexByValue` returns a list of indices sorted by their memberâs values in ascending order.
+
+In the example below, a list of random numbers is sorted and a new order is returned as index values.
+___
+## Example File
+
+![List.SortIndexByValue](./DSCore.List.SortIndexByValue_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.SortIndexByValue_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.SortIndexByValue_img.jpg
new file mode 100644
index 00000000000..bb8c6455604
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/DSCore.List.SortIndexByValue_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Sort_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.Sort_img.jpg
new file mode 100644
index 00000000000..be00db99ceb
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/DSCore.List.Sort_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Sublists.dyn b/doc/distrib/NodeHelpFiles/DSCore.List.Sublists.dyn
index e65f782a092..0474dd4b506 100644
--- a/doc/distrib/NodeHelpFiles/DSCore.List.Sublists.dyn
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Sublists.dyn
@@ -200,18 +200,18 @@
"ScaleFactor": 1.0,
"HasRunWithoutCrash": true,
"IsVisibleInDynamoLibrary": true,
- "Version": "2.19.0.5742",
+ "Version": "2.19.0.5874",
"RunType": "Automatic",
"RunPeriod": "1000"
},
"Camera": {
"Name": "_Background Preview",
- "EyeX": -83.2733050072657,
- "EyeY": 26.278053449735108,
- "EyeZ": 97.537147413392489,
- "LookX": 83.2733050072657,
- "LookY": -26.278053449735108,
- "LookZ": -97.537147413392489,
+ "EyeX": -13.988694190979004,
+ "EyeY": 18.264490127563477,
+ "EyeZ": 21.429862976074219,
+ "LookX": 16.723785400390625,
+ "LookY": -5.2774238586425781,
+ "LookZ": -19.588394165039063,
"UpX": -0.009065740741789341,
"UpY": 0.99990254640579224,
"UpZ": 0.010618607513606548
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Sublists.md b/doc/distrib/NodeHelpFiles/DSCore.List.Sublists.md
index 7211a77ea4b..4515043e0f7 100644
--- a/doc/distrib/NodeHelpFiles/DSCore.List.Sublists.md
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Sublists.md
@@ -1,8 +1,7 @@
## In Depth
-`List.Sublists` takes an input list and returns a series of sublists based on the input range and offset. The range determines which elements of the input list to put into the first sublist. The offset determines where subsequent sublists begin, for example, an offset of 2 begins the next sublist at index 2, the following sublist at 4, and so on. This process repeats, increasing the range by the given offset until the resulting sublist is empty.
-
-The example below starts with a range of numbers from 0 to 9. The sublist range is 0 to 5, with an offset of 2. In the output of nested sublists, the first list contains the elements with indices in the range 0..5, and the second list contains the elements with indices 2..7. As this is repeated, the subsequent sublists get shorter as the end of the range becomes larger than the length of the initial list.
+`List.Sublists` returns a series of sublists from a given list based on the input range and offset. The range determines the elements of the input list that are placed into the first sublist. An offset is applied to the range, and the new range determines the second sublist. This process repeats, increasing the starting index of the range by the given offset until the resulting sublist is empty.
+In the example below, we start with a range of numbers from 0 to 9. The range 0 to 5 is used as the sublist range, with an offset of 2. In the output of nested sublists, the first list contains the elements with indices in the range 0..5, and the second list contains the elements with indices 2..7. As this is repeated, the subsequent sublists become shorter as the end of the range exceeds the length of the initial list.
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Sublists_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.Sublists_img.jpg
index 79334dcb0db..58838ecae7c 100644
Binary files a/doc/distrib/NodeHelpFiles/DSCore.List.Sublists_img.jpg and b/doc/distrib/NodeHelpFiles/DSCore.List.Sublists_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.TakeEveryNthItem.dyn b/doc/distrib/NodeHelpFiles/DSCore.List.TakeEveryNthItem.dyn
new file mode 100644
index 00000000000..7f602f0a675
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.TakeEveryNthItem.dyn
@@ -0,0 +1,492 @@
+{
+ "Uuid": "6622086b-2df1-42e2-b999-27fcd44d02a1",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "DSCore.List.TakeEveryNthItem",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "c6590d9793774c4fbd16d71349a99990",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "1",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "6931a37a10864bf4a8497ca10be9ceb0",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "25",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "95c90e0829074d499eb60863a04c5f81",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "2",
+ "MaximumValue": 100.0,
+ "MinimumValue": 0.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ },
+ {
+ "Id": "b4da057a2d40437d82dfa22dd52bf099",
+ "Name": "Integer Slider",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "2",
+ "MaximumValue": 10.0,
+ "MinimumValue": -10.0,
+ "StepValue": 1.0,
+ "NumberType": "Integer",
+ "Description": "Produces integer values",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "CoreNodeModels.Range, CoreNodeModels",
+ "Id": "9fc0b46649694e61b247078511609a1b",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "602ef88b9b7a4d43aa0870201913ec7d",
+ "Name": "start",
+ "Description": "Number or letter to start the sequence at\r\nDefault value: 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "0aa5fe34117a485a8f5430bd0aacc338",
+ "Name": "end",
+ "Description": "Number or letter to end the sequence at\r\nDefault value: 9",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ff16f52ecdf7411b85b1f3e3b4753c92",
+ "Name": "step",
+ "Description": "Space between numbers or letters\r\nDefault value: 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "adbbf7c7d55d45f68bf17a2f19bc0834",
+ "Name": "list",
+ "Description": "New list of type: var[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Longest",
+ "Description": "Creates a sequence of numbers or letters in the given range"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "14929b527d744a21878dbc341fd4ec8a",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "0bb09166bfc8420ab6d4f787bf9b2d6c",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e7271d969bc94a83b285a7c65f0c44da",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "c6590d9793774c4fbd16d71349a99990",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "e561334b2e5f4322ba9e220007e2d76d",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 1
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "6931a37a10864bf4a8497ca10be9ceb0",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "3e42f0060d3b4c398ee7e9264074a89b",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 25
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 100,
+ "MinimumValue": 0,
+ "StepValue": 1,
+ "Id": "95c90e0829074d499eb60863a04c5f81",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "c7ebcc01e0764cd79b2032832ed85c0d",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 2
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "a63eae4559f24677a1a3284f788ca02d",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "b133b4f2ca834b1c850458eb8417d666",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "3572f081d4af432381bd6bff6f6882c5",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.IntegerSlider, CoreNodeModels",
+ "NumberType": "Integer",
+ "MaximumValue": 10,
+ "MinimumValue": -10,
+ "StepValue": 1,
+ "Id": "b4da057a2d40437d82dfa22dd52bf099",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "8913fe982fc643f1a490fc9c1add7d6c",
+ "Name": "",
+ "Description": "Int64",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Produces integer values",
+ "InputValue": 2
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "08b1a28fcfb1403597955bfb067f2c46",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "bf279ea4b6ed4dfa947c35700434a836",
+ "Name": "list",
+ "Description": "List to take items from.\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6d88ef7d842c4c1488740f1d5d526683",
+ "Name": "n",
+ "Description": "Indices that are multiples of this number (after the offset) will be fetched.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "fc7f29be562d416690a3d7e306887470",
+ "Name": "offset",
+ "Description": "Amount of items to be ignored from the start of the list.\n\nint\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "2604d92f20104be2b02c4c22d3735e42",
+ "Name": "items",
+ "Description": "Items from the list.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.TakeEveryNthItem@var[]..[],int,int",
+ "Replication": "Auto",
+ "Description": "Fetches items from the given list at indices that are multiples of the given value, after the given offset.\n\nList.TakeEveryNthItem (list: var[]..[], n: int, offset: int = 0): var[]..[]"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "adbbf7c7d55d45f68bf17a2f19bc0834",
+ "End": "0bb09166bfc8420ab6d4f787bf9b2d6c",
+ "Id": "841da685d4914012adcbf045e085e84a",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e7271d969bc94a83b285a7c65f0c44da",
+ "End": "bf279ea4b6ed4dfa947c35700434a836",
+ "Id": "76343a520105452b8a32a3efe9aaa88c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "e561334b2e5f4322ba9e220007e2d76d",
+ "End": "602ef88b9b7a4d43aa0870201913ec7d",
+ "Id": "f1a7f6e41cc940e3ad517603c6a9aa79",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "3e42f0060d3b4c398ee7e9264074a89b",
+ "End": "0aa5fe34117a485a8f5430bd0aacc338",
+ "Id": "4b43217252ec4da283c6be1302de1976",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c7ebcc01e0764cd79b2032832ed85c0d",
+ "End": "ff16f52ecdf7411b85b1f3e3b4753c92",
+ "Id": "5299002ac6a4472ab64b2ca9ad4ef731",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8913fe982fc643f1a490fc9c1add7d6c",
+ "End": "6d88ef7d842c4c1488740f1d5d526683",
+ "Id": "1876523c16e64c3e827f08e9bb59b93f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "2604d92f20104be2b02c4c22d3735e42",
+ "End": "b133b4f2ca834b1c850458eb8417d666",
+ "Id": "4db68b1e08ff46c69a681ba0b985a981",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -13.988694190979004,
+ "EyeY": 18.264490127563477,
+ "EyeZ": 21.429862976074219,
+ "LookX": 16.723785400390625,
+ "LookY": -5.2774238586425781,
+ "LookZ": -19.588394165039063,
+ "UpX": -0.009065740741789341,
+ "UpY": 0.99990254640579224,
+ "UpZ": 0.010618607513606548
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "9fc0b46649694e61b247078511609a1b",
+ "Name": "Range",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -105.42930136059499,
+ "Y": -50.6419806050325
+ },
+ {
+ "Id": "14929b527d744a21878dbc341fd4ec8a",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 172.570698639405,
+ "Y": -50.6419806050325
+ },
+ {
+ "Id": "c6590d9793774c4fbd16d71349a99990",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -553.429301360595,
+ "Y": -163.6419806050325
+ },
+ {
+ "Id": "6931a37a10864bf4a8497ca10be9ceb0",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -553.429301360595,
+ "Y": -16.6419806050325
+ },
+ {
+ "Id": "95c90e0829074d499eb60863a04c5f81",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -553.429301360595,
+ "Y": 130.3580193949675
+ },
+ {
+ "Id": "a63eae4559f24677a1a3284f788ca02d",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 961.570698639405,
+ "Y": 89.3580193949675
+ },
+ {
+ "Id": "b4da057a2d40437d82dfa22dd52bf099",
+ "Name": "Integer Slider",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 172.570698639405,
+ "Y": 263.35801939496753
+ },
+ {
+ "Id": "08b1a28fcfb1403597955bfb067f2c46",
+ "Name": "List.TakeEveryNthItem",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 620.570698639405,
+ "Y": 87.96455127677163
+ }
+ ],
+ "Annotations": [],
+ "X": 427.15964372194486,
+ "Y": 258.73860884937039,
+ "Zoom": 0.7176339285714286
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.TakeEveryNthItem.md b/doc/distrib/NodeHelpFiles/DSCore.List.TakeEveryNthItem.md
new file mode 100644
index 00000000000..a62b3e0ce3d
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.TakeEveryNthItem.md
@@ -0,0 +1,8 @@
+## In Depth
+`List.TakeEveryNthItem` produces a new list containing only the items from the input list that are at intervals of the input n value. The starting point of the interval can be changed with the `offset` input. For example, inputting 3 into n and leaving the offset as the default of 0 will keep items with indices 2, 5, 8, etc. With an offset of 1, items with indices 0, 3, 6, etc. are kept. Note that the offset âwrapsâ through the entire list. To remove selected items instead of keeping them, see `List.DropEveryNthItem`.
+
+In the example below, we first generate a list of numbers using `Range`, and then keep every other number by using 2 as the input for n.
+___
+## Example File
+
+![List.TakeEveryNthItem](./DSCore.List.TakeEveryNthItem_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.TakeEveryNthItem_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.TakeEveryNthItem_img.jpg
new file mode 100644
index 00000000000..3e914d9d20e
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/DSCore.List.TakeEveryNthItem_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Transpose.dyn b/doc/distrib/NodeHelpFiles/DSCore.List.Transpose.dyn
new file mode 100644
index 00000000000..cb2fb377be8
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Transpose.dyn
@@ -0,0 +1,225 @@
+{
+ "Uuid": "9a4b8b9d-fc59-4ad0-9008-dc433c4db30d",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "DSCore.List.Transpose",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ },
+ "List": {
+ "Key": "List",
+ "Value": "BuiltIn.ds"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "bab0148fd1814679b11e61128ffc9555",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "0bb8bd66062d44eb8196f0a9eecec568",
+ "Name": "",
+ "Description": "numbers",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "c86177803a7044cfa0f9dc43fd0c6e3b",
+ "Name": "",
+ "Description": "letters",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "numbers = 0..5;\nletters = \"A\"..\"E\";"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "145d73c421f845eea6d6ed2df31adde3",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "d98b8c70befa42b99adaf0251ffa293e",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "baa51850e00a4c27b6807960d5dfa50e",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8792f2f61b744c218d2c0bb02e5120ef",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "60a2d2accad5499a8e3498c3da66b0a5",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "0d2bdcc8f6804a3187a7f1be7b872261",
+ "Name": "lists",
+ "Description": "List of lists to be transposed\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "3336d31c4b054798beef5598bca4eca6",
+ "Name": "lists",
+ "Description": "List of transposed lists",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.Transpose@var[]..[]",
+ "Replication": "Auto",
+ "Description": "Swaps rows and columns in a list of lists. If there are some rows that are shorter than others, null values are inserted as place holders in the resultant array such that it is always rectangular.\n\nList.Transpose (lists: var[]..[]): var[]..[]"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "0bb8bd66062d44eb8196f0a9eecec568",
+ "End": "d98b8c70befa42b99adaf0251ffa293e",
+ "Id": "5127f66ebf6c4afc96bc9d71d021c4e8",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c86177803a7044cfa0f9dc43fd0c6e3b",
+ "End": "baa51850e00a4c27b6807960d5dfa50e",
+ "Id": "92859cf3dab543119cf813574b4a84ef",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8792f2f61b744c218d2c0bb02e5120ef",
+ "End": "0d2bdcc8f6804a3187a7f1be7b872261",
+ "Id": "0b2d3c618c1144feb80106a745d06c56",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.18",
+ "Data": {}
+ },
+ {
+ "ExtensionGuid": "DFBD9CC0-DB40-457A-939E-8C8555555A9D",
+ "Name": "Generative Design",
+ "Version": "1.2",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "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": "bab0148fd1814679b11e61128ffc9555",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 498.98320627399471,
+ "Y": -171.195329492495
+ },
+ {
+ "Id": "145d73c421f845eea6d6ed2df31adde3",
+ "Name": "List Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 831.48320627399471,
+ "Y": -179.850329492495
+ },
+ {
+ "Id": "60a2d2accad5499a8e3498c3da66b0a5",
+ "Name": "List.Transpose",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1091.4832062739947,
+ "Y": -179.850329492495
+ }
+ ],
+ "Annotations": [],
+ "X": -555.43366080785813,
+ "Y": 503.98365094900248,
+ "Zoom": 1.1643898080562645
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Transpose.md b/doc/distrib/NodeHelpFiles/DSCore.List.Transpose.md
new file mode 100644
index 00000000000..18d2c4d8bdb
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/DSCore.List.Transpose.md
@@ -0,0 +1,8 @@
+## In Depth
+`List.Transpose` swaps the rows and columns in a list of lists. For example, a list that contains 5 sublists of 10 items each would be transposed to 10 lists of 5 items each. Null values are inserted as needed to ensure that each sublist has the same number of items.
+
+In the example, we generate a list of numbers from 0 to 5 and another list of letters from A to E. We then use `List.Create` to combine them. `List.Transpose` generates 6 lists of 2 items each, one number and one letter per list. Notice that since one of the original lists was longer than the other, `List.Transpose` inserted a null value for the unpaired item.
+___
+## Example File
+
+![List.Transpose](./DSCore.List.Transpose_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/DSCore.List.Transpose_img.jpg b/doc/distrib/NodeHelpFiles/DSCore.List.Transpose_img.jpg
new file mode 100644
index 00000000000..b509eaf286b
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/DSCore.List.Transpose_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/GeometryUI.DeserializeFromSABWithUnits.dyn b/doc/distrib/NodeHelpFiles/GeometryUI.DeserializeFromSABWithUnits.dyn
new file mode 100644
index 00000000000..5215fd84fd8
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/GeometryUI.DeserializeFromSABWithUnits.dyn
@@ -0,0 +1,229 @@
+{
+ "Uuid": "d12f17ed-461d-4cb4-bcda-b58ea984d57c",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "Geometry.DeserializeFromSABWithUnits",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "GeometryUI.DeserializeFromSABWithUnits, GeometryUI",
+ "Id": "458871bc1bcd4f42905e2e626024a0f4",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "5fb8167dc79b48aea1069606d5dcd649",
+ "Name": "buffer",
+ "Description": "SAB byte array.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8b34c3bc07db4594b3e5568047c29786",
+ "Name": "dynamoUnit",
+ "Description": "A forge unit length, if left null, geometry will be imported as unitless.",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "5fe553df34fe470dae7d42fc7dcc2301",
+ "Name": "geometry",
+ "Description": "Loaded geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Auto",
+ "Description": "Imports geometry from SAB byte array. Set the dynamoUnit input to match how you are interpreting the other numbers in your Dynamo file."
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "0110bd4155d34491bafad05364cd369f",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "40b5c8c109df43d89de1c1da3ffd0496",
+ "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",
+ "Code": "[\n [\n 65,\n 67,\n 73,\n 83,\n 32,\n 66,\n 105,\n 110,\n 97,\n 114,\n 121,\n 70,\n 105,\n 108,\n 101,\n 188,\n 2,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 7,\n 4,\n 76,\n 105,\n 98,\n 71,\n 7,\n 20,\n 65,\n 83,\n 77,\n 32,\n 50,\n 50,\n 57,\n 46,\n 50,\n 46,\n 48,\n 46,\n 54,\n 53,\n 53,\n 51,\n 53,\n 32,\n 78,\n 84,\n 7,\n 24,\n 84,\n 117,\n 101,\n 32,\n 79,\n 99,\n 116,\n 32,\n 32,\n 51,\n 32,\n 49,\n 53,\n 58,\n 53,\n 49,\n 58,\n 48,\n 52,\n 32,\n 50,\n 48,\n 50,\n 51,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 64,\n 143,\n 64,\n 6,\n 141,\n 237,\n 181,\n 160,\n 247,\n 198,\n 176,\n 62,\n 6,\n 187,\n 189,\n 215,\n 217,\n 223,\n 124,\n 219,\n 61,\n 13,\n 4,\n 98,\n 111,\n 100,\n 121,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 1,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 2,\n 0,\n 0,\n 0,\n 17,\n 13,\n 4,\n 108,\n 117,\n 109,\n 112,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 3,\n 0,\n 0,\n 0,\n 12,\n 0,\n 0,\n 0,\n 0,\n 17,\n 13,\n 9,\n 116,\n 114,\n 97,\n 110,\n 115,\n 102,\n 111,\n 114,\n 109,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 11,\n 11,\n 11,\n 17,\n 13,\n 5,\n 115,\n 104,\n 101,\n 108,\n 108,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 4,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 1,\n 0,\n 0,\n 0,\n 17,\n 13,\n 4,\n 102,\n 97,\n 99,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 5,\n 0,\n 0,\n 0,\n 12,\n 6,\n 0,\n 0,\n 0,\n 12,\n 3,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 7,\n 0,\n 0,\n 0,\n 11,\n 11,\n 17,\n 13,\n 4,\n 102,\n 97,\n 99,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 8,\n 0,\n 0,\n 0,\n 12,\n 9,\n 0,\n 0,\n 0,\n 12,\n 3,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 10,\n 0,\n 0,\n 0,\n 10,\n 11,\n 17,\n 13,\n 4,\n 108,\n 111,\n 111,\n 112,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 11,\n 0,\n 0,\n 0,\n 12,\n 4,\n 0,\n 0,\n 0,\n 17,\n 14,\n 5,\n 112,\n 108,\n 97,\n 110,\n 101,\n 13,\n 7,\n 115,\n 117,\n 114,\n 102,\n 97,\n 99,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 11,\n 11,\n 11,\n 11,\n 11,\n 17,\n 13,\n 4,\n 102,\n 97,\n 99,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 12,\n 0,\n 0,\n 0,\n 12,\n 13,\n 0,\n 0,\n 0,\n 12,\n 3,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 14,\n 0,\n 0,\n 0,\n 10,\n 11,\n 17,\n 13,\n 4,\n 108,\n 111,\n 111,\n 112,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 15,\n 0,\n 0,\n 0,\n 12,\n 5,\n 0,\n 0,\n 0,\n 17,\n 14,\n 5,\n 112,\n 108,\n 97,\n 110,\n 101,\n 13,\n 7,\n 115,\n 117,\n 114,\n 102,\n 97,\n 99,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 11,\n 11,\n 11,\n 11,\n 11,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 16,\n 0,\n 0,\n 0,\n 12,\n 17,\n 0,\n 0,\n 0,\n 12,\n 18,\n 0,\n 0,\n 0,\n 12,\n 19,\n 0,\n 0,\n 0,\n 11,\n 12,\n 6,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 4,\n 102,\n 97,\n 99,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 20,\n 0,\n 0,\n 0,\n 12,\n 21,\n 0,\n 0,\n 0,\n 12,\n 3,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 22,\n 0,\n 0,\n 0,\n 10,\n 11,\n 17,\n 13,\n 4,\n 108,\n 111,\n 111,\n 112,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 23,\n 0,\n 0,\n 0,\n 12,\n 8,\n 0,\n 0,\n 0,\n 17,\n 14,\n 5,\n 112,\n 108,\n 97,\n 110,\n 101,\n 13,\n 7,\n 115,\n 117,\n 114,\n 102,\n 97,\n 99,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 128,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 128,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 11,\n 11,\n 11,\n 11,\n 11,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 24,\n 0,\n 0,\n 0,\n 12,\n 25,\n 0,\n 0,\n 0,\n 12,\n 26,\n 0,\n 0,\n 0,\n 12,\n 27,\n 0,\n 0,\n 0,\n 11,\n 12,\n 9,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 28,\n 0,\n 0,\n 0,\n 12,\n 11,\n 0,\n 0,\n 0,\n 12,\n 29,\n 0,\n 0,\n 0,\n 12,\n 30,\n 0,\n 0,\n 0,\n 11,\n 12,\n 6,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 11,\n 0,\n 0,\n 0,\n 12,\n 28,\n 0,\n 0,\n 0,\n 12,\n 31,\n 0,\n 0,\n 0,\n 12,\n 32,\n 0,\n 0,\n 0,\n 11,\n 12,\n 6,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 33,\n 0,\n 0,\n 0,\n 12,\n 34,\n 0,\n 0,\n 0,\n 12,\n 11,\n 0,\n 0,\n 0,\n 12,\n 19,\n 0,\n 0,\n 0,\n 10,\n 12,\n 35,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 4,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 36,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 12,\n 37,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 12,\n 18,\n 0,\n 0,\n 0,\n 12,\n 38,\n 0,\n 0,\n 0,\n 11,\n 7,\n 7,\n 117,\n 110,\n 107,\n 110,\n 111,\n 119,\n 110,\n 17,\n 13,\n 4,\n 102,\n 97,\n 99,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 39,\n 0,\n 0,\n 0,\n 12,\n 40,\n 0,\n 0,\n 0,\n 12,\n 3,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 41,\n 0,\n 0,\n 0,\n 10,\n 11,\n 17,\n 13,\n 4,\n 108,\n 111,\n 111,\n 112,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 42,\n 0,\n 0,\n 0,\n 12,\n 12,\n 0,\n 0,\n 0,\n 17,\n 14,\n 5,\n 112,\n 108,\n 97,\n 110,\n 101,\n 13,\n 7,\n 115,\n 117,\n 114,\n 102,\n 97,\n 99,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 11,\n 11,\n 11,\n 11,\n 11,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 43,\n 0,\n 0,\n 0,\n 12,\n 31,\n 0,\n 0,\n 0,\n 12,\n 44,\n 0,\n 0,\n 0,\n 12,\n 45,\n 0,\n 0,\n 0,\n 11,\n 12,\n 13,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 46,\n 0,\n 0,\n 0,\n 12,\n 15,\n 0,\n 0,\n 0,\n 12,\n 43,\n 0,\n 0,\n 0,\n 12,\n 47,\n 0,\n 0,\n 0,\n 11,\n 12,\n 9,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 15,\n 0,\n 0,\n 0,\n 12,\n 46,\n 0,\n 0,\n 0,\n 12,\n 48,\n 0,\n 0,\n 0,\n 12,\n 49,\n 0,\n 0,\n 0,\n 11,\n 12,\n 9,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 34,\n 0,\n 0,\n 0,\n 12,\n 33,\n 0,\n 0,\n 0,\n 12,\n 15,\n 0,\n 0,\n 0,\n 12,\n 27,\n 0,\n 0,\n 0,\n 10,\n 12,\n 35,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 4,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 50,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 12,\n 51,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 12,\n 26,\n 0,\n 0,\n 0,\n 12,\n 52,\n 0,\n 0,\n 0,\n 11,\n 7,\n 7,\n 117,\n 110,\n 107,\n 110,\n 111,\n 119,\n 110,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 17,\n 0,\n 0,\n 0,\n 12,\n 16,\n 0,\n 0,\n 0,\n 12,\n 53,\n 0,\n 0,\n 0,\n 12,\n 54,\n 0,\n 0,\n 0,\n 11,\n 12,\n 6,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 55,\n 0,\n 0,\n 0,\n 12,\n 56,\n 0,\n 0,\n 0,\n 12,\n 16,\n 0,\n 0,\n 0,\n 12,\n 30,\n 0,\n 0,\n 0,\n 10,\n 12,\n 40,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 4,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 37,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 12,\n 57,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 12,\n 29,\n 0,\n 0,\n 0,\n 12,\n 58,\n 0,\n 0,\n 0,\n 11,\n 7,\n 7,\n 117,\n 110,\n 107,\n 110,\n 111,\n 119,\n 110,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 23,\n 0,\n 0,\n 0,\n 12,\n 59,\n 0,\n 0,\n 0,\n 12,\n 17,\n 0,\n 0,\n 0,\n 12,\n 32,\n 0,\n 0,\n 0,\n 10,\n 12,\n 13,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 4,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 60,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 12,\n 36,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 12,\n 31,\n 0,\n 0,\n 0,\n 12,\n 61,\n 0,\n 0,\n 0,\n 11,\n 7,\n 7,\n 117,\n 110,\n 107,\n 110,\n 111,\n 119,\n 110,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 26,\n 0,\n 0,\n 0,\n 12,\n 18,\n 0,\n 0,\n 0,\n 12,\n 59,\n 0,\n 0,\n 0,\n 12,\n 62,\n 0,\n 0,\n 0,\n 11,\n 12,\n 35,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 18,\n 0,\n 0,\n 0,\n 12,\n 26,\n 0,\n 0,\n 0,\n 12,\n 55,\n 0,\n 0,\n 0,\n 12,\n 63,\n 0,\n 0,\n 0,\n 10,\n 12,\n 35,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 4,\n 108,\n 111,\n 111,\n 112,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 33,\n 0,\n 0,\n 0,\n 12,\n 39,\n 0,\n 0,\n 0,\n 17,\n 13,\n 6,\n 118,\n 101,\n 114,\n 116,\n 101,\n 120,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 19,\n 0,\n 0,\n 0,\n 12,\n 64,\n 0,\n 0,\n 0,\n 17,\n 13,\n 6,\n 118,\n 101,\n 114,\n 116,\n 101,\n 120,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 19,\n 0,\n 0,\n 0,\n 12,\n 65,\n 0,\n 0,\n 0,\n 17,\n 14,\n 8,\n 115,\n 116,\n 114,\n 97,\n 105,\n 103,\n 104,\n 116,\n 13,\n 5,\n 99,\n 117,\n 114,\n 118,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 11,\n 11,\n 17,\n 13,\n 4,\n 102,\n 97,\n 99,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 35,\n 0,\n 0,\n 0,\n 12,\n 3,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 66,\n 0,\n 0,\n 0,\n 10,\n 11,\n 17,\n 13,\n 4,\n 108,\n 111,\n 111,\n 112,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 55,\n 0,\n 0,\n 0,\n 12,\n 20,\n 0,\n 0,\n 0,\n 17,\n 14,\n 5,\n 112,\n 108,\n 97,\n 110,\n 101,\n 13,\n 7,\n 115,\n 117,\n 114,\n 102,\n 97,\n 99,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 11,\n 11,\n 11,\n 11,\n 11,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 67,\n 0,\n 0,\n 0,\n 12,\n 53,\n 0,\n 0,\n 0,\n 12,\n 56,\n 0,\n 0,\n 0,\n 12,\n 68,\n 0,\n 0,\n 0,\n 11,\n 12,\n 21,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 59,\n 0,\n 0,\n 0,\n 12,\n 23,\n 0,\n 0,\n 0,\n 12,\n 24,\n 0,\n 0,\n 0,\n 12,\n 47,\n 0,\n 0,\n 0,\n 10,\n 12,\n 13,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 53,\n 0,\n 0,\n 0,\n 12,\n 67,\n 0,\n 0,\n 0,\n 12,\n 23,\n 0,\n 0,\n 0,\n 12,\n 45,\n 0,\n 0,\n 0,\n 10,\n 12,\n 21,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 4,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 60,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 12,\n 69,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 12,\n 44,\n 0,\n 0,\n 0,\n 12,\n 70,\n 0,\n 0,\n 0,\n 11,\n 7,\n 7,\n 117,\n 110,\n 107,\n 110,\n 111,\n 119,\n 110,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 25,\n 0,\n 0,\n 0,\n 12,\n 24,\n 0,\n 0,\n 0,\n 12,\n 67,\n 0,\n 0,\n 0,\n 12,\n 71,\n 0,\n 0,\n 0,\n 11,\n 12,\n 9,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 4,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 51,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 12,\n 69,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 12,\n 43,\n 0,\n 0,\n 0,\n 12,\n 72,\n 0,\n 0,\n 0,\n 11,\n 7,\n 7,\n 117,\n 110,\n 107,\n 110,\n 111,\n 119,\n 110,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 56,\n 0,\n 0,\n 0,\n 12,\n 55,\n 0,\n 0,\n 0,\n 12,\n 25,\n 0,\n 0,\n 0,\n 12,\n 49,\n 0,\n 0,\n 0,\n 10,\n 12,\n 40,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 4,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 73,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 12,\n 50,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 12,\n 48,\n 0,\n 0,\n 0,\n 12,\n 74,\n 0,\n 0,\n 0,\n 11,\n 7,\n 7,\n 117,\n 110,\n 107,\n 110,\n 111,\n 119,\n 110,\n 17,\n 13,\n 6,\n 118,\n 101,\n 114,\n 116,\n 101,\n 120,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 27,\n 0,\n 0,\n 0,\n 12,\n 75,\n 0,\n 0,\n 0,\n 17,\n 13,\n 6,\n 118,\n 101,\n 114,\n 116,\n 101,\n 120,\n 12,\n 76,\n 0,\n 0,\n 0,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 62,\n 0,\n 0,\n 0,\n 12,\n 77,\n 0,\n 0,\n 0,\n 17,\n 14,\n 8,\n 115,\n 116,\n 114,\n 97,\n 105,\n 103,\n 104,\n 116,\n 13,\n 5,\n 99,\n 117,\n 114,\n 118,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 11,\n 11,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 42,\n 0,\n 0,\n 0,\n 12,\n 44,\n 0,\n 0,\n 0,\n 12,\n 28,\n 0,\n 0,\n 0,\n 12,\n 54,\n 0,\n 0,\n 0,\n 10,\n 12,\n 21,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 4,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 57,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 12,\n 60,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 12,\n 53,\n 0,\n 0,\n 0,\n 12,\n 78,\n 0,\n 0,\n 0,\n 11,\n 7,\n 7,\n 117,\n 110,\n 107,\n 110,\n 111,\n 119,\n 110,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 48,\n 0,\n 0,\n 0,\n 12,\n 29,\n 0,\n 0,\n 0,\n 12,\n 34,\n 0,\n 0,\n 0,\n 12,\n 63,\n 0,\n 0,\n 0,\n 11,\n 12,\n 40,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 29,\n 0,\n 0,\n 0,\n 12,\n 48,\n 0,\n 0,\n 0,\n 12,\n 42,\n 0,\n 0,\n 0,\n 12,\n 68,\n 0,\n 0,\n 0,\n 10,\n 12,\n 40,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 6,\n 118,\n 101,\n 114,\n 116,\n 101,\n 120,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 30,\n 0,\n 0,\n 0,\n 12,\n 79,\n 0,\n 0,\n 0,\n 17,\n 14,\n 8,\n 115,\n 116,\n 114,\n 97,\n 105,\n 103,\n 104,\n 116,\n 13,\n 5,\n 99,\n 117,\n 114,\n 118,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 11,\n 11,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 31,\n 0,\n 0,\n 0,\n 12,\n 43,\n 0,\n 0,\n 0,\n 12,\n 33,\n 0,\n 0,\n 0,\n 12,\n 62,\n 0,\n 0,\n 0,\n 10,\n 12,\n 13,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 6,\n 118,\n 101,\n 114,\n 116,\n 101,\n 120,\n 12,\n 80,\n 0,\n 0,\n 0,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 54,\n 0,\n 0,\n 0,\n 12,\n 81,\n 0,\n 0,\n 0,\n 17,\n 14,\n 8,\n 115,\n 116,\n 114,\n 97,\n 105,\n 103,\n 104,\n 116,\n 13,\n 5,\n 99,\n 117,\n 114,\n 118,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 11,\n 11,\n 17,\n 13,\n 4,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 36,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 12,\n 51,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 12,\n 33,\n 0,\n 0,\n 0,\n 12,\n 82,\n 0,\n 0,\n 0,\n 11,\n 7,\n 7,\n 117,\n 110,\n 107,\n 110,\n 111,\n 119,\n 110,\n 17,\n 13,\n 4,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 37,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 12,\n 50,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 12,\n 34,\n 0,\n 0,\n 0,\n 12,\n 83,\n 0,\n 0,\n 0,\n 11,\n 7,\n 7,\n 117,\n 110,\n 107,\n 110,\n 111,\n 119,\n 110,\n 17,\n 13,\n 5,\n 112,\n 111,\n 105,\n 110,\n 116,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 17,\n 13,\n 5,\n 112,\n 111,\n 105,\n 110,\n 116,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 17,\n 14,\n 5,\n 112,\n 108,\n 97,\n 110,\n 101,\n 13,\n 7,\n 115,\n 117,\n 114,\n 102,\n 97,\n 99,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 128,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 11,\n 11,\n 11,\n 11,\n 11,\n 17,\n 13,\n 6,\n 99,\n 111,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 44,\n 0,\n 0,\n 0,\n 12,\n 42,\n 0,\n 0,\n 0,\n 12,\n 46,\n 0,\n 0,\n 0,\n 12,\n 71,\n 0,\n 0,\n 0,\n 10,\n 12,\n 21,\n 0,\n 0,\n 0,\n 12,\n 255,\n 255,\n 255,\n 255,\n 17,\n 13,\n 4,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 57,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 12,\n 73,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 12,\n 56,\n 0,\n 0,\n 0,\n 12,\n 84,\n 0,\n 0,\n 0,\n 11,\n 7,\n 7,\n 117,\n 110,\n 107,\n 110,\n 111,\n 119,\n 110,\n 17,\n 13,\n 6,\n 118,\n 101,\n 114,\n 116,\n 101,\n 120,\n 12,\n 85,\n 0,\n 0,\n 0,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 71,\n 0,\n 0,\n 0,\n 12,\n 86,\n 0,\n 0,\n 0,\n 17,\n 14,\n 8,\n 115,\n 116,\n 114,\n 97,\n 105,\n 103,\n 104,\n 116,\n 13,\n 5,\n 99,\n 117,\n 114,\n 118,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 11,\n 11,\n 17,\n 13,\n 4,\n 101,\n 100,\n 103,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 69,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 12,\n 73,\n 0,\n 0,\n 0,\n 6,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 12,\n 67,\n 0,\n 0,\n 0,\n 12,\n 87,\n 0,\n 0,\n 0,\n 11,\n 7,\n 7,\n 117,\n 110,\n 107,\n 110,\n 111,\n 119,\n 110,\n 17,\n 14,\n 8,\n 115,\n 116,\n 114,\n 97,\n 105,\n 103,\n 104,\n 116,\n 13,\n 5,\n 99,\n 117,\n 114,\n 118,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 11,\n 11,\n 17,\n 13,\n 6,\n 118,\n 101,\n 114,\n 116,\n 101,\n 120,\n 12,\n 88,\n 0,\n 0,\n 0,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 49,\n 0,\n 0,\n 0,\n 12,\n 89,\n 0,\n 0,\n 0,\n 17,\n 14,\n 8,\n 115,\n 116,\n 114,\n 97,\n 105,\n 103,\n 104,\n 116,\n 13,\n 5,\n 99,\n 117,\n 114,\n 118,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 11,\n 11,\n 17,\n 13,\n 5,\n 112,\n 111,\n 105,\n 110,\n 116,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 17,\n 14,\n 13,\n 115,\n 116,\n 114,\n 105,\n 110,\n 103,\n 95,\n 97,\n 116,\n 116,\n 114,\n 105,\n 98,\n 14,\n 11,\n 110,\n 97,\n 109,\n 101,\n 95,\n 97,\n 116,\n 116,\n 114,\n 105,\n 98,\n 14,\n 3,\n 103,\n 101,\n 110,\n 13,\n 6,\n 97,\n 116,\n 116,\n 114,\n 105,\n 98,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 51,\n 0,\n 0,\n 0,\n 21,\n 1,\n 0,\n 0,\n 0,\n 21,\n 1,\n 0,\n 0,\n 0,\n 21,\n 1,\n 0,\n 0,\n 0,\n 21,\n 2,\n 0,\n 0,\n 0,\n 7,\n 13,\n 100,\n 105,\n 109,\n 101,\n 110,\n 115,\n 105,\n 111,\n 110,\n 95,\n 116,\n 97,\n 103,\n 7,\n 5,\n 119,\n 105,\n 100,\n 116,\n 104,\n 17,\n 13,\n 5,\n 112,\n 111,\n 105,\n 110,\n 116,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 17,\n 14,\n 8,\n 115,\n 116,\n 114,\n 97,\n 105,\n 103,\n 104,\n 116,\n 13,\n 5,\n 99,\n 117,\n 114,\n 118,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 11,\n 11,\n 17,\n 13,\n 5,\n 112,\n 111,\n 105,\n 110,\n 116,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 17,\n 14,\n 13,\n 115,\n 116,\n 114,\n 105,\n 110,\n 103,\n 95,\n 97,\n 116,\n 116,\n 114,\n 105,\n 98,\n 14,\n 11,\n 110,\n 97,\n 109,\n 101,\n 95,\n 97,\n 116,\n 116,\n 114,\n 105,\n 98,\n 14,\n 3,\n 103,\n 101,\n 110,\n 13,\n 6,\n 97,\n 116,\n 116,\n 114,\n 105,\n 98,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 60,\n 0,\n 0,\n 0,\n 21,\n 1,\n 0,\n 0,\n 0,\n 21,\n 1,\n 0,\n 0,\n 0,\n 21,\n 1,\n 0,\n 0,\n 0,\n 21,\n 2,\n 0,\n 0,\n 0,\n 7,\n 13,\n 100,\n 105,\n 109,\n 101,\n 110,\n 115,\n 105,\n 111,\n 110,\n 95,\n 116,\n 97,\n 103,\n 7,\n 6,\n 104,\n 101,\n 105,\n 103,\n 104,\n 116,\n 17,\n 13,\n 5,\n 112,\n 111,\n 105,\n 110,\n 116,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 17,\n 14,\n 8,\n 115,\n 116,\n 114,\n 97,\n 105,\n 103,\n 104,\n 116,\n 13,\n 5,\n 99,\n 117,\n 114,\n 118,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 11,\n 11,\n 17,\n 14,\n 8,\n 115,\n 116,\n 114,\n 97,\n 105,\n 103,\n 104,\n 116,\n 13,\n 5,\n 99,\n 117,\n 114,\n 118,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 11,\n 11,\n 17,\n 14,\n 8,\n 115,\n 116,\n 114,\n 97,\n 105,\n 103,\n 104,\n 116,\n 13,\n 5,\n 99,\n 117,\n 114,\n 118,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 11,\n 11,\n 17,\n 14,\n 13,\n 115,\n 116,\n 114,\n 105,\n 110,\n 103,\n 95,\n 97,\n 116,\n 116,\n 114,\n 105,\n 98,\n 14,\n 11,\n 110,\n 97,\n 109,\n 101,\n 95,\n 97,\n 116,\n 116,\n 114,\n 105,\n 98,\n 14,\n 3,\n 103,\n 101,\n 110,\n 13,\n 6,\n 97,\n 116,\n 116,\n 114,\n 105,\n 98,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 69,\n 0,\n 0,\n 0,\n 21,\n 1,\n 0,\n 0,\n 0,\n 21,\n 1,\n 0,\n 0,\n 0,\n 21,\n 1,\n 0,\n 0,\n 0,\n 21,\n 2,\n 0,\n 0,\n 0,\n 7,\n 13,\n 100,\n 105,\n 109,\n 101,\n 110,\n 115,\n 105,\n 111,\n 110,\n 95,\n 116,\n 97,\n 103,\n 7,\n 4,\n 114,\n 111,\n 111,\n 116,\n 17,\n 13,\n 5,\n 112,\n 111,\n 105,\n 110,\n 116,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 17,\n 14,\n 8,\n 115,\n 116,\n 114,\n 97,\n 105,\n 103,\n 104,\n 116,\n 13,\n 5,\n 99,\n 117,\n 114,\n 118,\n 101,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 20,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 11,\n 11,\n 17,\n 14,\n 13,\n 115,\n 116,\n 114,\n 105,\n 110,\n 103,\n 95,\n 97,\n 116,\n 116,\n 114,\n 105,\n 98,\n 14,\n 11,\n 110,\n 97,\n 109,\n 101,\n 95,\n 97,\n 116,\n 116,\n 114,\n 105,\n 98,\n 14,\n 3,\n 103,\n 101,\n 110,\n 13,\n 6,\n 97,\n 116,\n 116,\n 114,\n 105,\n 98,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 12,\n 73,\n 0,\n 0,\n 0,\n 21,\n 1,\n 0,\n 0,\n 0,\n 21,\n 1,\n 0,\n 0,\n 0,\n 21,\n 1,\n 0,\n 0,\n 0,\n 21,\n 2,\n 0,\n 0,\n 0,\n 7,\n 13,\n 100,\n 105,\n 109,\n 101,\n 110,\n 115,\n 105,\n 111,\n 110,\n 95,\n 116,\n 97,\n 103,\n 7,\n 6,\n 108,\n 101,\n 110,\n 103,\n 116,\n 104,\n 17,\n 13,\n 5,\n 112,\n 111,\n 105,\n 110,\n 116,\n 12,\n 255,\n 255,\n 255,\n 255,\n 4,\n 255,\n 255,\n 255,\n 255,\n 12,\n 255,\n 255,\n 255,\n 255,\n 19,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 63,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 240,\n 191,\n 17,\n 14,\n 3,\n 69,\n 110,\n 100,\n 14,\n 2,\n 111,\n 102,\n 14,\n 4,\n 65,\n 67,\n 73,\n 83,\n 13,\n 4,\n 100,\n 97,\n 116,\n 97\n ]\n];"
+ },
+ {
+ "ConcreteType": "UnitsUI.Units, UnitsNodeModels",
+ "SelectedIndex": 218,
+ "SelectedString": "Millimeters",
+ "Id": "05d03c1556094b1f86b75fa4184437ce",
+ "NodeType": "ExtensionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "97078c509bb04256b8e8f91e307fee39",
+ "Name": "Unit",
+ "Description": "The selected Unit",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Select a Unit type"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "40b5c8c109df43d89de1c1da3ffd0496",
+ "End": "5fb8167dc79b48aea1069606d5dcd649",
+ "Id": "dfcc7212bedf4e5aaab3490bffe38571",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "97078c509bb04256b8e8f91e307fee39",
+ "End": "8b34c3bc07db4594b3e5568047c29786",
+ "Id": "8a92c93f416b461ba1e61a9580802bea",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.6156",
+ "RunType": "Manual",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -1009.1293755334449,
+ "EyeY": 1102.2848813722055,
+ "EyeZ": 2707.7727379578423,
+ "LookX": 1009.1293755334449,
+ "LookY": -1102.2848813722055,
+ "LookZ": -2707.7727379578423,
+ "UpX": 0.051617458462715149,
+ "UpY": 0.98901587724685669,
+ "UpZ": -0.13850393891334534
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "458871bc1bcd4f42905e2e626024a0f4",
+ "Name": "Geometry.DeserializeFromSABWithUnits",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 863.50445799529371,
+ "Y": 155.19691479962725
+ },
+ {
+ "Id": "0110bd4155d34491bafad05364cd369f",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 591.00445799529371,
+ "Y": 211.09691479962726
+ },
+ {
+ "Id": "05d03c1556094b1f86b75fa4184437ce",
+ "Name": "Units",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 554.68617357188941,
+ "Y": 331.08396677271031
+ }
+ ],
+ "Annotations": [
+ {
+ "Id": "1b3e20ec6a504296923fc2090b470909",
+ "Title": "Serialized binary stream data",
+ "DescriptionText": "Collapsed as a group as this Code Block is wildly long...",
+ "IsExpanded": false,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [
+ "0110bd4155d34491bafad05364cd369f"
+ ],
+ "HasNestedGroups": false,
+ "Left": 581.00445799529371,
+ "Top": 18.096914799627257,
+ "Width": 120.0,
+ "Height": 272.0,
+ "FontSize": 36.0,
+ "GroupStyleId": "883066aa-1fe2-44a4-9bd1-c3df86bfe9f6",
+ "InitialTop": 211.09691479962726,
+ "InitialHeight": 145.0,
+ "TextblockHeight": 183.0,
+ "Background": "#FFFFB8D8"
+ },
+ {
+ "Id": "915b709cae874caebfd110402de36986",
+ "Title": "Original Cuboid geometry generated with 2 units of measurement (Unitless), using the 'dynamoUnit' input will scale to the chosen Unit for use in other software.",
+ "DescriptionText": null,
+ "IsExpanded": true,
+ "WidthAdjustment": 0.0,
+ "HeightAdjustment": 0.0,
+ "Nodes": [],
+ "HasNestedGroups": false,
+ "Left": 901.50445799529371,
+ "Top": 61.196914799627251,
+ "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": "458871bc1bcd4f42905e2e626024a0f4"
+ }
+ ],
+ "X": -379.88590178434822,
+ "Y": 284.59185342632111,
+ "Zoom": 0.9488025363447179
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/GeometryUI.DeserializeFromSABWithUnits.md b/doc/distrib/NodeHelpFiles/GeometryUI.DeserializeFromSABWithUnits.md
index 3b0dbcd826c..53e387ad086 100644
--- a/doc/distrib/NodeHelpFiles/GeometryUI.DeserializeFromSABWithUnits.md
+++ b/doc/distrib/NodeHelpFiles/GeometryUI.DeserializeFromSABWithUnits.md
@@ -1,4 +1,11 @@
## In Depth
-`Geometry.DeserializeFromSABWithUnits` imports Geometry to Dynamo from a .SAB byte array and `DynamoUnit.Unit` that is convertible from `millimeters`. This node takes a `byte[]` as the first input and a `DynamoUnit` as the second. If the unit input is left null, the default, this imports the .SAB geometry as unitless, simply importing the geometric data in the array without any unit conversion. If a `Unit` is passed, the internal units of the .SAB array are converted to the units specified.
+`Geometry.DeserializeFromSABWithUnits` imports geometry to Dynamo from a .SAB (Standard ACIS Binary) byte array and `DynamoUnit.Unit` that is convertible from millimeters. This node takes a byte[] as the first input and a `dynamoUnit` as the second. If the `dynamoUnit` input is left null, this imports the .SAB geometry as unitless, importing the geometric data in the array without any unit conversion. If a unit is provided, the internal units of the .SAB array are converted to the units specified.
Dynamo is unitless, but the numeric values in your Dynamo graph likely still have some implicit unit. You can use the `dynamoUnit` input to scale the internal geometry of the .SAB to that unit system.
+
+In the example below, a cuboid is generated from SAB with 2 units of measurement (unitless). The `dynamoUnit` input scales the chosen unit for use in other software.
+
+___
+## Example File
+
+![Geometry.DeserializeFromSABWithUnits](./GeometryUI.DeserializeFromSABWithUnits_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/GeometryUI.DeserializeFromSABWithUnits_img.jpg b/doc/distrib/NodeHelpFiles/GeometryUI.DeserializeFromSABWithUnits_img.jpg
new file mode 100644
index 00000000000..4ad9d06cdc7
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/GeometryUI.DeserializeFromSABWithUnits_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/GeometryUI.ExportWithUnits.dyn b/doc/distrib/NodeHelpFiles/GeometryUI.ExportWithUnits.dyn
new file mode 100644
index 00000000000..a10dae48a1b
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/GeometryUI.ExportWithUnits.dyn
@@ -0,0 +1,882 @@
+{
+ "Uuid": "baaf6052-9b49-488f-8f01-a28a858d23d7",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "GeometryUI.ExportWithUnits",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "97b319c8678b4ba9935d0355a77b4c9c",
+ "Name": "File Path",
+ "Type": "string",
+ "Type2": "string",
+ "Value": "No file selected.",
+ "Description": "Allows you to select a file on the system and returns its file path",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "6dcb0b06e6d147b98f817235d27b203f",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "453098e6695e403b919668b2814d9965",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5c15552cea374af0bcde68715da646fa",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6fa0e8be0e394f818fadea607b4a6a58",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "212ac2af3033489d8eaab39dd46d11a8",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "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",
+ "Id": "3da18c1927f7469e8307da74ca1d2685",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "dec16edf3fbb4adeb55ac8dcea284ec9",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "506bd0af4ba0447b8a4755edcf4ed257",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "85c9a649c2224c3ca181bc1a252b9eee",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "12d3ff9e2e6846a2a63236fff4edf5e3",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "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",
+ "Id": "20f4e6550d704f80b7c61775938f91ef",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "b090dceb2ea34be4b4f04c14379847dd",
+ "Name": "centerPoint",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "fdf4cdf3fe964cfdae3a3d1407f55645",
+ "Name": "radius",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "55b94f530e1147f0aab4219467eb986e",
+ "Name": "Sphere",
+ "Description": "Sphere",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Sphere.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Create a Solid Sphere cetered at the input Point, with given radius.\n\nSphere.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Sphere"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "70b7b2032a0346e2a3ef4a33b75b16d6",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "77597bf8991641f0b4aa11b85002fe68",
+ "Name": "centerPoint",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a4359564ed2a44929f35b07ae33eeb1b",
+ "Name": "radius",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "9b50edbd0ebf46baa9e256bb81a1e805",
+ "Name": "Sphere",
+ "Description": "Sphere",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Sphere.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Create a Solid Sphere cetered at the input Point, with given radius.\n\nSphere.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Sphere"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "75a6566341c940b7951ce28a90b873dc",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "6f7ceb79118c4c4890e412f40e8b0443",
+ "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",
+ "Code": "5;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "c66e3330feba4c43aea0b47910584c5b",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "a4abbd7022bf47afa77a39a4c3c1eeaf",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "9686859dd3f547038f8656797171a4c3",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "fc5b80398c874bd4b28125e093dd203d",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "5;\n2;\n8;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "fdbcec629f5046a1be1a68647d5db95a",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "90ee0223959944fc9fefa6e375e74feb",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "8b10fc55e29042528654b8e72823fe96",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ac2b35636105420cbc5172b66c49b0aa",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "1;\n2;\n3;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1803be16255347a8bfcd31647f522eec",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "fe8e296035c141a0a0fbd670b9a9e4c5",
+ "Name": "x",
+ "Description": "X coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "3a2cbb8e0a8a44aba64a8ca0874853bd",
+ "Name": "y",
+ "Description": "Y coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "22718d87f8a747f9bc0087b819459dde",
+ "Name": "z",
+ "Description": "Z coordinate\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8e6164a7037f42e9b18a9d8cb603627d",
+ "Name": "Point",
+ "Description": "Point created by coordinates",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double",
+ "Replication": "Auto",
+ "Description": "Form a Point given 3 cartesian coordinates\n\nPoint.ByCoordinates (x: double = 0, y: double = 0, z: double = 0): Point"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "d1a25ced3c88415f8b4d34bec3b87714",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "adb8e84bd9cf47b79c7c8635c01da1a8",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1ea04c8206044ca4a204b6ed46496326",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5a28223ec9ab4823af5a7b74b19c3570",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "5;\n1;\n4;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "d089d566f4c747f78b026a2da6fb4f50",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "d69e399dc17e4716a58452ae56b90ace",
+ "Name": "centerPoint",
+ "Description": "Point\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "43fc9f6903e645a091a9ef6b620e17e4",
+ "Name": "radius",
+ "Description": "double\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "9764ae56d92e42cab0fd54adfb943ce6",
+ "Name": "Sphere",
+ "Description": "Sphere",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Sphere.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Create a Solid Sphere cetered at the input Point, with given radius.\n\nSphere.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Sphere"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "0eb7d5f8b7304af082683d679f29cd3b",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "fdd1139d49ab4c478fbc166dfe949b73",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6e39f981e47c4d4e9fdd5c962056d73e",
+ "Name": "others",
+ "Description": "Geometry[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "c092547d04ea4c7687b99d1d8be46b03",
+ "Name": "Geometry[]",
+ "Description": "Geometry[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.IntersectAll@Autodesk.DesignScript.Geometry.Geometry[]",
+ "Replication": "Auto",
+ "Description": "Get the intersection of Geometry for this object and a collection of other Geometries. Finds common geometry of all participants.\n\nGeometry.IntersectAll (others: Geometry[]): Geometry[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSVarArgFunction, DynamoCore",
+ "FunctionSignature": "DSCore.List.Join@var[]..[]",
+ "FunctionType": "VariableArgument",
+ "Id": "2b117b50cc3a4861a10b902f573d4a54",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "09e2f1e8c40744c48d4ca30c7a4d778f",
+ "Name": "list0",
+ "Description": "Lists to join into one.\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "9e10e8b3e68a469a9cf9f850e0ea8471",
+ "Name": "list1",
+ "Description": "var[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "25d517060806422787ff04366e4025d6",
+ "Name": "list",
+ "Description": "Joined list.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Auto",
+ "Description": "Concatenates all given lists into a single list.\n\nList.Join (lists: var[]..[]): var[]..[]"
+ },
+ {
+ "ConcreteType": "GeometryUI.ExportWithUnits, GeometryUI",
+ "SelectedExportedUnitsSource": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 5,
+ 4
+ ],
+ "SelectedExportedUnit": 0,
+ "Id": "c5311efa92b14140b7a9839fb368ed8d",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "406357016daf42f58383529395257293",
+ "Name": "geometry",
+ "Description": "Geometry to export into a SAT file.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "f110ba07c04d4dbdb344c92e6339903a",
+ "Name": "filePath",
+ "Description": "File to export the geometry to.",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "45a12b4305e64cd5b106788ae25df642",
+ "Name": "string",
+ "Description": "The file path of the exported file. Note this may change from the input in it contains non-ASCII characters.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Exports the given geometry to the given SAT file path"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.Filename, CoreNodeModels",
+ "Id": "97b319c8678b4ba9935d0355a77b4c9c",
+ "NodeType": "ExtensionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "c6273b6c301249e8ba053a3c6e531a7b",
+ "Name": "",
+ "Description": "File Path",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows you to select a file on the system and returns its file path",
+ "HintPath": "C:\\Users\\tellro\\Downloads\\UpdatedDynamoSampleGraphs\\No file selected",
+ "InputValue": "No file selected."
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "212ac2af3033489d8eaab39dd46d11a8",
+ "End": "77597bf8991641f0b4aa11b85002fe68",
+ "Id": "3bd4f307d77648ae8cfb16da7b695091",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "12d3ff9e2e6846a2a63236fff4edf5e3",
+ "End": "b090dceb2ea34be4b4f04c14379847dd",
+ "Id": "525ff18b33594b15bccd1f54f1592ec5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "55b94f530e1147f0aab4219467eb986e",
+ "End": "09e2f1e8c40744c48d4ca30c7a4d778f",
+ "Id": "1d7709a99fb54944b2df0f3ef8ec30cd",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9b50edbd0ebf46baa9e256bb81a1e805",
+ "End": "fdd1139d49ab4c478fbc166dfe949b73",
+ "Id": "12e3bec8cf9c43488eecb524035bcdeb",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6f7ceb79118c4c4890e412f40e8b0443",
+ "End": "a4359564ed2a44929f35b07ae33eeb1b",
+ "Id": "e17cfcc2f99445768cef7194dbf05e3d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6f7ceb79118c4c4890e412f40e8b0443",
+ "End": "fdf4cdf3fe964cfdae3a3d1407f55645",
+ "Id": "63efbf90326b4d168fc868911428aea1",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6f7ceb79118c4c4890e412f40e8b0443",
+ "End": "43fc9f6903e645a091a9ef6b620e17e4",
+ "Id": "d7ed46a49d21400bb019ae60099df93b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a4abbd7022bf47afa77a39a4c3c1eeaf",
+ "End": "453098e6695e403b919668b2814d9965",
+ "Id": "f5cd3fe68e844db6933991ec53cd61c6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9686859dd3f547038f8656797171a4c3",
+ "End": "5c15552cea374af0bcde68715da646fa",
+ "Id": "c7abb8cbf08f47deb5f386612316194e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "fc5b80398c874bd4b28125e093dd203d",
+ "End": "6fa0e8be0e394f818fadea607b4a6a58",
+ "Id": "fd0a9d086889460f9071730fe2538744",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "90ee0223959944fc9fefa6e375e74feb",
+ "End": "dec16edf3fbb4adeb55ac8dcea284ec9",
+ "Id": "09b5c741040d4ec0be2584c648cf71dc",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8b10fc55e29042528654b8e72823fe96",
+ "End": "506bd0af4ba0447b8a4755edcf4ed257",
+ "Id": "e8ffb8de86684d89b81d57a152ae78f4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ac2b35636105420cbc5172b66c49b0aa",
+ "End": "85c9a649c2224c3ca181bc1a252b9eee",
+ "Id": "789df2645ffb401aba2dd2abfc40be1c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8e6164a7037f42e9b18a9d8cb603627d",
+ "End": "d69e399dc17e4716a58452ae56b90ace",
+ "Id": "aca9f301ca7f4d4d8b347e0b92ee3a3e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "adb8e84bd9cf47b79c7c8635c01da1a8",
+ "End": "fe8e296035c141a0a0fbd670b9a9e4c5",
+ "Id": "c080e2cc851a45d993b3e17d9d4f684b",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "1ea04c8206044ca4a204b6ed46496326",
+ "End": "3a2cbb8e0a8a44aba64a8ca0874853bd",
+ "Id": "9d629d79be8d42068ff1114a76270262",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "5a28223ec9ab4823af5a7b74b19c3570",
+ "End": "22718d87f8a747f9bc0087b819459dde",
+ "Id": "7c7fd0d6583f48ac93f548ee29c152c4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "9764ae56d92e42cab0fd54adfb943ce6",
+ "End": "9e10e8b3e68a469a9cf9f850e0ea8471",
+ "Id": "0e0a38b5569548a6ad8bb00593a23de0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c092547d04ea4c7687b99d1d8be46b03",
+ "End": "406357016daf42f58383529395257293",
+ "Id": "030973c27c564ee5ad8a75f0614d5fc0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "25d517060806422787ff04366e4025d6",
+ "End": "6e39f981e47c4d4e9fdd5c962056d73e",
+ "Id": "391274aacda2450097ec141a64b8d0ab",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "c6273b6c301249e8ba053a3c6e531a7b",
+ "End": "f110ba07c04d4dbdb344c92e6339903a",
+ "Id": "ef742f1575f94e33adc08111b99626e4",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.4.6632",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -15.944196701049805,
+ "EyeY": 11.278770446777344,
+ "EyeZ": 16.994457244873047,
+ "LookX": 20.185733795166016,
+ "LookY": -3.4630277156829834,
+ "LookZ": -20.405805587768555,
+ "UpX": -0.067404754459857941,
+ "UpY": 0.9953961968421936,
+ "UpZ": 0.068139612674713135
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "6dcb0b06e6d147b98f817235d27b203f",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 536.564451465025,
+ "Y": 342.60147997032647
+ },
+ {
+ "Id": "3da18c1927f7469e8307da74ca1d2685",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 211.56445146502494,
+ "Y": 462.60147997032647
+ },
+ {
+ "Id": "20f4e6550d704f80b7c61775938f91ef",
+ "Name": "Sphere.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 536.564451465025,
+ "Y": 567.60147997032641
+ },
+ {
+ "Id": "70b7b2032a0346e2a3ef4a33b75b16d6",
+ "Name": "Sphere.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 924.564451465025,
+ "Y": 417.60147997032647
+ },
+ {
+ "Id": "75a6566341c940b7951ce28a90b873dc",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 211.56445146502494,
+ "Y": 687.42897997032651
+ },
+ {
+ "Id": "c66e3330feba4c43aea0b47910584c5b",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 211.56445146502494,
+ "Y": 289.08397997032642
+ },
+ {
+ "Id": "fdbcec629f5046a1be1a68647d5db95a",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -42.435548534975055,
+ "Y": 480.08397997032642
+ },
+ {
+ "Id": "1803be16255347a8bfcd31647f522eec",
+ "Name": "Point.ByCoordinates",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 211.56445146502494,
+ "Y": 846.60147997032641
+ },
+ {
+ "Id": "d1a25ced3c88415f8b4d34bec3b87714",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -42.435548534975055,
+ "Y": 864.08397997032648
+ },
+ {
+ "Id": "d089d566f4c747f78b026a2da6fb4f50",
+ "Name": "Sphere.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 536.564451465025,
+ "Y": 756.60147997032641
+ },
+ {
+ "Id": "0eb7d5f8b7304af082683d679f29cd3b",
+ "Name": "Geometry.IntersectAll",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1312.5644514650248,
+ "Y": 495.60147997032647
+ },
+ {
+ "Id": "2b117b50cc3a4861a10b902f573d4a54",
+ "Name": "List.Join",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 925.6376298593849,
+ "Y": 612.96737194212653
+ },
+ {
+ "Id": "c5311efa92b14140b7a9839fb368ed8d",
+ "Name": "ExportToSAT",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1664.5644514650248,
+ "Y": 567.60147997032641
+ },
+ {
+ "Id": "97b319c8678b4ba9935d0355a77b4c9c",
+ "Name": "File Path",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1312.5644514650248,
+ "Y": 673.60147997032641
+ }
+ ],
+ "Annotations": [],
+ "X": 174.24590094730922,
+ "Y": -94.90557497714056,
+ "Zoom": 0.55152031146487834
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/GeometryUI.ExportWithUnits.md b/doc/distrib/NodeHelpFiles/GeometryUI.ExportWithUnits.md
new file mode 100644
index 00000000000..cad7895efa6
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/GeometryUI.ExportWithUnits.md
@@ -0,0 +1,9 @@
+## In Depth
+`ExportToSAT` exports geometry from Dynamo to a SAT file type.
+
+In the example below, a PolySurface from the intersection of three spheres can be exported to a SAT file once a file path is selected.
+
+___
+## Example File
+
+![ExportToSAT](./GeometryUI.ExportWithUnits_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/GeometryUI.ExportWithUnits_img.jpg b/doc/distrib/NodeHelpFiles/GeometryUI.ExportWithUnits_img.jpg
new file mode 100644
index 00000000000..177c4446c1e
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/GeometryUI.ExportWithUnits_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/GeometryUI.ImportFromSATWithUnits.dyn b/doc/distrib/NodeHelpFiles/GeometryUI.ImportFromSATWithUnits.dyn
new file mode 100644
index 00000000000..495ce2f8f73
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/GeometryUI.ImportFromSATWithUnits.dyn
@@ -0,0 +1,194 @@
+{
+ "Uuid": "c4758f40-b2f9-49d3-8912-447a3d19952b",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "GeometryUI.ImportFromSATWithUnits",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "GeometryUI.ImportFromSATWithUnits, GeometryUI",
+ "Id": "d7c0d6b38be24ac6a2b92ffc0a46135b",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "6206dde1a5e5410980a74470efc591be",
+ "Name": "file|filePath",
+ "Description": "Filepath or File object to import .SAT from.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "eb908af10cb64fcba495384f95a6dc06",
+ "Name": "dynamoUnit",
+ "Description": "A forge unit length, if left null, geometry will be imported as unitless.",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "90845a606f964ecba8f6acca24250eec",
+ "Name": "geometry",
+ "Description": "Loaded geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Auto",
+ "Description": "Imports geometry from SAT filepath. Set the dynamoUnit input to match how you are interpreting the other numbers in your Dynamo file."
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.Filename, CoreNodeModels",
+ "Id": "83955cad28004241a5cfbd08176f89b2",
+ "NodeType": "ExtensionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "a85bf7a1f8434f3495249d0fdaaf395c",
+ "Name": "",
+ "Description": "File Path",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows you to select a file on the system and returns its file path",
+ "HintPath": "C:\\Users\\tellro\\Downloads\\invalid.sat",
+ "InputValue": "..\\invalid.sat"
+ },
+ {
+ "ConcreteType": "UnitsUI.Units, UnitsNodeModels",
+ "SelectedIndex": 74,
+ "SelectedString": "Feet",
+ "Id": "29442523ab9847f99872f385c741111a",
+ "NodeType": "ExtensionNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "b153232f784745ceaae101169d901266",
+ "Name": "Unit",
+ "Description": "The selected Unit",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Select a Unit type"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "a85bf7a1f8434f3495249d0fdaaf395c",
+ "End": "6206dde1a5e5410980a74470efc591be",
+ "Id": "20368ef90fe44702b695e51aeae11ac6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b153232f784745ceaae101169d901266",
+ "End": "eb908af10cb64fcba495384f95a6dc06",
+ "Id": "947719f002b24acc95c4a482dcc6b8e6",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [
+ {
+ "Name": "invalid.sat",
+ "ReferenceType": "External",
+ "Nodes": [
+ "83955cad28004241a5cfbd08176f89b2"
+ ]
+ }
+ ],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "3.0",
+ "Data": {}
+ }
+ ],
+ "Author": "",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 10000.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5874",
+ "RunType": "Manual",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": -90.59619140625,
+ "EyeY": 112.69316101074219,
+ "EyeZ": 237.396240234375,
+ "LookX": 84.426651000976563,
+ "LookY": -91.945541381835938,
+ "LookZ": -286.13116455078125,
+ "UpX": 0.023434815928339958,
+ "UpY": 0.99656552076339722,
+ "UpZ": -0.079423002898693085
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "d7c0d6b38be24ac6a2b92ffc0a46135b",
+ "Name": "Geometry.ImportFromSATWithUnits",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 809.5,
+ "Y": 142.8273452655626
+ },
+ {
+ "Id": "83955cad28004241a5cfbd08176f89b2",
+ "Name": "File Path",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 329.0,
+ "Y": 144.0
+ },
+ {
+ "Id": "29442523ab9847f99872f385c741111a",
+ "Name": "Units",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 329.0,
+ "Y": 333.25
+ }
+ ],
+ "Annotations": [],
+ "X": -162.03046243201658,
+ "Y": 89.286905128884712,
+ "Zoom": 0.852765925581498
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/GeometryUI.ImportFromSATWithUnits.md b/doc/distrib/NodeHelpFiles/GeometryUI.ImportFromSATWithUnits.md
index 2a6bd9cb342..ff9441c5131 100644
--- a/doc/distrib/NodeHelpFiles/GeometryUI.ImportFromSATWithUnits.md
+++ b/doc/distrib/NodeHelpFiles/GeometryUI.ImportFromSATWithUnits.md
@@ -1,4 +1,11 @@
## In Depth
-`Geometry.ImportFromSATWithUnits` imports Geometry to Dynamo from a .SAT file and `DynamoUnit.Unit` that is convertible from `millimeters`. This node takes a `file object` or `filepath` as the first input and a `DynamoUnit` as the second. If the unit input is left null, the default, this imports the .SAT geometry as unitless, simply importing the geometric data in the file without any unit conversion. If a `Unit` is passed, the internal units of the .SAT file are converted to the units specified.
+`Geometry.ImportFromSATWithUnits` imports geometry to Dynamo from a .SAT file and `DynamoUnit.Unit` that is convertible from millimeters. This node takes a file object or file path as the first input and a `dynamoUnit` as the second. If the `dynamoUnit` input is left null, the .SAT geometry is imported as unitless, simply importing the geometric data in the file without any unit conversion. If a unit is passed, the internal units of the .SAT file are converted to the specified units.
Dynamo is unitless, but the numeric values in your Dynamo graph likely still have some implicit unit. You can use the `dynamoUnit` input to scale the internal geometry of the .SAT file to that unit system.
+
+In the example below, geometry is imported from a .SAT file, with feet as the unit. To get this example file to work on your computer, download this example SAT file and point the `File Path` node to the invalid.sat file.
+
+___
+## Example File
+
+![Geometry.ImportFromSATWithUnits](./GeometryUI.ImportFromSATWithUnits_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/GeometryUI.ImportFromSATWithUnits_img.jpg b/doc/distrib/NodeHelpFiles/GeometryUI.ImportFromSATWithUnits_img.jpg
new file mode 100644
index 00000000000..82591934955
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/GeometryUI.ImportFromSATWithUnits_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/KLFVJ5DI7APVNODARMSE3JM5C27DG62OXUUQRS3HCDTZYO6IBOZA.md b/doc/distrib/NodeHelpFiles/KLFVJ5DI7APVNODARMSE3JM5C27DG62OXUUQRS3HCDTZYO6IBOZA.md
index 5d49cf86dd1..83b3d61a162 100644
--- a/doc/distrib/NodeHelpFiles/KLFVJ5DI7APVNODARMSE3JM5C27DG62OXUUQRS3HCDTZYO6IBOZA.md
+++ b/doc/distrib/NodeHelpFiles/KLFVJ5DI7APVNODARMSE3JM5C27DG62OXUUQRS3HCDTZYO6IBOZA.md
@@ -1,7 +1,9 @@
## In Depth
-Add in-depth information about ByOriginVectors (origin, xAxis, yAxis, zAxis)...
+`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
diff --git a/doc/distrib/NodeHelpFiles/List.GroupByFunction.dyn b/doc/distrib/NodeHelpFiles/List.GroupByFunction.dyn
new file mode 100644
index 00000000000..85cc0319ff2
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/List.GroupByFunction.dyn
@@ -0,0 +1,605 @@
+{
+ "Uuid": "6ed1d215-7060-46bc-827c-52304820ba6e",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "List.GroupByFunction",
+ "ElementResolver": {
+ "ResolutionMap": {}
+ },
+ "Inputs": [
+ {
+ "Id": "0564d7b6bd064293826f566e956c342a",
+ "Name": "Number",
+ "Type": "number",
+ "Type2": "number",
+ "Value": "3",
+ "NumberType": "Double",
+ "Description": "Creates a number",
+ "SelectedIndex": 0
+ }
+ ],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "823e4a7d29da46e9887826a6cbce4f9a",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "c8239d36a8be46ceada0b96564f52328",
+ "Name": "list",
+ "Description": "list of values\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5c125a75dfc745aba7e7e166fc79da73",
+ "Name": "groupFunction",
+ "Description": "Function to group list\n\nFunction",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "c53cd96cbee54f27b07bc5b91cac6472",
+ "Name": "groupedList",
+ "Description": "List of arbitrary rank/levels (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "List.GroupByFunction@var[]..[],Function",
+ "Replication": "Auto",
+ "Description": "Use a function to determine how list items should be grouped.\n\nList.GroupByFunction (list: var[]..[], groupFunction: Function): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "c684876f9b444e129c82482149e91347",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "6d34fecee00848429f3c703cacde622f",
+ "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",
+ "Code": "0..9..#10;"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "1fd75dca684a491ab272748143d718d7",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "e052818fffb344ae9f17106b249d6da8",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "cbebc0da43584d8bb15c05d7150c57c7",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "b2fd2d23deac467b88c7b831a0f361fc",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "89a332baafbe41189ee26ac31dd88e8c",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "4d1184c2f615454489bbf4f0c60ed325",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "be4275e2188d4580bfa73b702bd071b2",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "b81c8e5edfe04085a6ce0c6782fc449e",
+ "Name": "list",
+ "Description": "List to fetch an item from.\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "680b6d2acabb4ff6a330e8e2e466e884",
+ "Name": "index",
+ "Description": "Index of the item to be fetched.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "bbc46dba70eb4cc79d1a936a784b7e05",
+ "Name": "item",
+ "Description": "Item in the list at the given index.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.GetItemAtIndex@var[]..[],int",
+ "Replication": "Auto",
+ "Description": "Returns an item from the given list that's located at the specified index.\n\nList.GetItemAtIndex (list: var[]..[], index: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "b5c02cffce164183a0f98b9d338ae165",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "6696f643f35e43dca5cb0ba95328c832",
+ "Name": "list",
+ "Description": "List to chop into sublists\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "fa6bdf9b229e4be0bd91d024efd96381",
+ "Name": "lengths",
+ "Description": "Lengths of consecutive sublists to be created from the input list\n\nint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "a4f142aea15d409898b266d7ebd50ed4",
+ "Name": "lists",
+ "Description": "Sublists created from the list",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.Chop@var[]..[],int[]",
+ "Replication": "Auto",
+ "Description": "Chop a list into a set of consecutive sublists with the specified lengths. List division begins at the top of the list.\n\nList.Chop (list: var[]..[], lengths: int[]): var[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "e552b029a81b4418bb7521703df45ec0",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "ee1e5c6e009948a991299919b7d4db45",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "c7f446620015487d9be2e554f2baed54",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "695d06233d034d18998a0228e5f8bbeb",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "74fb5e4fb6404a43a036fc17ef99c09f",
+ "Name": "list",
+ "Description": "list of values\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6d8154476f894282a62b770860302a74",
+ "Name": "groupFunction",
+ "Description": "Function to group list\n\nFunction",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "8e68c79de3034c0b9c4358a4870944f7",
+ "Name": "groupedList",
+ "Description": "List of arbitrary rank/levels (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "List.GroupByFunction@var[]..[],Function",
+ "Replication": "Auto",
+ "Description": "Use a function to determine how list items should be grouped.\n\nList.GroupByFunction (list: var[]..[], groupFunction: Function): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "0e4503aaa58e49338a086ca58f6d765a",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "34227c9b69334b189e5a230121bce89d",
+ "Name": "list",
+ "Description": "List to fetch an item from.\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "10acbd7aed284a548ea2df0b592fa7af",
+ "Name": "index",
+ "Description": "Index of the item to be fetched.\n\nint",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "71d49e2b278d47aab6eff478b5b42dc9",
+ "Name": "item",
+ "Description": "Item in the list at the given index.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "DSCore.List.GetItemAtIndex@var[]..[],int",
+ "Replication": "Auto",
+ "Description": "Returns an item from the given list that's located at the specified index.\n\nList.GetItemAtIndex (list: var[]..[], index: int): var[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Watch, CoreNodeModels",
+ "WatchWidth": 200.0,
+ "WatchHeight": 200.0,
+ "Id": "585f243fbfc848f7b9ee58cc73ece284",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "95ef031dc2694ec492f7c81ec354e2d9",
+ "Name": "",
+ "Description": "Node to show output from",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "dbe2177364d74c0d9caa2b27a54f33f9",
+ "Name": "",
+ "Description": "Node output",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Visualizes a node's output"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels",
+ "NumberType": "Double",
+ "Id": "0564d7b6bd064293826f566e956c342a",
+ "NodeType": "NumberInputNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "0ee2680f5d7f4f9fb3f944fe64817038",
+ "Name": "",
+ "Description": "Double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Creates a number",
+ "InputValue": 3.0
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "c53cd96cbee54f27b07bc5b91cac6472",
+ "End": "e052818fffb344ae9f17106b249d6da8",
+ "Id": "6529ee2ca13d467b98f218cc9b355415",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6d34fecee00848429f3c703cacde622f",
+ "End": "89a332baafbe41189ee26ac31dd88e8c",
+ "Id": "9334fe002f7149479031648358464806",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6d34fecee00848429f3c703cacde622f",
+ "End": "6696f643f35e43dca5cb0ba95328c832",
+ "Id": "10cc801f92bc44bf9366e117009d2a68",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4d1184c2f615454489bbf4f0c60ed325",
+ "End": "74fb5e4fb6404a43a036fc17ef99c09f",
+ "Id": "6e3364f50bcb43118c77f88f76c946a9",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "bbc46dba70eb4cc79d1a936a784b7e05",
+ "End": "5c125a75dfc745aba7e7e166fc79da73",
+ "Id": "69f3183dd38f4839b3a0dbbb90980fb4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a4f142aea15d409898b266d7ebd50ed4",
+ "End": "ee1e5c6e009948a991299919b7d4db45",
+ "Id": "a8ff42151646405a9136dba0eadd7004",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a4f142aea15d409898b266d7ebd50ed4",
+ "End": "c8239d36a8be46ceada0b96564f52328",
+ "Id": "529c0136820c45ffbc9a82f5f5304b25",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "8e68c79de3034c0b9c4358a4870944f7",
+ "End": "95ef031dc2694ec492f7c81ec354e2d9",
+ "Id": "b1e25aa1cb6545229a94e299591b59f4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "71d49e2b278d47aab6eff478b5b42dc9",
+ "End": "6d8154476f894282a62b770860302a74",
+ "Id": "cccadf5f4bf549998b42dbfa4e6b54e7",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "0ee2680f5d7f4f9fb3f944fe64817038",
+ "End": "fa6bdf9b229e4be0bd91d024efd96381",
+ "Id": "f236305b51074a03b899e7b42c6e063e",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "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": "823e4a7d29da46e9887826a6cbce4f9a",
+ "Name": "List.GroupByFunction",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 618.649972687126,
+ "Y": 363.56796132811496
+ },
+ {
+ "Id": "c684876f9b444e129c82482149e91347",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -21.350027312873976,
+ "Y": 229.14546132811495
+ },
+ {
+ "Id": "1fd75dca684a491ab272748143d718d7",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1001.649972687126,
+ "Y": 363.56796132811496
+ },
+ {
+ "Id": "b2fd2d23deac467b88c7b831a0f361fc",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 241.64997268712602,
+ "Y": -104.43203867188504
+ },
+ {
+ "Id": "be4275e2188d4580bfa73b702bd071b2",
+ "Name": "List.GetItemAtIndex",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 241.64997268712602,
+ "Y": 385.567961328115
+ },
+ {
+ "Id": "b5c02cffce164183a0f98b9d338ae165",
+ "Name": "List.Chop",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 241.64997268712602,
+ "Y": 563.067961328115
+ },
+ {
+ "Id": "e552b029a81b4418bb7521703df45ec0",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1001.649972687126,
+ "Y": 676.567961328115
+ },
+ {
+ "Id": "695d06233d034d18998a0228e5f8bbeb",
+ "Name": "List.GroupByFunction",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 618.649972687126,
+ "Y": 50.567961328114961
+ },
+ {
+ "Id": "0e4503aaa58e49338a086ca58f6d765a",
+ "Name": "List.GetItemAtIndex",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 241.64997268712602,
+ "Y": 208.56796132811496
+ },
+ {
+ "Id": "585f243fbfc848f7b9ee58cc73ece284",
+ "Name": "Watch",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1001.649972687126,
+ "Y": 50.567961328114961
+ },
+ {
+ "Id": "0564d7b6bd064293826f566e956c342a",
+ "Name": "Number",
+ "IsSetAsInput": true,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -21.350027312873976,
+ "Y": 597.067961328115
+ }
+ ],
+ "Annotations": [],
+ "X": 310.81726197630809,
+ "Y": 90.166202731076623,
+ "Zoom": 0.57612781954887216
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/List.GroupByFunction.md b/doc/distrib/NodeHelpFiles/List.GroupByFunction.md
new file mode 100644
index 00000000000..376f4bfefe6
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/List.GroupByFunction.md
@@ -0,0 +1,10 @@
+## In Depth
+`List.GroupByFunction` returns a new list grouped by a function.
+
+The `groupFunction` input requires a node in a function state (i.e., it returns a function). This means that at least one of the nodeâs inputs is not connected. Dynamo then runs the node function on each item in the input list of `List.GroupByFunction` to use the output as a grouping mechanism.
+
+In the example below, two different lists are grouped using `List.GetItemAtIndex` as the function. This function creates groups (a new list) from each top-level index.
+___
+## Example File
+
+![List.GroupByFunction](./List.GroupByFunction_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/List.GroupByFunction_img.jpg b/doc/distrib/NodeHelpFiles/List.GroupByFunction_img.jpg
new file mode 100644
index 00000000000..64a1c96f228
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/List.GroupByFunction_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/List.MaximumItemByKey.dyn b/doc/distrib/NodeHelpFiles/List.MaximumItemByKey.dyn
new file mode 100644
index 00000000000..fbff98fdfb8
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/List.MaximumItemByKey.dyn
@@ -0,0 +1,525 @@
+{
+ "Uuid": "2523e4be-3126-479e-9d17-09d4e569fdb5",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "List.MaximumItemByKey",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1deff9adde5a40a8b641573444966dde",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "e0e8ee0d18ba495cafa4006afe7ca8db",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d24aa2c1750946bcbee0f4afae18ec2c",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e5a2be3971c44b49b3589571371e030d",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "f7232beb5bad41b186a8b6bdf3605e9a",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "59f93c5a0d4f4a249ce38427a7869f69",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "1c6b78008ce24a8c8065738b791e85d4",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "d346db59783240cf9b282e74f4ba20a9",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "1b7d33f74dde44498454337fc91932bb",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "6c0e3a6dff254ba4988bae135a4289cf",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "e3268eaf627242d4b72a677c8a803301",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "efceaf4193ae4b9cb3279f2b65a5427c",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "481dd24950a24aa3bfd3610c6837095f",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "67d3c0bbf6844b9e90cf9b407d56f9ba",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ddd57bab537c4285a969855012071b64",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "4cc4200f115e40fb923c1e527018ad10",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(0,0,0);\nPoint.ByCoordinates(2,0,0);\nPoint.ByCoordinates(5,0,0);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "affa88d2b3b4456bb7f076e31cc987f5",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "9bd3f590c22d41738e6c09bf26aa4986",
+ "Name": "circle",
+ "Description": "Autodesk.DesignScript.Geometry.Circle",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "1ed111c17472441ca6d42772f5172e42",
+ "Name": "double",
+ "Description": "double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.Radius",
+ "Replication": "Auto",
+ "Description": "Returns the radius of the circle.\n\nCircle.Radius: double"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "09109438de644647b8aeabddd012dfea",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "33ad37990c5d4086a813afec6fd29e8b",
+ "Name": "list",
+ "Description": "list of values\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "fbf57cbcb6de40d7928a569194bc2f25",
+ "Name": "keyFunction",
+ "Description": "function applied to the list items\n\nFunction",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "154cad19da704a09931d61b0b1cbd18a",
+ "Name": "maximumItem",
+ "Description": "Maximum item in list using keyFunction (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "List.MaximumItemByKey@var[]..[],Function",
+ "Replication": "Auto",
+ "Description": "Returns the items from the list that generate the maximum values for the function supplied as the key projector\n\nList.MaximumItemByKey (list: var[]..[], keyFunction: Function): var[]..[]"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "706d6f41820d4b6db7c04e58a2cce7a4",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "6f1c31f987834387be0be3375ce74d44",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "c6f711199557403fb81e6ca76e63b52e",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "912d9ee580944285a08a4d9451776322",
+ "Name": "item2",
+ "Description": "Item Index #2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "0f25d4fe59444730a2ef8a70c68e3ed1",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "a9b2020a7bc947cdb242fae61e665b80",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "505de6781ea14954a924563e633d699d",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "843f45fa8f4446bea4f662cca44eb625",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6acd969418094a0398b15292ebccd3b8",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "0.5;\n1;\n1.5;"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "e5a2be3971c44b49b3589571371e030d",
+ "End": "6f1c31f987834387be0be3375ce74d44",
+ "Id": "2b8072afbb934252ac6091e3e2c6937f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "d346db59783240cf9b282e74f4ba20a9",
+ "End": "c6f711199557403fb81e6ca76e63b52e",
+ "Id": "e3f66489b74b4f2197e65397f70c2fa2",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "efceaf4193ae4b9cb3279f2b65a5427c",
+ "End": "912d9ee580944285a08a4d9451776322",
+ "Id": "b39bdc6f5c32442b8df49120f263efab",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "67d3c0bbf6844b9e90cf9b407d56f9ba",
+ "End": "e0e8ee0d18ba495cafa4006afe7ca8db",
+ "Id": "54c334a290b947ceab82fe402cd49c19",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ddd57bab537c4285a969855012071b64",
+ "End": "59f93c5a0d4f4a249ce38427a7869f69",
+ "Id": "23a7f80c2bbd493c973f0380fb8fd138",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "4cc4200f115e40fb923c1e527018ad10",
+ "End": "6c0e3a6dff254ba4988bae135a4289cf",
+ "Id": "885fe5efd6764614ba8b771d2d873c0d",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "1ed111c17472441ca6d42772f5172e42",
+ "End": "fbf57cbcb6de40d7928a569194bc2f25",
+ "Id": "d5ec806dc9e445c3aa2d4d9654b654e4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "0f25d4fe59444730a2ef8a70c68e3ed1",
+ "End": "33ad37990c5d4086a813afec6fd29e8b",
+ "Id": "54dffa64de684030ab5194c327c732b3",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "505de6781ea14954a924563e633d699d",
+ "End": "d24aa2c1750946bcbee0f4afae18ec2c",
+ "Id": "0f5b2f8eadcc4bfb88da72c59d262853",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "843f45fa8f4446bea4f662cca44eb625",
+ "End": "1c6b78008ce24a8c8065738b791e85d4",
+ "Id": "6e9f41943d1444ae8c71ffe9735a34d6",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6acd969418094a0398b15292ebccd3b8",
+ "End": "e3268eaf627242d4b72a677c8a803301",
+ "Id": "32d4327aa0454df4bdb70ec4b763b9d4",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": 1.1602656841278076,
+ "EyeY": 8.9741945266723633,
+ "EyeZ": 1.2702900171279907,
+ "LookX": 0.02100752666592598,
+ "LookY": -8.5661163330078125,
+ "LookZ": -2.4595201015472412,
+ "UpX": 0.0075130779296159744,
+ "UpY": 0.4756242036819458,
+ "UpZ": -0.87961649894714355
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "1deff9adde5a40a8b641573444966dde",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 682.2,
+ "Y": 690.8
+ },
+ {
+ "Id": "f7232beb5bad41b186a8b6bdf3605e9a",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 682.2,
+ "Y": 868.8
+ },
+ {
+ "Id": "1b7d33f74dde44498454337fc91932bb",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 682.2,
+ "Y": 1046.7999999999997
+ },
+ {
+ "Id": "481dd24950a24aa3bfd3610c6837095f",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 286.20000000000005,
+ "Y": 782.28249999999991
+ },
+ {
+ "Id": "affa88d2b3b4456bb7f076e31cc987f5",
+ "Name": "Circle.Radius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1058.2,
+ "Y": 1060.7999999999997
+ },
+ {
+ "Id": "09109438de644647b8aeabddd012dfea",
+ "Name": "List.MaximumItemByKey",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1360.2,
+ "Y": 930.8
+ },
+ {
+ "Id": "706d6f41820d4b6db7c04e58a2cce7a4",
+ "Name": "List.Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1058.2,
+ "Y": 834.8
+ },
+ {
+ "Id": "a9b2020a7bc947cdb242fae61e665b80",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 286.20000000000005,
+ "Y": 956.28249999999991
+ }
+ ],
+ "Annotations": [],
+ "X": -110.4210889356882,
+ "Y": -651.595904742232,
+ "Zoom": 0.94308467029363308
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/List.MaximumItemByKey.md b/doc/distrib/NodeHelpFiles/List.MaximumItemByKey.md
new file mode 100644
index 00000000000..5873ff1c484
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/List.MaximumItemByKey.md
@@ -0,0 +1,8 @@
+## In Depth
+`List.MaximumItemByKey` returns the largest item in a list based on a key function.
+
+In the example below, a series of three circles with increasing radii are compared using radius as the key. The circle at (5,0,0) is returned, as it has the largest radius.
+___
+## Example File
+
+![List.MaximumItemByKey](./List.MaximumItemByKey_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/List.MaximumItemByKey_img.jpg b/doc/distrib/NodeHelpFiles/List.MaximumItemByKey_img.jpg
new file mode 100644
index 00000000000..d357bd3b559
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/List.MaximumItemByKey_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/List.MinimumItemByKey.dyn b/doc/distrib/NodeHelpFiles/List.MinimumItemByKey.dyn
new file mode 100644
index 00000000000..0f2947bd1fc
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/List.MinimumItemByKey.dyn
@@ -0,0 +1,525 @@
+{
+ "Uuid": "37894edf-db9a-42d2-87bd-89145719baa7",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "List.MinimumItemByKey",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "0b916b3a9d4f442d96db8c5739565c67",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "529a47c650ec4f4683bb637b02d5d015",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "f171de1541f74ba0a3f0ad2c67bd4900",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "274bdff8da77468ea67b129f0df7db3d",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "033c20cbca2d472bb496b3f3e135dcc7",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "7a5b8a93bd894c018a69cd85eef8cdbb",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d47ab32bc89d433faec756ba2b495204",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "eeceddc21a124ac68d7e725c87287506",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "a089cf9c950b485e8fe5e79ca60ad9a6",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "f140d509ba7d4587bb637d784b37fe22",
+ "Name": "centerPoint",
+ "Description": "Center point of circle\n\nPoint\nDefault value : Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "f5ce2b22fee54c62a57191e3a87e6917",
+ "Name": "radius",
+ "Description": "Radius\n\ndouble\nDefault value : 1",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "639a02bbf949498e846dadfa150ec323",
+ "Name": "Circle",
+ "Description": "Circle created with center point and radius",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.ByCenterPointRadius@Autodesk.DesignScript.Geometry.Point,double",
+ "Replication": "Auto",
+ "Description": "Creates a Circle with input center Point and radius in the world XY plane, with world Z as normal.\n\nCircle.ByCenterPointRadius (centerPoint: Point = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0), radius: double = 1): Circle"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "aa4d71f4895b4a7bb4343ba292cb4b86",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "a819f21751854f66adb874f2bdb9ecce",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "b122929f9f5749d7a7574a01b4e92915",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "acca783e967a4eac9a5ecd315dbef281",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Point.ByCoordinates(0,0,0);\nPoint.ByCoordinates(2,0,0);\nPoint.ByCoordinates(5,0,0);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "112395bfa3b745ca9466ea7b4197ba94",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "2f7a338487314a4081adfc4a6cbd29a5",
+ "Name": "circle",
+ "Description": "Autodesk.DesignScript.Geometry.Circle",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "ff853adbced84302840db51277e06bfd",
+ "Name": "double",
+ "Description": "double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Circle.Radius",
+ "Replication": "Auto",
+ "Description": "Returns the radius of the circle.\n\nCircle.Radius: double"
+ },
+ {
+ "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels",
+ "VariableInputPorts": true,
+ "Id": "ee21502e4e9740c18e52d47d41e32f8d",
+ "NodeType": "ExtensionNode",
+ "Inputs": [
+ {
+ "Id": "2d52e583135249f292175dc73a50c376",
+ "Name": "item0",
+ "Description": "Item Index #0",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "2e3115a76e784e46a09c86b296374447",
+ "Name": "item1",
+ "Description": "Item Index #1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "76ea73b55f314f5cbdc5a328d895d855",
+ "Name": "item2",
+ "Description": "Item Index #2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "08809a472f08405bbafd730cd30fcd99",
+ "Name": "list",
+ "Description": "A list (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Makes a new list from the given inputs"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "29a7e48d36a2480788fdb361d81cea56",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "a7e3c88dd695496aa0bbba9dce53e044",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "a8a5fee8930548d3be16cd03317ab292",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "abe38319cfa549b985e1dc7257d00b57",
+ "Name": "",
+ "Description": "Value of expression at line 3",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "0.5;\n1;\n1.5;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "11cce9605c6d41adbe9fb21641ef2941",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "de454d6d489847d8a4dcdcfbd6cf2f68",
+ "Name": "list",
+ "Description": "list of values\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "7cc0f97b7f134c92a4fa254617ddefbe",
+ "Name": "keyFunction",
+ "Description": "function applied to the list items\n\nFunction",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "e55ba619c5c049fb8e647994571fefa3",
+ "Name": "minimumItem",
+ "Description": "Minimum item in list using keyFunction (type: var[]..[])",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "List.MinimumItemByKey@var[]..[],Function",
+ "Replication": "Auto",
+ "Description": "Returns the items from the list that generate the minimum values for the function supplied as the key projector\n\nList.MinimumItemByKey (list: var[]..[], keyFunction: Function): var[]..[]"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "274bdff8da77468ea67b129f0df7db3d",
+ "End": "2d52e583135249f292175dc73a50c376",
+ "Id": "2386a101f801424aa1440a410f491386",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "eeceddc21a124ac68d7e725c87287506",
+ "End": "2e3115a76e784e46a09c86b296374447",
+ "Id": "dd114e79bd7942dba907ddaa8250478e",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "639a02bbf949498e846dadfa150ec323",
+ "End": "76ea73b55f314f5cbdc5a328d895d855",
+ "Id": "6fca6d2692f64685b4e0317b25af66b2",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a819f21751854f66adb874f2bdb9ecce",
+ "End": "529a47c650ec4f4683bb637b02d5d015",
+ "Id": "f4024e4479e94a4babeaa365d81d70d1",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b122929f9f5749d7a7574a01b4e92915",
+ "End": "7a5b8a93bd894c018a69cd85eef8cdbb",
+ "Id": "2925611267c54cb9b09004f02416b8d4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "acca783e967a4eac9a5ecd315dbef281",
+ "End": "f140d509ba7d4587bb637d784b37fe22",
+ "Id": "4fa431ccdc564190815cf4f84d075262",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "ff853adbced84302840db51277e06bfd",
+ "End": "7cc0f97b7f134c92a4fa254617ddefbe",
+ "Id": "939ded22ea9f4cfa8684f1bd6b6ce1ab",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "08809a472f08405bbafd730cd30fcd99",
+ "End": "de454d6d489847d8a4dcdcfbd6cf2f68",
+ "Id": "0c0dc4f86b8844179e6083e35294f341",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a7e3c88dd695496aa0bbba9dce53e044",
+ "End": "f171de1541f74ba0a3f0ad2c67bd4900",
+ "Id": "f76ecb857d6544a781d4e742ef2613b5",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "a8a5fee8930548d3be16cd03317ab292",
+ "End": "d47ab32bc89d433faec756ba2b495204",
+ "Id": "13e2a5d9c06a4008af0a132ba45e81b8",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "abe38319cfa549b985e1dc7257d00b57",
+ "End": "f5ce2b22fee54c62a57191e3a87e6917",
+ "Id": "73387b014e8749e1addc72aa10febe11",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": 1.1677411794662476,
+ "EyeY": 5.9259648323059082,
+ "EyeZ": 0.39507651329040527,
+ "LookX": 0.013532042503356934,
+ "LookY": -5.5178866386413574,
+ "LookZ": -1.5843065977096558,
+ "UpX": 0.0075130779296159744,
+ "UpY": 0.4756242036819458,
+ "UpZ": -0.87961649894714355
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "0b916b3a9d4f442d96db8c5739565c67",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 682.2,
+ "Y": 684.8
+ },
+ {
+ "Id": "033c20cbca2d472bb496b3f3e135dcc7",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 682.2,
+ "Y": 874.8
+ },
+ {
+ "Id": "a089cf9c950b485e8fe5e79ca60ad9a6",
+ "Name": "Circle.ByCenterPointRadius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 682.2,
+ "Y": 1052.7999999999997
+ },
+ {
+ "Id": "aa4d71f4895b4a7bb4343ba292cb4b86",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 286.20000000000005,
+ "Y": 788.28249999999991
+ },
+ {
+ "Id": "112395bfa3b745ca9466ea7b4197ba94",
+ "Name": "Circle.Radius",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1058.2,
+ "Y": 1062.7999999999997
+ },
+ {
+ "Id": "ee21502e4e9740c18e52d47d41e32f8d",
+ "Name": "List.Create",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": false,
+ "X": 1058.2,
+ "Y": 836.8
+ },
+ {
+ "Id": "29a7e48d36a2480788fdb361d81cea56",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 286.20000000000005,
+ "Y": 962.28249999999991
+ },
+ {
+ "Id": "11cce9605c6d41adbe9fb21641ef2941",
+ "Name": "List.MinimumItemByKey",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1360.2,
+ "Y": 932.8
+ }
+ ],
+ "Annotations": [],
+ "X": -112.20798388517778,
+ "Y": -434.89263853696275,
+ "Zoom": 0.670714334439528
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/List.MinimumItemByKey.md b/doc/distrib/NodeHelpFiles/List.MinimumItemByKey.md
new file mode 100644
index 00000000000..660bcbdf6e0
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/List.MinimumItemByKey.md
@@ -0,0 +1,8 @@
+## In Depth
+`List.MinimumItemByKey` returns the smallest item in a list based on a key function.
+
+In the example below, a series of three circles with increasing radii are compared using radius as the key. The circle at the origin is returned, as it has the smallest radius.
+___
+## Example File
+
+![List.MinimumItemByKey](./List.MinimumItemByKey_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/List.MinimumItemByKey_img.jpg b/doc/distrib/NodeHelpFiles/List.MinimumItemByKey_img.jpg
new file mode 100644
index 00000000000..073c7038e91
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/List.MinimumItemByKey_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/List.SortByFunction.dyn b/doc/distrib/NodeHelpFiles/List.SortByFunction.dyn
new file mode 100644
index 00000000000..efc58c64c39
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/List.SortByFunction.dyn
@@ -0,0 +1,739 @@
+{
+ "Uuid": "b43ec02a-241a-48c9-be66-dbd3766a4584",
+ "IsCustomNode": false,
+ "Description": "",
+ "Name": "List.SortByFunction",
+ "ElementResolver": {
+ "ResolutionMap": {
+ "Point": {
+ "Key": "Autodesk.DesignScript.Geometry.Point",
+ "Value": "ProtoGeometry.dll"
+ },
+ "Math.Sin": {
+ "Key": "DSCore.Math",
+ "Value": "DSCoreNodes.dll"
+ },
+ "Math": {
+ "Key": "DSCore.Math",
+ "Value": "DSCoreNodes.dll"
+ },
+ "Geometry": {
+ "Key": "Autodesk.DesignScript.Geometry.Geometry",
+ "Value": "ProtoGeometry.dll"
+ }
+ }
+ },
+ "Inputs": [],
+ "Outputs": [],
+ "Nodes": [
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "a34bc3d883854789a7331a9bc024fcc5",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "b7754699416a4c43b15bc6851ff4e9e9",
+ "Name": "",
+ "Description": "Value of expression at line 1",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "49a4768159f945928d5c2c89b9bb13b1",
+ "Name": "",
+ "Description": "Value of expression at line 2",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Replication": "Disabled",
+ "Description": "Allows for DesignScript code to be authored directly",
+ "Code": "Math.RandomList(20);\nMath.RandomList(20);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "40a68775f5cd4e099a8dbd3a902cfb75",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [
+ {
+ "Id": "0930ace161be45fbbefa2f788abf087a",
+ "Name": "x",
+ "Description": "x",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "55da9101dd594e44bfb4083584e49176",
+ "Name": "y",
+ "Description": "y",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "f74b31f8c7614c6c902d2c61d01d7d72",
+ "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",
+ "Code": "Point.ByCoordinates(10*x,10*y);"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "783add990252426fa578cfea2cda50a2",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "15b5d9d4d5f14d6d937e7b7383b512e9",
+ "Name": "points",
+ "Description": "Points for nurbs curve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "86b3211bed97426dbf46f245bb3c6faa",
+ "Name": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByControlPoints@Autodesk.DesignScript.Geometry.Point[]",
+ "Replication": "Auto",
+ "Description": "Create a BSplineCurve by using explicit control points. NOTE 1: BSplineCurves with deg=1 have G1 discontinuities, which cause problems for extrusion, sweep, and other operations. They should be avoided. Use a PolyCurve instead. NOTE 2: If the curve is periodic (closed), then the first and last points MUST be the same.\n\nNurbsCurve.ByControlPoints (points: Point[]): NurbsCurve"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "a9fc237260f2471099132b72c36a7ebb",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "b814fda099b44458a6a9e7ac76d92d10",
+ "Name": "list",
+ "Description": "list of values\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "678b656e576a4f57b9cd240baeb86144",
+ "Name": "sortFunction",
+ "Description": "function used to sort list\n\nFunction",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "3e6b0053d5c54958bd6b40d8402add81",
+ "Name": "sortedList",
+ "Description": "type: var[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "List.SortByFunction@var[]..[],Function",
+ "Replication": "Auto",
+ "Description": "Use a function to determine how list items should be sorted.\n\nList.SortByFunction (list: var[]..[], sortFunction: Function): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "dac4654d4b50405bab82284ad3e5714d",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "c61013bccf224b33b6983eed1cbb7c55",
+ "Name": "point",
+ "Description": "Autodesk.DesignScript.Geometry.Point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "51506aa025ff4e1bb23c81523a2aa6a8",
+ "Name": "double",
+ "Description": "double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.X",
+ "Replication": "Auto",
+ "Description": "Get the X component of a Point\n\nPoint.X: double"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "5dea9cd52c1b4884ad17f6653656a758",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "cd7afaf2dba54313b14621b7a672ee26",
+ "Name": "points",
+ "Description": "Points for nurbs curve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "c61325c9d6a844ecb4ed892aed457b32",
+ "Name": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByControlPoints@Autodesk.DesignScript.Geometry.Point[]",
+ "Replication": "Auto",
+ "Description": "Create a BSplineCurve by using explicit control points. NOTE 1: BSplineCurves with deg=1 have G1 discontinuities, which cause problems for extrusion, sweep, and other operations. They should be avoided. Use a PolyCurve instead. NOTE 2: If the curve is periodic (closed), then the first and last points MUST be the same.\n\nNurbsCurve.ByControlPoints (points: Point[]): NurbsCurve"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "5e537627d95048dab7a1b853bb9d1d70",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "8b3d96c762d04da7aeaaa4d9e7a4529e",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "cc7310d3615f41c7a8203a1b8b3e08e2",
+ "Name": "xTranslation",
+ "Description": "Displacement along X-axis.\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d746f6e5412543d8aeaa884aa0c7e896",
+ "Name": "yTranslation",
+ "Description": "Displacement along Y-axis.\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "ddf4cd9886aa4f0eb28a184d8b61ada9",
+ "Name": "zTranslation",
+ "Description": "Displacement along Z-axis.\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "940082ebff8f441684d5ad176d94dfab",
+ "Name": "Geometry",
+ "Description": "Transformed Geometry.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Translate@double,double,double",
+ "Replication": "Auto",
+ "Description": "Translates any given geometry by the given displacements in the x, y, and z directions defined in WCS respectively.\n\nGeometry.Translate (xTranslation: double = 0, yTranslation: double = 0, zTranslation: double = 0): Geometry"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "7ec3288272ea44ba8a30efc8e878821c",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "f8131a3bdb014cd38b9397ae540a1256",
+ "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",
+ "Code": "10;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore",
+ "Id": "547e2b15be0f427ebdf0efd998c9d2fa",
+ "NodeType": "CodeBlockNode",
+ "Inputs": [],
+ "Outputs": [
+ {
+ "Id": "b24fa777e5044d1b8dbc1550a6c6f41d",
+ "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",
+ "Code": "20;"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "72a277a2a6a3468d948b9373bd1ffb62",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "5f90ddc19b1f4813b72f01a3e2885410",
+ "Name": "geometry",
+ "Description": "Autodesk.DesignScript.Geometry.Geometry",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "15397e23fd0f40fba6cdce772cf212df",
+ "Name": "xTranslation",
+ "Description": "Displacement along X-axis.\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "6ca35f3b39cb4e28b999098d11520cd7",
+ "Name": "yTranslation",
+ "Description": "Displacement along Y-axis.\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "d3aed79af66a45db89fc3aef3bdc32bd",
+ "Name": "zTranslation",
+ "Description": "Displacement along Z-axis.\n\ndouble\nDefault value : 0",
+ "UsingDefaultValue": true,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "257f8f9e8a314adcb043c6941c7897c9",
+ "Name": "Geometry",
+ "Description": "Transformed Geometry.",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Geometry.Translate@double,double,double",
+ "Replication": "Auto",
+ "Description": "Translates any given geometry by the given displacements in the x, y, and z directions defined in WCS respectively.\n\nGeometry.Translate (xTranslation: double = 0, yTranslation: double = 0, zTranslation: double = 0): Geometry"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "6068fb1205ca4ddb9f310d56e4497fa5",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "eee111eaaafc42aeb22c0d2bd2587417",
+ "Name": "list",
+ "Description": "list of values\n\nvar[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ },
+ {
+ "Id": "5e035e58854d4866b48a8cd62844a677",
+ "Name": "sortFunction",
+ "Description": "function used to sort list\n\nFunction",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "85045319ae1b47b0bfcbf8c367d4e633",
+ "Name": "sortedList",
+ "Description": "type: var[]..[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "List.SortByFunction@var[]..[],Function",
+ "Replication": "Auto",
+ "Description": "Use a function to determine how list items should be sorted.\n\nList.SortByFunction (list: var[]..[], sortFunction: Function): var[]..[]"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "a1ca58fd1f7145fd9b6660b1d9533bf4",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "f8c5eea106c641899a8d1f6ced51fa5b",
+ "Name": "points",
+ "Description": "Points for nurbs curve\n\nPoint[]",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "b95d3986e5d54cb8ad9a785bfaac444f",
+ "Name": "NurbsCurve",
+ "Description": "Nurbscurve created from points",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.NurbsCurve.ByControlPoints@Autodesk.DesignScript.Geometry.Point[]",
+ "Replication": "Auto",
+ "Description": "Create a BSplineCurve by using explicit control points. NOTE 1: BSplineCurves with deg=1 have G1 discontinuities, which cause problems for extrusion, sweep, and other operations. They should be avoided. Use a PolyCurve instead. NOTE 2: If the curve is periodic (closed), then the first and last points MUST be the same.\n\nNurbsCurve.ByControlPoints (points: Point[]): NurbsCurve"
+ },
+ {
+ "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore",
+ "Id": "484d99eee45f4ac2a0e432bf3e0ed6c3",
+ "NodeType": "FunctionNode",
+ "Inputs": [
+ {
+ "Id": "ab3147a57dfe496b968aef584c1fe4b9",
+ "Name": "point",
+ "Description": "Autodesk.DesignScript.Geometry.Point",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "Outputs": [
+ {
+ "Id": "6e63e64f8b604b22a130c831e2c0b6ee",
+ "Name": "double",
+ "Description": "double",
+ "UsingDefaultValue": false,
+ "Level": 2,
+ "UseLevels": false,
+ "KeepListStructure": false
+ }
+ ],
+ "FunctionSignature": "Autodesk.DesignScript.Geometry.Point.Y",
+ "Replication": "Auto",
+ "Description": "Get the Y component of a Point\n\nPoint.Y: double"
+ }
+ ],
+ "Connectors": [
+ {
+ "Start": "b7754699416a4c43b15bc6851ff4e9e9",
+ "End": "0930ace161be45fbbefa2f788abf087a",
+ "Id": "a3474db6aa59497b8365b84f9abe26df",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "49a4768159f945928d5c2c89b9bb13b1",
+ "End": "55da9101dd594e44bfb4083584e49176",
+ "Id": "706d373844f24c459224213dc644e416",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f74b31f8c7614c6c902d2c61d01d7d72",
+ "End": "eee111eaaafc42aeb22c0d2bd2587417",
+ "Id": "534ad18da68c471890a32e505032e1fe",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f74b31f8c7614c6c902d2c61d01d7d72",
+ "End": "b814fda099b44458a6a9e7ac76d92d10",
+ "Id": "b290efe1b33948e3a1d8672294fe4d04",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f74b31f8c7614c6c902d2c61d01d7d72",
+ "End": "15b5d9d4d5f14d6d937e7b7383b512e9",
+ "Id": "505b2647f7ba4921a80ecae104b1a7f0",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "3e6b0053d5c54958bd6b40d8402add81",
+ "End": "8b3d96c762d04da7aeaaa4d9e7a4529e",
+ "Id": "09efad53751c4d74865e244cd74d696f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "51506aa025ff4e1bb23c81523a2aa6a8",
+ "End": "678b656e576a4f57b9cd240baeb86144",
+ "Id": "cd9529165337433380cf32990d3e9d7f",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "940082ebff8f441684d5ad176d94dfab",
+ "End": "cd7afaf2dba54313b14621b7a672ee26",
+ "Id": "43070e7cdf0f4ab4bb5a5568ef656fe4",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "f8131a3bdb014cd38b9397ae540a1256",
+ "End": "cc7310d3615f41c7a8203a1b8b3e08e2",
+ "Id": "af9b045be42a486dbd032a0d3d80246c",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "b24fa777e5044d1b8dbc1550a6c6f41d",
+ "End": "15397e23fd0f40fba6cdce772cf212df",
+ "Id": "3f5b25e10dea4b5aa89e8083add6acfd",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "257f8f9e8a314adcb043c6941c7897c9",
+ "End": "f8c5eea106c641899a8d1f6ced51fa5b",
+ "Id": "c38efd4c946647edb74db5b824940713",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "85045319ae1b47b0bfcbf8c367d4e633",
+ "End": "5f90ddc19b1f4813b72f01a3e2885410",
+ "Id": "eb0800c68e3346ea8c7f4f247a1a7352",
+ "IsHidden": "False"
+ },
+ {
+ "Start": "6e63e64f8b604b22a130c831e2c0b6ee",
+ "End": "5e035e58854d4866b48a8cd62844a677",
+ "Id": "a03547224db04f1aaec166f1baaf0631",
+ "IsHidden": "False"
+ }
+ ],
+ "Dependencies": [],
+ "NodeLibraryDependencies": [],
+ "Thumbnail": "",
+ "GraphDocumentationURL": null,
+ "ExtensionWorkspaceData": [
+ {
+ "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670",
+ "Name": "Properties",
+ "Version": "2.19",
+ "Data": {}
+ }
+ ],
+ "Author": "None provided",
+ "Linting": {
+ "activeLinter": "None",
+ "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a",
+ "warningCount": 0,
+ "errorCount": 0
+ },
+ "Bindings": [],
+ "View": {
+ "Dynamo": {
+ "ScaleFactor": 1.0,
+ "HasRunWithoutCrash": true,
+ "IsVisibleInDynamoLibrary": true,
+ "Version": "2.19.0.5742",
+ "RunType": "Automatic",
+ "RunPeriod": "1000"
+ },
+ "Camera": {
+ "Name": "_Background Preview",
+ "EyeX": 16.726314544677734,
+ "EyeY": 20.129474639892578,
+ "EyeZ": 8.0907392501831055,
+ "LookX": -0.070718042552471161,
+ "LookY": -14.076128005981445,
+ "LookZ": -13.043798446655273,
+ "UpX": -0.0030941260047256947,
+ "UpY": 0.82114923000335693,
+ "UpZ": -0.57070517539978027
+ },
+ "ConnectorPins": [],
+ "NodeViews": [
+ {
+ "Id": "a34bc3d883854789a7331a9bc024fcc5",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": -108.66335369327658,
+ "Y": 105.26135129218801
+ },
+ {
+ "Id": "40a68775f5cd4e099a8dbd3a902cfb75",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 232.33664630672342,
+ "Y": 96.606351292188037
+ },
+ {
+ "Id": "783add990252426fa578cfea2cda50a2",
+ "Name": "NurbsCurve.ByControlPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1407.3366463067234,
+ "Y": 175.77885129218802
+ },
+ {
+ "Id": "a9fc237260f2471099132b72c36a7ebb",
+ "Name": "List.SortByFunction",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 687.33664630672342,
+ "Y": 161.77885129218802
+ },
+ {
+ "Id": "dac4654d4b50405bab82284ad3e5714d",
+ "Name": "Point.X",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 232.33664630672342,
+ "Y": 274.77885129218805
+ },
+ {
+ "Id": "5dea9cd52c1b4884ad17f6653656a758",
+ "Name": "NurbsCurve.ByControlPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1407.3366463067234,
+ "Y": 322.77885129218805
+ },
+ {
+ "Id": "5e537627d95048dab7a1b853bb9d1d70",
+ "Name": "Geometry.Translate",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1049.3366463067234,
+ "Y": 272.77885129218805
+ },
+ {
+ "Id": "7ec3288272ea44ba8a30efc8e878821c",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 687.33664630672342,
+ "Y": 339.60635129218804
+ },
+ {
+ "Id": "547e2b15be0f427ebdf0efd998c9d2fa",
+ "Name": "Code Block",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 687.33664630672342,
+ "Y": 664.60635129218792
+ },
+ {
+ "Id": "72a277a2a6a3468d948b9373bd1ffb62",
+ "Name": "Geometry.Translate",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1049.3366463067234,
+ "Y": 519.778851292188
+ },
+ {
+ "Id": "6068fb1205ca4ddb9f310d56e4497fa5",
+ "Name": "List.SortByFunction",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 687.33664630672342,
+ "Y": 486.77885129218805
+ },
+ {
+ "Id": "a1ca58fd1f7145fd9b6660b1d9533bf4",
+ "Name": "NurbsCurve.ByControlPoints",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 1407.3366463067234,
+ "Y": 469.77885129218805
+ },
+ {
+ "Id": "484d99eee45f4ac2a0e432bf3e0ed6c3",
+ "Name": "Point.Y",
+ "IsSetAsInput": false,
+ "IsSetAsOutput": false,
+ "Excluded": false,
+ "ShowGeometry": true,
+ "X": 232.33664630672342,
+ "Y": 520.77885129218794
+ }
+ ],
+ "Annotations": [],
+ "X": 108.66212032371095,
+ "Y": -30.258246163124795,
+ "Zoom": 0.61703316676792574
+ }
+}
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/List.SortByFunction.md b/doc/distrib/NodeHelpFiles/List.SortByFunction.md
new file mode 100644
index 00000000000..8bd605e0087
--- /dev/null
+++ b/doc/distrib/NodeHelpFiles/List.SortByFunction.md
@@ -0,0 +1,8 @@
+## In Depth
+`List.SortByFunction` returns a list sorted by a function.
+
+In the example below, a line is drawn through a list of randomly placed points that have been sorted with different functions. The first curve through an unsorted list is non-directional. Sorting the list using the X or Y component of each point results in directional lines progressing across X and Y, respectively.
+___
+## Example File
+
+![List.SortByFunction](./List.SortByFunction_img.jpg)
\ No newline at end of file
diff --git a/doc/distrib/NodeHelpFiles/List.SortByFunction_img.jpg b/doc/distrib/NodeHelpFiles/List.SortByFunction_img.jpg
new file mode 100644
index 00000000000..5f4cd2f88d9
Binary files /dev/null and b/doc/distrib/NodeHelpFiles/List.SortByFunction_img.jpg differ
diff --git a/doc/distrib/NodeHelpFiles/Tessellation.ConvexHull.ByPoints.md b/doc/distrib/NodeHelpFiles/Tessellation.ConvexHull.ByPoints.md
index 4e928212ef0..1bcf6af2c58 100644
--- a/doc/distrib/NodeHelpFiles/Tessellation.ConvexHull.ByPoints.md
+++ b/doc/distrib/NodeHelpFiles/Tessellation.ConvexHull.ByPoints.md
@@ -1,5 +1,8 @@
## In Depth
-Revit will generate and contour a mesh from a list of supplied points. The points cannot be collinear.
+`ConvexHull.ByPoints` returns a list of curves that represent the convex hull of a set of points.
+
+In the example below, a list of points randomly placed in 3D returns a list of curves representing their convex hull.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Tessellation.Delaunay.ByParametersOnSurface.md b/doc/distrib/NodeHelpFiles/Tessellation.Delaunay.ByParametersOnSurface.md
index 0e96944d147..a908997a665 100644
--- a/doc/distrib/NodeHelpFiles/Tessellation.Delaunay.ByParametersOnSurface.md
+++ b/doc/distrib/NodeHelpFiles/Tessellation.Delaunay.ByParametersOnSurface.md
@@ -1,5 +1,8 @@
## In Depth
-ByParametersOnSurface will return a Voronoi representation of a surface's UV as a list of curves. In the example below, a Voronoi representation is created on a surface using a UV system of 50 random values. In order for the Voronoi to stop at the edges of the surface, the returned curves must be intersected with the surface.
+`Delaunay.ByParametersOnSurface` returns a Delaunay triangulation of an input surface.
+
+In the example below, a Delaunay triangulation of a NurbsSurface is returned with a UV count of 400. Increasing the UV count will create a better approximation of the underlying surface but with more triangles.
+
___
## Example File
diff --git a/doc/distrib/NodeHelpFiles/Tessellation.Delaunay.ByPoints.md b/doc/distrib/NodeHelpFiles/Tessellation.Delaunay.ByPoints.md
index 4af97856230..f374176ded2 100644
--- a/doc/distrib/NodeHelpFiles/Tessellation.Delaunay.ByPoints.md
+++ b/doc/distrib/NodeHelpFiles/Tessellation.Delaunay.ByPoints.md
@@ -1,5 +1,8 @@
## In Depth
-Revit will generate and contour a mesh from a list of supplied points. The points cannot be collinear.
+`Delaunay.ByPoints` returns a list of curves that represent the Delaunay triangulation of a set of points.
+
+In the example below, a list of points randomly placed in 3D returns a list of curves representing their Delaunay triangulation.
+
___
## Example File
diff --git a/doc/distrib/Open Source Licenses/OFL.txt b/doc/distrib/Open Source Licenses/OFL.txt
new file mode 100644
index 00000000000..1456c1809da
--- /dev/null
+++ b/doc/distrib/Open Source Licenses/OFL.txt
@@ -0,0 +1,97 @@
+Copyright (c) , (),
+with Reserved Font Name .
+Copyright (c) , (),
+with Reserved Font Name .
+Copyright (c) , ().
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/extern/ProtoGeometry/ProtoGeometry.config b/extern/ProtoGeometry/ProtoGeometry.config
index af759bbc39f..1304d2ad9d2 100644
--- a/extern/ProtoGeometry/ProtoGeometry.config
+++ b/extern/ProtoGeometry/ProtoGeometry.config
@@ -1,4 +1,4 @@
- libg_229_0_0/LibG.ProtoInterface.dll
+ libg_230_0_0/LibG.ProtoInterface.dll
diff --git a/src/Config/CS_SDK.props b/src/Config/CS_SDK.props
index efaf33a260d..09ae2fd3263 100644
--- a/src/Config/CS_SDK.props
+++ b/src/Config/CS_SDK.props
@@ -4,8 +4,11 @@
Debug
AnyCPU
x64
+
+
+ net6.0
16.0
- net6.0
+ $(DotNet)
512
false
false
@@ -18,8 +21,6 @@
en-US
Library
false
- true
- false
@@ -49,7 +50,7 @@
false
- win10-x64
+ win-x64
$(DefineConstants);_WINDOWS
@@ -57,13 +58,7 @@
$(DefineConstants);_LINUX
- net6.0-windows
- true
- true
-
-
-
- net6.0-windows
+ $(TargetFramework)-windows
true
true
@@ -90,10 +85,10 @@
false
-
+
$(OutputPath)\..\..\..\test\test_dependencies
-
+
all
runtime
@@ -132,27 +127,12 @@
-
+
dll
-
- exe
-
- v4.8
-
-
-
+
-
-
-
-
-
- $(FrameworkAssembliesPath)System.Drawing.dll
-
-
-
@@ -166,4 +146,4 @@
-
+
\ No newline at end of file
diff --git a/src/DocumentationBrowserViewExtension/DocumentationBrowserView.xaml.cs b/src/DocumentationBrowserViewExtension/DocumentationBrowserView.xaml.cs
index 75dcee02c63..766261cab34 100644
--- a/src/DocumentationBrowserViewExtension/DocumentationBrowserView.xaml.cs
+++ b/src/DocumentationBrowserViewExtension/DocumentationBrowserView.xaml.cs
@@ -1,6 +1,7 @@
using System;
using System.Diagnostics;
using System.IO;
+using System.Reflection;
using System.Web;
using System.Windows;
using System.Windows.Controls;
@@ -132,16 +133,24 @@ async void InitializeAsync()
VirtualFolderPath = string.Empty;
try
{
- if (viewModel.Link != null && !string.IsNullOrEmpty(viewModel.CurrentPackageName))
+ //if this node is from a package then we set the virtual host path to the packages docs directory.
+ if (viewModel.Link != null && !string.IsNullOrEmpty(viewModel.CurrentPackageName) && viewModel.IsOwnedByPackage)
{
- var absolutePath = Path.GetDirectoryName(HttpUtility.UrlDecode(viewModel.Link.AbsolutePath));
- //We move two levels up so it will be located in same level than the the NodeHelpSharedDocs directory
- var imagesLocation = new DirectoryInfo(absolutePath).Parent.Parent.FullName;
- //Adds the NodeHelpSharedDocs directory to the path
- VirtualFolderPath = Path.Combine(imagesLocation, SharedDocsDirectoryName);
+ VirtualFolderPath = Path.GetDirectoryName(HttpUtility.UrlDecode(viewModel.Link.AbsolutePath));
}
+ //if the node is not from a package, then set the virtual host path to the shared docs folder.
+ else if (viewModel.Link != null && !viewModel.IsOwnedByPackage)
+ {
+ VirtualFolderPath = Path.Combine(new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName, SharedDocsDirectoryName);
+ }
+ //unclear what would cause this.
else
+ {
VirtualFolderPath = FallbackDirectoryName;
+ }
+ //TODO - the above will not handle the case that a package's images/dyns are located in the shared folder
+ //we may have to do some inspection of the package docs folder and decide to fallback in some cases, or mark the package
+ //in some way.
}
catch (Exception ex)
{
diff --git a/src/DocumentationBrowserViewExtension/DocumentationBrowserViewExtension.cs b/src/DocumentationBrowserViewExtension/DocumentationBrowserViewExtension.cs
index 7e293c1d00a..b56498864e5 100644
--- a/src/DocumentationBrowserViewExtension/DocumentationBrowserViewExtension.cs
+++ b/src/DocumentationBrowserViewExtension/DocumentationBrowserViewExtension.cs
@@ -208,13 +208,19 @@ private void OnInsertFile(object sender, InsertDocumentationLinkEventArgs e)
if (!DynamoSelection.Instance.Selection.Any()) return;
- GroupInsertedGraph(existingGroups, e.Name);
- DoEvents();
-
- // We have selected all the nodes and notes from the inserted graph
- // Now is the time to auto layout the inserted nodes
- this.DynamoViewModel.GraphAutoLayoutCommand.Execute(null);
- this.DynamoViewModel.FitViewCommand.Execute(false);
+ Dispatcher.CurrentDispatcher.BeginInvoke(() =>
+ {
+ GroupInsertedGraph(existingGroups, e.Name);
+ });
+ //we want to wait for the new group to be inserted and actually rendered, so we add the layout command
+ //as a background priority task on the ui dispatcher.
+ Dispatcher.CurrentDispatcher.BeginInvoke(() =>
+ {
+ // We have selected all the nodes and notes from the inserted graph
+ // Now is the time to auto layout the inserted nodes
+ this.DynamoViewModel.GraphAutoLayoutCommand.Execute(null);
+ this.DynamoViewModel.FitViewCommand.Execute(false);
+ },DispatcherPriority.Background);
}
@@ -522,33 +528,5 @@ public override void Closed()
this.documentationBrowserMenuItem.IsChecked = false;
}
}
-
- #region helper methods
-
- ///
- /// Force the Dispatcher to empty it's queue
- ///
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public static void DoEvents()
- {
- var frame = new DispatcherFrame();
- Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Background,
- new DispatcherOperationCallback(ExitFrame), frame);
- Dispatcher.PushFrame(frame);
- }
-
- ///
- /// Helper method for DispatcherUtil
- ///
- ///
- ///
- private static object ExitFrame(object frame)
- {
- ((DispatcherFrame)frame).Continue = false;
- return null;
- }
-
- #endregion
-
}
}
diff --git a/src/DocumentationBrowserViewExtension/DocumentationBrowserViewModel.cs b/src/DocumentationBrowserViewExtension/DocumentationBrowserViewModel.cs
index 07dd12fad5d..7bcac36b885 100644
--- a/src/DocumentationBrowserViewExtension/DocumentationBrowserViewModel.cs
+++ b/src/DocumentationBrowserViewExtension/DocumentationBrowserViewModel.cs
@@ -5,6 +5,7 @@
using System.Reflection;
using System.Web;
using System.Windows;
+using System.Windows.Documents;
using Dynamo.Core;
using Dynamo.DocumentationBrowser.Properties;
using Dynamo.Logging;
@@ -84,25 +85,24 @@ private set
}
private Uri link;
- private string graphPath;
private string content;
- private string currentPackageName;
///
- /// Package Name
+ /// Package Name of the current node for docs display, if this node is from a package.
///
- internal string CurrentPackageName
- {
- get
- {
- return currentPackageName;
- }
- set
- {
- currentPackageName = value;
- }
- }
+ internal string CurrentPackageName { get; set; }
+ ///
+ /// True if the current node for docs display is owned by a package.
+ ///
+ internal bool IsOwnedByPackage { get; set; }
+ ///
+ /// Name of the current node's sample dyn for docs display, this is the currently always the node name.
+ ///
+ internal string CurrentGraphName { get; set; }
+
+ //path to the current node's sample dyn, usually extracted from the .md file.
+ internal string GraphPath { get; set; }
private MarkdownHandler MarkdownHandlerInstance => markdownHandler ?? (markdownHandler = new MarkdownHandler());
public bool HasContent => !string.IsNullOrWhiteSpace(this.content);
@@ -202,25 +202,32 @@ private void HandleLocalResource(OpenDocumentationLinkEventArgs e)
try
{
string targetContent;
- string graph;
+ string graphPath;
string graphName;
+ bool ownedByPackage = false;
+ string packageName = string.Empty;
Uri link;
+
switch (e)
{
case OpenNodeAnnotationEventArgs openNodeAnnotationEventArgs:
+ packageName = openNodeAnnotationEventArgs.PackageName;
+ ownedByPackage = !string.IsNullOrEmpty(openNodeAnnotationEventArgs.PackageName);
+
var mdLink = packageManagerDoc.GetAnnotationDoc(
openNodeAnnotationEventArgs.MinimumQualifiedName,
openNodeAnnotationEventArgs.PackageName);
link = string.IsNullOrEmpty(mdLink) ? new Uri(String.Empty, UriKind.Relative) : new Uri(mdLink);
- graph = GetGraphLinkFromMDLocation(link);
+ graphPath = GetGraphLinkFromMDLocation(link, ownedByPackage);
targetContent = CreateNodeAnnotationContent(openNodeAnnotationEventArgs);
graphName = openNodeAnnotationEventArgs.MinimumQualifiedName;
+
break;
case OpenDocumentationLinkEventArgs openDocumentationLink:
link = openDocumentationLink.Link;
- graph = GetGraphLinkFromMDLocation(link);
+ graphPath = GetGraphLinkFromMDLocation(link, false);
targetContent = ResourceUtilities.LoadContentFromResources(openDocumentationLink.Link.ToString(), GetType().Assembly);
graphName = null;
break;
@@ -228,7 +235,7 @@ private void HandleLocalResource(OpenDocumentationLinkEventArgs e)
default:
// Navigate to unsupported
targetContent = null;
- graph = null;
+ graphPath = null;
link = null;
graphName = null;
break;
@@ -241,8 +248,10 @@ private void HandleLocalResource(OpenDocumentationLinkEventArgs e)
else
{
this.content = targetContent;
- this.graphPath = graph;
- this.currentPackageName = graphName;
+ this.GraphPath = graphPath;
+ IsOwnedByPackage = ownedByPackage;
+ CurrentPackageName = packageName;
+ CurrentGraphName = graphName;
this.Link = link;
}
}
@@ -264,13 +273,13 @@ private void HandleLocalResource(OpenDocumentationLinkEventArgs e)
this.shouldLoadDefaultContent = false;
}
- private string GetGraphLinkFromMDLocation(Uri link)
+ private string GetGraphLinkFromMDLocation(Uri link,bool isOwnedByPackage)
{
if (link == null || link.Equals(new Uri(String.Empty, UriKind.Relative))) return string.Empty;
try
{
- string graphPath = DynamoGraphFromMDFilePath(link.AbsolutePath);
- return File.Exists(graphPath) ? graphPath : null;
+ string gp = DynamoGraphFromMDFilePath(link.AbsolutePath, isOwnedByPackage);
+ return File.Exists(gp) ? gp : null;
}
catch (Exception)
{
@@ -315,7 +324,7 @@ private void OnCurrentMdFileChanged(object sender, FileSystemEventArgs e)
var nodeAnnotationArgs = openDocumentationLinkEventArgs as OpenNodeAnnotationEventArgs;
this.content = CreateNodeAnnotationContent(nodeAnnotationArgs);
this.Link = new Uri(e.FullPath);
- this.graphPath = GetGraphLinkFromMDLocation(this.Link);
+ this.GraphPath = GetGraphLinkFromMDLocation(this.Link,nodeAnnotationArgs.PackageName != string.Empty);
}
private string CreateNodeAnnotationContent(OpenNodeAnnotationEventArgs e)
@@ -427,14 +436,15 @@ internal void InsertGraph()
if (raiseInsertGraph != null)
{
- if (graphPath != null)
+ if (GraphPath != null)
{
- var graphName = this.currentPackageName ?? Path.GetFileNameWithoutExtension(graphPath);
- raiseInsertGraph(this, new InsertDocumentationLinkEventArgs(graphPath, graphName));
+ var graphName = CurrentPackageName ?? Path.GetFileNameWithoutExtension(GraphPath);
+ raiseInsertGraph(this, new InsertDocumentationLinkEventArgs(GraphPath, graphName));
}
else
{
- raiseInsertGraph(this, new InsertDocumentationLinkEventArgs(Resources.FileNotFoundFailureMessage, DynamoGraphFromMDFilePath(this.Link.AbsolutePath)));
+ raiseInsertGraph(this, new InsertDocumentationLinkEventArgs(Resources.FileNotFoundFailureMessage,
+ DynamoGraphFromMDFilePath(this.Link.AbsolutePath,IsOwnedByPackage)));
return;
}
}
@@ -443,12 +453,20 @@ internal void InsertGraph()
internal delegate void InsertDocumentationLinkEventHandler(object sender, InsertDocumentationLinkEventArgs e);
internal event InsertDocumentationLinkEventHandler HandleInsertFile;
- private string DynamoGraphFromMDFilePath(string path)
+ private string DynamoGraphFromMDFilePath(string path, bool IsOwnedByPackage)
{
path = HttpUtility.UrlDecode(path);
- var rootLevelDir = Path.GetDirectoryName(path);
- var imagesLocation = Path.Combine(new DirectoryInfo(rootLevelDir).Parent.Parent.FullName, DocumentationBrowserView.SharedDocsDirectoryName);
- return Path.Combine(imagesLocation, Path.GetFileNameWithoutExtension(path)) + ".dyn";
+ if (!IsOwnedByPackage)
+ {
+
+ var sharedDocsLocation = Path.Combine(new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName,
+ DocumentationBrowserView.SharedDocsDirectoryName);
+ return Path.Combine(sharedDocsLocation, Path.GetFileNameWithoutExtension(path)) + ".dyn";
+ }
+ else
+ {
+ return Path.Combine(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(path)) + ".dyn";
+ }
}
diff --git a/src/Dynamo.All.sln b/src/Dynamo.All.sln
index e5b0e4c705b..01c0f093706 100644
--- a/src/Dynamo.All.sln
+++ b/src/Dynamo.All.sln
@@ -103,8 +103,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynamoCoreTests", "..\test\
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FFITarget", "..\test\Engine\FFITarget\FFITarget.csproj", "{C70FE632-5500-4C57-B3D6-9B5574137551}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynamoCrypto", "DynamoCrypto\DynamoCrypto.csproj", "{96643E77-C786-498C-AAA9-80E449854CE9}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtoTestFx", "..\test\Engine\ProtoTestFx\ProtoTestFx.csproj", "{2235F7CA-AB25-4177-92BC-4B574D2D5DF6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtoTest", "..\test\Engine\ProtoTest\ProtoTest.csproj", "{6E1177DB-5E4F-4E2E-82E7-902437E56AED}"
@@ -343,10 +341,6 @@ Global
{C70FE632-5500-4C57-B3D6-9B5574137551}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C70FE632-5500-4C57-B3D6-9B5574137551}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C70FE632-5500-4C57-B3D6-9B5574137551}.Release|Any CPU.Build.0 = Release|Any CPU
- {96643E77-C786-498C-AAA9-80E449854CE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {96643E77-C786-498C-AAA9-80E449854CE9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {96643E77-C786-498C-AAA9-80E449854CE9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {96643E77-C786-498C-AAA9-80E449854CE9}.Release|Any CPU.Build.0 = Release|Any CPU
{2235F7CA-AB25-4177-92BC-4B574D2D5DF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2235F7CA-AB25-4177-92BC-4B574D2D5DF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2235F7CA-AB25-4177-92BC-4B574D2D5DF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
diff --git a/src/DynamoCLI/CommandLineRunner.cs b/src/DynamoCLI/CommandLineRunner.cs
index 8b9a26547c0..b10f511bed6 100644
--- a/src/DynamoCLI/CommandLineRunner.cs
+++ b/src/DynamoCLI/CommandLineRunner.cs
@@ -1,4 +1,4 @@
-īģŋusing System;
+using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
@@ -46,7 +46,7 @@ private static XmlDocument RunCommandLineArgs(DynamoModel model, StartupUtils.Co
Console.WriteLine("geometryFilePath option is only available when running DynamoWPFCLI, not DynamoCLI");
}
- model.HostAnalyticsInfo = cmdLineArgs.AnalyticsInfo;
+ DynamoModel.HostAnalyticsInfo = cmdLineArgs.AnalyticsInfo;
cmdLineArgs.ImportedPaths.ToList().ForEach(path =>
{
diff --git a/src/DynamoCore/Configuration/Configurations.cs b/src/DynamoCore/Configuration/Configurations.cs
index fa2a42ea0fd..bd42b49c333 100644
--- a/src/DynamoCore/Configuration/Configurations.cs
+++ b/src/DynamoCore/Configuration/Configurations.cs
@@ -429,5 +429,12 @@ internal static Dictionary SupportedUnits
}
#endregion
+
+ #region Notifications Constants
+ ///
+ /// Request timeOut for notifications service
+ ///
+ public const int NotificationsDefaultTimeOut = 10000;
+ #endregion
}
}
diff --git a/src/DynamoCore/Configuration/GraphChecksumItem.cs b/src/DynamoCore/Configuration/GraphChecksumItem.cs
new file mode 100644
index 00000000000..a00b4538800
--- /dev/null
+++ b/src/DynamoCore/Configuration/GraphChecksumItem.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.ObjectModel;
+using Dynamo.Core;
+using Dynamo.Properties;
+
+namespace Dynamo.Configuration
+{
+ ///
+ /// Represents the stringified version of the nodes connections from a graph
+ ///
+ public class GraphChecksumItem
+ {
+ public string GraphId { get; set; }
+
+ public string Checksum { get; set; }
+ }
+}
diff --git a/src/DynamoCore/Configuration/IPreferences.cs b/src/DynamoCore/Configuration/IPreferences.cs
index e3d79c34c9a..7798668f18b 100644
--- a/src/DynamoCore/Configuration/IPreferences.cs
+++ b/src/DynamoCore/Configuration/IPreferences.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using Dynamo.Configuration;
using Dynamo.Graph.Connectors;
namespace Dynamo.Interfaces
@@ -146,6 +147,11 @@ public interface IPreferences
/// Background preview name
/// Active state to set
void SetIsBackgroundPreviewActive(string name, bool value);
+
+ ///
+ /// Return a list of GraphChecksumItems
+ ///
+ List GraphChecksumItemsList { get; set; }
}
///
diff --git a/src/DynamoCore/Configuration/PreferenceSettings.cs b/src/DynamoCore/Configuration/PreferenceSettings.cs
index 529585c287e..b21576a294c 100644
--- a/src/DynamoCore/Configuration/PreferenceSettings.cs
+++ b/src/DynamoCore/Configuration/PreferenceSettings.cs
@@ -6,6 +6,7 @@
using System.Reflection;
using System.Xml;
using System.Xml.Serialization;
+using Autodesk.DesignScript.Runtime;
using Dynamo.Core;
using Dynamo.Graph.Connectors;
using Dynamo.Interfaces;
@@ -68,6 +69,7 @@ internal readonly static Lazy
private bool isTimeStampIncludedInExportFilePath;
private bool isCreatedFromValidFile = true;
private string backupLocation;
+ private bool isMLAutocompleteTOUApproved;
#region Constants
///
@@ -464,6 +466,11 @@ public bool DisableTrustWarnings
///
private List trustedLocations { get; set; } = new List();
+ ///
+ /// Return a list of GraphChecksumItems
+ ///
+ public List GraphChecksumItemsList { get; set; }
+
// This function is used to deserialize the trusted locations manually
// so that the TrustedLocation propertie's setter does not need to be public.
private List DeserializeTrustedLocations(XmlNode preferenceSettingsElement)
@@ -619,6 +626,15 @@ public string PythonTemplateFilePath
///
public bool EnableNodeAutoComplete { get; set; }
+ ///
+ /// PolyCurve normal and direction behavior has been made predictable in Dynamo 3.0 and has therefore changed.
+ /// This defines whether legacy (pre-3.0) PolyCurve behavior is selected by default.
+ /// This flag can be overridden by individual workspaces that have the EnableLegacyPolyCurveBehavior flag defined.
+ /// Note: For internal use only and will be removed in a future version of Dynamo.
+ ///
+ [IsObsolete("This property will be removed in a future version of Dynamo.")]
+ public bool DefaultEnableLegacyPolyCurveBehavior { get; set; }
+
///
/// This defines if user wants to hide the nodes below a specific confidenc level.
///
@@ -687,6 +703,21 @@ public bool EnableStaticSplashScreen
}
}
+ ///
+ /// This defines if the user is agree to the ML Automcomplete Terms of Use
+ ///
+ public bool IsMLAutocompleteTOUApproved
+ {
+ get
+ {
+ return isMLAutocompleteTOUApproved;
+ }
+ set
+ {
+ isMLAutocompleteTOUApproved = value;
+ }
+ }
+
///
/// Engine used by default for new Python script and string nodes. If not empty, this takes precedence over any system settings.
///
@@ -841,6 +872,12 @@ public string IronPythonResolveTargetVersion
#region Dynamo Player and Generative Design settings
+ ///
+ /// Enable legacy behavior for Dynamo Player to allow renamed Watch nodes to be seen as graph output.
+ /// This flag is for use in the 2024 product release year and can removed for 2025
+ ///
+ public bool EnableDynamoPlayerRenamedWatchAsOutput { get; set; }
+
///
/// Collections of folders used by individual Dynamo Player or Generative Design as entry points.
///
@@ -902,6 +939,7 @@ public PreferenceSettings()
IsIronPythonDialogDisabled = false;
ShowTabsAndSpacesInScriptEditor = false;
EnableNodeAutoComplete = true;
+ DefaultEnableLegacyPolyCurveBehavior = true;
HideNodesBelowSpecificConfidenceLevel = false;
MLRecommendationConfidenceLevel = 10;
MLRecommendationNumberOfResults = 10;
@@ -913,8 +951,11 @@ public PreferenceSettings()
ViewExtensionSettings = new List();
GroupStyleItemsList = new List();
ReadNotificationIds = new List();
+ EnableDynamoPlayerRenamedWatchAsOutput = false;
DynamoPlayerFolderGroups = new List();
backupLocation = string.Empty;
+ GraphChecksumItemsList = new List();
+ isMLAutocompleteTOUApproved = false;
}
///
@@ -994,7 +1035,6 @@ public static PreferenceSettings Load(string filePath)
return new PreferenceSettings() { isCreatedFromValidFile = false };
}
}
-
settings.CustomPackageFolders = settings.CustomPackageFolders.Distinct().ToList();
settings.GroupStyleItemsList = settings.GroupStyleItemsList.GroupBy(entry => entry.Name).Select(result => result.First()).ToList();
MigrateStdLibTokenToBuiltInToken(settings);
diff --git a/src/DynamoCore/Core/IDSDKManager.cs b/src/DynamoCore/Core/IDSDKManager.cs
index 5b5d7cc7fbf..b3411d11d78 100644
--- a/src/DynamoCore/Core/IDSDKManager.cs
+++ b/src/DynamoCore/Core/IDSDKManager.cs
@@ -10,7 +10,7 @@ namespace Dynamo.Core
///
/// The class to provide auth APIs for IDSDK related methods.
///
- public class IDSDKManager : IOAuth2AuthProvider, IOAuth2AccessTokenProvider
+ public class IDSDKManager : IOAuth2AuthProvider, IOAuth2AccessTokenProvider, IDisposable
{
///
/// Used by the auth provider to request authentication.
@@ -228,8 +228,10 @@ private bool Initialize()
}
bool ret = GetClientIDAndServer(out idsdk_server server, out string client_id);
- if (ret)
+ if (ret)
{
+ Client.LogoutCompleteEvent += AuthCompleteEventHandler;
+ Client.LoginCompleteEvent += AuthCompleteEventHandler;
ret = SetProductConfigs("Dynamo", server, client_id);
Client.SetServer(server);
return ret;
@@ -253,6 +255,11 @@ private bool Deinitialize()
}
return false;
}
+ public void Dispose()
+ {
+ Client.LoginCompleteEvent -= AuthCompleteEventHandler;
+ Client.LogoutCompleteEvent -= AuthCompleteEventHandler;
+ }
private bool GetClientIDAndServer(out idsdk_server server, out string client_id)
{
server = idsdk_server.IDSDK_PRODUCTION_SERVER;
@@ -273,6 +280,12 @@ private bool GetClientIDAndServer(out idsdk_server server, out string client_id)
}
return !string.IsNullOrEmpty(client_id);
}
+
+ // Event handler for LogoutCompleteEvent and LoginCompleteEvent that is thrown whenever the user's auth state changes.
+ private void AuthCompleteEventHandler(object sender, Client.TypedEventArgs e)
+ {
+ OnLoginStateChanged(LoginState);
+ }
#endregion
}
}
diff --git a/src/DynamoCore/DynamoCore.csproj b/src/DynamoCore/DynamoCore.csproj
index c53292d0eb3..c7d68ccebc2 100644
--- a/src/DynamoCore/DynamoCore.csproj
+++ b/src/DynamoCore/DynamoCore.csproj
@@ -19,7 +19,7 @@
-
+
@@ -27,15 +27,15 @@
-
-
-
+
+
+
-
+
-
+
@@ -111,31 +111,32 @@
$(PkgDynamoVisualProgramming_LibG_229_0_0)\tools\libg_locale
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -169,15 +170,15 @@
-
+
-
+
-
+
-
+
diff --git a/src/DynamoCore/Engine/EngineController.cs b/src/DynamoCore/Engine/EngineController.cs
index 78d7f984753..63b9b665a95 100644
--- a/src/DynamoCore/Engine/EngineController.cs
+++ b/src/DynamoCore/Engine/EngineController.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Runtime.Serialization;
using Dynamo.Engine.CodeCompletion;
using Dynamo.Engine.CodeGeneration;
using Dynamo.Engine.NodeToCode;
@@ -10,6 +9,7 @@
using Dynamo.Graph.Workspaces;
using Dynamo.Logging;
using Dynamo.Scheduler;
+using Dynamo.Utilities;
using ProtoCore.AST.AssociativeAST;
using ProtoCore.DSASM.Mirror;
using ProtoCore.Mirror;
@@ -44,6 +44,11 @@ public class EngineController : LogSourceBase, IAstNodeContainer, IDisposable
///
internal static event Action VMLibrariesReset;
+ ///
+ /// Dynamo version in which the current workspace was last created or modified.
+ ///
+ internal Version CurrentWorkspaceVersion { get; set; }
+
///
/// This event is fired when is completed.
///
@@ -153,6 +158,8 @@ public EngineController(LibraryServices libraryServices, string geometryFactoryF
syncDataManager = new SyncDataManager();
VerboseLogging = verboseLogging;
+
+ CurrentWorkspaceVersion = AssemblyHelper.GetDynamoVersion();
}
///
@@ -523,7 +530,7 @@ internal void ReconcileTraceDataAndNotify()
throw new ObjectDisposedException("EngineController");
}
- var callsiteToOrphanMap = new Dictionary>();
+ var callsiteToOrphanMap = new Dictionary>();
foreach (var cs in liveRunnerServices.RuntimeCore.RuntimeData.CallsiteCache.Values)
{
var orphanedSerializables = cs.GetOrphanedSerializables().ToList();
@@ -673,11 +680,11 @@ internal bool PreCompileCodeBlock(ParseParam parseParams)
internal class TraceReconciliationEventArgs : EventArgs
{
///
- /// A list of ISerializable items.
+ /// A list of string items.
///
- public Dictionary> CallsiteToOrphanMap { get; private set; }
+ public Dictionary> CallsiteToOrphanMap { get; private set; }
- public TraceReconciliationEventArgs(Dictionary> callsiteToOrphanMap)
+ public TraceReconciliationEventArgs(Dictionary> callsiteToOrphanMap)
{
CallsiteToOrphanMap = callsiteToOrphanMap;
}
@@ -685,6 +692,6 @@ public TraceReconciliationEventArgs(Dictionary> callsi
public interface ITraceReconciliationProcessor
{
- void PostTraceReconciliation(Dictionary> orphanedSerializables);
+ void PostTraceReconciliation(Dictionary> orphanedSerializables);
}
}
diff --git a/src/DynamoCore/Extensions/ReadyParams.cs b/src/DynamoCore/Extensions/ReadyParams.cs
index bf0a25c58ab..8de32c8fe06 100644
--- a/src/DynamoCore/Extensions/ReadyParams.cs
+++ b/src/DynamoCore/Extensions/ReadyParams.cs
@@ -1,4 +1,4 @@
-īģŋusing System;
+using System;
using System.Collections.Generic;
using System.ComponentModel;
using Dynamo.Graph.Workspaces;
@@ -78,7 +78,7 @@ public virtual ICommandExecutive CommandExecutive
///
/// HostInfo object, Useful to determine what host context Dynamo is running in.
///
- internal HostAnalyticsInfo HostInfo => dynamoModel.HostAnalyticsInfo;
+ internal HostAnalyticsInfo HostInfo => DynamoModel.HostAnalyticsInfo;
///
diff --git a/src/DynamoCore/Extensions/StartupParams.cs b/src/DynamoCore/Extensions/StartupParams.cs
index 3820c74ca7d..033a800e4f5 100644
--- a/src/DynamoCore/Extensions/StartupParams.cs
+++ b/src/DynamoCore/Extensions/StartupParams.cs
@@ -120,7 +120,7 @@ internal StartupParams(DynamoModel dynamoModel)
pathManager = dynamoModel.PathManager;
libraryLoader = new ExtensionLibraryLoader(dynamoModel);
customNodeManager = dynamoModel.CustomNodeManager;
- dynamoVersion = new Version(dynamoModel.Version);
+ dynamoVersion = new Version(DynamoModel.Version);
preferences = dynamoModel.PreferenceSettings;
linterManager = dynamoModel.LinterManager;
IsGeometryLibraryLoaded = dynamoModel.IsASMLoaded;
diff --git a/src/DynamoCore/Graph/Nodes/NodeCategories.cs b/src/DynamoCore/Graph/Nodes/NodeCategories.cs
index 54c06acdd8b..47f94374d94 100644
--- a/src/DynamoCore/Graph/Nodes/NodeCategories.cs
+++ b/src/DynamoCore/Graph/Nodes/NodeCategories.cs
@@ -1,4 +1,4 @@
-īģŋusing System;
+using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -7,7 +7,6 @@
using System.Xml;
using Dynamo.Configuration;
using Dynamo.Engine;
-using Dynamo.Graph.Nodes.CustomNodes;
using Dynamo.Library;
using ProtoCore;
@@ -282,7 +281,7 @@ internal static string GetDocumentXmlPath(XmlDocument document)
/// Returns a dictionary of deserialized node-data-list pairs
/// loaded from the given XmlDocument.
internal static IEnumerable>>
- LoadTraceDataFromXmlDocument(XmlDocument document)
+ LoadTraceDataFromXmlDocument(XmlDocument document, out bool containsLegacyTraceData)
{
if (document == null)
throw new ArgumentNullException("document");
@@ -301,7 +300,10 @@ where childNode.Name.Equals(sessionXmlTagName)
var loadedData = new Dictionary>();
if (!query.Any()) // There's no data, return empty dictionary.
+ {
+ containsLegacyTraceData = false;
return loadedData;
+ }
XmlElement sessionElement = query.ElementAt(0);
foreach (XmlElement nodeElement in sessionElement.ChildNodes)
@@ -313,14 +315,12 @@ where childNode.Name.Equals(sessionXmlTagName)
var callsiteId = string.Empty;
if (child.HasAttribute(Configurations.CallSiteID))
{
- callsiteId = child.GetAttribute(Configurations.CallSiteID);
+ containsLegacyTraceData = true;
+ return loadedData;
}
- var traceData = child.InnerText;
- callsiteTraceData.Add(new CallSite.RawTraceData(callsiteId, traceData));
}
- loadedData.Add(guid, callsiteTraceData);
}
-
+ containsLegacyTraceData = false;
return loadedData;
}
diff --git a/src/DynamoCore/Graph/Nodes/NodeInputData.cs b/src/DynamoCore/Graph/Nodes/NodeInputData.cs
index 3b572da1e21..e0a7ce8b617 100644
--- a/src/DynamoCore/Graph/Nodes/NodeInputData.cs
+++ b/src/DynamoCore/Graph/Nodes/NodeInputData.cs
@@ -127,7 +127,7 @@ public NodeInputTypes Type
/// The index of the selected item.
///
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
- public int SelectedIndex { get; set; }
+ public int? SelectedIndex { get; set; }
private static Dictionary dotNetTypeToNodeInputType = new Dictionary
{
diff --git a/src/DynamoCore/Graph/Workspaces/CustomNodeWorkspaceModel.cs b/src/DynamoCore/Graph/Workspaces/CustomNodeWorkspaceModel.cs
index cc3dc6bd1ab..add23d7f767 100644
--- a/src/DynamoCore/Graph/Workspaces/CustomNodeWorkspaceModel.cs
+++ b/src/DynamoCore/Graph/Workspaces/CustomNodeWorkspaceModel.cs
@@ -4,7 +4,6 @@
using System.Diagnostics;
using System.IO;
using System.Linq;
-using System.Xml;
using Dynamo.Engine;
using Dynamo.Graph.Annotations;
using Dynamo.Graph.Nodes;
@@ -315,23 +314,5 @@ public override void Save(string newPath, bool isBackup = false, EngineControlle
base.Save(newPath, isBackup, engine);
}
-
- [Obsolete("Method will be deprecated in Dynamo 3.0.")]
- protected override bool PopulateXmlDocument(XmlDocument document)
- {
- if (!base.PopulateXmlDocument(document))
- return false;
-
- var root = document.DocumentElement;
- if (root == null)
- return false;
-
- var guid = CustomNodeDefinition != null ? CustomNodeDefinition.FunctionId : Guid.NewGuid();
- root.SetAttribute("ID", guid.ToString());
- root.SetAttribute("Description", Description);
- root.SetAttribute("Category", Category);
-
- return true;
- }
}
}
diff --git a/src/DynamoCore/Graph/Workspaces/HomeWorkspaceModel.cs b/src/DynamoCore/Graph/Workspaces/HomeWorkspaceModel.cs
index 3234073dc57..fece34b574f 100644
--- a/src/DynamoCore/Graph/Workspaces/HomeWorkspaceModel.cs
+++ b/src/DynamoCore/Graph/Workspaces/HomeWorkspaceModel.cs
@@ -1,12 +1,10 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
-using System.Globalization;
using System.Linq;
-using System.Runtime.Serialization;
-using System.Xml;
using Dynamo.Core;
using Dynamo.Engine;
+using Dynamo.Events;
using Dynamo.Extensions;
using Dynamo.Graph.Annotations;
using Dynamo.Graph.Nodes;
@@ -125,6 +123,25 @@ public Uri GraphDocumentationURL
}
}
+ private bool? enableLegacyPolyCurveBehavior;
+ ///
+ /// PolyCurve normal and direction behavior has been made predictable in Dynamo 3.0 and has therefore changed.
+ /// This reflects whether legacy (pre-3.0) PolyCurve behavior is selected either in preference settings or in the workspace.
+ /// A workspace setting if exists, overrides the default preference setting.
+ ///
+ [JsonProperty]
+ internal bool? EnableLegacyPolyCurveBehavior
+ {
+ get { return enableLegacyPolyCurveBehavior; }
+ set
+ {
+ if(value == null) return;
+
+ enableLegacyPolyCurveBehavior = value;
+ WorkspaceEvents.OnWorkspaceSettingsChanged(enableLegacyPolyCurveBehavior.GetValueOrDefault());
+ }
+ }
+
///
/// Workspace thumbnail as Base64 string.
@@ -644,24 +661,7 @@ internal void StopPeriodicEvaluation()
}
#endregion
-
- [Obsolete("Method will be deprecated in Dynamo 3.0.")]
- protected override bool PopulateXmlDocument(XmlDocument document)
- {
- if (!base.PopulateXmlDocument(document))
- return false;
-
- var root = document.DocumentElement;
- if (root == null)
- return false;
-
- root.SetAttribute("RunType", RunSettings.RunType.ToString());
- root.SetAttribute("RunPeriod", RunSettings.RunPeriod.ToString(CultureInfo.InvariantCulture));
- root.SetAttribute("HasRunWithoutCrash", HasRunWithoutCrash.ToString(CultureInfo.InvariantCulture));
-
- return true;
- }
-
+
private void PulseMakerRunStarted()
{
var nodesToUpdate = Nodes.Where(n => n.CanUpdatePeriodically);
@@ -737,7 +737,7 @@ private void OnUpdateGraphCompleted(AsyncTask task)
// Runtime warnings take precedence over build warnings.
foreach (var warning in updateTask.RuntimeWarnings)
{
- var message = string.Join(Environment.NewLine, warning.Value.Select(w => w.Message));
+ var message = string.Join(Environment.NewLine + Environment.NewLine, warning.Value.Select(w => w.Message));
warnings.Add(warning.Key, message);
}
@@ -941,13 +941,13 @@ private void OnPreviewGraphCompleted(AsyncTask asyncTask)
#endregion
///
- /// Returns a list of ISerializable items which exist in the preloaded
+ /// Returns a list of string items which exist in the preloaded
/// trace data but do not exist in the current CallSite data.
///
///
- internal IList GetOrphanedSerializablesAndClearHistoricalTraceData()
+ internal IList GetOrphanedSerializablesAndClearHistoricalTraceData()
{
- var orphans = new List();
+ var orphans = new List();
if (historicalTraceData == null) return orphans;
diff --git a/src/DynamoCore/Graph/Workspaces/SerializationConverters.cs b/src/DynamoCore/Graph/Workspaces/SerializationConverters.cs
index 4e8776cd52b..4fa4b7dda3d 100644
--- a/src/DynamoCore/Graph/Workspaces/SerializationConverters.cs
+++ b/src/DynamoCore/Graph/Workspaces/SerializationConverters.cs
@@ -522,8 +522,8 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
var name = obj["Name"].Value();
var elementResolver = obj["ElementResolver"].ToObject(serializer);
- var nmc = (NodeReadConverter)serializer.Converters.First(c => c is NodeReadConverter);
- nmc.ElementResolver = elementResolver;
+ var nrc = (NodeReadConverter)serializer.Converters.First(c => c is NodeReadConverter);
+ nrc.ElementResolver = elementResolver;
var nodes = obj["Nodes"].ToObject>(serializer);
@@ -679,27 +679,38 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
#region Restore trace data
// Trace Data
Dictionary> loadedTraceData = new Dictionary>();
+ bool containsLegacyTraceData = false;
// Restore trace data if bindings are present in json
if (obj["Bindings"] != null && obj["Bindings"].Children().Count() > 0)
{
- JEnumerable bindings = obj["Bindings"].Children();
+ var wrc = serializer.Converters.First(c => c is WorkspaceReadConverter) as WorkspaceReadConverter;
- // Iterate through bindings to extract nodeID's and bindingData (callsiteId & traceData)
- foreach (JToken entity in bindings)
+ if (wrc.engine.CurrentWorkspaceVersion < new Version(3, 0, 0))
{
- Guid nodeId = Guid.Parse(entity["NodeId"].ToString());
- string bindingString = entity["Binding"].ToString();
-
- // Key(callsiteId) : Value(traceData)
- Dictionary bindingData = JsonConvert.DeserializeObject>(bindingString);
- List callsiteTraceData = new List();
+ containsLegacyTraceData = true;
+ }
+ else
+ {
+ JEnumerable bindings = obj["Bindings"].Children();
- foreach (KeyValuePair pair in bindingData)
+ // Iterate through bindings to extract nodeID's and bindingData (callsiteId & traceData)
+ foreach (JToken entity in bindings)
{
- callsiteTraceData.Add(new CallSite.RawTraceData(pair.Key, pair.Value));
- }
+ Guid nodeId = Guid.Parse(entity["NodeId"].ToString());
+ string bindingString = entity["Binding"].ToString();
- loadedTraceData.Add(nodeId, callsiteTraceData);
+ // Key(callsiteId) : Value(traceData)
+ Dictionary bindingData =
+ JsonConvert.DeserializeObject>(bindingString);
+ List callsiteTraceData = new List();
+
+ foreach (KeyValuePair pair in bindingData)
+ {
+ callsiteTraceData.Add(new CallSite.RawTraceData(pair.Key, pair.Value));
+ }
+
+ loadedTraceData.Add(nodeId, callsiteTraceData);
+ }
}
}
#endregion
@@ -717,11 +728,15 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
Enumerable.Empty(), elementResolver,
info, verboseLogging, isTestMode, linterManager);
+ // EnableLegacyPolyCurveBehavior
+ var enable = obj[nameof(HomeWorkspaceModel.EnableLegacyPolyCurveBehavior)];
+ homeWorkspace.EnableLegacyPolyCurveBehavior = enable?.Value();
+
// Thumbnail
if (obj.TryGetValue(nameof(HomeWorkspaceModel.Thumbnail), StringComparison.OrdinalIgnoreCase, out JToken thumbnail))
homeWorkspace.Thumbnail = thumbnail.ToString();
- // GraphDocumentaionLink
+ // GraphDocumentationLink
if (obj.TryGetValue(nameof(HomeWorkspaceModel.GraphDocumentationURL), StringComparison.OrdinalIgnoreCase, out JToken helpLink))
{
if (Uri.TryCreate(helpLink.ToString(), UriKind.Absolute, out Uri uri))
@@ -734,6 +749,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
// If there is a active linter serialized in the graph we set it to the active linter else set the default None.
SetActiveLinter(obj);
+
ws = homeWorkspace;
}
@@ -742,7 +758,9 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
ws.ExternalFiles = externalFiles;
if (obj.TryGetValue(nameof(WorkspaceModel.Author), StringComparison.OrdinalIgnoreCase, out JToken author))
ws.Author = author.ToString();
-
+
+ ws.ContainsLegacyTraceData = containsLegacyTraceData;
+
return ws;
}
@@ -850,7 +868,7 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
// Element resolver
writer.WritePropertyName("ElementResolver");
serializer.Serialize(writer, ws.ElementResolver);
-
+
// Inputs
writer.WritePropertyName("Inputs");
// Find nodes which are inputs and get their inputData if its not null.
@@ -920,6 +938,10 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
if (!isCustomNode && ws is HomeWorkspaceModel hws)
{
+ // EnableLegacyPolyCurveBehavior
+ writer.WritePropertyName(nameof(HomeWorkspaceModel.EnableLegacyPolyCurveBehavior));
+ serializer.Serialize(writer, hws.EnableLegacyPolyCurveBehavior);
+
// Thumbnail
writer.WritePropertyName(nameof(HomeWorkspaceModel.Thumbnail));
writer.WriteValue(hws.Thumbnail);
diff --git a/src/DynamoCore/Graph/Workspaces/WorkspaceModel.cs b/src/DynamoCore/Graph/Workspaces/WorkspaceModel.cs
index b31a1025553..f11681ff4fe 100644
--- a/src/DynamoCore/Graph/Workspaces/WorkspaceModel.cs
+++ b/src/DynamoCore/Graph/Workspaces/WorkspaceModel.cs
@@ -8,7 +8,6 @@
using System.Reflection;
using System.Threading;
using System.Xml;
-using Dynamo.Configuration;
using Dynamo.Core;
using Dynamo.Engine;
using Dynamo.Engine.CodeGeneration;
@@ -233,6 +232,11 @@ internal int CurrentPasteOffset
}
}
+ ///
+ /// This is true only if the workspace contains legacy SOAP formatted binding data.
+ ///
+ internal bool ContainsLegacyTraceData { get; set; }
+
internal bool ScaleFactorChanged = false;
///
@@ -1280,9 +1284,6 @@ public Rect2D Rect
get { return new Rect2D(x, y, width, height); }
}
- //TODO(Steve): This probably isn't needed inside of WorkspaceModel -- MAGN-5714
- internal Version WorkspaceVersion { get; set; }
-
///
/// Implements property.
///
@@ -1332,7 +1333,6 @@ internal set
WorkspaceEvents.OnWorkspaceSettingsChanged(scaleFactor);
}
}
-
#endregion
#region constructors
@@ -1373,7 +1373,6 @@ protected WorkspaceModel(
IsReadOnly = DynamoUtilities.PathHelper.IsReadOnlyPath(fileName);
LastSaved = DateTime.Now;
- WorkspaceVersion = AssemblyHelper.GetDynamoVersion();
undoRecorder = new UndoRedoRecorder(this);
NodeFactory = factory;
@@ -2013,7 +2012,7 @@ internal bool IsValidForFDX
{
get
{
- return !HasErrors && !HasNoneGeometryRelatedWarnings;
+ return Nodes.Count() > 1 && !HasErrors && !HasNoneGeometryRelatedWarnings;
}
}
@@ -2063,94 +2062,6 @@ private void SerializeElementResolver(XmlDocument xmlDoc)
root.AppendChild(mapElement);
}
- [Obsolete("Method will be deprecated in Dynamo 3.0.")]
- protected virtual bool PopulateXmlDocument(XmlDocument xmlDoc)
- {
- try
- {
- var root = xmlDoc.DocumentElement;
- root.SetAttribute("Version", WorkspaceVersion.ToString());
- root.SetAttribute("X", X.ToString(CultureInfo.InvariantCulture));
- root.SetAttribute("Y", Y.ToString(CultureInfo.InvariantCulture));
- root.SetAttribute("ScaleFactor", ScaleFactor.ToString(CultureInfo.InvariantCulture));
- root.SetAttribute("Name", Name);
- root.SetAttribute("Description", Description);
-
- SerializeElementResolver(xmlDoc);
-
- var elementList = xmlDoc.CreateElement("Elements");
- //write the root element
- root.AppendChild(elementList);
-
- foreach (var dynEl in Nodes.Select(el => el.Serialize(xmlDoc, SaveContext.Save)))
- elementList.AppendChild(dynEl);
-
- //write only the output connectors
- var connectorList = xmlDoc.CreateElement("Connectors");
- //write the root element
- root.AppendChild(connectorList);
-
- foreach (var el in Nodes)
- {
- foreach (var port in el.OutPorts)
- {
- foreach (
- var c in
- port.Connectors.Where(c => c.Start != null && c.End != null))
- {
- var connector = xmlDoc.CreateElement(c.GetType().ToString());
- connectorList.AppendChild(connector);
- connector.SetAttribute("start", c.Start.Owner.GUID.ToString());
- connector.SetAttribute("start_index", c.Start.Index.ToString());
- connector.SetAttribute("end", c.End.Owner.GUID.ToString());
- connector.SetAttribute("end_index", c.End.Index.ToString());
- connector.SetAttribute(nameof(ConnectorModel.IsHidden), c.IsHidden.ToString());
-
- if (c.End.PortType == PortType.Input)
- connector.SetAttribute("portType", "0");
- }
- }
- }
-
- //save the notes
- var noteList = xmlDoc.CreateElement("Notes"); //write the root element
- root.AppendChild(noteList);
- foreach (var n in Notes)
- {
- var note = n.Serialize(xmlDoc, SaveContext.Save);
- noteList.AppendChild(note);
- }
-
- //save the annotation
- var annotationList = xmlDoc.CreateElement("Annotations");
- root.AppendChild(annotationList);
- foreach (var n in annotations)
- {
- var annotation = n.Serialize(xmlDoc, SaveContext.Save);
- annotationList.AppendChild(annotation);
- }
-
- //save the presets into the dyn file as a seperate element on the root
- var presetsElement = xmlDoc.CreateElement("Presets");
- root.AppendChild(presetsElement);
- foreach (var preset in Presets)
- {
- var presetState = preset.Serialize(xmlDoc, SaveContext.Save);
- presetsElement.AppendChild(presetState);
- }
-
- OnSaving(xmlDoc);
-
- return true;
- }
- catch (Exception ex)
- {
- Log(ex.Message);
- Log(ex.StackTrace);
- return false;
- }
- }
-
internal void SendModelEvent(Guid modelGuid, string eventName, int value)
{
var retrievedModel = GetModelInternal(modelGuid);
diff --git a/src/DynamoCore/Logging/AnalyticsService.cs b/src/DynamoCore/Logging/AnalyticsService.cs
index 9af4b8333c7..500796725dc 100644
--- a/src/DynamoCore/Logging/AnalyticsService.cs
+++ b/src/DynamoCore/Logging/AnalyticsService.cs
@@ -1,4 +1,3 @@
-using Dynamo.Graph.Workspaces;
using Dynamo.Models;
using Autodesk.Analytics.ADP;
using Autodesk.Analytics.Core;
@@ -9,49 +8,29 @@ namespace Dynamo.Logging
///
/// Utility class to support analytics tracking.
///
- class AnalyticsService
+ internal class AnalyticsService
{
// Use the Analytics.Core interface so that we do not have to load the ADP assembly at this time.
private static IAnalyticsUI adpAnalyticsUI;
///
- /// Starts the client when DynamoModel is created. This method initializes
+ /// Indicates that we don't want to shut down analytics when DynamoModel shuts down.
+ /// Sometimes we want to keep Analytics service running even when we don't have a DynamoModel started.
+ ///
+ internal static bool KeepAlive { get; set; }
+
+ ///
+ /// Starts the Analytics client. This method initializes
/// the Analytics service and application life cycle start is tracked.
///
- /// DynamoModel
- /// Analytics won't be started if IsHeadless, but ADP may be loaded to be disabled.
- /// Analytics won't be started if isTestMode, ADP will not be loaded.
- internal static void Start(DynamoModel model, bool isHeadless, bool isTestMode)
+ internal static void Start()
{
- if (isTestMode)
- {
- if (Analytics.DisableAnalytics)
- {
- model.Logger.Log("Incompatible configuration: [IsTestMode] and [Analytics disabled] ");
- }
- return;
- }
-
- if (isHeadless)
- {
- return;
- }
-
// Initialize the concrete class only when we initialize the Service.
// This will also load the Analytics.Net.ADP assembly
// We must initialize the ADPAnalyticsUI instance before the Analytics.Start call.
adpAnalyticsUI = new ADPAnalyticsUI();
- Analytics.Start(new DynamoAnalyticsClient(model));
- model.WorkspaceAdded += OnWorkspaceAdded;
- }
-
- static void OnWorkspaceAdded(WorkspaceModel obj)
- {
- if (obj is CustomNodeWorkspaceModel)
- Analytics.TrackScreenView("CustomWorkspace");
- else
- Analytics.TrackScreenView("Workspace");
+ Analytics.Start(new DynamoAnalyticsClient(DynamoModel.HostAnalyticsInfo));
}
///
@@ -99,7 +78,10 @@ internal static bool IsADPAvailable()
///
internal static void ShutDown()
{
- Analytics.ShutDown();
+ if (!KeepAlive)
+ {
+ Analytics.ShutDown();
+ }
}
///
@@ -113,6 +95,7 @@ internal static void ShowADPConsentDialog(IntPtr? host)
adpAnalyticsUI.ShowOptInDialog(System.Threading.Thread.CurrentThread.CurrentUICulture.Name, false, host);
}
}
+
internal static string GetUserIDForSession()
{
if (Analytics.client is DynamoAnalyticsClient dac)
diff --git a/src/DynamoCore/Logging/DynamoAnalyticsClient.cs b/src/DynamoCore/Logging/DynamoAnalyticsClient.cs
index 7c72eff1b74..0e8471136ce 100644
--- a/src/DynamoCore/Logging/DynamoAnalyticsClient.cs
+++ b/src/DynamoCore/Logging/DynamoAnalyticsClient.cs
@@ -1,9 +1,10 @@
using System;
using System.Diagnostics;
+using System.Threading;
+using System.Threading.Tasks;
using Autodesk.Analytics.ADP;
using Autodesk.Analytics.Core;
using Autodesk.Analytics.Events;
-using Dynamo.Interfaces;
using Dynamo.Models;
using Microsoft.Win32;
@@ -17,7 +18,7 @@ public DynamoAnalyticsSession()
SessionId = Guid.NewGuid().ToString();
}
- public void Start(DynamoModel model)
+ public void Start()
{
StabilityCookie.Startup();
}
@@ -68,8 +69,11 @@ public static String GetUserID()
///
/// Dynamo specific implementation of IAnalyticsClient
///
- class DynamoAnalyticsClient : IAnalyticsClient, IDisposable
+ internal class DynamoAnalyticsClient : IAnalyticsClient, IDisposable
{
+ private readonly ManualResetEventSlim serviceInitialized = new ManualResetEventSlim(false);
+ private readonly object trackEventLockObj = new object();
+
///
/// A dummy IDisposable class
///
@@ -84,8 +88,6 @@ public void Dispose() { }
private const string ANALYTICS_PROPERTY = "UA-52186525-1";
#endif
- private readonly IPreferences preferences = null;
-
public static IDisposable Disposable { get { return new Dummy(); } }
private readonly ProductInfo product;
@@ -107,29 +109,24 @@ public bool ReportingAnalytics
}
///
- /// Constructs DynamoAnalyticsClient with given DynamoModel
+ /// Constructs DynamoAnalyticsClient from existing HostAnalyticsInfo
///
- /// DynamoModel
- public DynamoAnalyticsClient(DynamoModel dynamoModel)
+ public DynamoAnalyticsClient(HostAnalyticsInfo hostAnalyticsInfo)
{
- //Set the preferences, so that we can get live value of analytics
- //reporting approved status.
- preferences = dynamoModel.PreferenceSettings;
-
if (Session == null) Session = new DynamoAnalyticsSession();
//Setup Analytics service, and StabilityCookie.
- Session.Start(dynamoModel);
+ Session.Start();
//Dynamo app version.
- var appversion = dynamoModel.AppVersion;
+ var appversion = DynamoModel.AppVersion;
- var hostName = string.IsNullOrEmpty(dynamoModel.HostName) ? "Dynamo" : dynamoModel.HostName;
+ var hostName = string.IsNullOrEmpty(hostAnalyticsInfo.HostName) ? "Dynamo" : hostAnalyticsInfo.HostName;
- hostInfo = new HostContextInfo() { ParentId = dynamoModel.HostAnalyticsInfo.ParentId, SessionId = dynamoModel.HostAnalyticsInfo.SessionId };
+ hostInfo = new HostContextInfo() { ParentId = hostAnalyticsInfo.ParentId, SessionId = hostAnalyticsInfo.SessionId };
string buildId = String.Empty, releaseId = String.Empty;
- if (Version.TryParse(dynamoModel.Version, out Version version))
+ if (Version.TryParse(DynamoModel.Version, out Version version))
{
buildId = $"{version.Major}.{version.Minor}.{version.Build}"; // BuildId has the following format major.minor.build, ex: 2.5.1
releaseId = $"{version.Major}.{version.Minor}.0"; // ReleaseId has the following format: major.minor.0; ex: 2.5.0
@@ -148,16 +145,9 @@ private void RegisterADPTracker(Service service)
}
}
- ///
- /// Starts the client when DynamoModel is created. This method initializes
- /// the Analytics service and application life cycle start is tracked.
- ///
- public void Start()
+ private void StartInternal()
{
- // Start Analytics service regardless of optin status.
- // Each track event will be enabled/disabled based on the corresponding optin status.
- // Ex. ADP will manage optin status internally
- if (preferences != null && !Analytics.DisableAnalytics)
+ if (!Analytics.DisableAnalytics)
{
//Register trackers
var service = Service.Instance;
@@ -167,102 +157,214 @@ public void Start()
RegisterADPTracker(service);
//If not ReportingAnalytics, then set the idle time as infinite so idle state is not recorded.
- Service.StartUp(product, new UserInfo(Session.UserId), hostInfo, TimeSpan.FromMinutes(30));
- TrackPreferenceInternal("ReportingAnalytics", "", ReportingAnalytics ? 1 : 0);
+ Service.StartUp(product, new UserInfo(Session.UserId), hostInfo, TimeSpan.FromMinutes(30));
}
+
+ serviceInitialized.Set();
+ }
+ ///
+ /// Starts the client when DynamoModel is created. This method initializes
+ /// the Analytics service and application life cycle start is tracked.
+ ///
+ public void Start()
+ {
+ // Start Analytics service regardless of optin status.
+ // Each track event will be enabled/disabled based on the corresponding optin status.
+ // Ex. ADP will manage optin status internally
+ Task.Run(() => StartInternal());
+
+ TrackPreference("ReportingAnalytics", "", ReportingAnalytics ? 1 : 0);
}
public void ShutDown()
{
+ if (!Analytics.DisableAnalytics) serviceInitialized.Wait();
Dispose();
}
public void TrackEvent(Actions action, Categories category, string description, int? value)
{
- if (!ReportingAnalytics) return;
+ if (Analytics.DisableAnalytics) return;
- var e = AnalyticsEvent.Create(category.ToString(), action.ToString(), description, value);
- e.Track();
+ Task.Run(() =>
+ {
+ serviceInitialized.Wait();
+
+ lock(trackEventLockObj)
+ {
+ if (!ReportingAnalytics) return;
+
+ var e = AnalyticsEvent.Create(category.ToString(), action.ToString(), description, value);
+ e.Track();
+ }
+ });
}
public void TrackPreference(string name, string stringValue, int? metricValue)
{
- if (!ReportingAnalytics) return;
+ if (Analytics.DisableAnalytics) return;
- TrackPreferenceInternal(name, stringValue, metricValue);
- }
+ Task.Run(() =>
+ {
+ serviceInitialized.Wait();
- private void TrackPreferenceInternal(string name, string stringValue, int? metricValue)
- {
- var e = AnalyticsEvent.Create(Categories.Preferences.ToString(), name, stringValue, metricValue);
- e.Track();
+ lock (trackEventLockObj)
+ {
+ if (!ReportingAnalytics) return;
+
+ var e = AnalyticsEvent.Create(Categories.Preferences.ToString(), name, stringValue, metricValue);
+ e.Track();
+ }
+ });
}
public void TrackTimedEvent(Categories category, string variable, TimeSpan time, string description = "")
{
- if (!ReportingAnalytics) return;
+ if (Analytics.DisableAnalytics) return;
- var e = new TimedEvent(time)
+ Task.Run(() =>
{
- Category = category.ToString(),
- VariableName = variable,
- Description = description
- };
- e.Track();
+ serviceInitialized.Wait();
+
+ lock (trackEventLockObj)
+ {
+ if (!ReportingAnalytics) return;
+
+ var e = new TimedEvent(time)
+ {
+ Category = category.ToString(),
+ VariableName = variable,
+ Description = description
+ };
+ e.Track();
+ }
+ });
}
public void TrackScreenView(string viewName)
{
- if (!ReportingAnalytics) return;
+ if (Analytics.DisableAnalytics) return;
- var e = new ScreenViewEvent(viewName);
- e.Track();
+ Task.Run(() =>
+ {
+ serviceInitialized.Wait();
+
+ lock (trackEventLockObj)
+ {
+ if (!ReportingAnalytics) return;
+
+ var e = new ScreenViewEvent(viewName);
+ e.Track();
+ }
+ });
}
public void TrackException(Exception ex, bool isFatal)
{
- if (!ReportingAnalytics) return;
+ if (Analytics.DisableAnalytics) return;
+
+ Task.Run(() =>
+ {
+ serviceInitialized.Wait();
+
+ lock (trackEventLockObj)
+ {
+ if (!ReportingAnalytics) return;
- Service.TrackException(ex, isFatal);
+ Service.TrackException(ex, isFatal);
+ }
+ });
}
+ [Obsolete("Method will become private in Dynamo 4.0, please use CreateTaskTimedEvent")]
public IDisposable CreateTimedEvent(Categories category, string variable, string description, int? value)
- {
- if (!ReportingAnalytics) return Disposable;
+ {
+ serviceInitialized.Wait();
- var e = new TimedEvent()
+ lock (trackEventLockObj)
{
- Category = category.ToString(),
- VariableName = variable,
- Description = description,
- Value = value
- };
- //Timed event does not need startup tracking.
- return e;
+ if (!ReportingAnalytics) return Disposable;
+
+ var e = new TimedEvent()
+ {
+ Category = category.ToString(),
+ VariableName = variable,
+ Description = description,
+ Value = value
+ };
+ //Timed event does not need startup tracking.
+ return e;
+ }
+ }
+
+ public Task CreateTaskTimedEvent(Categories category, string variable, string description, int? value)
+ {
+ if (Analytics.DisableAnalytics) return Task.FromResult(Disposable);
+
+ return Task.Run(() => CreateTimedEvent(category, variable, description, value));
}
+ [Obsolete("Property will become private in Dynamo 4.0, please use CreateTaskCommandEvent")]
public IDisposable CreateCommandEvent(string name, string description, int? value)
{
- if (!ReportingAnalytics) return Disposable;
+ serviceInitialized.Wait();
+
+ lock (trackEventLockObj)
+ {
+ if (!ReportingAnalytics) return Disposable;
- var e = new CommandEvent(name) { Description = description, Value = value };
- e.Track();
- return e;
+ var e = new CommandEvent(name) { Description = description, Value = value };
+ e.Track();
+ return e;
+ }
+ }
+
+ public Task CreateTaskCommandEvent(string name, string description, int? value)
+ {
+ if (Analytics.DisableAnalytics) return Task.FromResult(Disposable);
+
+ return Task.Run(() => CreateCommandEvent(name, description, value));
}
+ public void EndEventTask(Task taskToEnd)
+ {
+ if (Analytics.DisableAnalytics) return;
+
+ Task.Run(() =>
+ {
+ lock(trackEventLockObj)
+ {
+ taskToEnd.Wait();
+ taskToEnd.Result.Dispose();
+ }
+ });
+ }
+
+ [Obsolete("Property will become private in Dynamo 4.0, please use TrackTaskFileOperationEvent")]
public IDisposable TrackFileOperationEvent(string filepath, Actions operation, int size, string description)
{
+ serviceInitialized.Wait();
if (!ReportingAnalytics) return Disposable;
- var e = new FileOperationEvent()
+ lock(trackEventLockObj)
{
- FilePath = filepath,
- FileSize = size,
- FileAction = FileAction(operation),
- Description = description
- };
- e.Track();
- return e;
+ var e = new FileOperationEvent()
+ {
+ FilePath = filepath,
+ FileSize = size,
+ FileAction = FileAction(operation),
+ Description = description
+ };
+ e.Track();
+ return e;
+ }
+ }
+
+ public Task TrackTaskFileOperationEvent(string filepath, Actions operation, int size, string description)
+ {
+ if (Analytics.DisableAnalytics) return Task.FromResult(Disposable);
+
+ return Task.Run(() => TrackFileOperationEvent(filepath, operation, size, description));
}
private FileOperationEvent.Actions FileAction(Actions operation)
diff --git a/src/DynamoCore/Logging/IAnalyticsSession.cs b/src/DynamoCore/Logging/IAnalyticsSession.cs
index 6d0fe530914..da823da1ffb 100644
--- a/src/DynamoCore/Logging/IAnalyticsSession.cs
+++ b/src/DynamoCore/Logging/IAnalyticsSession.cs
@@ -1,5 +1,4 @@
-īģŋusing System;
-using Dynamo.Models;
+using System;
namespace Dynamo.Logging
{
@@ -21,11 +20,10 @@ public interface IAnalyticsSession : IDisposable
string SessionId { get; }
///
- /// Starts the session for the given DynamoModel.
+ /// Starts the session.
/// The Session is closed when Dispose() is called.
///
- /// DynamoModel
- void Start(DynamoModel model);
+ void Start();
///
/// Returns a logger to record usage.
///
diff --git a/src/DynamoCore/Migration/Migration.cs b/src/DynamoCore/Migration/Migration.cs
index cfea89aef8d..a3114f13274 100644
--- a/src/DynamoCore/Migration/Migration.cs
+++ b/src/DynamoCore/Migration/Migration.cs
@@ -517,24 +517,6 @@ internal static Version VersionFromString(string version)
return new Version(ver.Major, ver.Minor, ver.Build, 0);
}
- ///
- /// Call this method to obtain the version of current WorkspaceModel.
- /// Note that the revision number is dropped as both "0.7.0.1234"
- /// should be treated as the same version as "0.7.0.5678", and no file
- /// migration should take place.
- ///
- /// The WorkspaceModel to get the Version from.
- ///
- /// Returns the Version object representing the workspace
- /// version with the revision set to 0.
- ///
- internal static Version VersionFromWorkspace(WorkspaceModel workspace)
- {
- // Ignore revision number.
- var ver = workspace.WorkspaceVersion;
- return new Version(ver.Major, ver.Minor, ver.Build, 0);
- }
-
///
/// Call this method to determine if migration should take place
/// for the input DYN/DYF file based on the given version numbers.
diff --git a/src/DynamoCore/Models/DynamoModel.cs b/src/DynamoCore/Models/DynamoModel.cs
index 31bc7fd8ff2..996e074533b 100644
--- a/src/DynamoCore/Models/DynamoModel.cs
+++ b/src/DynamoCore/Models/DynamoModel.cs
@@ -8,7 +8,6 @@
using System.IO;
using System.Linq;
using System.Reflection;
-using System.Runtime.Serialization;
using System.Threading;
using System.Threading.Tasks;
using System.Xml;
@@ -199,7 +198,7 @@ internal LuceneSearchUtility LuceneUtility
///
/// This version of Dynamo.
///
- public string Version
+ public static string Version
{
get { return DefaultUpdateManager.GetProductVersion().ToString(); }
}
@@ -218,7 +217,7 @@ public string Version
///
/// Host analytics info
///
- public HostAnalyticsInfo HostAnalyticsInfo { get; set; }
+ public static HostAnalyticsInfo HostAnalyticsInfo { get; set; }
///
/// Boolean indication of launching Dynamo in service mode, this mode is optimized for minimal launch time, mostly leveraged by CLI or WPF CLI.
@@ -288,7 +287,7 @@ public string Version
///
/// The application version string for analytics reporting APIs
///
- internal virtual string AppVersion
+ internal static string AppVersion
{
get
{
@@ -537,7 +536,7 @@ public interface IStartConfiguration
bool NoNetworkMode => false;
///
- /// Configuration object that contains host information like Host name, version and session id.
+ /// Configuration object that contains host information like Host name, parent id and session id.
///
HostAnalyticsInfo HostAnalyticsInfo { get; set; }
}
@@ -695,13 +694,7 @@ protected DynamoModel(IStartConfiguration config)
PreferenceSettings = (PreferenceSettings)CreateOrLoadPreferences(config.Preferences);
if (PreferenceSettings != null)
{
- // Setting the locale for Dynamo from loaded Preferences only when
- // In a non-in-process integration case (when HostAnalyticsInfo.HostName is unspecified)
- // Language is specified, otherwise Default setting means following host locale
- if (string.IsNullOrEmpty(HostAnalyticsInfo.HostName) || !PreferenceSettings.Locale.Equals(Configuration.Configurations.SupportedLocaleList.First()))
- {
- SetUICulture(PreferenceSettings.Locale);
- }
+ SetUICulture(PreferenceSettings.Locale);
PreferenceSettings.PropertyChanged += PreferenceSettings_PropertyChanged;
PreferenceSettings.MessageLogged += LogMessage;
}
@@ -740,20 +733,7 @@ protected DynamoModel(IStartConfiguration config)
// or the feature flags client for web traffic reason.
if (!IsServiceMode && !areAnalyticsDisabledFromConfig && !Analytics.DisableAnalytics)
{
- // Start the Analytics service only when a session is not present.
- // In an integrator host, as splash screen can be closed without shutting down the ViewModel, the analytics service is not stopped.
- // So we don't want to start it when splash screen or dynamo window is launched again.
- if (Analytics.client == null)
- {
- AnalyticsService.Start(this, IsHeadless, IsTestMode);
- }
- else if (Analytics.client is DynamoAnalyticsClient dac)
- {
- if (dac.Session == null)
- {
- AnalyticsService.Start(this, IsHeadless, IsTestMode);
- }
- }
+ HandleAnalytics();
//run process startup/reading on another thread so we don't block dynamo startup.
//if we end up needing to control aspects of dynamo model or view startup that we can't make
@@ -1015,6 +995,7 @@ protected DynamoModel(IStartConfiguration config)
LogWarningMessageEvents.LogWarningMessage += LogWarningMessage;
LogWarningMessageEvents.LogInfoMessage += LogInfoMessage;
+ DynamoConsoleLogger.LogMessageToDynamoConsole += LogMessageWrapper;
StartBackupFilesTimer();
TraceReconciliationProcessor = this;
@@ -1031,6 +1012,38 @@ protected DynamoModel(IStartConfiguration config)
DynamoReady(new ReadyParams(this));
}
+ private void HandleAnalytics()
+ {
+ if (IsTestMode)
+ {
+ if (Analytics.DisableAnalytics)
+ {
+ Logger.Log("Incompatible configuration: [IsTestMode] and [Analytics disabled] ");
+ }
+ return;
+ }
+
+ if (IsHeadless)
+ {
+ return;
+ }
+
+ // Start the Analytics service only when a session is not present.
+ // In an integrator host, as splash screen can be closed without shutting down the ViewModel, the analytics service is not stopped.
+ // So we don't want to start it when splash screen or dynamo window is launched again.
+ if (Analytics.client == null)
+ {
+ AnalyticsService.Start();
+ }
+ else if (Analytics.client is DynamoAnalyticsClient dac)
+ {
+ if (dac.Session == null)
+ {
+ AnalyticsService.Start();
+ }
+ }
+ }
+
private void SearchModel_ItemProduced(NodeModel node)
{
ExecuteCommand(new CreateNodeCommand(node, 0, 0, true, true));
@@ -1242,10 +1255,10 @@ private void EngineController_TraceReconcliationComplete(TraceReconciliationEven
{
Debug.WriteLine("TRACE RECONCILIATION: {0} total serializables were orphaned.", obj.CallsiteToOrphanMap.SelectMany(kvp => kvp.Value).Count());
- // The orphans will come back here as a dictionary of lists of ISerializables jeyed by their callsite id.
+ // The orphans will come back here as a dictionary of lists of strings keyed by their callsite id.
// This dictionary gets redistributed into a dictionary keyed by the workspace id.
- var workspaceOrphanMap = new Dictionary>();
+ var workspaceOrphanMap = new Dictionary>();
foreach (var ws in Workspaces.OfType())
{
@@ -1300,7 +1313,7 @@ private void EngineController_TraceReconcliationComplete(TraceReconciliationEven
/// Deals with orphaned serializables.
///
/// Collection of orphaned serializables.
- public virtual void PostTraceReconciliation(Dictionary> orphanedSerializables)
+ public virtual void PostTraceReconciliation(Dictionary> orphanedSerializables)
{
// Override in derived classes to deal with orphaned serializables.
}
@@ -1426,6 +1439,7 @@ public void Dispose()
LogWarningMessageEvents.LogWarningMessage -= LogWarningMessage;
LogWarningMessageEvents.LogInfoMessage -= LogInfoMessage;
+ DynamoConsoleLogger.LogMessageToDynamoConsole -= LogMessageWrapper;
foreach (var ws in _workspaces)
{
ws.Dispose();
@@ -1442,6 +1456,11 @@ public void Dispose()
{
SearchModel.ItemProduced -= SearchModel_ItemProduced;
}
+ //handle the disposal of IDSDK manager instance for sandbox
+ if (AuthenticationManager?.AuthProvider is IDSDKManager idsdkProvider)
+ {
+ idsdkProvider?.Dispose();
+ }
}
private void InitializeCustomNodeManager()
@@ -1615,6 +1634,7 @@ private void InitializeNodeLibrary()
DumpLibrarySnapshot(functionGroups);
#endif
+
// Load local custom nodes and locally imported libraries
foreach (var path in pathManager.DefinitionDirectories)
{
@@ -2301,6 +2321,10 @@ private bool OpenJsonFile(
var currentHomeSpace = Workspaces.OfType().FirstOrDefault();
currentHomeSpace.UndefineCBNFunctionDefinitions();
+ // This is to handle the case of opening a JSON file that does not have a version string
+ EngineController.CurrentWorkspaceVersion = dynamoPreferences.Version ==
+ null ? AssemblyHelper.GetDynamoVersion() : new Version(dynamoPreferences.Version);
+
// TODO, QNTM-1108: WorkspaceModel.FromJson does not check a schema and so will not fail as long
// as the fileContents are valid JSON, regardless of if all required data is present or not
workspace = WorkspaceModel.FromJson(
@@ -2317,17 +2341,19 @@ private bool OpenJsonFile(
workspace.FileName = string.IsNullOrEmpty(filePath) ? "" : filePath;
workspace.FromJsonGraphId = string.IsNullOrEmpty(filePath) ? WorkspaceModel.ComputeGraphIdFromJson(fileContents) : "";
workspace.ScaleFactor = dynamoPreferences.ScaleFactor;
+
+ if (!IsTestMode)
+ {
+ if (workspace.ContainsLegacyTraceData)
+ {
+ OnRequestNotification(Resources.LegacyTraceDataWarning, true);
+ }
+ }
- // NOTE: This is to handle the case of opening a JSON file that does not have a version string
- // This logic may not be correct, need to decide the importance of versioning early JSON files
- string versionString = dynamoPreferences.Version;
- if (versionString == null)
- versionString = AssemblyHelper.GetDynamoVersion().ToString();
- workspace.WorkspaceVersion = new System.Version(versionString);
-
- HomeWorkspaceModel homeWorkspace = workspace as HomeWorkspaceModel;
- if (homeWorkspace != null)
+ if (workspace is HomeWorkspaceModel homeWorkspace)
{
+ homeWorkspace.EnableLegacyPolyCurveBehavior ??= PreferenceSettings.Instance.DefaultEnableLegacyPolyCurveBehavior;
+
homeWorkspace.HasRunWithoutCrash = dynamoPreferences.HasRunWithoutCrash;
homeWorkspace.ReCompileCodeBlockNodesForFunctionDefinitions();
@@ -2447,12 +2473,19 @@ private bool OpenXmlHomeWorkspace(
{
var nodeGraph = NodeGraph.LoadGraphFromXml(xmlDoc, NodeFactory);
Guid deterministicId = GuidUtility.Create(GuidUtility.UrlNamespace, workspaceInfo.Name);
+
+ var loadedTraceData = Utils.LoadTraceDataFromXmlDocument(xmlDoc, out var containsLegacyTraceData);
+ if (!IsTestMode)
+ {
+ if (containsLegacyTraceData) OnRequestNotification(Resources.LegacyTraceDataWarning, true);
+ }
+
var newWorkspace = new HomeWorkspaceModel(
deterministicId,
EngineController,
Scheduler,
NodeFactory,
- Utils.LoadTraceDataFromXmlDocument(xmlDoc),
+ loadedTraceData,
nodeGraph.Nodes,
nodeGraph.Notes,
nodeGraph.Annotations,
@@ -2719,8 +2752,24 @@ internal bool CanDumpLibraryToXml(object obj)
///
public static void SetUICulture(string locale)
{
- Thread.CurrentThread.CurrentUICulture = new CultureInfo(locale == "Default" ? "en-US" : locale);
- Thread.CurrentThread.CurrentCulture = new CultureInfo(locale == "Default" ? "en-US" : locale);
+ if (string.IsNullOrWhiteSpace(locale)) return;
+
+ // Setting the locale for Dynamo from loaded Preferences, with Default handled differently
+ // between a non-in-process integration case (when HostAnalyticsInfo.HostName is unspecified)
+ // and in-process integration case. In later case, Default setting means following host locale.
+ if (string.IsNullOrEmpty(HostAnalyticsInfo.HostName))
+ {
+ // Sandbox default to en-US
+ Thread.CurrentThread.CurrentUICulture = new CultureInfo(locale == "Default" ? "en-US" : locale);
+ Thread.CurrentThread.CurrentCulture = new CultureInfo(locale == "Default" ? "en-US" : locale);
+ }
+ else
+ {
+ var defaultCulture = CultureInfo.DefaultThreadCurrentCulture ?? new CultureInfo("en-US");
+ // Integration default to DefaultThreadCurrentCulture set by integrator
+ Thread.CurrentThread.CurrentUICulture = locale == "Default" ? defaultCulture : new CultureInfo(locale);
+ Thread.CurrentThread.CurrentCulture = locale == "Default" ? defaultCulture : new CultureInfo(locale);
+ }
}
///
@@ -3179,7 +3228,7 @@ public void ClearCurrentWorkspace()
//don't save the file path
CurrentWorkspace.FileName = "";
CurrentWorkspace.HasUnsavedChanges = false;
- CurrentWorkspace.WorkspaceVersion = AssemblyHelper.GetDynamoVersion();
+ EngineController.CurrentWorkspaceVersion = AssemblyHelper.GetDynamoVersion();
this.LinterManager?.SetDefaultLinter();
diff --git a/src/DynamoCore/Models/DynamoModelEvents.cs b/src/DynamoCore/Models/DynamoModelEvents.cs
index 7a76d0379c7..3d5143e9130 100644
--- a/src/DynamoCore/Models/DynamoModelEvents.cs
+++ b/src/DynamoCore/Models/DynamoModelEvents.cs
@@ -8,6 +8,7 @@
using System.Collections.Generic;
using Dynamo.Graph;
using Dynamo.Extensions;
+using Dynamo.Logging;
namespace Dynamo.Models
{
@@ -158,6 +159,11 @@ protected virtual void OnWorkspaceAdded(WorkspaceModel obj)
var handler = WorkspaceAdded;
if (handler != null) handler(obj);
+ if (obj is CustomNodeWorkspaceModel)
+ Analytics.TrackScreenView("CustomWorkspace");
+ else
+ Analytics.TrackScreenView("Workspace");
+
WorkspaceEvents.OnWorkspaceAdded(obj.Guid, obj.Name, obj.GetType());
}
@@ -541,12 +547,12 @@ internal void OnRequestPythonReset(string pythonEngine)
///
/// This event is used to raise a toast notification from the DynamoViewModel
///
- internal event Action RequestNotification;
- internal void OnRequestNotification(string notification)
+ internal event Action RequestNotification;
+ internal void OnRequestNotification(string notification, bool stayOpen = false)
{
if (RequestNotification != null)
{
- RequestNotification(notification);
+ RequestNotification(notification, stayOpen);
}
}
diff --git a/src/DynamoCore/Models/RecordableCommands.cs b/src/DynamoCore/Models/RecordableCommands.cs
index 557827372e8..44355e6cf15 100644
--- a/src/DynamoCore/Models/RecordableCommands.cs
+++ b/src/DynamoCore/Models/RecordableCommands.cs
@@ -528,7 +528,7 @@ protected override void SerializeCore(XmlElement element)
internal override void TrackAnalytics()
{
// Log file open action and the number of nodes in the opened workspace
- Dynamo.Logging.Analytics.TrackFileOperationEvent(
+ Dynamo.Logging.Analytics.TrackTaskFileOperationEvent(
FilePath,
Logging.Actions.Open,
dynamoModel.CurrentWorkspace.Nodes.Count());
@@ -628,7 +628,7 @@ protected override void SerializeCore(XmlElement element)
internal override void TrackAnalytics()
{
// Log file open action and the number of nodes in the opened workspace
- Dynamo.Logging.Analytics.TrackFileOperationEvent(
+ Dynamo.Logging.Analytics.TrackTaskFileOperationEvent(
FilePath,
Logging.Actions.Open,
dynamoModel.CurrentWorkspace.Nodes.Count());
@@ -705,7 +705,7 @@ protected override void SerializeCore(XmlElement element)
internal override void TrackAnalytics()
{
// Log file open action and the number of nodes in the opened workspace
- Dynamo.Logging.Analytics.TrackFileOperationEvent(
+ Dynamo.Logging.Analytics.TrackTaskFileOperationEvent(
"In memory json file",
Logging.Actions.Open,
dynamoModel.CurrentWorkspace.Nodes.Count());
@@ -1795,7 +1795,7 @@ protected override void SerializeCore(XmlElement element)
internal override void TrackAnalytics()
{
- Dynamo.Logging.Analytics.TrackCommandEvent(
+ Dynamo.Logging.Analytics.TrackTaskCommandEvent(
CmdOperation.ToString()); // "Undo" or "Redo"
}
diff --git a/src/DynamoCore/Properties/Resources.Designer.cs b/src/DynamoCore/Properties/Resources.Designer.cs
index f523c41ad4c..31864038d8b 100644
--- a/src/DynamoCore/Properties/Resources.Designer.cs
+++ b/src/DynamoCore/Properties/Resources.Designer.cs
@@ -1117,6 +1117,15 @@ public static string InvalidStartOrEndOfRange {
}
}
+ ///
+ /// Looks up a localized string similar to This workspace contains element binding data in a legacy format that is no longer supported in Dynamo 3.0 and higher versions. Element binding data will be saved in the new format the next time you run and save this workspace..
+ ///
+ public static string LegacyTraceDataWarning {
+ get {
+ return ResourceManager.GetString("LegacyTraceDataWarning", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Build error for library: {0}.
///
diff --git a/src/DynamoCore/Properties/Resources.en-US.resx b/src/DynamoCore/Properties/Resources.en-US.resx
index b40c51c4764..ad2ca83d86c 100644
--- a/src/DynamoCore/Properties/Resources.en-US.resx
+++ b/src/DynamoCore/Properties/Resources.en-US.resx
@@ -908,4 +908,7 @@ This package likely contains an assembly that is blocked. You will need to load
Formula node has been deprecated. It has been automatically migrated to a CodeBlock node. Note that results may vary after the migration depending on lacing options selected on the original Formula node. Appropriate replication guides might need to be applied to the CodeBlock node script.
+
+ This workspace contains element binding data in a legacy format that is no longer supported in Dynamo 3.0 and higher versions. Element binding data will be saved in the new format the next time you run and save this workspace.
+
\ No newline at end of file
diff --git a/src/DynamoCore/Properties/Resources.resx b/src/DynamoCore/Properties/Resources.resx
index 77d3d8340dd..4306d13dc3a 100644
--- a/src/DynamoCore/Properties/Resources.resx
+++ b/src/DynamoCore/Properties/Resources.resx
@@ -911,4 +911,7 @@ This package likely contains an assembly that is blocked. You will need to load
Formula node has been deprecated. It has been automatically migrated to a CodeBlock node. Note that results may vary after the migration depending on lacing options selected on the original Formula node. Appropriate replication guides might need to be applied to the CodeBlock node script.
-
\ No newline at end of file
+
+ This workspace contains element binding data in a legacy format that is no longer supported in Dynamo 3.0 and higher versions. Element binding data will be saved in the new format the next time you run and save this workspace.
+
+
diff --git a/src/DynamoCoreWpf/Controls/InPortContextMenu.xaml.cs b/src/DynamoCoreWpf/Controls/InPortContextMenu.xaml.cs
index 81df82642b9..3693155b8e9 100644
--- a/src/DynamoCoreWpf/Controls/InPortContextMenu.xaml.cs
+++ b/src/DynamoCoreWpf/Controls/InPortContextMenu.xaml.cs
@@ -1,6 +1,7 @@
-īģŋusing System;
+using System;
using System.Windows;
using System.Windows.Controls;
+using Dynamo.Models;
using Dynamo.ViewModels;
namespace Dynamo.UI.Controls
@@ -15,8 +16,10 @@ public partial class InPortContextMenu : UserControl
public InPortContextMenu()
{
InitializeComponent();
-
- if (Application.Current != null) Application.Current.Deactivated += CurrentApplicationDeactivated;
+ if (string.IsNullOrEmpty(DynamoModel.HostAnalyticsInfo.HostName) && Application.Current != null)
+ {
+ Application.Current.Deactivated += CurrentApplicationDeactivated;
+ }
Unloaded += InPortContextMenuControl_Unloaded;
}
@@ -27,7 +30,7 @@ public InPortContextMenu()
///
private void InPortContextMenuControl_Unloaded(object sender, RoutedEventArgs e)
{
- if (Application.Current != null)
+ if (string.IsNullOrEmpty(DynamoModel.HostAnalyticsInfo.HostName) && Application.Current != null)
{
Application.Current.Deactivated -= CurrentApplicationDeactivated;
}
diff --git a/src/DynamoCoreWpf/Controls/IncanvasSearchControl.xaml.cs b/src/DynamoCoreWpf/Controls/IncanvasSearchControl.xaml.cs
index 069a5ee6c09..b8f40090618 100644
--- a/src/DynamoCoreWpf/Controls/IncanvasSearchControl.xaml.cs
+++ b/src/DynamoCoreWpf/Controls/IncanvasSearchControl.xaml.cs
@@ -8,6 +8,7 @@
using System.Windows.Input;
using System.Windows.Threading;
using Dynamo.Logging;
+using Dynamo.Models;
using Dynamo.Utilities;
using Dynamo.ViewModels;
using Dynamo.Wpf.ViewModels;
@@ -31,7 +32,7 @@ public SearchViewModel ViewModel
public InCanvasSearchControl()
{
InitializeComponent();
- if (Application.Current != null)
+ if (string.IsNullOrEmpty(DynamoModel.HostAnalyticsInfo.HostName) && Application.Current != null)
{
Application.Current.Deactivated += CurrentApplicationDeactivated;
Application.Current.MainWindow.Closing += InCanvasSearchControl_Unloaded;
@@ -40,7 +41,7 @@ public InCanvasSearchControl()
private void InCanvasSearchControl_Unloaded(object sender, System.ComponentModel.CancelEventArgs e)
{
- if (Application.Current != null)
+ if (string.IsNullOrEmpty(DynamoModel.HostAnalyticsInfo.HostName) && Application.Current != null)
{
Application.Current.Deactivated -= CurrentApplicationDeactivated;
Application.Current.MainWindow.Closing -= InCanvasSearchControl_Unloaded;
diff --git a/src/DynamoCoreWpf/Controls/InstalledPackagesControl.xaml b/src/DynamoCoreWpf/Controls/InstalledPackagesControl.xaml
index 10a385873eb..6bf51a5ad9e 100644
--- a/src/DynamoCoreWpf/Controls/InstalledPackagesControl.xaml
+++ b/src/DynamoCoreWpf/Controls/InstalledPackagesControl.xaml
@@ -17,7 +17,6 @@
-
-
+
-
-
-
-
-
- -40.0
-
-
-
-
+ IsExpanded="{Binding Path=Model.TypesVisibleInManager}"
+ Style="{StaticResource InstalledPackagesExpanderStyle}">
-
+
+
+
+
-
+ MaxWidth="150"
+ Margin="10 0">
+
@@ -145,14 +142,13 @@
TextTrimming="CharacterEllipsis"
FontSize="10"
FontFamily="Artifakt Element"
+ FontWeight="Medium"
TextAlignment="Left"
HorizontalAlignment="Center"
- Margin="0,3,0,0"
- Foreground="{StaticResource PrimaryCharcoal100Brush}"/>
+ Margin="0,2,0,0"
+ Foreground="{StaticResource PackageManagerTabBackgroundColor}"/>
-
-
public void Dispose()
{
NodeAutoCompleteSearchControl_Unloaded(this,null);
diff --git a/src/DynamoCoreWpf/Controls/OutPortContextMenu.xaml.cs b/src/DynamoCoreWpf/Controls/OutPortContextMenu.xaml.cs
index 2814b5439a8..8a32e380741 100644
--- a/src/DynamoCoreWpf/Controls/OutPortContextMenu.xaml.cs
+++ b/src/DynamoCoreWpf/Controls/OutPortContextMenu.xaml.cs
@@ -1,6 +1,7 @@
using System;
using System.Windows;
using System.Windows.Controls;
+using Dynamo.Models;
using Dynamo.ViewModels;
namespace Dynamo.UI.Controls
@@ -19,7 +20,10 @@ public OutPortContextMenu()
{
InitializeComponent();
- if (Application.Current != null) Application.Current.Deactivated += CurrentApplicationDeactivated;
+ if (string.IsNullOrEmpty(DynamoModel.HostAnalyticsInfo.HostName) && Application.Current != null)
+ {
+ Application.Current.Deactivated += CurrentApplicationDeactivated;
+ }
Unloaded += OutPortContextMenuControl_Unloaded;
}
@@ -30,7 +34,7 @@ public OutPortContextMenu()
///
private void OutPortContextMenuControl_Unloaded(object sender, RoutedEventArgs e)
{
- if (Application.Current != null)
+ if (string.IsNullOrEmpty(DynamoModel.HostAnalyticsInfo.HostName) && Application.Current != null)
{
Application.Current.Deactivated -= CurrentApplicationDeactivated;
}
diff --git a/src/DynamoCoreWpf/Controls/ShortcutToolbar.xaml.cs b/src/DynamoCoreWpf/Controls/ShortcutToolbar.xaml.cs
index 16b971cfb12..043d9f46b03 100644
--- a/src/DynamoCoreWpf/Controls/ShortcutToolbar.xaml.cs
+++ b/src/DynamoCoreWpf/Controls/ShortcutToolbar.xaml.cs
@@ -11,13 +11,14 @@
using System.Linq;
using System.Windows;
using System.Collections.Generic;
+using System;
namespace Dynamo.UI.Controls
{
///
/// An object which provides the data for the shortcut toolbar.
///
- public partial class ShortcutToolbar : UserControl
+ public partial class ShortcutToolbar : UserControl, IDisposable
{
private readonly ObservableCollection shortcutBarItems;
private readonly ObservableCollection shortcutBarRightSideItems;
@@ -57,7 +58,7 @@ public ShortcutToolbar(DynamoViewModel dynamoViewModel)
authManager = dynamoViewModel.Model.AuthenticationManager;
if (authManager.IsLoggedInInitial())
{
- authManager.LoginStateChanged += SignOutHandler;
+ authManager.LoginStateChanged += AuthChangeHandler;
}
else {
logoutOption.Visibility = Visibility.Collapsed;
@@ -73,14 +74,28 @@ private void ShortcutToolbar_Loaded(object sender, RoutedEventArgs e)
DynamoViewModel.OnRequestShorcutToolbarLoaded(RightMenu.ActualWidth);
}
- private void SignOutHandler(LoginState status)
+ public void Dispose()
+ {
+ if(authManager != null)
+ {
+ authManager.LoginStateChanged -= AuthChangeHandler;
+ }
+ this.Loaded -= ShortcutToolbar_Loaded;
+ }
+
+ private void AuthChangeHandler(LoginState status)
{
if (status == LoginState.LoggedOut)
{
LoginButton.ToolTip = Wpf.Properties.Resources.SignInButtonContentToolTip;
txtSignIn.Text = Wpf.Properties.Resources.SignInButtonText;
logoutOption.Visibility = Visibility.Collapsed;
- authManager.LoginStateChanged -= SignOutHandler;
+ }
+ else if (status == LoginState.LoggedIn)
+ {
+ txtSignIn.Text = authManager.Username;
+ logoutOption.Visibility = Visibility.Visible;
+ LoginButton.ToolTip = null;
}
}
@@ -115,7 +130,6 @@ private void LoginButton_OnClick(object sender, RoutedEventArgs e)
tb.Text = authManager.Username;
logoutOption.Visibility = Visibility.Visible;
LoginButton.ToolTip = null;
- authManager.LoginStateChanged += SignOutHandler;
}
}
}
diff --git a/src/DynamoCoreWpf/DynamoCoreWpf.csproj b/src/DynamoCoreWpf/DynamoCoreWpf.csproj
index 58b9ea68aaa..a75c9236d12 100644
--- a/src/DynamoCoreWpf/DynamoCoreWpf.csproj
+++ b/src/DynamoCoreWpf/DynamoCoreWpf.csproj
@@ -56,8 +56,13 @@
+
+
+
+
+
@@ -74,6 +79,10 @@
+
+
+
+
@@ -129,13 +138,13 @@
-
+
-
+
-
+
@@ -148,8 +157,9 @@
+
- ..\..\extern\Microsoft.Xaml.Behaviors\$(TargetFramework)\Dynamo.Microsoft.Xaml.Behaviors.dll
+ ..\..\extern\Microsoft.Xaml.Behaviors\net6.0-windows\Dynamo.Microsoft.Xaml.Behaviors.dll
@@ -434,6 +444,7 @@
SurveyPopupWindow.xaml
+
@@ -448,6 +459,10 @@
PackagePathView.xaml
+
+
+
+
TermsOfUseView.xaml
@@ -646,6 +661,10 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
@@ -677,6 +696,22 @@
Designer
MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
@@ -795,6 +830,7 @@
+
@@ -928,6 +964,10 @@
+
+
+
+
@@ -1721,12 +1761,27 @@
+
+ MSBuild:Compile
+
MSBuild:Compile
MSBuild:Compile
+
+ MSBuild:Compile
+
+
+ MSBuild:Compile
+
+
+ MSBuild:Compile
+
+
+ MSBuild:Compile
+
diff --git a/src/DynamoCoreWpf/Properties/Resources.Designer.cs b/src/DynamoCoreWpf/Properties/Resources.Designer.cs
index 21a0b8d8de1..45c208b3da5 100644
--- a/src/DynamoCoreWpf/Properties/Resources.Designer.cs
+++ b/src/DynamoCoreWpf/Properties/Resources.Designer.cs
@@ -159,6 +159,15 @@ public static string AddToLibraryButton {
}
}
+ ///
+ /// Looks up a localized string similar to I agree to ML Node Autocomplete Terms of Use.
+ ///
+ public static string AgreeToMLAutocompleteTOUText {
+ get {
+ return ResourceManager.GetString("AgreeToMLAutocompleteTOUText", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Autodesk A360.
///
@@ -1025,15 +1034,6 @@ public static string CrashPromptDialogTitle {
}
}
- ///
- /// Looks up a localized string similar to Crash report from Dynamo {0}.
- ///
- public static string CrashPromptGithubNewIssueTitle {
- get {
- return ResourceManager.GetString("CrashPromptGithubNewIssueTitle", resourceCulture);
- }
- }
-
///
/// Looks up a localized string similar to Create.
///
@@ -1288,6 +1288,24 @@ public static string DisablePackageInstallIconTooltip {
}
}
+ ///
+ /// Looks up a localized string similar to Discard changes?.
+ ///
+ public static string DiscardChangesWarningPopupCaption {
+ get {
+ return ResourceManager.GetString("DiscardChangesWarningPopupCaption", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your changes will be lost if you navigate away from the package upload screen..
+ ///
+ public static string DiscardChangesWarningPopupMessage {
+ get {
+ return ResourceManager.GetString("DiscardChangesWarningPopupMessage", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Download Warning.
///
@@ -2261,7 +2279,7 @@ public static string DynamoViewSettingMenuNumberFormat {
}
///
- /// Looks up a localized string similar to Agreement to _Collect Usability Data.
+ /// Looks up a localized string similar to Agreement and _Terms of Use.
///
public static string DynamoViewSettingMenuShowDataReportingDialog {
get {
@@ -2270,7 +2288,7 @@ public static string DynamoViewSettingMenuShowDataReportingDialog {
}
///
- /// Looks up a localized string similar to Display the dialog for user to pick agreement on data collecting..
+ /// Looks up a localized string similar to Display the dialog of agreement on data collecting and Machine Learning Node Autocomplete terms of use.
///
public static string DynamoViewSettingMenuShowDataReportingDialogTooltip {
get {
@@ -4721,7 +4739,7 @@ public static string MoreButton {
}
///
- /// Looks up a localized string similar to Name must be at least 3 characters..
+ /// Looks up a localized string similar to Must be at least 3 characters.
///
public static string NameNeedMoreCharacters {
get {
@@ -5053,6 +5071,15 @@ public static string NotificationCenterButtonTooltip {
}
}
+ ///
+ /// Looks up a localized string similar to To access the Recommended Nodes feature, please read and accept Dynamo > Agreement and Terms of Use..
+ ///
+ public static string NotificationToAgreeMLNodeautocompleteTOU {
+ get {
+ return ResourceManager.GetString("NotificationToAgreeMLNodeautocompleteTOU", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to null.
///
@@ -5654,6 +5681,33 @@ public static string PackageManagerClearAllButtonText {
}
}
+ ///
+ /// Looks up a localized string similar to files published.
+ ///
+ public static string PackageManagerFinishedPackageFilesPublishedMessage {
+ get {
+ return ResourceManager.GetString("PackageManagerFinishedPackageFilesPublishedMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to files uploaded.
+ ///
+ public static string PackageManagerFinishedPackageFilesUploadedMessage {
+ get {
+ return ResourceManager.GetString("PackageManagerFinishedPackageFilesUploadedMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Package Path.
+ ///
+ public static string PackageManagerFinishedPackagePackagePath {
+ get {
+ return ResourceManager.GetString("PackageManagerFinishedPackagePackagePath", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Install.
///
@@ -5744,6 +5798,69 @@ public static string PackageManagerPackageUpdated {
}
}
+ ///
+ /// Looks up a localized string similar to Provide file(s).
+ ///
+ public static string PackageManagerProvideFiles {
+ get {
+ return ResourceManager.GetString("PackageManagerProvideFiles", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Provide package name.
+ ///
+ public static string PackageManagerProvidePackageName {
+ get {
+ return ResourceManager.GetString("PackageManagerProvidePackageName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Provide package name and file(s).
+ ///
+ public static string PackageManagerProvidePackageNameAndFiles {
+ get {
+ return ResourceManager.GetString("PackageManagerProvidePackageNameAndFiles", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Provide package name and version number.
+ ///
+ public static string PackageManagerProvidePackageNameAndVersion {
+ get {
+ return ResourceManager.GetString("PackageManagerProvidePackageNameAndVersion", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Provide version number.
+ ///
+ public static string PackageManagerProvideVersion {
+ get {
+ return ResourceManager.GetString("PackageManagerProvideVersion", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Provide version number and file(s).
+ ///
+ public static string PackageManagerProvideVersionAndFiles {
+ get {
+ return ResourceManager.GetString("PackageManagerProvideVersionAndFiles", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Virus scan in progress. Your package will be searchable in approximately 15 minutes..
+ ///
+ public static string PackageManagerPublishOnlineFinishedMessage {
+ get {
+ return ResourceManager.GetString("PackageManagerPublishOnlineFinishedMessage", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Publish a Package.
///
@@ -5762,6 +5879,15 @@ public static string PackageManagerPublishTab {
}
}
+ ///
+ /// Looks up a localized string similar to Ready to publish.
+ ///
+ public static string PackageManagerReadyToPublish {
+ get {
+ return ResourceManager.GetString("PackageManagerReadyToPublish", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Search for Packages.
///
@@ -5807,6 +5933,15 @@ public static string PackageManagerTitle {
}
}
+ ///
+ /// Looks up a localized string similar to Once signed in, you can find your published packages here..
+ ///
+ public static string PackageManagerUserNotSignedPackagesSubMessage {
+ get {
+ return ResourceManager.GetString("PackageManagerUserNotSignedPackagesSubMessage", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to The name of the package cannot contain.
///
@@ -6023,6 +6158,15 @@ public static string PackagerManageNoPublishedPackagesSubMessage {
}
}
+ ///
+ /// Looks up a localized string similar to Sign in to your Dynamo account to view your published packages..
+ ///
+ public static string PackagerManageUserNotSignedPackagesMessage {
+ get {
+ return ResourceManager.GetString("PackagerManageUserNotSignedPackagesMessage", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Search for packages.
///
@@ -6258,7 +6402,7 @@ public static string PackageSearchViewInstallLatestVersion {
}
///
- /// Looks up a localized string similar to Install latest version to folder....
+ /// Looks up a localized string similar to Install to folder....
///
public static string PackageSearchViewInstallLatestVersionTo {
get {
@@ -6429,7 +6573,7 @@ public static string PackagesGuideExitTitle {
}
///
- /// Looks up a localized string similar to Packages provide additional functions that you can use in Dynamo. \n\nTo find a package or see whatâs available, \n**Click Packages > Search for Packages**..
+ /// Looks up a localized string similar to Packages provide additional functions that you can use in Dynamo. \n\nTo find a package or see whatâs available, \n**Click Packages > Package Manager...**..
///
public static string PackagesGuideFindPackageText {
get {
@@ -7947,6 +8091,15 @@ public static string PublishPackageMoreInfoFile {
}
}
+ ///
+ /// Looks up a localized string similar to DLL file containing types and methods that Dynamo imports as nodes. Mark ZeroTouch, NodeModel, or NodeViewCustomization DLLs and types you want to import into Dynamo as node libraries..
+ ///
+ public static string PublishPackageNodeLibraryTooltip {
+ get {
+ return ResourceManager.GetString("PublishPackageNodeLibraryTooltip", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Package Contents.
///
@@ -7956,6 +8109,36 @@ public static string PublishPackagePackageContent {
}
}
+ ///
+ /// Looks up a localized string similar to Preview package contents (read only).
+ ///
+ public static string PublishPackagePreviewPackageContentsMessage {
+ get {
+ return ResourceManager.GetString("PublishPackagePreviewPackageContentsMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Remove from package.
+ ///
+ public static string PublishPackageRemoveFromPacakgeTooltip {
+ get {
+ return ResourceManager.GetString("PublishPackageRemoveFromPacakgeTooltip", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to When this setting is enabled, the folder structure of uploaded files will be retained. Otherwise, files will be placed into predefined folders.
+ ///
+ ///Note: Incorrect folder structure may affect the functionality of packages that rely on the correct file organization. When in doubt, leave this setting off.
+ /// .
+ ///
+ public static string PublishPackageRetainFolderStructureTooltip {
+ get {
+ return ResourceManager.GetString("PublishPackageRetainFolderStructureTooltip", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Select Node Libraries.
///
@@ -7966,7 +8149,16 @@ public static string PublishPackageSelectNodeLibraries {
}
///
- /// Looks up a localized string similar to 1.
+ /// Looks up a localized string similar to Select package contents.
+ ///
+ public static string PublishPackageSelectPackageContentsMessage {
+ get {
+ return ResourceManager.GetString("PublishPackageSelectPackageContentsMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 0.
///
public static string PublishPackageVersionBuildWatermark {
get {
@@ -8064,6 +8256,15 @@ public static string PublishPackageViewCopyrightHolderSubLabel {
}
}
+ ///
+ /// Looks up a localized string similar to The package's copyright holder..
+ ///
+ public static string PublishPackageViewCopyrightHolderTooltip {
+ get {
+ return ResourceManager.GetString("PublishPackageViewCopyrightHolderTooltip", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Author name.
///
@@ -8091,6 +8292,15 @@ public static string PublishPackageViewCopyrightYearSubLabel {
}
}
+ ///
+ /// Looks up a localized string similar to The copyright year for the package..
+ ///
+ public static string PublishPackageViewCopyrightYearTooltip {
+ get {
+ return ResourceManager.GetString("PublishPackageViewCopyrightYearTooltip", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Publishing year.
///
@@ -8109,6 +8319,24 @@ public static string PublishPackageViewFilePath {
}
}
+ ///
+ /// Looks up a localized string similar to GitHub repository link for the package..
+ ///
+ public static string PublishPackageViewGithubLinkTooltip {
+ get {
+ return ResourceManager.GetString("PublishPackageViewGithubLinkTooltip", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The package's licence..
+ ///
+ public static string PublishPackageViewLicenceTooltip {
+ get {
+ return ResourceManager.GetString("PublishPackageViewLicenceTooltip", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to License (optional).
///
@@ -8299,7 +8527,7 @@ public static string PublishPackageViewPackageVersion {
}
///
- /// Looks up a localized string similar to A version name helps a submitter keep track of updates to the package. A new version of a package will be REJECTED if this is not incremeneted..
+ /// Looks up a localized string similar to A version name helps a submitter keep track of updates to the package. When a new version of a package is added, version number must be increased..
///
public static string PublishPackageViewPackageVersionTooltip {
get {
@@ -8334,6 +8562,15 @@ public static string PublishPackageViewPublisherWebSite {
}
}
+ ///
+ /// Looks up a localized string similar to Website link for the package..
+ ///
+ public static string PublishPackageViewPublisherWebsiteTooltip {
+ get {
+ return ResourceManager.GetString("PublishPackageViewPublisherWebsiteTooltip", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Removes this item from the package contents list..
///
@@ -9662,7 +9899,7 @@ public static string UpdateMessage {
}
///
- /// Looks up a localized string similar to Agreement to Collect Usability Data.
+ /// Looks up a localized string similar to Agreement and Terms of Use.
///
public static string UsageReportPromptDialogTitle {
get {
diff --git a/src/DynamoCoreWpf/Properties/Resources.en-US.resx b/src/DynamoCoreWpf/Properties/Resources.en-US.resx
index 1cc4c2ff2f9..bcae7625ea4 100644
--- a/src/DynamoCoreWpf/Properties/Resources.en-US.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.en-US.resx
@@ -764,7 +764,7 @@ Don't worry, you'll have the option to save your work.
Setting menu | Decimal inch
- Agreement to _Collect Usability Data
+ Agreement and _Terms of Use
Dynamo menu | Show user agreement dialog about data collecting
@@ -1411,7 +1411,31 @@ To avoid unintended behavior, uninstall the conflicting loaded package(s), resta
The "More" button on "Publish a Dynamo Package" dialog
- Name must be at least 3 characters.
+ Must be at least 3 characters
+ ErrorString
+
+
+ Provide package name
+ ErrorString
+
+
+ Provide package name and file(s)
+ ErrorString
+
+
+ Provide package name and version number
+ ErrorString
+
+
+ Provide version number
+ ErrorString
+
+
+ Provide version number and file(s)
+ ErrorString
+
+
+ Provide file(s)
ErrorString
@@ -1488,6 +1512,9 @@ To avoid unintended behavior, uninstall the conflicting loaded package(s), resta
Next assemblies were loaded several times:
+
+ Ready to publish
+
only
@@ -1576,6 +1603,15 @@ Next assemblies were loaded several times:
Move the selected path upward
Tool-tip for up arrow
+
+ Package Path
+
+
+ files uploaded
+
+
+ files published
+
Package Path Added
@@ -1648,7 +1684,7 @@ Next assemblies were loaded several times:
Install latest version
- Install latest version to folder...
+ Install to folder...
Install this version
@@ -1798,6 +1834,12 @@ Next assemblies were loaded several times:
Published Successfully
+
+ Select package contents
+
+
+ Preview package contents (read only)
+
Publish Locally
@@ -1812,7 +1854,10 @@ Want to publish a different package?
Add Files
- Add File To Package
+ Add file
+
+
+ Remove from package
Is Node Library
@@ -1859,7 +1904,22 @@ Want to publish a different package?
Build
- A version name helps a submitter keep track of updates to the package. A new version of a package will be REJECTED if this is not incremeneted.
+ A version name helps a submitter keep track of updates to the package. When a new version of a package is added, version number must be increased.
+
+
+ Website link for the package.
+
+
+ GitHub repository link for the package.
+
+
+ The package's licence.
+
+
+ The package's copyright holder.
+
+
+ The copyright year for the package.
Publish a Package
@@ -2157,7 +2217,10 @@ Installing the latest update requires Dynamo and any host applications to close.
Do you want to install the latest Dynamo update?
- Agreement to Collect Usability Data
+ Agreement and Terms of Use
+
+
+ I agree to ML Node Autocomplete Terms of Use
Keep 1 input list's nesting
@@ -2250,10 +2313,7 @@ Uninstall the following packages: {0}?
Filter by
- Display the dialog for user to pick agreement on data collecting.
-
-
- Crash report from Dynamo {0}
+ Display the dialog of agreement on data collecting and Machine Learning Node Autocomplete terms of use
@@ -2832,7 +2892,7 @@ If the toggle is off custom packages that are not already loaded will load once
0
- 1
+ 0
Description
@@ -2887,7 +2947,7 @@ This package will be unloaded after the next Dynamo restart.
Add Directory
- Add Directory And Its Files To Package
+ Add folder
Markdown Files Path (optional)
@@ -2943,6 +3003,9 @@ This package will be unloaded after the next Dynamo restart.
Publish a Package
+
+ Virus scan in progress. Your package will be searchable in approximately 15 minutes.
+
Installed Packages
@@ -2964,6 +3027,12 @@ This package will be unloaded after the next Dynamo restart.
Once you install a package, you can find it here.
+
+ Sign in to your Dynamo account to view your published packages.
+
+
+ Once signed in, you can find your published packages here.
+
Search for Packages
@@ -3025,7 +3094,7 @@ This package will be unloaded after the next Dynamo restart.
Hide Wire
- Packages provide additional functions that you can use in Dynamo. \n\nTo find a package or see whatâs available, \n**Click Packages > Search for Packages**.
+ Packages provide additional functions that you can use in Dynamo. \n\nTo find a package or see whatâs available, \n**Click Packages > Package Manager...**.
Find a package
@@ -3167,6 +3236,15 @@ To install the latest version of a package, click Install. \n
Node Library
+
+ When this setting is enabled, the folder structure of uploaded files will be retained. Otherwise, files will be placed into predefined folders.
+
+Note: Incorrect folder structure may affect the functionality of packages that rely on the correct file organization. When in doubt, leave this setting off.
+
+
+
+ DLL file containing types and methods that Dynamo imports as nodes. Mark ZeroTouch, NodeModel, or NodeViewCustomization DLLs and types you want to import into Dynamo as node libraries.
+
Renamed from {0}
@@ -3297,6 +3375,12 @@ Try placing the highlighted **ByOrigin** node.
No, close file
+
+ Discard changes?
+
+
+ Your changes will be lost if you navigate away from the package upload screen.
+
Settings
@@ -3774,4 +3858,7 @@ In certain complex graphs or host program scenarios, Automatic mode may cause in
When toggled on, some graphics will render faster
+
+ To access the Recommended Nodes feature, please read and accept Dynamo > Agreement and Terms of Use.
+
diff --git a/src/DynamoCoreWpf/Properties/Resources.resx b/src/DynamoCoreWpf/Properties/Resources.resx
index b169df206b4..49d0e243744 100644
--- a/src/DynamoCoreWpf/Properties/Resources.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.resx
@@ -487,7 +487,7 @@
Setting menu | Decimal inch
- Agreement to _Collect Usability Data
+ Agreement and _Terms of Use
Dynamo menu | Show user agreement dialog about data collecting
@@ -1151,7 +1151,10 @@ Don't worry, you'll have the option to save your work.
Cancel
- Agreement to Collect Usability Data
+ Agreement and Terms of Use
+
+
+ I agree to ML Node Autocomplete Terms of Use
Clear
@@ -1283,6 +1286,9 @@ Don't worry, you'll have the option to save your work.
Publish a Package
+
+ Virus scan in progress. Your package will be searchable in approximately 15 minutes.
+
Installed Packages
@@ -1304,6 +1310,12 @@ Don't worry, you'll have the option to save your work.
Once you install a package, you can find it here.
+
+ Sign in to your Dynamo account to view your published packages.
+
+
+ Once signed in, you can find your published packages here.
+
Search for Packages
@@ -1465,7 +1477,7 @@ If the toggle is off custom packages that are not already loaded will load once
Install latest version
- Install latest version to folder...
+ Install to folder...
Install this version
@@ -1589,6 +1601,9 @@ If the toggle is off custom packages that are not already loaded will load once
Add File To Package
+
+ Remove from package
+
Add Directory And Its Files To Package
@@ -1661,7 +1676,22 @@ If the toggle is off custom packages that are not already loaded will load once
Build
- A version name helps a submitter keep track of updates to the package. A new version of a package will be REJECTED if this is not incremeneted.
+ A version name helps a submitter keep track of updates to the package. When a new version of a package is added, version number must be increased.
+
+
+ Website link for the package.
+
+
+ GitHub repository link for the package.
+
+
+ The package's copyright holder.
+
+
+ The package's licence.
+
+
+ The copyright year for the package.
0
@@ -1670,7 +1700,7 @@ If the toggle is off custom packages that are not already loaded will load once
0
- 1
+ 0
Group
@@ -1706,6 +1736,15 @@ If the toggle is off custom packages that are not already loaded will load once
Node Library
+
+ When this setting is enabled, the folder structure of uploaded files will be retained. Otherwise, files will be placed into predefined folders.
+
+Note: Incorrect folder structure may affect the functionality of packages that rely on the correct file organization. When in doubt, leave this setting off.
+
+
+
+ DLL file containing types and methods that Dynamo imports as nodes. Mark ZeroTouch, NodeModel, or NodeViewCustomization DLLs and types you want to import into Dynamo as node libraries.
+
Show Classic Node Library
@@ -1745,7 +1784,31 @@ If the toggle is off custom packages that are not already loaded will load once
ErrorString
- Name must be at least 3 characters.
+ Must be at least 3 characters
+ ErrorString
+
+
+ Provide package name
+ ErrorString
+
+
+ Provide package name and file(s)
+ ErrorString
+
+
+ Provide package name and version number
+ ErrorString
+
+
+ Provide version number
+ ErrorString
+
+
+ Provide version number and file(s)
+ ErrorString
+
+
+ Provide file(s)
ErrorString
@@ -2211,6 +2274,15 @@ Do you want to install the latest Dynamo update?
Move the selected path upward
Tool-tip for up arrow
+
+ Package Path
+
+
+ files uploaded
+
+
+ files published
+
Package Path Added
@@ -2250,6 +2322,12 @@ Do you want to install the latest Dynamo update?
Publish Locally
+
+ Select package contents
+
+
+ Preview package contents (read only)
+
_Background Preview
The name of the 3D background preview.
@@ -2323,6 +2401,9 @@ Do you want to install the latest Dynamo update?
Next assemblies were loaded several times:
+
+ Ready to publish
+
Failed to add file: {0}
Message box content
@@ -2462,9 +2543,6 @@ Want to publish a different package?
Custom Nodes will be placed in the Add-Ons section of the library.
Note regarding Custom Node library location
-
- Crash report from Dynamo {0}
-
Please wait...
@@ -2525,7 +2603,7 @@ Uninstall the following packages: {0}?
Filter by
- Display the dialog for user to pick agreement on data collecting.
+ Display the dialog of agreement on data collecting and Machine Learning Node Autocomplete terms of use
@@ -3048,7 +3126,7 @@ Delete the following packages: {2}?
Hide Wire
- Packages provide additional functions that you can use in Dynamo. \n\nTo find a package or see whatâs available, \n**Click Packages > Search for Packages**.
+ Packages provide additional functions that you can use in Dynamo. \n\nTo find a package or see whatâs available, \n**Click Packages > Package Manager...**.
Find a package
@@ -3284,6 +3362,12 @@ Try placing the highlighted **ByOrigin** node.
No, close file
+
+ Discard changes?
+
+
+ Your changes will be lost if you navigate away from the package upload screen.
+
Settings
@@ -3761,4 +3845,7 @@ In certain complex graphs or host program scenarios, Automatic mode may cause in
When toggled on, some graphics will render faster
+
+ To access the Recommended Nodes feature, please read and accept Dynamo > Agreement and Terms of Use.
+
diff --git a/src/DynamoCoreWpf/Services/UsageReportingManager.cs b/src/DynamoCoreWpf/Services/UsageReportingManager.cs
index 4a78202266f..4c09d4aae9e 100644
--- a/src/DynamoCoreWpf/Services/UsageReportingManager.cs
+++ b/src/DynamoCoreWpf/Services/UsageReportingManager.cs
@@ -105,15 +105,14 @@ public void ToggleIsAnalyticsReportingApproved(object parameter)
private void ShowUsageReportingPrompt(Window ownerWindow)
{
// If an owner window is not supplied, then we will fallback onto
- // using the application's main window. In native host application
- // scenario (e.g. Revit), the "Application.Current" will be "null".
+ // using the application's main window.
// The owner window is important so that usage report window always
// get shown on top of the owner window, otherwise it is possible
// for usage report window to show up in the background (behind all
// other full screen windows), and Dynamo main window will appear
// to be frozen because control cannot return to it.
//
- if (ownerWindow == null && (null != Application.Current))
+ if (ownerWindow == null && string.IsNullOrEmpty(DynamoModel.HostAnalyticsInfo.HostName) && Application.Current != null)
ownerWindow = Application.Current.MainWindow;
var usageReportingPrompt = new UsageReportingAgreementPrompt(resourceProvider, dynamoViewModel)
diff --git a/src/DynamoCoreWpf/UI/Converters.cs b/src/DynamoCoreWpf/UI/Converters.cs
index e6c36a9525e..56df2b6627b 100644
--- a/src/DynamoCoreWpf/UI/Converters.cs
+++ b/src/DynamoCoreWpf/UI/Converters.cs
@@ -377,6 +377,30 @@ public object ConvertBack(object value, Type targetType, object parameter,
}
}
+
+ ///
+ /// Given a string, returns to upper case
+ ///
+ public class ToTitleCaseStringConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter,
+ CultureInfo culture)
+ {
+ if (value is string text)
+ {
+ var textInfo = culture.TextInfo;
+ return textInfo.ToTitleCase(text);
+ }
+ return value;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter,
+ CultureInfo culture)
+ {
+ return null;
+ }
+ }
+
///
/// If the given string is empty, collapsed visibility enum is returned, otherwise visible enum is returned.
///
@@ -1415,6 +1439,27 @@ public object ConvertBack(object value, Type targetType, object parameter, Syste
}
}
+ ///
+ /// Converts 0 Collapsed state, otherwise returns Visible
+ ///
+ public class ZeroToVisibilityCollapsedConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+ {
+ if (value is int zero)
+ {
+ return zero == 0 ? Visibility.Collapsed : Visibility.Visible;
+ }
+
+ return Visibility.Collapsed; // If not int or int not zero, return collapsed.
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+ {
+ throw new NotSupportedException();
+ }
+ }
+
///
/// Takes a value and if the value is not null returns Unity Type Auto (*) as a length value
/// Returns 0 length if the value is null
@@ -2048,6 +2093,28 @@ public object ConvertBack(object value, Type targetType, object parameter, Cultu
}
}
+ public sealed class NullOrEmptyStringToVisibiltyCollapsedConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ bool invert = parameter as string == "invert";
+
+ if (String.IsNullOrEmpty((string)value))
+ {
+ return invert ? Visibility.Visible : Visibility.Collapsed;
+ }
+ else
+ {
+ return invert ? Visibility.Collapsed : Visibility.Visible;
+ }
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+
public sealed class NullToPinWidthConverter : IValueConverter
{
public const double PIN_WIDTH = 4;
@@ -3811,4 +3878,80 @@ public object[] ConvertBack(object value, Type[] targetTypes, object parameter,
return null;
}
}
+
+
+ ///
+ /// Convers PackageUploadHandle UploadType enum value to visibility
+ ///
+ public class PackageUploadHandleUploadTypeToVisibilityConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (value is PackageUploadHandle.UploadType uploadType)
+ {
+ if (parameter != null && parameter.ToString().ToLower() == "invert")
+ {
+ return uploadType != PackageUploadHandle.UploadType.Submit ? Visibility.Visible : Visibility.Hidden;
+ }
+ else
+ {
+ return uploadType == PackageUploadHandle.UploadType.Submit ? Visibility.Visible : Visibility.Hidden;
+ }
+ }
+
+ return Visibility.Hidden;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter,
+ CultureInfo culture)
+ {
+ return null;
+ }
+ }
+
+ ///
+ /// ReadyToPublish message to visibility converter
+ ///
+ public class ReadyToPublishToVisibilityCollapsedConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (value is string errorMessage && errorMessage.Equals(Resources.PackageManagerReadyToPublish))
+ {
+ return Visibility.Visible;
+ }
+
+ return Visibility.Collapsed;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter,
+ CultureInfo culture)
+ {
+ return null;
+ }
+ }
+
+ ///
+ /// Given a string, returns to upper case
+ ///
+ public class StringEqualsZeroToVisibilityCollapsedConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter,
+ CultureInfo culture)
+ {
+ if (value is string nullOrEmptyString && String.IsNullOrEmpty(nullOrEmptyString)) return Visibility.Visible;
+ if (value is string zeroString && zeroString.Equals("0"))
+ {
+ return Visibility.Visible;
+ }
+ return Visibility.Collapsed;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter,
+ CultureInfo culture)
+ {
+ return null;
+ }
+ }
+
}
diff --git a/src/DynamoCoreWpf/UI/GuidedTour/GuidesValidationMethods.cs b/src/DynamoCoreWpf/UI/GuidedTour/GuidesValidationMethods.cs
index faf67c82ec9..6b9c6275bad 100644
--- a/src/DynamoCoreWpf/UI/GuidedTour/GuidesValidationMethods.cs
+++ b/src/DynamoCoreWpf/UI/GuidedTour/GuidesValidationMethods.cs
@@ -3,6 +3,8 @@
using System.Reflection;
using System.Windows;
using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Input;
using System.Windows.Shapes;
using System.Windows.Threading;
using Dynamo.Controls;
@@ -29,6 +31,11 @@ internal class GuidesValidationMethods
internal static Guide CurrentExecutingGuide;
internal static GuidesManager CurrentExecutingGuidesManager;
+ private const double PMCustomWidth = 600;
+ private const double PMCustomHeight = 200;
+ private const double PMDefaultWidth = 1076;
+ private const double PMDefaultHeight = 718;
+
private static ExitGuide exitGuide;
private const string AutodeskSamplePackage = "Dynamo Samples";
private static PackageManagerSearchViewModel viewModel;
@@ -78,7 +85,7 @@ internal static void ExecuteTermsOfServiceFlow(Step stepInfo, StepUIAutomation u
if (enableFunction)
{
//If the TermsOfService is not accepted yet it will show the TermsOfUseView otherwise it will show the PackageManagerSearchView
- stepInfo.DynamoViewModelStep.ShowPackageManagerSearch(null);
+ stepInfo.DynamoViewModelStep.ShowPackageManager(null);
CurrentGuideWindow = GuideUtilities.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window);
foreach (var handler in uiAutomationData.AutomaticHandlers)
{
@@ -184,7 +191,12 @@ internal static void ExecuteInstallPackagesFlow(Step stepInfo, StepUIAutomation
if (enableFunction)
{
if (ownedWindow != null)
- viewModel = ownedWindow.DataContext as PackageManagerSearchViewModel;
+ {
+ var packageManager = ownedWindow as PackageManagerView;
+ if (packageManager == null) return;
+ viewModel = packageManager.PackageManagerViewModel.PackageSearchViewModel;
+ }
+
Button buttonElement = GuideUtilities.FindChild(ownedWindow, stepInfo.HostPopupInfo.HostUIElementString) as Button;
viewModel.PackageManagerClientViewModel.Downloads.CollectionChanged += Downloads_CollectionChanged;
@@ -320,12 +332,12 @@ internal static void ExecutePackageSearch(Step stepInfo, StepUIAutomation uiAuto
{
//We need to check if the PackageManager search is already open if that is the case we don't need to open it again
if (ownedWindow != null) return;
- stepInfo.DynamoViewModelStep.ShowPackageManagerSearch(null);
+ stepInfo.DynamoViewModelStep.ShowPackageManager(new PackageManagerSizeEventArgs(PMCustomWidth, PMCustomHeight));
- PackageManagerSearchView packageManager = GuideUtilities.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window) as PackageManagerSearchView;
+ PackageManagerView packageManager = GuideUtilities.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window) as PackageManagerView;
if (packageManager == null)
return;
- PackageManagerSearchViewModel packageManagerViewModel = packageManager.DataContext as PackageManagerSearchViewModel;
+ PackageManagerSearchViewModel packageManagerViewModel = packageManager.PackageManagerViewModel.PackageSearchViewModel;
if (packageManagerViewModel == null)
return;
@@ -338,10 +350,10 @@ internal static void ExecutePackageSearch(Step stepInfo, StepUIAutomation uiAuto
else
{
- PackageManagerSearchView packageManager = GuideUtilities.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window) as PackageManagerSearchView;
+ PackageManagerView packageManager = GuideUtilities.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window) as PackageManagerView;
if (packageManager == null)
return;
- PackageManagerSearchViewModel packageManagerViewModel = packageManager.DataContext as PackageManagerSearchViewModel;
+ PackageManagerSearchViewModel packageManagerViewModel = packageManager.PackageManagerViewModel.PackageSearchViewModel;
if (packageManagerViewModel == null)
return;
@@ -371,13 +383,19 @@ internal static void ExecutePackageSearch(Step stepInfo, StepUIAutomation uiAuto
/// This method will find the PackageManagerSearch window and then close it
///
///
- private static void ClosePackageManager(PackageManagerSearchView packageManager)
+ private static void ClosePackageManager(PackageManagerView packageManager)
{
- PackageManagerSearchViewModel packageManagerViewModel = packageManager.DataContext as PackageManagerSearchViewModel;
+ PackageManagerSearchViewModel packageManagerViewModel = packageManager.PackageManagerViewModel.PackageSearchViewModel;
if (packageManagerViewModel == null)
return;
+ packageManager.PackageManagerViewModel.Width = PMDefaultWidth;
+ packageManager.PackageManagerViewModel.Height = PMDefaultHeight;
packageManagerViewModel.PropertyChanged -= searchPackagesPropertyChanged.Invoke;
+
+ //Enable the DynamoView.mainGrid so the user will be able to interact with Dynamo
+ (packageManager.Owner as DynamoView).EnableEnvironment(true);
packageManager.Close();
+
}
///
@@ -508,7 +526,7 @@ internal static void SearchForPackage_Click(object sender, RoutedEventArgs e)
internal static void SubscribeViewDetailsEvent(Step stepInfo, StepUIAutomation uiAutomationData, bool enableFunction, GuideFlow currentFlow)
{
CurrentExecutingStep = stepInfo;
- PackageManagerSearchView packageManager = GuideUtilities.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window) as PackageManagerSearchView;
+ PackageManagerView packageManager = GuideUtilities.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window) as PackageManagerView;
if (packageManager == null) return;
Button foundElement = GuideUtilities.FindChild(packageManager, stepInfo.HostPopupInfo.HighlightRectArea.WindowElementNameString) as Button;
if (foundElement == null)
@@ -546,7 +564,7 @@ internal static void ExecuteViewDetailsSideBar(Step stepInfo, StepUIAutomation u
{
const string packageDetailsName = "Package Details";
const string closeButtonName = "CloseButton";
- const string packageSearchWindowName = "PackageSearch";
+ const string packageManagerWindowName = "PackageManagerWindow";
CurrentExecutingStep = stepInfo;
var stepMainWindow = stepInfo.MainWindow as Window;
@@ -555,42 +573,32 @@ internal static void ExecuteViewDetailsSideBar(Step stepInfo, StepUIAutomation u
if (enableFunction)
{
//This section will open the Package Details Sidebar
- PackageManagerSearchView packageManager = GuideUtilities.FindWindowOwned(packageSearchWindowName, stepMainWindow) as PackageManagerSearchView;
+ PackageManagerView packageManager = GuideUtilities.FindWindowOwned(packageManagerWindowName, stepMainWindow) as PackageManagerView;
if (packageManager == null)
return;
- PackageManagerSearchViewModel packageManagerViewModel = packageManager.DataContext as PackageManagerSearchViewModel;
+ PackageManagerSearchViewModel packageManagerViewModel = packageManager.PackageManagerViewModel.PackageSearchViewModel;
//If the results in the PackageManagerSearch are null then we cannot open the Package Detail tab
if (packageManagerViewModel == null || packageManagerViewModel.SearchResults.Count == 0)
return;
- //We take the first result from the PackageManagerSearch
- PackageManagerSearchElementViewModel packageManagerSearchElementViewModel = packageManagerViewModel.SearchResults[0];
- if (packageManagerSearchElementViewModel == null) return;
-
- if (packageDetailsWindow == null)
- packageManagerViewModel.ViewPackageDetailsCommand.Execute(packageManagerSearchElementViewModel.Model);
+ var viewDetailsButton = WpfUtilities.ChildOfType
///
- private void model_RequestNotification(string notification)
+ private void model_RequestNotification(string notification, bool stayOpen = false)
{
- this.MainGuideManager.CreateRealTimeInfoWindow(notification);
+ this.MainGuideManager.CreateRealTimeInfoWindow(notification, stayOpen);
}
///
@@ -2101,15 +2101,52 @@ internal bool CanSaveAs(object parameters)
return (parameters != null);
}
+ ///
+ /// Indicates if the graph has been changed substantially bearing in mind the connections of its nodes and store the checksum value of the graph in the preferences to later comparison
+ ///
+ ///
+ private bool HasSubstantialCheckSum()
+ {
+ bool substantialChecksum = false;
+ string graphId = Model.CurrentWorkspace.Guid.ToString();
+
+ GraphChecksumItem checksumItem = PreferenceSettings.GraphChecksumItemsList.Where(i => i.GraphId == graphId).FirstOrDefault();
+ if (checksumItem != null)
+ {
+ if (checksumItem.Checksum != currentWorkspaceViewModel.Checksum)
+ {
+ PreferenceSettings.GraphChecksumItemsList.Remove(checksumItem);
+ PreferenceSettings.GraphChecksumItemsList.Add(new GraphChecksumItem() { GraphId = graphId, Checksum = currentWorkspaceViewModel.Checksum });
+ substantialChecksum = true;
+ }
+ }
+ else
+ {
+ PreferenceSettings.GraphChecksumItemsList.Add(new GraphChecksumItem() { GraphId = graphId, Checksum = currentWorkspaceViewModel.Checksum });
+ substantialChecksum = true;
+ }
+ return substantialChecksum;
+ }
+
private void InternalSaveAs(string path, SaveContext saveContext, bool isBackup = false)
{
try
{
Model.Logger.Log(String.Format(Properties.Resources.SavingInProgress, path));
CurrentSpaceViewModel.Save(path, isBackup, Model.EngineController, saveContext);
- if (!isBackup) AddToRecentFiles(path);
- if (currentWorkspaceViewModel?.IsHomeSpace ?? true)
- Model.Logger.Log("The Workspace is valid for FDX : " + (HomeSpace.HasRunWithoutCrash && Model.CurrentWorkspace.IsValidForFDX).ToString());
+
+ if (!isBackup)
+ {
+ AddToRecentFiles(path);
+
+ if ((currentWorkspaceViewModel?.IsHomeSpace ?? true) && HomeSpace.HasRunWithoutCrash && Model.CurrentWorkspace.IsValidForFDX && currentWorkspaceViewModel.Checksum != string.Empty)
+ {
+ Model.Logger.Log("The Workspace is valid for FDX");
+ Model.Logger.Log("The Workspace id is : " + currentWorkspaceViewModel.Model.Guid.ToString());
+ Model.Logger.Log("The Workspace checksum is : " + currentWorkspaceViewModel.Checksum);
+ Model.Logger.Log("The Workspace has Substantial checksum, so is ready to send to FDX : " + HasSubstantialCheckSum().ToString());
+ }
+ }
}
catch (Exception ex)
{
@@ -2241,8 +2278,16 @@ internal void ShowPackageManager(object parameters)
}
else
{
- var param = (string)parameters;
- OnRequestPackageManagerDialog(this, new OpenPackageManagerEventArgs(param));
+ //When we pass the PackageManagerSizeEventArgs means that we want to start the PackageManagerView with a specific Width and Height
+ if (parameters is PackageManagerSizeEventArgs)
+ {
+ OnRequestPackageManagerDialog(this, parameters as PackageManagerSizeEventArgs);
+ }
+ else
+ {
+ var param = (string)parameters;
+ OnRequestPackageManagerDialog(this, new OpenPackageManagerEventArgs(param));
+ }
}
}
@@ -2791,7 +2836,7 @@ public void SaveImage(object parameters)
{
OnRequestSaveImage(this, new ImageSaveEventArgs(parameters.ToString()));
- Dynamo.Logging.Analytics.TrackCommandEvent("ImageCapture",
+ Dynamo.Logging.Analytics.TrackTaskCommandEvent("ImageCapture",
"NodeCount", CurrentSpace.Nodes.Count());
}
@@ -3266,7 +3311,7 @@ private void ExportToSTL(object parameter)
{
BackgroundPreviewViewModel.ExportToSTL(_fileDialog.FileName, HomeSpace.Name);
- Dynamo.Logging.Analytics.TrackCommandEvent("ExportToSTL");
+ Dynamo.Logging.Analytics.TrackTaskCommandEvent("ExportToSTL");
}
}
diff --git a/src/DynamoCoreWpf/ViewModels/Core/WorkspaceViewModel.cs b/src/DynamoCoreWpf/ViewModels/Core/WorkspaceViewModel.cs
index 25d88a86de4..38e8fb18017 100644
--- a/src/DynamoCoreWpf/ViewModels/Core/WorkspaceViewModel.cs
+++ b/src/DynamoCoreWpf/ViewModels/Core/WorkspaceViewModel.cs
@@ -357,6 +357,106 @@ public bool IsHomeSpace
get { return Model == DynamoViewModel.HomeSpace; }
}
+ ///
+ /// Returns the Json representation of the current graph
+ ///
+ [JsonIgnore]
+ internal JObject JsonRepresentation { get; set; }
+
+ ///
+ /// Returns the stringified representation of the connected nodes
+ ///
+ [JsonIgnore]
+ public string Checksum
+ {
+ get
+ {
+ List nodeInfoConnections = new List();
+ JObject jsonWorkspace = JsonRepresentation;
+ var nodes = jsonWorkspace["Nodes"];
+
+ List nodeIds = new List();
+ foreach (JObject node in nodes)
+ {
+ var nodeProperties = node.Children();
+ JProperty id = nodeProperties.FirstOrDefault(x => x.Name == "Id");
+ nodeIds.Add(id.Value.ToString());
+ }
+
+ nodeIds.Sort();
+
+ foreach (string nodeId in nodeIds)
+ {
+ List outputIds = new List();
+ var node = jsonWorkspace["Nodes"].Where(t => t.Value("Id") == nodeId).Select(t => t).FirstOrDefault();
+ var outputsProperty = node.Children().FirstOrDefault(x => x.Name == "Outputs");
+ var outputs = (JArray)outputsProperty.Value;
+ int outputIndex = 1;
+
+ foreach (JObject output in outputs)
+ {
+ var outputProperties = output.Children();
+ JProperty outputId = outputProperties.FirstOrDefault(x => x.Name == "Id");
+ outputIds.Add(outputId.Value.ToString());
+
+ var connectorsProperty = jsonWorkspace["Connectors"].Where(t => t.Value("Start") == outputId.Value.ToString());
+
+ foreach (var connector in connectorsProperty)
+ {
+ var connectorProperties = connector.Children();
+ JProperty endProperty = connectorProperties.FirstOrDefault(x => x.Name == "End");
+ string inputId = (String)endProperty.Value;
+
+ var outputConnectedNode = GetNodeByInputId(inputId, jsonWorkspace);
+ nodeInfoConnections.Add(nodeId + "|[" + outputIndex.ToString() + "|" + outputConnectedNode.Item1 + "|" + outputConnectedNode.Item2.ToString() + "]");
+ }
+ outputIndex++;
+ }
+ }
+ return nodeInfoConnections.Count > 0 ? string.Join(",", nodeInfoConnections) : string.Empty;
+ }
+ }
+
+ Tuple GetNodeByInputId(string inputId, JObject jsonWorkspace)
+ {
+ var nodes = jsonWorkspace["Nodes"];
+
+ string nodeId = string.Empty;
+ int connectedInputIndex = 1;
+ bool foundNode = false;
+
+ foreach (var node in nodes)
+ {
+ if (!foundNode)
+ {
+ nodeId = string.Empty;
+ connectedInputIndex = 1;
+
+ var nodeProperties = node.Children();
+ JProperty nodeProperty = nodeProperties.FirstOrDefault(x => x.Name == "Id");
+ nodeId = (String)nodeProperty.Value;
+
+ JProperty nodeInputs = nodeProperties.FirstOrDefault(x => x.Name == "Inputs");
+ var inputs = (JArray)nodeInputs.Value;
+
+ foreach (JObject input in inputs)
+ {
+ var inputProperties = input.Children();
+ JProperty connectedNodeInputId = inputProperties.FirstOrDefault(x => x.Name == "Id");
+
+ if ((String)connectedNodeInputId.Value == inputId)
+ {
+ foundNode = true;
+ break;
+ }
+ connectedInputIndex++;
+ }
+ }
+ }
+
+ return new Tuple(nodeId, connectedInputIndex);
+ }
+
[JsonIgnore]
public bool HasUnsavedChanges
{
@@ -591,6 +691,16 @@ internal void ZoomOutInternal()
ResetFitViewToggle(null);
}
+ internal JObject GetJsonRepresentation(EngineController engine = null)
+ {
+ // Step 1: Serialize the workspace.
+ var json = Model.ToJson(engine);
+ var json_parsed = JObject.Parse(json);
+
+ // Step 2: Add the View.
+ return AddViewBlockToJSON(json_parsed);
+ }
+
///
/// WorkspaceViewModel's Save method does a two-part serialization. First, it serializes the Workspace,
/// then adds a View property to serialized Workspace, and sets its value to the serialized ViewModel.
@@ -616,14 +726,11 @@ internal void Save(string filePath, bool isBackup = false, EngineController engi
//set the name before serializing model.
this.Model.setNameBasedOnFileName(filePath, isBackup);
- // Stage 1: Serialize the workspace.
- var json = Model.ToJson(engine);
- var json_parsed = JObject.Parse(json);
- // Stage 2: Add the View.
- var jo = AddViewBlockToJSON(json_parsed);
+ // Stage 1: Serialize the workspace and the View
+ var jo = GetJsonRepresentation(engine);
- // Stage 3: Save
+ // Stage 2: Save
string saveContent;
if(saveContext == SaveContext.SaveAs && !isBackup)
{
@@ -645,19 +752,26 @@ internal void Save(string filePath, bool isBackup = false, EngineController engi
}
}
}
-
- saveContent = GuidUtility.UpdateWorkspaceGUIDs(jo.ToString());
+ saveContent = GuidUtility.UpdateWorkspaceGUIDs(jo.ToString());
}
else
{
saveContent = jo.ToString();
- }
- File.WriteAllText(filePath, saveContent);
+ }
+ File.WriteAllText(filePath, saveContent);
+
// Handle Workspace or CustomNodeWorkspace related non-serialization internal logic
// Only for actual save, update file path and recent file list
+ // The assignation of the JsonRepresentation and Guid is only for the checksum flow, it will grab info only from .dyn files
if (!isBackup)
{
+ if (Path.GetExtension(filePath).Equals(".dyn"))
+ {
+ JsonRepresentation = JObject.Parse(saveContent);
+ DynamoViewModel.Workspaces[0].Model.Guid = new Guid(JsonRepresentation.Properties().First(p => p.Name == "Uuid").Value.ToString());
+ }
+
Model.FileName = filePath;
Model.OnSaved();
}
@@ -1567,7 +1681,7 @@ private void DoGraphAutoLayout(object o)
Model.DoGraphAutoLayout();
DynamoViewModel.RaiseCanExecuteUndoRedo();
- Dynamo.Logging.Analytics.TrackCommandEvent("GraphLayout");
+ Dynamo.Logging.Analytics.TrackTaskCommandEvent("GraphLayout");
}
private static bool CanDoGraphAutoLayout(object o)
@@ -1639,7 +1753,7 @@ internal void CollapseSelectedNodes()
DynamoViewModel.Model.CustomNodeManager.Collapse(selectedNodes,
selectedNotes, Model, DynamoModel.IsTestMode, args));
- Dynamo.Logging.Analytics.TrackCommandEvent("NewCustomNode",
+ Dynamo.Logging.Analytics.TrackTaskCommandEvent("NewCustomNode",
"NodeCount", selectedNodes.Count());
}
diff --git a/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs b/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs
index a48e9d6fb5b..6ea260d6e66 100644
--- a/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs
+++ b/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs
@@ -1066,7 +1066,7 @@ public bool IsDynamoRevit
{
// HostAnalyticsInfo is not set when this is invoked??
//return this.dynamoViewModel.Model.HostAnalyticsInfo.HostName.Equals("Dynamo Revit");
- var host = this.dynamoViewModel.Model.HostAnalyticsInfo.HostName;
+ var host = DynamoModel.HostAnalyticsInfo.HostName;
if (host != null)
{
@@ -1101,6 +1101,17 @@ public bool NodeAutocompleteIsChecked
}
}
+ ///
+ /// If MLAutocompleteTOU is approved
+ ///
+ internal bool IsMLAutocompleteTOUApproved
+ {
+ get
+ {
+ return preferenceSettings.IsMLAutocompleteTOUApproved;
+ }
+ }
+
///
/// Controls if the the Node autocomplete Machine Learning option is checked for the radio buttons
///
diff --git a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageItemRootViewModel.cs b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageItemRootViewModel.cs
index c119e8991c6..f14f7df8a19 100644
--- a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageItemRootViewModel.cs
+++ b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageItemRootViewModel.cs
@@ -1,12 +1,15 @@
-īģŋusing System;
+using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using Dynamo.Utilities;
namespace Dynamo.PackageManager.UI
{
public enum DependencyType
{
- CustomNode, Assembly, File
+ CustomNode, Assembly, File, Folder, CustomNodePreview
}
public class PackageItemRootViewModel : PackageItemViewModel
@@ -15,18 +18,38 @@ public class PackageItemRootViewModel : PackageItemViewModel
/// The items inside of the browser item
///
private ObservableCollection _items = new ObservableCollection();
+ private ObservableCollection _childitems = new ObservableCollection();
public override ObservableCollection Items { get { return _items; } set { _items = value; } }
+ ///
+ /// This collection contains all nested items, if any
+ /// Will only contain items if a Folder. Nested items can be Files (custon nodes, assemblies, files) or other Folders
+ ///
+ public ObservableCollection ChildItems { get { return _childitems; } set { _childitems = value; } }
///
/// The name of this item, regardless of which constructor was used.
///
public string DisplayName { get; }
-
+
///
/// The file path of this item (if any), regardless of which constructor was used.
///
public string FilePath { get; }
-
+
+ ///
+ /// The folder where this item is located. For CustomNode this is empty
+ ///
+ public string DirectoryName { get; private set; }
+
+ ///
+ /// Shows if this item is a nested item to another, i.e. belongs to its 'ChildItems' collection
+ ///
+ internal bool isChild;
+
+ ///
+ /// Custom Node
+ ///
+ /// custom node definition
public PackageItemRootViewModel(CustomNodeDefinition def)
{
this.Height = 32;
@@ -34,19 +57,30 @@ public PackageItemRootViewModel(CustomNodeDefinition def)
this.Definition = def;
this.DisplayName = def.DisplayName;
this.FilePath = String.Empty;
+ this.DirectoryName = String.Empty;
this.BuildDependencies(new HashSet