diff --git a/.circleci/scripts/config-template.yml b/.circleci/scripts/config-template.yml index 35aa609d88..061fa2ef5e 100644 --- a/.circleci/scripts/config-template.yml +++ b/.circleci/scripts/config-template.yml @@ -31,7 +31,7 @@ workflows: tags: only: /^(nuget-core|nugets)\/([0-9]+)\.([0-9]+)\.([0-9]+)(?:-\w{1,10})?$/ post-steps: - - packandpublish + - publish-nugets context: nuget commands: @@ -52,20 +52,8 @@ commands: echo 'export VERSION=$(echo $VER.$WORKFLOW_NUM)' >> "$BASH_ENV" environment: WORKFLOW_NUM: << pipeline.number >> - - packandpublish: + publish-nugets: steps: - - run: - name: Build nuget packages - command: | - TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "2.0.999"; fi;) - NOPREFIX=$(echo $TAG | sed -e 's/^[a-zA-Z]*\///') - SEMVER=$(echo "$NOPREFIX" | sed -e 's/\/[a-zA-Z-]*//') - VER=$(echo "$SEMVER" | sed -e 's/-.*//') - VERSION=$(echo $VER.$WORKFLOW_NUM) - $HOME/.dotnet/dotnet pack All.sln -p:Version=$SEMVER -p:FileVersion=$VERSION -c Release -p:IsDesktopBuild=false - environment: - WORKFLOW_NUM: << pipeline.number >> - run: name: Push nuget packages command: $HOME/.dotnet/dotnet nuget push "**/*.nupkg" -s https://api.nuget.org/v3/index.json -k $NUGET_APIKEY -n --skip-duplicate @@ -115,6 +103,7 @@ jobs: # Each project will have individual jobs for each specific task it has to name: Install dotnet command: | curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel sts + curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --version 8.0.204 $HOME/.dotnet/dotnet --version - run: name: Enforce formatting @@ -132,6 +121,17 @@ jobs: # Each project will have individual jobs for each specific task it has to $HOME/.dotnet/dotnet build SDK.slnf -c Release -p:IsDesktopBuild=false -p:Version=$SEMVER -p:FileVersion=$VERSION environment: WORKFLOW_NUM: << pipeline.number >> + - run: + name: Build nuget packages + command: | + TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "2.0.999"; fi;) + NOPREFIX=$(echo $TAG | sed -e 's/^[a-zA-Z]*\///') + SEMVER=$(echo "$NOPREFIX" | sed -e 's/\/[a-zA-Z-]*//') + VER=$(echo "$SEMVER" | sed -e 's/-.*//') + VERSION=$(echo $VER.$WORKFLOW_NUM) + $HOME/.dotnet/dotnet pack All.sln -p:Version=$SEMVER -p:FileVersion=$VERSION -c Release -p:IsDesktopBuild=false + environment: + WORKFLOW_NUM: << pipeline.number >> - run-tests: title: Core Unit Tests project: Core/Tests/Speckle.Core.Tests.Unit/Speckle.Core.Tests.Unit.csproj @@ -151,6 +151,7 @@ jobs: # Each project will have individual jobs for each specific task it has to name: Install dotnet command: | curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel sts + curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --version 8.0.204 $HOME/.dotnet/dotnet --version - run: name: Startup the Speckle Server @@ -331,6 +332,7 @@ jobs: # Each project will have individual jobs for each specific task it has to name: Install dotnet command: | curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel sts + curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --version 8.0.204 $HOME/.dotnet/dotnet --version $HOME/.dotnet/dotnet --list-runtimes diff --git a/All.sln b/All.sln index c2ad4123bf..10b475678a 100644 --- a/All.sln +++ b/All.sln @@ -426,10 +426,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Automate.Sdk.Tests. EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConnectorCore", "ConnectorCore", "{DA9DFC36-C53F-4B19-8911-BF7605230BA7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BatchUploader.OperationDriver", "ConnectorCore\BatchUploader.OperationDriver\BatchUploader.OperationDriver.csproj", "{7F0206A9-61D4-4D3A-9B43-789DABA7C143}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BatchUploader.Sdk", "ConnectorCore\BatchUploader.Sdk\BatchUploader.Sdk.csproj", "{2CC777EB-BD63-4FAB-BC3A-68A640D2E639}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorRhino8", "ConnectorRhino\ConnectorRhino8\ConnectorRhino8.csproj", "{D22A887D-976C-4DBF-AE5B-9039F169E61C}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRhino8", "Objects\Converters\ConverterRhinoGh\ConverterRhino8\ConverterRhino8.csproj", "{89996067-3233-410A-A6A1-39E2F11F0626}" @@ -453,9 +449,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{8A909E95 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Objects.Tests.Unit", "Objects\Tests\Objects.Tests.Unit\Objects.Tests.Unit.csproj", "{9E74F0E6-94B4-46BD-B1CA-DD874B459399}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConverterNavisworks2025", "Objects\Converters\ConverterNavisworks\ConverterNavisworks2025\ConverterNavisworks2025.csproj", "{0B6B5C52-54EC-461F-8729-6244ACA63646}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterNavisworks2025", "Objects\Converters\ConverterNavisworks\ConverterNavisworks2025\ConverterNavisworks2025.csproj", "{0B6B5C52-54EC-461F-8729-6244ACA63646}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorNavisworks2025", "ConnectorNavisworks\ConnectorNavisworks2025\ConnectorNavisworks2025.csproj", "{2568500E-F1BC-440E-9150-DD4820B3FAD6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorNavisworks2025", "ConnectorNavisworks\ConnectorNavisworks2025\ConnectorNavisworks2025.csproj", "{2568500E-F1BC-440E-9150-DD4820B3FAD6}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DllConflictManagement", "ConnectorCore\DllConflictManagement\DllConflictManagement.csproj", "{0D23858F-4CC1-4DCA-9207-5EDB8B6CE9DD}" EndProject @@ -532,6 +528,20 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Speckle.Converters.Autocad2 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Speckle.Connectors.DUI.WebView", "DUI3-DX\DUI3\Speckle.Connectors.DUI.WebView\Speckle.Connectors.DUI.WebView.csproj", "{7420652C-3046-4F38-BE64-9B9E69D76FA2}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RevitSharedResources2025", "ConnectorRevit\RevitSharedResources2025\RevitSharedResources2025.csproj", "{7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorRevit2025", "ConnectorRevit\ConnectorRevit2025\ConnectorRevit2025.csproj", "{D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2025", "Objects\Converters\ConverterRevit\ConverterRevit2025\ConverterRevit2025.csproj", "{C0295BF9-9A40-4FCD-BE39-E943985CA3F8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorAutocad2025", "ConnectorAutocadCivil\ConnectorAutocad2025\ConnectorAutocad2025.csproj", "{42FE69BF-C821-43E8-8EAE-8F342749EF7A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterAutocad2025", "Objects\Converters\ConverterAutocadCivil\ConverterAutocad2025\ConverterAutocad2025.csproj", "{829688CD-CECE-4F6C-A5A0-032BB39CD9E0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorCivil2025", "ConnectorAutocadCivil\ConnectorCivil2025\ConnectorCivil2025.csproj", "{70DEAA13-6DC8-44A0-B287-9E806A8054F1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterCivil2025", "Objects\Converters\ConverterAutocadCivil\ConverterCivil2025\ConverterCivil2025.csproj", "{F06E4C37-4076-4272-9CA6-FB505E02CD31}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug Mac|Any CPU = Debug Mac|Any CPU @@ -2182,38 +2192,6 @@ Global {A0C9EBE0-A56A-4D07-B6EF-2EEAEC45D6C4}.Release|Any CPU.Build.0 = Release|Any CPU {A0C9EBE0-A56A-4D07-B6EF-2EEAEC45D6C4}.Release|x64.ActiveCfg = Release|Any CPU {A0C9EBE0-A56A-4D07-B6EF-2EEAEC45D6C4}.Release|x64.Build.0 = Release|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Debug Mac|x64.Build.0 = Debug|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Debug|x64.ActiveCfg = Debug|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Debug|x64.Build.0 = Debug|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Release Mac|Any CPU.ActiveCfg = Debug|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Release Mac|Any CPU.Build.0 = Debug|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Release Mac|x64.ActiveCfg = Debug|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Release Mac|x64.Build.0 = Debug|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Release|Any CPU.Build.0 = Release|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Release|x64.ActiveCfg = Release|Any CPU - {7F0206A9-61D4-4D3A-9B43-789DABA7C143}.Release|x64.Build.0 = Release|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Debug Mac|x64.Build.0 = Debug|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Debug|x64.ActiveCfg = Debug|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Debug|x64.Build.0 = Debug|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Release Mac|Any CPU.ActiveCfg = Debug|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Release Mac|Any CPU.Build.0 = Debug|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Release Mac|x64.ActiveCfg = Debug|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Release Mac|x64.Build.0 = Debug|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Release|Any CPU.Build.0 = Release|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Release|x64.ActiveCfg = Release|Any CPU - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639}.Release|x64.Build.0 = Release|Any CPU {D22A887D-976C-4DBF-AE5B-9039F169E61C}.Debug Mac|Any CPU.ActiveCfg = Debug Mac|Any CPU {D22A887D-976C-4DBF-AE5B-9039F169E61C}.Debug Mac|x64.ActiveCfg = Debug|Any CPU {D22A887D-976C-4DBF-AE5B-9039F169E61C}.Debug Mac|x64.Build.0 = Debug|Any CPU @@ -2382,6 +2360,118 @@ Global {0D23858F-4CC1-4DCA-9207-5EDB8B6CE9DD}.Release|Any CPU.Build.0 = Release|Any CPU {0D23858F-4CC1-4DCA-9207-5EDB8B6CE9DD}.Release|x64.ActiveCfg = Release|Any CPU {0D23858F-4CC1-4DCA-9207-5EDB8B6CE9DD}.Release|x64.Build.0 = Release|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Debug Mac|x64.ActiveCfg = Debug|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Debug Mac|x64.Build.0 = Debug|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Debug|x64.ActiveCfg = Debug|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Debug|x64.Build.0 = Debug|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Release Mac|Any CPU.Build.0 = Release|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Release Mac|x64.ActiveCfg = Release|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Release Mac|x64.Build.0 = Release|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Release|Any CPU.Build.0 = Release|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Release|x64.ActiveCfg = Release|Any CPU + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209}.Release|x64.Build.0 = Release|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Debug Mac|x64.ActiveCfg = Debug|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Debug Mac|x64.Build.0 = Debug|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Debug|x64.ActiveCfg = Debug|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Debug|x64.Build.0 = Debug|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Release Mac|Any CPU.Build.0 = Release|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Release Mac|x64.ActiveCfg = Release|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Release Mac|x64.Build.0 = Release|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Release|Any CPU.Build.0 = Release|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Release|x64.ActiveCfg = Release|Any CPU + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C}.Release|x64.Build.0 = Release|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Debug Mac|x64.ActiveCfg = Debug|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Debug Mac|x64.Build.0 = Debug|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Debug|x64.ActiveCfg = Debug|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Debug|x64.Build.0 = Debug|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Release Mac|Any CPU.Build.0 = Release|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Release Mac|x64.ActiveCfg = Release|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Release Mac|x64.Build.0 = Release|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Release|Any CPU.Build.0 = Release|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Release|x64.ActiveCfg = Release|Any CPU + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8}.Release|x64.Build.0 = Release|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Debug Mac|x64.ActiveCfg = Debug|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Debug Mac|x64.Build.0 = Debug|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Debug|x64.ActiveCfg = Debug|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Debug|x64.Build.0 = Debug|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Release Mac|Any CPU.Build.0 = Release|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Release Mac|x64.ActiveCfg = Release|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Release Mac|x64.Build.0 = Release|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Release|Any CPU.Build.0 = Release|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Release|x64.ActiveCfg = Release|Any CPU + {42FE69BF-C821-43E8-8EAE-8F342749EF7A}.Release|x64.Build.0 = Release|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Debug Mac|x64.ActiveCfg = Debug|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Debug Mac|x64.Build.0 = Debug|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Debug|x64.ActiveCfg = Debug|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Debug|x64.Build.0 = Debug|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Release Mac|Any CPU.Build.0 = Release|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Release Mac|x64.ActiveCfg = Release|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Release Mac|x64.Build.0 = Release|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Release|Any CPU.Build.0 = Release|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Release|x64.ActiveCfg = Release|Any CPU + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0}.Release|x64.Build.0 = Release|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Debug Mac|x64.ActiveCfg = Debug|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Debug Mac|x64.Build.0 = Debug|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Debug|x64.ActiveCfg = Debug|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Debug|x64.Build.0 = Debug|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Release Mac|Any CPU.Build.0 = Release|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Release Mac|x64.ActiveCfg = Release|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Release Mac|x64.Build.0 = Release|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Release|Any CPU.Build.0 = Release|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Release|x64.ActiveCfg = Release|Any CPU + {70DEAA13-6DC8-44A0-B287-9E806A8054F1}.Release|x64.Build.0 = Release|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Debug Mac|x64.ActiveCfg = Debug|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Debug Mac|x64.Build.0 = Debug|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Debug|x64.ActiveCfg = Debug|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Debug|x64.Build.0 = Debug|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Release Mac|Any CPU.Build.0 = Release|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Release Mac|x64.ActiveCfg = Release|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Release Mac|x64.Build.0 = Release|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Release|Any CPU.Build.0 = Release|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Release|x64.ActiveCfg = Release|Any CPU + {F06E4C37-4076-4272-9CA6-FB505E02CD31}.Release|x64.Build.0 = Release|Any CPU {01F98733-7352-47AD-A594-537D979DE3DE}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU {01F98733-7352-47AD-A594-537D979DE3DE}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU {01F98733-7352-47AD-A594-537D979DE3DE}.Debug Mac|x64.ActiveCfg = Debug|Any CPU @@ -2826,8 +2916,6 @@ Global {AF51DD10-C0D5-4209-AF55-8F6476EA8A99} = {F7399C6A-0EA4-4212-A49E-0342BED82F98} {C6FF0E4F-38A3-4464-98E9-AB71D74B06F4} = {F7399C6A-0EA4-4212-A49E-0342BED82F98} {A0C9EBE0-A56A-4D07-B6EF-2EEAEC45D6C4} = {C6FF0E4F-38A3-4464-98E9-AB71D74B06F4} - {7F0206A9-61D4-4D3A-9B43-789DABA7C143} = {DA9DFC36-C53F-4B19-8911-BF7605230BA7} - {2CC777EB-BD63-4FAB-BC3A-68A640D2E639} = {DA9DFC36-C53F-4B19-8911-BF7605230BA7} {D22A887D-976C-4DBF-AE5B-9039F169E61C} = {E94E7327-5A9B-48EE-93CC-E9E9A5B980F1} {89996067-3233-410A-A6A1-39E2F11F0626} = {1FD850CA-A8D7-41DC-9316-B315800437E1} {5009BB59-0F77-4202-8FD2-DECC07E93146} = {8AA78EE8-C33B-4BC5-992A-E5DE7AB0BEC7} @@ -2841,6 +2929,13 @@ Global {0B6B5C52-54EC-461F-8729-6244ACA63646} = {B6C38DB9-7B20-4B7E-BC90-6A8CAFC16807} {2568500E-F1BC-440E-9150-DD4820B3FAD6} = {B6887DDC-B9B9-4B00-95DC-1DD930A1E901} {0D23858F-4CC1-4DCA-9207-5EDB8B6CE9DD} = {DA9DFC36-C53F-4B19-8911-BF7605230BA7} + {7B02BACC-D9B6-4FFE-A450-7ECB5F71F209} = {C73C19B5-72A3-4C63-8D56-0A7E7DB46CA5} + {D607BD0A-9F7F-4C3A-9B9C-FEAD6BA49C7C} = {42A86931-7497-4A34-B2FD-060231CD0A8F} + {C0295BF9-9A40-4FCD-BE39-E943985CA3F8} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} + {42FE69BF-C821-43E8-8EAE-8F342749EF7A} = {890F3257-FCC2-4ED8-9180-22B3641B494C} + {829688CD-CECE-4F6C-A5A0-032BB39CD9E0} = {BE521908-7944-46F3-98BF-B47D34509934} + {70DEAA13-6DC8-44A0-B287-9E806A8054F1} = {890F3257-FCC2-4ED8-9180-22B3641B494C} + {F06E4C37-4076-4272-9CA6-FB505E02CD31} = {BE521908-7944-46F3-98BF-B47D34509934} {4838C66E-8677-4FBD-9609-25376042E981} = {33D19E88-F3AE-4D28-B588-D91CCF9E3BA8} {33D19E88-F3AE-4D28-B588-D91CCF9E3BA8} = {9DB74760-01DE-4AC1-A81B-BC7784351D22} {1FE3C60E-7865-40A5-9794-55ECB64F6489} = {9DB74760-01DE-4AC1-A81B-BC7784351D22} @@ -2885,6 +2980,7 @@ Global ConnectorBentley\ConnectorBentleyShared\ConnectorBentleyShared.projitems*{0420d74a-2997-4b92-844b-c3769deaa1ad}*SharedItemsImports = 5 Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructuresShared\ConverterTeklaStructuresShared.projitems*{05f993a6-8651-4801-a732-9a30d1472eef}*SharedItemsImports = 5 ConnectorRevit\RevitSharedResources\RevitSharedResources.projitems*{071f914c-f473-4fb2-9faf-98632afb164b}*SharedItemsImports = 13 + Objects\Converters\ConverterNavisworks\ConverterNavisworks\ConverterNavisworksShared.projitems*{0b6b5c52-54ec-461f-8729-6244aca63646}*SharedItemsImports = 5 ConnectorGrasshopper\ConnectorGrasshopperShared\ConnectorGrasshopperShared.projitems*{0f1fd0c3-875f-4689-9c4a-c56e9ab31102}*SharedItemsImports = 13 Objects\Converters\ConverterRevit\ConverterRevitTests\ConverterRevitTestsShared\ConverterRevitTestsShared.projitems*{1085f4b5-fdad-4ff8-b144-dddbd9454f55}*SharedItemsImports = 13 Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{15c4ff29-0370-4860-b80a-06cc5e0e8d5f}*SharedItemsImports = 5 @@ -2911,6 +3007,7 @@ Global ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{3e30d170-3cb4-4728-97d5-887c5019da9b}*SharedItemsImports = 5 DUI3-DX\Connectors\Autocad\Speckle.Connectors.AutocadShared\Speckle.Connectors.AutocadShared.projitems*{41bc679f-887f-44cf-971d-a5502ee87db0}*SharedItemsImports = 13 Objects\Converters\ConverterBentley\ConverterBentleyShared\ConverterBentleyShared.projitems*{425f0d00-6608-4bd2-a1e0-2730c9f2bfd3}*SharedItemsImports = 13 + ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{42fe69bf-c821-43e8-8eae-8f342749ef7a}*SharedItemsImports = 5 Objects\Converters\ConverterCSI\ConverterCSIShared\ConverterCSIShared.projitems*{442116f3-0f4a-4136-894e-ff5f4295500b}*SharedItemsImports = 5 ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{464f2220-d7d9-4d8c-bb3d-b93a1c603469}*SharedItemsImports = 5 ConnectorTeklaStructures\ConnectorTeklaStructuresShared\ConnectorTeklaStructuresShared.projitems*{48c44a7a-122f-4a1f-b3ba-613cb432a7bc}*SharedItemsImports = 5 @@ -2936,6 +3033,7 @@ Global ConnectorTeklaStructures\ConnectorTeklaStructuresShared\ConnectorTeklaStructuresShared.projitems*{67157264-aaa5-46a8-a38b-16254b49b892}*SharedItemsImports = 5 Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.projitems*{67a463d3-e98b-4b16-b069-d7bbb05386a1}*SharedItemsImports = 5 Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{67a463d3-e98b-4b16-b069-d7bbb05386a1}*SharedItemsImports = 5 + ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{70deaa13-6dc8-44a0-b287-9e806a8054f1}*SharedItemsImports = 5 Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{737d5567-7b1f-410d-9b7b-bae8065ed15b}*SharedItemsImports = 5 ConnectorNavisworks\ConnectorNavisworks\ConnectorNavisworks.Shared.projitems*{74e39841-b2fa-494d-ac40-a6e505de6b33}*SharedItemsImports = 5 Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.projitems*{75144587-6f51-46c8-8e40-da652fbc53f4}*SharedItemsImports = 5 @@ -2943,8 +3041,10 @@ Global Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{76937388-bc9e-4083-9d6e-59cc627e3804}*SharedItemsImports = 5 ConnectorNavisworks\ConnectorNavisworks\ConnectorNavisworks.Shared.projitems*{77d4f346-aca5-42c8-8522-5ef176f3adf1}*SharedItemsImports = 5 Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{78573adc-87a5-489f-8134-fb4a435a05f0}*SharedItemsImports = 5 + ConnectorRevit\RevitSharedResources\RevitSharedResources.projitems*{7b02bacc-d9b6-4ffe-a450-7ecb5f71f209}*SharedItemsImports = 5 Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructuresShared\ConverterTeklaStructuresShared.projitems*{7ffdab72-145d-4490-9892-fac5f1d72b17}*SharedItemsImports = 13 ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.projitems*{81299d15-5788-414d-a962-1a568c251323}*SharedItemsImports = 5 + Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{829688cd-cece-4f6c-a5a0-032bb39cd9e0}*SharedItemsImports = 5 Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{8581b4bb-a8bc-4328-99fe-d18615af2554}*SharedItemsImports = 5 ConnectorGrasshopper\ConnectorGrasshopperShared\ConnectorGrasshopperShared.projitems*{86920221-416e-4a66-a601-3418207e2401}*SharedItemsImports = 5 Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{88a24c40-74c8-4e20-9051-6be9e6adecfd}*SharedItemsImports = 5 @@ -2976,6 +3076,7 @@ Global ConnectorRhino\ConnectorRhino\ConnectorRhinoShared\ConnectorRhinoShared.projitems*{b7376ec8-5d3e-47d2-96a7-748552f14c39}*SharedItemsImports = 13 Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{b74cb8c1-187b-46a6-b20b-92b8c129f3ee}*SharedItemsImports = 13 ConnectorGrasshopper\ConnectorGrasshopperShared\ConnectorGrasshopperShared.projitems*{b81e0f77-1abd-4941-9d76-c0dc6b1b6b82}*SharedItemsImports = 5 + Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{c0295bf9-9a40-4fcd-be39-e943985ca3f8}*SharedItemsImports = 5 ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.projitems*{c091e499-597d-4077-b83f-08e069091090}*SharedItemsImports = 5 Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructuresShared\ConverterTeklaStructuresShared.projitems*{c1d53822-b11f-4772-996e-1e6d485e0702}*SharedItemsImports = 5 Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{c21a6553-b4ec-4ec3-b82a-c7a83cffb809}*SharedItemsImports = 5 @@ -2988,6 +3089,7 @@ Global Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{d1d0f986-12be-4fd5-8925-c96b1f86427d}*SharedItemsImports = 5 ConnectorRhino\ConnectorRhino\ConnectorRhinoShared\ConnectorRhinoShared.projitems*{d22a887d-976c-4dbf-ae5b-9039f169e61c}*SharedItemsImports = 5 Objects\Converters\ConverterRevit\ConverterRevitTests\ConverterRevitTestsShared\ConverterRevitTestsShared.projitems*{d296722d-0798-4110-9c6e-dfb0824a7251}*SharedItemsImports = 5 + ConnectorRevit\ConnectorRevit\ConnectorRevit.projitems*{d607bd0a-9f7f-4c3a-9b9c-fead6ba49c7c}*SharedItemsImports = 5 ConnectorRhino\ConnectorRhino\ConnectorRhinoShared\ConnectorRhinoShared.projitems*{d648bb69-b992-4d34-906e-7a547374b86c}*SharedItemsImports = 5 Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{d9f443b5-c55b-4ad8-9c70-bc3d2be781be}*SharedItemsImports = 5 DUI3-DX\Connectors\Revit\Speckle.Connectors.RevitShared\Speckle.Connectors.RevitShared.projitems*{dc570fff-6fe5-47bd-8bc1-b471a6067786}*SharedItemsImports = 13 @@ -2999,6 +3101,7 @@ Global Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructuresShared\ConverterTeklaStructuresShared.projitems*{eb52e451-9ed8-460e-9ee4-6717bfb12eab}*SharedItemsImports = 5 Objects\Converters\ConverterNavisworks\ConverterNavisworks\ConverterNavisworksShared.projitems*{ec2436db-b7f4-4d78-807b-8d91d7d5165c}*SharedItemsImports = 5 Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{f03af41c-3489-4414-a887-b52d529b5a55}*SharedItemsImports = 5 + Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{f06e4c37-4076-4272-9ca6-fb505e02cd31}*SharedItemsImports = 5 Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{f1311789-37dc-47fd-acec-75b9b97edfed}*SharedItemsImports = 5 Objects\Converters\ConverterBentley\ConverterBentleyShared\ConverterBentleyShared.projitems*{f2146143-c240-4920-a01b-2bd7e076ad11}*SharedItemsImports = 5 ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{f4aa033f-4f85-4990-afe9-86be00abe973}*SharedItemsImports = 5 diff --git a/Automate/Speckle.Automate.Sdk/AutomationContext.cs b/Automate/Speckle.Automate.Sdk/AutomationContext.cs index 07567a5aa7..fef232187b 100644 --- a/Automate/Speckle.Automate.Sdk/AutomationContext.cs +++ b/Automate/Speckle.Automate.Sdk/AutomationContext.cs @@ -1,6 +1,7 @@ using System.Diagnostics; using GraphQL; using Speckle.Automate.Sdk.Schema; +using Speckle.Automate.Sdk.Schema.Triggers; using Speckle.Core.Api; using Speckle.Core.Credentials; using Speckle.Core.Logging; @@ -75,9 +76,14 @@ public static async Task Initialize(string automationRunData, /// Throws if commit object is null. public async Task ReceiveVersion() { - Commit? commit = await SpeckleClient - .CommitGet(AutomationRunData.ProjectId, AutomationRunData.VersionId) - .ConfigureAwait(false); + // TODO: this is a quick hack to keep implementation consistency. Move to proper receive many versions + if (AutomationRunData.Triggers.First() is not VersionCreationTrigger trigger) + { + throw new SpeckleException("Processed automation run data without any triggers"); + } + var versionId = trigger.Payload.VersionId; + + Commit? commit = await SpeckleClient.CommitGet(AutomationRunData.ProjectId, versionId).ConfigureAwait(false); Base? commitRootObject = await Operations .Receive(commit.referencedObject, _serverTransport, _memoryTransport) .ConfigureAwait(false); @@ -86,9 +92,7 @@ public async Task ReceiveVersion() throw new SpeckleException("Commit root object was null"); } - Console.WriteLine( - $"It took {Elapsed.TotalSeconds} seconds to receive the speckle version {AutomationRunData.VersionId}" - ); + Console.WriteLine($"It took {Elapsed.TotalSeconds} seconds to receive the speckle version {versionId}"); return commitRootObject; } @@ -103,19 +107,8 @@ public async Task ReceiveVersion() /// The reason is to prevent circular run loop in automation. public async Task CreateNewVersionInProject(Base rootObject, string modelName, string versionMessage = "") { - if (modelName == AutomationRunData.BranchName) - { - throw new ArgumentException( - $"The target model: {modelName} cannot match the model that triggered this automation: {AutomationRunData.ModelId}/{AutomationRunData.BranchName}", - nameof(modelName) - ); - } - - string rootObjectId = await Operations - .Send(rootObject, new List { _serverTransport, _memoryTransport }) - .ConfigureAwait(false); - Branch branch = await SpeckleClient.BranchGet(AutomationRunData.ProjectId, modelName).ConfigureAwait(false); + if (branch is null) { // Create the branch with the specified name @@ -123,6 +116,45 @@ await SpeckleClient .BranchCreate(new BranchCreateInput() { streamId = AutomationRunData.ProjectId, name = modelName }) .ConfigureAwait(false); } + else + { + // Confirm target branch is not the same as source branch + if (branch.id == null) + { + throw new SpeckleException("Cannot use the branch without its id"); + } + + foreach (var trigger in AutomationRunData.Triggers) + { + switch (trigger) + { + case VersionCreationTrigger versionCreationTrigger: + { + if (versionCreationTrigger.Payload.ModelId == branch.id) + { + throw new SpeckleException( + $$""" + The target model: {{modelName}} cannot match the model + that triggered this automation: + {{versionCreationTrigger.Payload.ModelId}} + """ + ); + } + continue; + } + default: + { + // TODO: How should we handle unknown trigger types? + continue; + } + } + } + } + + string rootObjectId = await Operations + .Send(rootObject, new List { _serverTransport, _memoryTransport }) + .ConfigureAwait(false); + string versionId = await SpeckleClient .CommitCreate( new CommitCreateInput @@ -154,7 +186,21 @@ public void SetContextView(List? resourceIds = null, bool includeSourceM List linkResources = new(); if (includeSourceModelVersion) { - linkResources.Add($@"{AutomationRunData.ModelId}@{AutomationRunData.VersionId}"); + foreach (var trigger in AutomationRunData.Triggers) + { + switch (trigger) + { + case VersionCreationTrigger versionCreationTrigger: + { + linkResources.Add($@"{versionCreationTrigger.Payload.ModelId}@{versionCreationTrigger.Payload.VersionId}"); + break; + } + default: + { + throw new SpeckleException($"Could not link resource specified by {trigger.TriggerType} trigger"); + } + } + } } if (resourceIds is not null) @@ -189,54 +235,29 @@ public async Task ReportRunStatus() { Query = @" - mutation ReportFunctionRunStatus( - $automationId: String!, - $automationRevisionId: String!, - $automationRunId: String!, - $versionId: String!, - $functionId: String!, - $functionName: String!, - $functionLogo: String, - $runStatus: AutomationRunStatus! - $elapsed: Float! - $resultVersionIds: [String!]! + mutation AutomateFunctionRunStatusReport( + $functionRunId: String! + $status: AutomateRunStatus! $statusMessage: String - $objectResults: JSONObject + $results: JSONObject + $contextView: String ){ - automationMutations { - functionRunStatusReport(input: { - automationId: $automationId - automationRevisionId: $automationRevisionId - automationRunId: $automationRunId - versionId: $versionId - functionRuns: [{ - functionId: $functionId, - functionName: $functionName, - functionLogo: $functionLogo, - status: $runStatus, - elapsed: $elapsed, - resultVersionIds: $resultVersionIds, - statusMessage: $statusMessage, - results: $objectResults, - }] + automateFunctionRunStatusReport(input: { + functionRunId: $functionRunId + status: $status + statusMessage: $statusMessage + contextView: $contextView + results: $results }) - } } ", Variables = new { - automationId = AutomationRunData.AutomationId, - automationRevisionId = AutomationRunData.AutomationRevisionId, - automationRunId = AutomationRunData.AutomationRunId, - versionId = AutomationRunData.VersionId, - functionId = AutomationRunData.FunctionId, - functionName = AutomationRunData.FunctionName, - functionLogo = AutomationRunData.FunctionLogo, - runStatus = RunStatus, + functionRunId = AutomationRunData.FunctionRunId, + status = RunStatus, statusMessage = AutomationResult.StatusMessage, - elapsed = Elapsed.TotalSeconds, - resultVersionIds = AutomationResult.ResultVersions, - objectResults, + contextView = ContextView, + results = objectResults, } }; await SpeckleClient.ExecuteGraphQLRequest>(request).ConfigureAwait(false); diff --git a/Automate/Speckle.Automate.Sdk/Schema/AutomationRunData.cs b/Automate/Speckle.Automate.Sdk/Schema/AutomationRunData.cs index 7dbccab790..755d833003 100644 --- a/Automate/Speckle.Automate.Sdk/Schema/AutomationRunData.cs +++ b/Automate/Speckle.Automate.Sdk/Schema/AutomationRunData.cs @@ -1,20 +1,16 @@ +using Speckle.Automate.Sdk.Schema.Triggers; + namespace Speckle.Automate.Sdk.Schema; /// -///Values of the project, model and automation that triggered this function run. +/// Values of the project, model and automation that triggered this function run. /// public struct AutomationRunData { public string ProjectId { get; set; } - public string ModelId { get; set; } - public string BranchName { get; set; } - public string VersionId { get; set; } public string SpeckleServerUrl { get; set; } public string AutomationId { get; set; } - public string AutomationRevisionId { get; set; } public string AutomationRunId { get; set; } - public string FunctionId { get; set; } - public string FunctionRelease { get; set; } - public string FunctionName { get; set; } - public string? FunctionLogo { get; set; } + public string FunctionRunId { get; set; } + public List Triggers { get; set; } } diff --git a/Automate/Speckle.Automate.Sdk/Schema/ObjectResults.cs b/Automate/Speckle.Automate.Sdk/Schema/ObjectResults.cs index d751f7582d..d2a6122acc 100644 --- a/Automate/Speckle.Automate.Sdk/Schema/ObjectResults.cs +++ b/Automate/Speckle.Automate.Sdk/Schema/ObjectResults.cs @@ -2,6 +2,6 @@ namespace Speckle.Automate.Sdk.Schema; public struct ObjectResults { - public readonly string Version => "1.0.0"; + public readonly int Version => 1; public ObjectResultValues Values { get; set; } } diff --git a/Automate/Speckle.Automate.Sdk/Schema/Triggers/AutomationRunTriggerBase.cs b/Automate/Speckle.Automate.Sdk/Schema/Triggers/AutomationRunTriggerBase.cs new file mode 100644 index 0000000000..4a404d3ed3 --- /dev/null +++ b/Automate/Speckle.Automate.Sdk/Schema/Triggers/AutomationRunTriggerBase.cs @@ -0,0 +1,6 @@ +namespace Speckle.Automate.Sdk.Schema.Triggers; + +public class AutomationRunTriggerBase +{ + public string TriggerType { get; set; } +} diff --git a/Automate/Speckle.Automate.Sdk/Schema/Triggers/VersionCreationTrigger.cs b/Automate/Speckle.Automate.Sdk/Schema/Triggers/VersionCreationTrigger.cs new file mode 100644 index 0000000000..dd5f649bf1 --- /dev/null +++ b/Automate/Speckle.Automate.Sdk/Schema/Triggers/VersionCreationTrigger.cs @@ -0,0 +1,24 @@ +namespace Speckle.Automate.Sdk.Schema.Triggers; + +/// +/// Represents a single version creation trigger for the automation run. +/// +public class VersionCreationTrigger : AutomationRunTriggerBase +{ + public VersionCreationTriggerPayload Payload { get; set; } + + public VersionCreationTrigger(string modelId, string versionId) + { + TriggerType = "versionCreation"; + Payload = new VersionCreationTriggerPayload() { ModelId = modelId, VersionId = versionId }; + } +} + +/// +/// Represents the version creation trigger payload. +/// +public class VersionCreationTriggerPayload +{ + public string ModelId { get; set; } + public string VersionId { get; set; } +} diff --git a/Automate/Tests/Speckle.Automate.Sdk.Tests.Integration/SpeckleAutomate.cs b/Automate/Tests/Speckle.Automate.Sdk.Tests.Integration/SpeckleAutomate.cs index d7eaf78fb5..5486a78cd9 100644 --- a/Automate/Tests/Speckle.Automate.Sdk.Tests.Integration/SpeckleAutomate.cs +++ b/Automate/Tests/Speckle.Automate.Sdk.Tests.Integration/SpeckleAutomate.cs @@ -1,5 +1,6 @@ using Newtonsoft.Json; using Speckle.Automate.Sdk.Schema; +using Speckle.Automate.Sdk.Schema.Triggers; using Speckle.Core.Api; using Speckle.Core.Credentials; using Speckle.Core.Logging; @@ -43,23 +44,31 @@ private async Task AutomationRunData(Base testObject) string functionId = Utils.RandomString(10); string functionName = "Automation name " + Utils.RandomString(10); string functionRelease = Utils.RandomString(10); + string functionRunId = Utils.RandomString(10); + + var triggers = new List() { new VersionCreationTrigger(modelId, versionId) }; return new AutomationRunData { ProjectId = projectId, - ModelId = modelId, - BranchName = BRANCH_NAME, - VersionId = versionId, SpeckleServerUrl = _client.ServerUrl, AutomationId = automationId, - AutomationRevisionId = automationRevisionId, AutomationRunId = automationRunId, - FunctionId = functionId, - FunctionName = functionName, - FunctionRelease = functionRelease, + FunctionRunId = functionRunId, + Triggers = triggers, }; } + private VersionCreationTrigger GetVersionCreationTrigger(List triggers) + { + if (triggers.FirstOrDefault() is not VersionCreationTrigger trigger) + { + throw new Exception("Automation run data contained no valid triggers."); + } + + return trigger; + } + private Client _client; private Account _account; @@ -71,6 +80,7 @@ public async Task Setup() } [Test] + [Ignore("currently the function run cannot be integration tested with the server")] public async Task TestFunctionRun() { AutomationRunData automationRunData = await AutomationRunData(Utils.TestObject()); @@ -83,9 +93,11 @@ public async Task TestFunctionRun() Assert.That(automationContext.RunStatus, Is.EqualTo("FAILED")); + var trigger = GetVersionCreationTrigger(automationRunData.Triggers); + AutomationStatus status = await AutomationStatusOperations.Get( automationRunData.ProjectId, - automationRunData.ModelId, + trigger.Payload.ModelId, automationContext.SpeckleClient ); @@ -96,6 +108,7 @@ public async Task TestFunctionRun() } [Test] + [Ignore("currently the function run cannot be integration tested with the server")] public void TestParseInputData() { TestFunctionInputs testFunctionInputs = new() { ForbiddenSpeckleType = "Base" }; @@ -108,6 +121,7 @@ public void TestParseInputData() } [Test] + [Ignore("currently the function run cannot be integration tested with the server")] public async Task TestFileUploads() { AutomationRunData automationRunData = await AutomationRunData(Utils.TestObject()); @@ -130,6 +144,7 @@ public async Task TestFileUploads() } [Test] + [Ignore("currently the function run cannot be integration tested with the server")] public async Task TestCreateVersionInProject() { AutomationRunData automationRunData = await AutomationRunData(Utils.TestObject()); @@ -150,12 +165,15 @@ public async Task TestCreateVersionInProject() } [Test] + [Ignore("currently the function run cannot be integration tested with the server")] public async Task TestCreateVersionInProject_ThrowsErrorForSameModel() { AutomationRunData automationRunData = await AutomationRunData(Utils.TestObject()); AutomationContext automationContext = await AutomationContext.Initialize(automationRunData, _account.token); - string branchName = automationRunData.BranchName; + var trigger = GetVersionCreationTrigger(automationRunData.Triggers); + + string branchName = trigger.Payload.ModelId; const string COMMIT_MSG = "automation test"; Assert.ThrowsAsync(async () => @@ -165,6 +183,7 @@ public async Task TestCreateVersionInProject_ThrowsErrorForSameModel() } [Test] + [Ignore("currently the function run cannot be integration tested with the server")] public async Task TestSetContextView() { AutomationRunData automationRunData = await AutomationRunData(Utils.TestObject()); @@ -172,8 +191,10 @@ public async Task TestSetContextView() automationContext.SetContextView(); + var trigger = GetVersionCreationTrigger(automationRunData.Triggers); + Assert.That(automationContext.AutomationResult.ResultView, Is.Not.Null); - string originModelView = $"{automationRunData.ModelId}@{automationRunData.VersionId}"; + string originModelView = $"{trigger.Payload.ModelId}@{trigger.Payload.VersionId}"; Assert.That(automationContext.AutomationResult.ResultView?.EndsWith($"models/{originModelView}"), Is.True); await automationContext.ReportRunStatus(); @@ -209,6 +230,7 @@ public async Task TestSetContextView() } [Test] + [Ignore("currently the function run cannot be integration tested with the server")] public async Task TestReportRunStatus_Succeeded() { AutomationRunData automationRunData = await AutomationRunData(Utils.TestObject()); @@ -225,6 +247,7 @@ public async Task TestReportRunStatus_Succeeded() } [Test] + [Ignore("currently the function run cannot be integration tested with the server")] public async Task TestReportRunStatus_Failed() { AutomationRunData automationRunData = await AutomationRunData(Utils.TestObject()); diff --git a/ConnectorAutocadCivil/ConnectorAutocad2025/ConnectorAutocad2025.csproj b/ConnectorAutocadCivil/ConnectorAutocad2025/ConnectorAutocad2025.csproj new file mode 100644 index 0000000000..3f81f9d5ac --- /dev/null +++ b/ConnectorAutocadCivil/ConnectorAutocad2025/ConnectorAutocad2025.csproj @@ -0,0 +1,48 @@ + + + Speckle.ConnectorAutocad + SpeckleConnectorAutocad + net8.0-windows + ConnectorAutocad + ConnectorAutocad + Program + $(ProgramW6432)\Autodesk\AutoCAD 2025\acad.exe + true + $(DefineConstants);AUTOCAD2025 + false + true + x64 + win-x64 + False + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ConnectorAutocadCivil/ConnectorAutocadCivil.sln b/ConnectorAutocadCivil/ConnectorAutocadCivil.sln index e122c2b1bd..7b7da2a8db 100644 --- a/ConnectorAutocadCivil/ConnectorAutocadCivil.sln +++ b/ConnectorAutocadCivil/ConnectorAutocadCivil.sln @@ -65,6 +65,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterAdvanceSteel2024", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorAdvanceSteel2024", "ConnectorAdvanceSteel2024\ConnectorAdvanceSteel2024.csproj", "{572B1D77-83BA-4E96-A70A-7D000D2AC220}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorAutocad2025", "ConnectorAutocad2025\ConnectorAutocad2025.csproj", "{6B147D7E-4F94-43EC-A982-340E98B37656}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterAutocad2025", "..\Objects\Converters\ConverterAutocadCivil\ConverterAutocad2025\ConverterAutocad2025.csproj", "{5A4FB6D3-CAC0-43BC-BB4A-BED3845C79DA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorCivil2025", "ConnectorCivil2025\ConnectorCivil2025.csproj", "{DD5EF30C-6000-4B8A-8ECC-6F6D5C3B0CEE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConverterCivil2025", "..\Objects\Converters\ConverterAutocadCivil\ConverterCivil2025\ConverterCivil2025.csproj", "{A8950613-B16B-461E-9549-331408DE7821}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -167,6 +175,22 @@ Global {572B1D77-83BA-4E96-A70A-7D000D2AC220}.Debug|Any CPU.Build.0 = Debug|Any CPU {572B1D77-83BA-4E96-A70A-7D000D2AC220}.Release|Any CPU.ActiveCfg = Release|Any CPU {572B1D77-83BA-4E96-A70A-7D000D2AC220}.Release|Any CPU.Build.0 = Release|Any CPU + {6B147D7E-4F94-43EC-A982-340E98B37656}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B147D7E-4F94-43EC-A982-340E98B37656}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B147D7E-4F94-43EC-A982-340E98B37656}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B147D7E-4F94-43EC-A982-340E98B37656}.Release|Any CPU.Build.0 = Release|Any CPU + {5A4FB6D3-CAC0-43BC-BB4A-BED3845C79DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A4FB6D3-CAC0-43BC-BB4A-BED3845C79DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A4FB6D3-CAC0-43BC-BB4A-BED3845C79DA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5A4FB6D3-CAC0-43BC-BB4A-BED3845C79DA}.Release|Any CPU.Build.0 = Release|Any CPU + {DD5EF30C-6000-4B8A-8ECC-6F6D5C3B0CEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD5EF30C-6000-4B8A-8ECC-6F6D5C3B0CEE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD5EF30C-6000-4B8A-8ECC-6F6D5C3B0CEE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD5EF30C-6000-4B8A-8ECC-6F6D5C3B0CEE}.Release|Any CPU.Build.0 = Release|Any CPU + {A8950613-B16B-461E-9549-331408DE7821}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A8950613-B16B-461E-9549-331408DE7821}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A8950613-B16B-461E-9549-331408DE7821}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A8950613-B16B-461E-9549-331408DE7821}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -196,6 +220,10 @@ Global {23478901-5C29-4D54-A66A-AE9FEA6118C7} = {A07071D5-E197-487D-B543-28639AC3C719} {C7F4DFA0-18FE-4C0B-A9DC-DAD74D5E6E13} = {8AFDB1E6-D3E7-45EA-BCDC-F3554BDDEF1E} {572B1D77-83BA-4E96-A70A-7D000D2AC220} = {A07071D5-E197-487D-B543-28639AC3C719} + {6B147D7E-4F94-43EC-A982-340E98B37656} = {A07071D5-E197-487D-B543-28639AC3C719} + {5A4FB6D3-CAC0-43BC-BB4A-BED3845C79DA} = {8AFDB1E6-D3E7-45EA-BCDC-F3554BDDEF1E} + {DD5EF30C-6000-4B8A-8ECC-6F6D5C3B0CEE} = {A07071D5-E197-487D-B543-28639AC3C719} + {A8950613-B16B-461E-9549-331408DE7821} = {8AFDB1E6-D3E7-45EA-BCDC-F3554BDDEF1E} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {EAFBA51C-7222-435F-8BDF-8C15B27A34C8} @@ -213,6 +241,8 @@ Global ..\Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{575293fb-158c-4f91-abc1-18b60f310b32}*SharedItemsImports = 5 ..\Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{57a28a09-c64e-47f6-b602-b6d58b19f1d5}*SharedItemsImports = 5 ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{58a88f1a-7489-46d2-949d-2fc3f68c8d84}*SharedItemsImports = 5 + ..\Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{5a4fb6d3-cac0-43bc-bb4a-bed3845c79da}*SharedItemsImports = 5 + ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{6b147d7e-4f94-43ec-a982-340e98b37656}*SharedItemsImports = 5 ..\Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{79e41261-3078-4f38-a71e-4b4020cf8f57}*SharedItemsImports = 5 ..\Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{8cfc7609-f640-4683-bf13-fe144d3dc50b}*SharedItemsImports = 5 ..\Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{9a11c16b-790f-437a-9e04-7e0d3ecdc06b}*SharedItemsImports = 5 diff --git a/ConnectorAutocadCivil/ConnectorAutocadCivil.slnf b/ConnectorAutocadCivil/ConnectorAutocadCivil.slnf index b9ea145ffd..961482fe14 100644 --- a/ConnectorAutocadCivil/ConnectorAutocadCivil.slnf +++ b/ConnectorAutocadCivil/ConnectorAutocadCivil.slnf @@ -9,11 +9,13 @@ "ConnectorAutocadCivil\\ConnectorAutocad2022\\ConnectorAutocad2022.csproj", "ConnectorAutocadCivil\\ConnectorAutocad2023\\ConnectorAutocad2023.csproj", "ConnectorAutocadCivil\\ConnectorAutocad2024\\ConnectorAutocad2024.csproj", + "ConnectorAutocadCivil\\ConnectorAutocad2025\\ConnectorAutocad2025.csproj", "ConnectorAutocadCivil\\ConnectorAutocadCivil\\ConnectorAutocadCivilShared.shproj", "ConnectorAutocadCivil\\ConnectorCivil2021\\ConnectorCivil2021.csproj", "ConnectorAutocadCivil\\ConnectorCivil2022\\ConnectorCivil2022.csproj", "ConnectorAutocadCivil\\ConnectorCivil2023\\ConnectorCivil2023.csproj", "ConnectorAutocadCivil\\ConnectorCivil2024\\ConnectorCivil2024.csproj", + "ConnectorAutocadCivil\\ConnectorCivil2025\\ConnectorCivil2025.csproj", "Core\\Core\\Core.csproj", "Core\\Tests\\Speckle.Core.Tests.Unit\\Speckle.Core.Tests.Unit.csproj", "Core\\Transports\\DiskTransport\\DiskTransport.csproj", @@ -24,11 +26,13 @@ "Objects\\Converters\\ConverterAutocadCivil\\ConverterAutocad2022\\ConverterAutocad2022.csproj", "Objects\\Converters\\ConverterAutocadCivil\\ConverterAutocad2023\\ConverterAutocad2023.csproj", "Objects\\Converters\\ConverterAutocadCivil\\ConverterAutocad2024\\ConverterAutocad2024.csproj", + "Objects\\Converters\\ConverterAutocadCivil\\ConverterAutocad2025\\ConverterAutocad2025.csproj", "Objects\\Converters\\ConverterAutocadCivil\\ConverterAutocadCivilShared\\ConverterAutocadCivilShared.shproj", "Objects\\Converters\\ConverterAutocadCivil\\ConverterCivil2021\\ConverterCivil2021.csproj", "Objects\\Converters\\ConverterAutocadCivil\\ConverterCivil2022\\ConverterCivil2022.csproj", "Objects\\Converters\\ConverterAutocadCivil\\ConverterCivil2023\\ConverterCivil2023.csproj", "Objects\\Converters\\ConverterAutocadCivil\\ConverterCivil2024\\ConverterCivil2024.csproj", + "Objects\\Converters\\ConverterAutocadCivil\\ConverterCivil2025\\ConverterCivil2025.csproj", "Objects\\Objects\\Objects.csproj", "Objects\\Tests\\Objects.Tests.Unit\\Objects.Tests.Unit.csproj" ] diff --git a/ConnectorAutocadCivil/ConnectorAutocadCivil/UI/ConnectorBindingsAutocadCivil.Receive.cs b/ConnectorAutocadCivil/ConnectorAutocadCivil/UI/ConnectorBindingsAutocadCivil.Receive.cs index 41bab7b772..dddcd877d2 100644 --- a/ConnectorAutocadCivil/ConnectorAutocadCivil/UI/ConnectorBindingsAutocadCivil.Receive.cs +++ b/ConnectorAutocadCivil/ConnectorAutocadCivil/UI/ConnectorBindingsAutocadCivil.Receive.cs @@ -544,7 +544,7 @@ and not ApplicationObject.State.Updated } // add property sets if this is Civil3D -#if CIVIL2021 || CIVIL2022 || CIVIL2023 || CIVIL2024 +#if CIVIL if (obj["propertySets"] is IReadOnlyList list) { List> propertySets = new(); diff --git a/ConnectorAutocadCivil/ConnectorAutocadCivil/UI/ConnectorBindingsAutocadCivil.Send.cs b/ConnectorAutocadCivil/ConnectorAutocadCivil/UI/ConnectorBindingsAutocadCivil.Send.cs index 2c65993377..2c96f1eacd 100644 --- a/ConnectorAutocadCivil/ConnectorAutocadCivil/UI/ConnectorBindingsAutocadCivil.Send.cs +++ b/ConnectorAutocadCivil/ConnectorAutocadCivil/UI/ConnectorBindingsAutocadCivil.Send.cs @@ -244,7 +244,7 @@ ref int convertedCount converted[key] = obj.ExtensionDictionary.GetUserString(key); */ -#if CIVIL2021 || CIVIL2022 || CIVIL2023 || CIVIL2024 +#if CIVIL // add property sets if this is Civil3D var propertySets = obj.GetPropertySets(tr); if (propertySets.Count > 0) diff --git a/ConnectorAutocadCivil/ConnectorAutocadCivil/Utils.cs b/ConnectorAutocadCivil/ConnectorAutocadCivil/Utils.cs index a4965491a4..eed231d48f 100644 --- a/ConnectorAutocadCivil/ConnectorAutocadCivil/Utils.cs +++ b/ConnectorAutocadCivil/ConnectorAutocadCivil/Utils.cs @@ -14,7 +14,7 @@ using Speckle.ConnectorAutocadCivil.DocumentUtils; using Speckle.Core.Logging; -#if CIVIL2021 || CIVIL2022 || CIVIL2023 || CIVIL2024 +#if CIVIL using Autodesk.Aec.ApplicationServices; using Autodesk.Aec.PropertyData.DatabaseServices; #endif @@ -47,6 +47,10 @@ public static class Utils public static string VersionedAppName = HostApplications.AutoCAD.GetVersion(HostAppVersion.v2024); public static string AppName = HostApplications.AutoCAD.Name; public static string Slug = HostApplications.AutoCAD.Slug; +#elif AUTOCAD2025 + public static string VersionedAppName = HostApplications.AutoCAD.GetVersion(HostAppVersion.v2025); + public static string AppName = HostApplications.AutoCAD.Name; + public static string Slug = HostApplications.AutoCAD.Slug; #elif CIVIL2021 public static string VersionedAppName = HostApplications.Civil.GetVersion(HostAppVersion.v2021); public static string AppName = HostApplications.Civil.Name; @@ -63,6 +67,10 @@ public static class Utils public static string VersionedAppName = HostApplications.Civil.GetVersion(HostAppVersion.v2024); public static string AppName = HostApplications.Civil.Name; public static string Slug = HostApplications.Civil.Slug; +#elif CIVIL2025 + public static string VersionedAppName = HostApplications.Civil.GetVersion(HostAppVersion.v2025); + public static string AppName = HostApplications.Civil.Name; + public static string Slug = HostApplications.Civil.Slug; #elif ADVANCESTEEL2023 public static string VersionedAppName = HostApplications.AdvanceSteel.GetVersion(HostAppVersion.v2023); public static string AppName = HostApplications.AdvanceSteel.Name; @@ -307,7 +315,7 @@ public static bool GetOrMakeLayer(this Document doc, string layerName, Transacti #endregion #region property sets -#if CIVIL2021 || CIVIL2022 || CIVIL2023 || CIVIL2024 +#if CIVIL private static Autodesk.Aec.PropertyData.DataType? GetPropertySetType(object prop) { switch (prop) @@ -765,7 +773,7 @@ public static string GetUnits(Document doc) var insUnits = doc.Database.Insunits; string units = (insUnits == UnitsValue.Undefined) ? Units.None : Units.GetUnitsFromString(insUnits.ToString()); -#if CIVIL2021 || CIVIL2022 || CIVIL2023 || CIVIL2024 +#if CIVIL if (units == Units.None) { // try to get the drawing unit instead diff --git a/ConnectorAutocadCivil/ConnectorCivil2021/ConnectorCivil2021.csproj b/ConnectorAutocadCivil/ConnectorCivil2021/ConnectorCivil2021.csproj index d53e435fde..8743f7deb1 100644 --- a/ConnectorAutocadCivil/ConnectorCivil2021/ConnectorCivil2021.csproj +++ b/ConnectorAutocadCivil/ConnectorCivil2021/ConnectorCivil2021.csproj @@ -12,7 +12,7 @@ x64 ConnectorCivil2021 ConnectorCivil2021 - $(DefineConstants);CIVIL2021 + $(DefineConstants);CIVIL2021;CIVIL;CIVIL2021_OR_GREATER false diff --git a/ConnectorAutocadCivil/ConnectorCivil2022/ConnectorCivil2022.csproj b/ConnectorAutocadCivil/ConnectorCivil2022/ConnectorCivil2022.csproj index dbcb1f3afc..75e84ec5d4 100644 --- a/ConnectorAutocadCivil/ConnectorCivil2022/ConnectorCivil2022.csproj +++ b/ConnectorAutocadCivil/ConnectorCivil2022/ConnectorCivil2022.csproj @@ -12,7 +12,7 @@ x64 ConnectorCivil2022 ConnectorCivil2022 - $(DefineConstants);CIVIL2022 + $(DefineConstants);CIVIL2022;CIVIL;CIVIL2021_OR_GREATER;CIVIL2022_OR_GREATER false diff --git a/ConnectorAutocadCivil/ConnectorCivil2023/ConnectorCivil2023.csproj b/ConnectorAutocadCivil/ConnectorCivil2023/ConnectorCivil2023.csproj index 601d524f7c..4d80155046 100644 --- a/ConnectorAutocadCivil/ConnectorCivil2023/ConnectorCivil2023.csproj +++ b/ConnectorAutocadCivil/ConnectorCivil2023/ConnectorCivil2023.csproj @@ -12,7 +12,7 @@ x64 ConnectorCivil2023 ConnectorCivil2023 - $(DefineConstants);CIVIL2023 + $(DefineConstants);CIVIL2023;CIVIL;CIVIL2021_OR_GREATER;CIVIL2022_OR_GREATER;CIVIL2023_OR_GREATER false diff --git a/ConnectorAutocadCivil/ConnectorCivil2024/ConnectorCivil2024.csproj b/ConnectorAutocadCivil/ConnectorCivil2024/ConnectorCivil2024.csproj index 9bf7914a30..f6db7a0e1c 100644 --- a/ConnectorAutocadCivil/ConnectorCivil2024/ConnectorCivil2024.csproj +++ b/ConnectorAutocadCivil/ConnectorCivil2024/ConnectorCivil2024.csproj @@ -12,7 +12,7 @@ x64 ConnectorCivil2024 ConnectorCivil2024 - $(DefineConstants);CIVIL2024 + $(DefineConstants);CIVIL2024;CIVIL;CIVIL2021_OR_GREATER;CIVIL2022_OR_GREATER;CIVIL2023_OR_GREATER;CIVIL2024_OR_GREATER false diff --git a/ConnectorAutocadCivil/ConnectorCivil2025/ConnectorCivil2025.csproj b/ConnectorAutocadCivil/ConnectorCivil2025/ConnectorCivil2025.csproj new file mode 100644 index 0000000000..afea5f80b2 --- /dev/null +++ b/ConnectorAutocadCivil/ConnectorCivil2025/ConnectorCivil2025.csproj @@ -0,0 +1,52 @@ + + + + net8.0-windows + enable + + Speckle.ConnectorCivil + SpeckleConnectorCivil + Program + $(ProgramW6432)\Autodesk\AutoCAD 2025\acad.exe + + /ld "C:\Program Files\Autodesk\AutoCAD 2025\\AecBase.dbx" /product "C3D" /language + "en-US" + + + ConnectorCivil2025 + ConnectorCivil2025 + $(DefineConstants);CIVIL2025;CIVIL;CIVIL2021_OR_GREATER;CIVIL2022_OR_GREATER;CIVIL2023_OR_GREATER;CIVIL2024_OR_GREATER;CIVIL2025_OR_GREATER + false + true + x64 + win-x64 + False + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ConnectorCore/BatchUploader.OperationDriver/BatchUploadOperationDriver.cs b/ConnectorCore/BatchUploader.OperationDriver/BatchUploadOperationDriver.cs deleted file mode 100644 index ae1335ef2d..0000000000 --- a/ConnectorCore/BatchUploader.OperationDriver/BatchUploadOperationDriver.cs +++ /dev/null @@ -1,136 +0,0 @@ -using DesktopUI2; -using DesktopUI2.Models; -using DesktopUI2.Models.Filters; -using DesktopUI2.ViewModels; -using Speckle.BatchUploader.Sdk; -using Speckle.BatchUploader.Sdk.CommunicationModels; -using Speckle.BatchUploader.Sdk.Interfaces; -using Speckle.Core.Api; -using Speckle.Core.Credentials; -using Speckle.Core.Logging; - -namespace Speckle.BatchUploader.OperationDriver; - -/// -/// Connector implementation of a BatchUploader client -/// -/// -/// Only processes started by the batch uploader will start executing jobs -/// -public sealed class BatchUploadOperationDriver -{ - private readonly BatchUploaderClient _client; - private readonly IApplicationFunctionalityController _applicationController; - private readonly ConnectorBindings _connectorBindings; - private int _jobCounter; - - public BatchUploadOperationDriver( - BatchUploaderClient client, - IApplicationFunctionalityController applicationController, - ConnectorBindings connectorBindings - ) - { - _client = client; - _applicationController = applicationController; - _connectorBindings = connectorBindings; - } - - /// - /// Queries local BatchUploader service for any jobs for this application process - /// and starts executing them. Application will terminate once all jobs are complete. - /// - public async Task ProcessAllJobs() - { - while (await GetNextJobId().ConfigureAwait(false) is { } jobId) - { - // currently using this counter to determine whether this process was started by the batch uploader - // and needs to be closed by the batch uploader. Not the most robust system, I'd imagine. - _jobCounter++; - try - { - await ProcessJob(jobId).ConfigureAwait(false); - await _client.UpdateJobStatus(jobId, JobStatus.Completed).ConfigureAwait(false); - //TODO: Finish endpoint with result details. - Console.WriteLine("Finished"); - } - catch (Exception ex) - { - Console.WriteLine(ex); - //TODO: Finish endpoint with ex details - await _client.UpdateJobStatus(jobId, JobStatus.Failed).ConfigureAwait(false); - throw; - } - } - - if (_jobCounter > 0) - { - Environment.Exit(0); - } - } - - private async Task ProcessJob(Guid jobId) - { - await _client.UpdateJobStatus(jobId, JobStatus.Processing).ConfigureAwait(false); - var jobDescription = await _client.GetJobDescription(jobId).ConfigureAwait(false); - await _applicationController.OpenDocument(jobDescription.FilePath).ConfigureAwait(false); - - Account defaultAccount = AccountManager.GetDefaultAccount() ?? throw new SpeckleException("No default account"); - - var state = new StreamState() - { - Client = new Client(defaultAccount), - BranchName = jobDescription.Branch, - StreamId = jobDescription.Stream, - Filter = new AllSelectionFilter - { - Slug = "all", - Name = "Everything", - Icon = "CubeScan", - Description = "Selects all document objects and project information." - }, - }; - ProgressViewModel progress = new(); - AddProgressListener(jobId, progress); - await _connectorBindings.SendStream(state, progress).ConfigureAwait(false); - } - - private void AddProgressListener(Guid jobId, ProgressViewModel viewModel) - { - viewModel.PropertyChanged += (_, p) => - { - if (p.PropertyName is not (nameof(ProgressViewModel.Value) or nameof(ProgressViewModel.Max))) - { - return; - } - - Task.Run(() => OnProgressUpdate(jobId, viewModel)); - }; - } - - private async Task OnProgressUpdate(Guid jobId, ProgressViewModel viewModel) - { - //Check for cancel - var status = await _client.GetJobStatus(jobId).ConfigureAwait(false); - if (status is JobStatus.Cancelled or JobStatus.Failed) - { - viewModel.CancellationTokenSource.Cancel(); - } - - //Update Progress - JobProgress newProgress = new((long)viewModel.Value, (long)viewModel.Max); - await _client.UpdateJobProgress(jobId, newProgress).ConfigureAwait(false); - } - - private async Task GetNextJobId() - { - try - { - return await _client.GetJob().ConfigureAwait(false); - } - catch (HttpRequestException ex) - { - Console.WriteLine(ex); - return null; - } - } -} diff --git a/ConnectorCore/BatchUploader.OperationDriver/BatchUploader.OperationDriver.csproj b/ConnectorCore/BatchUploader.OperationDriver/BatchUploader.OperationDriver.csproj deleted file mode 100644 index 80c9a82419..0000000000 --- a/ConnectorCore/BatchUploader.OperationDriver/BatchUploader.OperationDriver.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - - netstandard2.0 - enable - enable - 10 - Speckle.BatchUploader.OperationDriver - - - - true - - - - - - - - diff --git a/ConnectorCore/BatchUploader.Sdk/BatchUploader.Sdk.csproj b/ConnectorCore/BatchUploader.Sdk/BatchUploader.Sdk.csproj deleted file mode 100644 index 8ac8087f32..0000000000 --- a/ConnectorCore/BatchUploader.Sdk/BatchUploader.Sdk.csproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - netstandard2.0 - enable - enable - 10 - Speckle.BatchUploader.Sdk - true - Speckle.BatchUploader.Sdk - Speckle.BatchUploader.Sdk - SDK for connector batch uploader - $(PackageTags) revit uploader batch - true - - - - true - - - - - - - diff --git a/ConnectorCore/BatchUploader.Sdk/BatchUploaderClient.cs b/ConnectorCore/BatchUploader.Sdk/BatchUploaderClient.cs deleted file mode 100644 index d85845b1b6..0000000000 --- a/ConnectorCore/BatchUploader.Sdk/BatchUploaderClient.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System.Text; -using System.Text.Json; -using Speckle.BatchUploader.Sdk.CommunicationModels; - -[assembly: CLSCompliant(true)] - -namespace Speckle.BatchUploader.Sdk; - -public sealed class BatchUploaderClient : IDisposable -{ - private readonly Uri _serverUri; - private readonly HttpClient _httpClient; - - public BatchUploaderClient(Uri serverUri) - { - _serverUri = serverUri; - - using var p = System.Diagnostics.Process.GetCurrentProcess(); - _httpClient = new HttpClient(); - _httpClient.DefaultRequestHeaders.Add("pid", p.Id.ToString()); - } - - public async Task AddJob( - JobDescription description, - string versionedHostAppName, - CancellationToken cancellationToken = default - ) - { - using var requestMessage = new HttpRequestMessage( - HttpMethod.Post, - _serverUri + $"api/v1/Jobs?&versionedHostAppName={versionedHostAppName}" - ); - requestMessage.Content = SerializeBody(description); - using var response = await _httpClient.SendAsync(requestMessage, cancellationToken).ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - var stream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false); - return await JsonSerializer - .DeserializeAsync(stream, cancellationToken: cancellationToken) - .ConfigureAwait(false); - } - - public async Task RegisterProcessor(string versionedHostAppName, CancellationToken cancellationToken = default) - { - using var requestMessage = new HttpRequestMessage( - HttpMethod.Post, - _serverUri + $"api/v1/Jobs/Processors?&versionedHostAppName={versionedHostAppName}" - ); - using var response = await _httpClient.SendAsync(requestMessage, cancellationToken).ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - } - - public async Task GetJob(CancellationToken cancellationToken = default) - { - using var requestMessage = new HttpRequestMessage(HttpMethod.Get, _serverUri + $"api/v1/Jobs"); - using var response = await _httpClient.SendAsync(requestMessage, cancellationToken).ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - var stream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false); - return await JsonSerializer - .DeserializeAsync(stream, cancellationToken: cancellationToken) - .ConfigureAwait(false); - } - - public async Task GetJobDescription(Guid jobId, CancellationToken cancellationToken = default) - { - using var requestMessage = new HttpRequestMessage(HttpMethod.Get, _serverUri + $"api/v1/Jobs/{jobId}/description"); - using var response = await _httpClient.SendAsync(requestMessage, cancellationToken).ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - var stream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false); - return await JsonSerializer - .DeserializeAsync(stream, cancellationToken: cancellationToken) - .ConfigureAwait(false); - } - - public async Task GetJobStatus(Guid jobId, CancellationToken cancellationToken = default) - { - using var requestMessage = new HttpRequestMessage(HttpMethod.Get, _serverUri + $"api/v1/Jobs/{jobId}/status"); - using var response = await _httpClient.SendAsync(requestMessage, cancellationToken).ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - var stream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false); - return await JsonSerializer - .DeserializeAsync(stream, cancellationToken: cancellationToken) - .ConfigureAwait(false); - } - - public async Task UpdateJobStatus(Guid jobId, JobStatus newStatus, CancellationToken cancellationToken = default) - { - using var requestMessage = new HttpRequestMessage(HttpMethod.Put, _serverUri + $"api/v1/Jobs/{jobId}/status"); - requestMessage.Content = SerializeBody(newStatus); - using var response = await _httpClient.SendAsync(requestMessage, cancellationToken).ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - } - - public async Task UpdateJobProgress(Guid jobId, JobProgress newStatus, CancellationToken cancellationToken = default) - { - using var requestMessage = new HttpRequestMessage(HttpMethod.Put, _serverUri + $"api/v1/Jobs/{jobId}/progress"); - requestMessage.Content = SerializeBody(newStatus); - using var response = await _httpClient.SendAsync(requestMessage, cancellationToken).ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - } - - private static StringContent SerializeBody(T value) - { - return new StringContent(JsonSerializer.Serialize(value), Encoding.UTF8, "application/json"); - } - - public void Dispose() - { - _httpClient.Dispose(); - } -} diff --git a/ConnectorCore/BatchUploader.Sdk/CommunicationModels/Models.cs b/ConnectorCore/BatchUploader.Sdk/CommunicationModels/Models.cs deleted file mode 100644 index 23f71e8931..0000000000 --- a/ConnectorCore/BatchUploader.Sdk/CommunicationModels/Models.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System.Text.Json.Serialization; - -namespace Speckle.BatchUploader.Sdk.CommunicationModels; - -public enum JobStatus -{ - None = default, - - /// Waiting for a processor - Queued, - - /// Job is assigned to a processor - Assigned, - - /// Processor has started processing Job - Processing, - - /// User has canceled Job - Cancelled, - - /// Processor failed to complete Job - Failed, - - /// Processor successfully completed job - Completed, -} - -public readonly struct JobProgress -{ - public long Progress { get; } - public long Max { get; } - - [JsonIgnore] - public double ProgressFraction => (double)Progress / Max; - - [JsonConstructor] - public JobProgress(long progress, long max) - { - Progress = progress; - Max = max; - } -} - -public readonly struct JobDescription -{ - public string FilePath { get; } - public string Stream { get; } - public string Branch { get; } - public string CommitMessage { get; } - - [JsonConstructor] - public JobDescription(string filePath, string stream, string branch, string commitMessage) - { - FilePath = filePath; - Stream = stream; - Branch = branch; - CommitMessage = commitMessage; - } -} diff --git a/ConnectorCore/BatchUploader.Sdk/Interfaces/IApplicationFunctionalityController.cs b/ConnectorCore/BatchUploader.Sdk/Interfaces/IApplicationFunctionalityController.cs deleted file mode 100644 index 3700cd54eb..0000000000 --- a/ConnectorCore/BatchUploader.Sdk/Interfaces/IApplicationFunctionalityController.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Speckle.BatchUploader.Sdk.Interfaces; - -public interface IApplicationFunctionalityController -{ - public Task OpenDocument(string path); -} diff --git a/ConnectorRevit/ConnectorRevit.sln b/ConnectorRevit/ConnectorRevit.sln index 2664485cf8..0295545c4f 100644 --- a/ConnectorRevit/ConnectorRevit.sln +++ b/ConnectorRevit/ConnectorRevit.sln @@ -96,11 +96,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RevitSharedResources2021", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RevitSharedResources2020", "RevitSharedResources2020\RevitSharedResources2020.csproj", "{1C053AF2-BC74-4538-B250-62C6B54380EF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BatchUploader.Sdk", "..\ConnectorCore\BatchUploader.Sdk\BatchUploader.Sdk.csproj", "{2018D167-8A0E-495B-B7F9-F952530C1B87}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DllConflictManagement", "..\ConnectorCore\DllConflictManagement\DllConflictManagement.csproj", "{C80CA5EC-22BB-44A8-8800-54675218EB2B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BatchUploader.OperationDriver", "..\ConnectorCore\BatchUploader.OperationDriver\BatchUploader.OperationDriver.csproj", "{1D6D5E82-0CE2-4291-9871-A94EDFD546BE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2025", "..\Objects\Converters\ConverterRevit\ConverterRevit2025\ConverterRevit2025.csproj", "{FE3A58FD-C151-4477-9889-B0C0B0E4413B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DllConflictManagement", "..\ConnectorCore\DllConflictManagement\DllConflictManagement.csproj", "{C80CA5EC-22BB-44A8-8800-54675218EB2B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RevitSharedResources2025", "RevitSharedResources2025\RevitSharedResources2025.csproj", "{E5F2DD17-F6CF-4E78-92E4-FF92B485AD1E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorRevit2025", "ConnectorRevit2025\ConnectorRevit2025.csproj", "{6FF4E2D4-AD1C-41EA-94A0-5BB2967D5751}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestGenerator", "..\Objects\Converters\ConverterRevit\ConverterRevitTests\TestGenerator\TestGenerator.csproj", "{EE43C2EA-7F62-4951-B72A-F7DE5EAEBBB7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -118,6 +122,7 @@ Global {521D4AEE-08CF-4913-BBE8-5511D176D126}.Release|Any CPU.Build.0 = Release|Any CPU {521D4AEE-08CF-4913-BBE8-5511D176D126}.Release|x64.ActiveCfg = Release|Any CPU {521D4AEE-08CF-4913-BBE8-5511D176D126}.Release|x64.Build.0 = Release|Any CPU + {521D4AEE-08CF-4913-BBE8-5511D176D126}.Release|Any CPU.Deploy.0 = Release|Any CPU {BE852BE3-37B8-4B62-AC2C-0872C41A2542}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BE852BE3-37B8-4B62-AC2C-0872C41A2542}.Debug|Any CPU.Build.0 = Debug|Any CPU {BE852BE3-37B8-4B62-AC2C-0872C41A2542}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -126,10 +131,6 @@ Global {BE852BE3-37B8-4B62-AC2C-0872C41A2542}.Release|Any CPU.Build.0 = Release|Any CPU {BE852BE3-37B8-4B62-AC2C-0872C41A2542}.Release|x64.ActiveCfg = Release|Any CPU {BE852BE3-37B8-4B62-AC2C-0872C41A2542}.Release|x64.Build.0 = Release|Any CPU - {2DCD648D-DCA5-4D2A-8B14-AD2CB85D24B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2DCD648D-DCA5-4D2A-8B14-AD2CB85D24B0}.Debug|x64.ActiveCfg = Debug|Any CPU - {2DCD648D-DCA5-4D2A-8B14-AD2CB85D24B0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2DCD648D-DCA5-4D2A-8B14-AD2CB85D24B0}.Release|x64.ActiveCfg = Release|Any CPU {240EAD7E-EF10-482A-B299-3B85B64B032F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {240EAD7E-EF10-482A-B299-3B85B64B032F}.Debug|Any CPU.Build.0 = Debug|Any CPU {240EAD7E-EF10-482A-B299-3B85B64B032F}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -146,10 +147,6 @@ Global {CFBD9A83-5AA2-4849-8735-28D4F73F4F56}.Release|Any CPU.Build.0 = Release|Any CPU {CFBD9A83-5AA2-4849-8735-28D4F73F4F56}.Release|x64.ActiveCfg = Release|Any CPU {CFBD9A83-5AA2-4849-8735-28D4F73F4F56}.Release|x64.Build.0 = Release|Any CPU - {5FD0D810-03E9-4FD2-93E4-B1B51E5D82C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5FD0D810-03E9-4FD2-93E4-B1B51E5D82C5}.Debug|x64.ActiveCfg = Debug|Any CPU - {5FD0D810-03E9-4FD2-93E4-B1B51E5D82C5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5FD0D810-03E9-4FD2-93E4-B1B51E5D82C5}.Release|x64.ActiveCfg = Release|Any CPU {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug|Any CPU.Build.0 = Debug|Any CPU {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -235,6 +232,7 @@ Global {D9C88135-B4B3-4C6C-A9D9-01A59A00BC0C}.Debug|x64.ActiveCfg = Debug|Any CPU {D9C88135-B4B3-4C6C-A9D9-01A59A00BC0C}.Debug|x64.Build.0 = Debug|Any CPU {D9C88135-B4B3-4C6C-A9D9-01A59A00BC0C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D9C88135-B4B3-4C6C-A9D9-01A59A00BC0C}.Release|Any CPU.Build.0 = Release|Any CPU {D9C88135-B4B3-4C6C-A9D9-01A59A00BC0C}.Release|x64.ActiveCfg = Release|Any CPU {D9C88135-B4B3-4C6C-A9D9-01A59A00BC0C}.Release|x64.Build.0 = Release|Any CPU {5F2E1759-74A8-4DA6-AD11-906EBEF6B587}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -242,84 +240,70 @@ Global {5F2E1759-74A8-4DA6-AD11-906EBEF6B587}.Debug|x64.ActiveCfg = Debug|Any CPU {5F2E1759-74A8-4DA6-AD11-906EBEF6B587}.Debug|x64.Build.0 = Debug|Any CPU {5F2E1759-74A8-4DA6-AD11-906EBEF6B587}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F2E1759-74A8-4DA6-AD11-906EBEF6B587}.Release|Any CPU.Build.0 = Release|Any CPU {5F2E1759-74A8-4DA6-AD11-906EBEF6B587}.Release|x64.ActiveCfg = Release|Any CPU {5F2E1759-74A8-4DA6-AD11-906EBEF6B587}.Release|x64.Build.0 = Release|Any CPU {10653ECD-E11B-4D1B-827B-6FD6A454F3AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {10653ECD-E11B-4D1B-827B-6FD6A454F3AC}.Debug|Any CPU.Build.0 = Debug|Any CPU {10653ECD-E11B-4D1B-827B-6FD6A454F3AC}.Debug|x64.ActiveCfg = Debug|Any CPU {10653ECD-E11B-4D1B-827B-6FD6A454F3AC}.Debug|x64.Build.0 = Debug|Any CPU {10653ECD-E11B-4D1B-827B-6FD6A454F3AC}.Release|Any CPU.ActiveCfg = Release|Any CPU {10653ECD-E11B-4D1B-827B-6FD6A454F3AC}.Release|x64.ActiveCfg = Release|Any CPU {10653ECD-E11B-4D1B-827B-6FD6A454F3AC}.Release|x64.Build.0 = Release|Any CPU {B89DBE55-AF21-45DD-B469-473D6502CFD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B89DBE55-AF21-45DD-B469-473D6502CFD0}.Debug|Any CPU.Build.0 = Debug|Any CPU {B89DBE55-AF21-45DD-B469-473D6502CFD0}.Debug|x64.ActiveCfg = Debug|Any CPU {B89DBE55-AF21-45DD-B469-473D6502CFD0}.Debug|x64.Build.0 = Debug|Any CPU {B89DBE55-AF21-45DD-B469-473D6502CFD0}.Release|Any CPU.ActiveCfg = Release|Any CPU {B89DBE55-AF21-45DD-B469-473D6502CFD0}.Release|x64.ActiveCfg = Release|Any CPU {B89DBE55-AF21-45DD-B469-473D6502CFD0}.Release|x64.Build.0 = Release|Any CPU {43F0F1CC-6875-4ABF-8482-C30EE4BB2562}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {43F0F1CC-6875-4ABF-8482-C30EE4BB2562}.Debug|Any CPU.Build.0 = Debug|Any CPU {43F0F1CC-6875-4ABF-8482-C30EE4BB2562}.Debug|x64.ActiveCfg = Debug|Any CPU {43F0F1CC-6875-4ABF-8482-C30EE4BB2562}.Debug|x64.Build.0 = Debug|Any CPU {43F0F1CC-6875-4ABF-8482-C30EE4BB2562}.Release|Any CPU.ActiveCfg = Release|Any CPU {43F0F1CC-6875-4ABF-8482-C30EE4BB2562}.Release|x64.ActiveCfg = Release|Any CPU {43F0F1CC-6875-4ABF-8482-C30EE4BB2562}.Release|x64.Build.0 = Release|Any CPU {1F706932-DBFD-4E1E-8724-8F9364FFB375}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1F706932-DBFD-4E1E-8724-8F9364FFB375}.Debug|Any CPU.Build.0 = Debug|Any CPU {1F706932-DBFD-4E1E-8724-8F9364FFB375}.Debug|x64.ActiveCfg = Debug|Any CPU {1F706932-DBFD-4E1E-8724-8F9364FFB375}.Debug|x64.Build.0 = Debug|Any CPU {1F706932-DBFD-4E1E-8724-8F9364FFB375}.Release|Any CPU.ActiveCfg = Release|Any CPU {1F706932-DBFD-4E1E-8724-8F9364FFB375}.Release|x64.ActiveCfg = Release|Any CPU {1F706932-DBFD-4E1E-8724-8F9364FFB375}.Release|x64.Build.0 = Release|Any CPU {DE426137-4A38-44C0-87E5-C325AF90A84C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DE426137-4A38-44C0-87E5-C325AF90A84C}.Debug|Any CPU.Build.0 = Debug|Any CPU {DE426137-4A38-44C0-87E5-C325AF90A84C}.Debug|x64.ActiveCfg = Debug|Any CPU {DE426137-4A38-44C0-87E5-C325AF90A84C}.Debug|x64.Build.0 = Debug|Any CPU {DE426137-4A38-44C0-87E5-C325AF90A84C}.Release|Any CPU.ActiveCfg = Release|Any CPU {DE426137-4A38-44C0-87E5-C325AF90A84C}.Release|x64.ActiveCfg = Release|Any CPU {DE426137-4A38-44C0-87E5-C325AF90A84C}.Release|x64.Build.0 = Release|Any CPU - {2B4F4767-CF26-485B-ADB3-751250EB1CDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2B4F4767-CF26-485B-ADB3-751250EB1CDB}.Debug|x64.ActiveCfg = Debug|Any CPU - {2B4F4767-CF26-485B-ADB3-751250EB1CDB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2B4F4767-CF26-485B-ADB3-751250EB1CDB}.Release|x64.ActiveCfg = Release|Any CPU {7F4FE09F-F145-4776-BFFD-CAD3225EBC3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7F4FE09F-F145-4776-BFFD-CAD3225EBC3D}.Debug|Any CPU.Build.0 = Debug|Any CPU {7F4FE09F-F145-4776-BFFD-CAD3225EBC3D}.Debug|x64.ActiveCfg = Debug|Any CPU {7F4FE09F-F145-4776-BFFD-CAD3225EBC3D}.Debug|x64.Build.0 = Debug|Any CPU {7F4FE09F-F145-4776-BFFD-CAD3225EBC3D}.Release|Any CPU.ActiveCfg = Release|Any CPU {7F4FE09F-F145-4776-BFFD-CAD3225EBC3D}.Release|x64.ActiveCfg = Release|Any CPU {7F4FE09F-F145-4776-BFFD-CAD3225EBC3D}.Release|x64.Build.0 = Release|Any CPU {34C90F9C-81AD-4E46-B6DC-F5F530A9CB7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {34C90F9C-81AD-4E46-B6DC-F5F530A9CB7F}.Debug|Any CPU.Build.0 = Debug|Any CPU {34C90F9C-81AD-4E46-B6DC-F5F530A9CB7F}.Debug|x64.ActiveCfg = Debug|Any CPU {34C90F9C-81AD-4E46-B6DC-F5F530A9CB7F}.Debug|x64.Build.0 = Debug|Any CPU {34C90F9C-81AD-4E46-B6DC-F5F530A9CB7F}.Release|Any CPU.ActiveCfg = Release|Any CPU {34C90F9C-81AD-4E46-B6DC-F5F530A9CB7F}.Release|x64.ActiveCfg = Release|Any CPU {34C90F9C-81AD-4E46-B6DC-F5F530A9CB7F}.Release|x64.Build.0 = Release|Any CPU {38365A78-5683-4762-89BC-8C3D54E86574}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {38365A78-5683-4762-89BC-8C3D54E86574}.Debug|Any CPU.Build.0 = Debug|Any CPU {38365A78-5683-4762-89BC-8C3D54E86574}.Debug|x64.ActiveCfg = Debug|Any CPU {38365A78-5683-4762-89BC-8C3D54E86574}.Debug|x64.Build.0 = Debug|Any CPU {38365A78-5683-4762-89BC-8C3D54E86574}.Release|Any CPU.ActiveCfg = Release|Any CPU {38365A78-5683-4762-89BC-8C3D54E86574}.Release|x64.ActiveCfg = Release|Any CPU {38365A78-5683-4762-89BC-8C3D54E86574}.Release|x64.Build.0 = Release|Any CPU {CA0B3525-1378-49FB-92FD-97637E240141}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CA0B3525-1378-49FB-92FD-97637E240141}.Debug|Any CPU.Build.0 = Debug|Any CPU {CA0B3525-1378-49FB-92FD-97637E240141}.Debug|x64.ActiveCfg = Debug|Any CPU {CA0B3525-1378-49FB-92FD-97637E240141}.Debug|x64.Build.0 = Debug|Any CPU {CA0B3525-1378-49FB-92FD-97637E240141}.Release|Any CPU.ActiveCfg = Release|Any CPU {CA0B3525-1378-49FB-92FD-97637E240141}.Release|x64.ActiveCfg = Release|Any CPU {CA0B3525-1378-49FB-92FD-97637E240141}.Release|x64.Build.0 = Release|Any CPU {EEFF45B0-D46F-4A29-9284-BE54B25FA0E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EEFF45B0-D46F-4A29-9284-BE54B25FA0E5}.Debug|Any CPU.Build.0 = Debug|Any CPU {EEFF45B0-D46F-4A29-9284-BE54B25FA0E5}.Debug|x64.ActiveCfg = Debug|Any CPU {EEFF45B0-D46F-4A29-9284-BE54B25FA0E5}.Debug|x64.Build.0 = Debug|Any CPU {EEFF45B0-D46F-4A29-9284-BE54B25FA0E5}.Release|Any CPU.ActiveCfg = Release|Any CPU {EEFF45B0-D46F-4A29-9284-BE54B25FA0E5}.Release|x64.ActiveCfg = Release|Any CPU {EEFF45B0-D46F-4A29-9284-BE54B25FA0E5}.Release|x64.Build.0 = Release|Any CPU {CB8B74E6-8C70-4CF8-A318-84388C61F101}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CB8B74E6-8C70-4CF8-A318-84388C61F101}.Debug|Any CPU.Build.0 = Debug|Any CPU {CB8B74E6-8C70-4CF8-A318-84388C61F101}.Debug|x64.ActiveCfg = Debug|Any CPU {CB8B74E6-8C70-4CF8-A318-84388C61F101}.Debug|x64.Build.0 = Debug|Any CPU {CB8B74E6-8C70-4CF8-A318-84388C61F101}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -381,22 +365,6 @@ Global {1C053AF2-BC74-4538-B250-62C6B54380EF}.Release|Any CPU.Build.0 = Release|Any CPU {1C053AF2-BC74-4538-B250-62C6B54380EF}.Release|x64.ActiveCfg = Release|Any CPU {1C053AF2-BC74-4538-B250-62C6B54380EF}.Release|x64.Build.0 = Release|Any CPU - {2018D167-8A0E-495B-B7F9-F952530C1B87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2018D167-8A0E-495B-B7F9-F952530C1B87}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2018D167-8A0E-495B-B7F9-F952530C1B87}.Debug|x64.ActiveCfg = Debug|Any CPU - {2018D167-8A0E-495B-B7F9-F952530C1B87}.Debug|x64.Build.0 = Debug|Any CPU - {2018D167-8A0E-495B-B7F9-F952530C1B87}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2018D167-8A0E-495B-B7F9-F952530C1B87}.Release|Any CPU.Build.0 = Release|Any CPU - {2018D167-8A0E-495B-B7F9-F952530C1B87}.Release|x64.ActiveCfg = Release|Any CPU - {2018D167-8A0E-495B-B7F9-F952530C1B87}.Release|x64.Build.0 = Release|Any CPU - {1D6D5E82-0CE2-4291-9871-A94EDFD546BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1D6D5E82-0CE2-4291-9871-A94EDFD546BE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1D6D5E82-0CE2-4291-9871-A94EDFD546BE}.Debug|x64.ActiveCfg = Debug|Any CPU - {1D6D5E82-0CE2-4291-9871-A94EDFD546BE}.Debug|x64.Build.0 = Debug|Any CPU - {1D6D5E82-0CE2-4291-9871-A94EDFD546BE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1D6D5E82-0CE2-4291-9871-A94EDFD546BE}.Release|Any CPU.Build.0 = Release|Any CPU - {1D6D5E82-0CE2-4291-9871-A94EDFD546BE}.Release|x64.ActiveCfg = Release|Any CPU - {1D6D5E82-0CE2-4291-9871-A94EDFD546BE}.Release|x64.Build.0 = Release|Any CPU {C80CA5EC-22BB-44A8-8800-54675218EB2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C80CA5EC-22BB-44A8-8800-54675218EB2B}.Debug|Any CPU.Build.0 = Debug|Any CPU {C80CA5EC-22BB-44A8-8800-54675218EB2B}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -405,6 +373,38 @@ Global {C80CA5EC-22BB-44A8-8800-54675218EB2B}.Release|Any CPU.Build.0 = Release|Any CPU {C80CA5EC-22BB-44A8-8800-54675218EB2B}.Release|x64.ActiveCfg = Release|Any CPU {C80CA5EC-22BB-44A8-8800-54675218EB2B}.Release|x64.Build.0 = Release|Any CPU + {FE3A58FD-C151-4477-9889-B0C0B0E4413B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FE3A58FD-C151-4477-9889-B0C0B0E4413B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FE3A58FD-C151-4477-9889-B0C0B0E4413B}.Debug|x64.ActiveCfg = Debug|Any CPU + {FE3A58FD-C151-4477-9889-B0C0B0E4413B}.Debug|x64.Build.0 = Debug|Any CPU + {FE3A58FD-C151-4477-9889-B0C0B0E4413B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FE3A58FD-C151-4477-9889-B0C0B0E4413B}.Release|Any CPU.Build.0 = Release|Any CPU + {FE3A58FD-C151-4477-9889-B0C0B0E4413B}.Release|x64.ActiveCfg = Release|Any CPU + {FE3A58FD-C151-4477-9889-B0C0B0E4413B}.Release|x64.Build.0 = Release|Any CPU + {E5F2DD17-F6CF-4E78-92E4-FF92B485AD1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5F2DD17-F6CF-4E78-92E4-FF92B485AD1E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5F2DD17-F6CF-4E78-92E4-FF92B485AD1E}.Debug|x64.ActiveCfg = Debug|Any CPU + {E5F2DD17-F6CF-4E78-92E4-FF92B485AD1E}.Debug|x64.Build.0 = Debug|Any CPU + {E5F2DD17-F6CF-4E78-92E4-FF92B485AD1E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5F2DD17-F6CF-4E78-92E4-FF92B485AD1E}.Release|Any CPU.Build.0 = Release|Any CPU + {E5F2DD17-F6CF-4E78-92E4-FF92B485AD1E}.Release|x64.ActiveCfg = Release|Any CPU + {E5F2DD17-F6CF-4E78-92E4-FF92B485AD1E}.Release|x64.Build.0 = Release|Any CPU + {6FF4E2D4-AD1C-41EA-94A0-5BB2967D5751}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6FF4E2D4-AD1C-41EA-94A0-5BB2967D5751}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6FF4E2D4-AD1C-41EA-94A0-5BB2967D5751}.Debug|x64.ActiveCfg = Debug|Any CPU + {6FF4E2D4-AD1C-41EA-94A0-5BB2967D5751}.Debug|x64.Build.0 = Debug|Any CPU + {6FF4E2D4-AD1C-41EA-94A0-5BB2967D5751}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6FF4E2D4-AD1C-41EA-94A0-5BB2967D5751}.Release|Any CPU.Build.0 = Release|Any CPU + {6FF4E2D4-AD1C-41EA-94A0-5BB2967D5751}.Release|x64.ActiveCfg = Release|Any CPU + {6FF4E2D4-AD1C-41EA-94A0-5BB2967D5751}.Release|x64.Build.0 = Release|Any CPU + {EE43C2EA-7F62-4951-B72A-F7DE5EAEBBB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE43C2EA-7F62-4951-B72A-F7DE5EAEBBB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE43C2EA-7F62-4951-B72A-F7DE5EAEBBB7}.Debug|x64.ActiveCfg = Debug|Any CPU + {EE43C2EA-7F62-4951-B72A-F7DE5EAEBBB7}.Debug|x64.Build.0 = Debug|Any CPU + {EE43C2EA-7F62-4951-B72A-F7DE5EAEBBB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE43C2EA-7F62-4951-B72A-F7DE5EAEBBB7}.Release|Any CPU.Build.0 = Release|Any CPU + {EE43C2EA-7F62-4951-B72A-F7DE5EAEBBB7}.Release|x64.ActiveCfg = Release|Any CPU + {EE43C2EA-7F62-4951-B72A-F7DE5EAEBBB7}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -453,8 +453,10 @@ Global {57C2D297-25D4-472B-9034-A106A6E39C24} = {621DFAC1-C94B-4D7B-B8B0-7934E816CC98} {11D1995A-6FEF-4843-A1D7-A5F6B3592891} = {621DFAC1-C94B-4D7B-B8B0-7934E816CC98} {1C053AF2-BC74-4538-B250-62C6B54380EF} = {621DFAC1-C94B-4D7B-B8B0-7934E816CC98} - {2018D167-8A0E-495B-B7F9-F952530C1B87} = {39F07EF9-5867-4062-886D-2417C86305C2} - {1D6D5E82-0CE2-4291-9871-A94EDFD546BE} = {39F07EF9-5867-4062-886D-2417C86305C2} + {FE3A58FD-C151-4477-9889-B0C0B0E4413B} = {0FED0483-A54F-44EE-88FB-2FA6BAD13891} + {E5F2DD17-F6CF-4E78-92E4-FF92B485AD1E} = {621DFAC1-C94B-4D7B-B8B0-7934E816CC98} + {6FF4E2D4-AD1C-41EA-94A0-5BB2967D5751} = {89C98BAA-C2BC-4EAF-AB97-C513A5A2372D} + {EE43C2EA-7F62-4951-B72A-F7DE5EAEBBB7} = {4DE9E22E-1A37-4801-8CB9-A6820B64655A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {650BE642-C7CC-4FF5-9EE5-8C57BF553143} @@ -475,11 +477,14 @@ Global ConnectorRevit\ConnectorRevit.projitems*{586a5a37-93f6-427e-8df8-c10db4d6822a}*SharedItemsImports = 5 ..\Objects\Converters\ConverterRevit\ConverterRevitTests\ConverterRevitTestsShared\ConverterRevitTestsShared.projitems*{5f2e1759-74a8-4da6-ad11-906ebef6b587}*SharedItemsImports = 5 ConnectorRevit\ConnectorRevit.projitems*{5fd0d810-03e9-4fd2-93e4-b1b51e5d82c5}*SharedItemsImports = 13 + ConnectorRevit\ConnectorRevit.projitems*{6ff4e2d4-ad1c-41ea-94a0-5bb2967d5751}*SharedItemsImports = 5 ..\Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{89302d7a-68ec-4172-b5d7-128ab3041a5d}*SharedItemsImports = 5 ConnectorRevit\ConnectorRevit.projitems*{8a53b084-20d8-48f6-9591-9d53cfa74130}*SharedItemsImports = 5 ..\Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{c74e4c61-ca68-47f9-825e-91b7a5c4546d}*SharedItemsImports = 5 ..\Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{cfbd9a83-5aa2-4849-8735-28d4f73f4f56}*SharedItemsImports = 5 ..\Objects\Converters\ConverterRevit\ConverterRevitTests\ConverterRevitTestsShared\ConverterRevitTestsShared.projitems*{d9c88135-b4b3-4c6c-a9d9-01a59a00bc0c}*SharedItemsImports = 5 ConnectorRevit\ConnectorRevit.projitems*{dfdfdbb8-018b-4dcb-a012-54227abf53a7}*SharedItemsImports = 5 + RevitSharedResources\RevitSharedResources.projitems*{e5f2dd17-f6cf-4e78-92e4-ff92b485ad1e}*SharedItemsImports = 5 + ..\Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{fe3a58fd-c151-4477-9889-b0c0b0e4413b}*SharedItemsImports = 5 EndGlobalSection EndGlobal diff --git a/ConnectorRevit/ConnectorRevit.slnf b/ConnectorRevit/ConnectorRevit.slnf index ba37ad3359..cfc41d3cc6 100644 --- a/ConnectorRevit/ConnectorRevit.slnf +++ b/ConnectorRevit/ConnectorRevit.slnf @@ -2,20 +2,20 @@ "solution": { "path": "..\\All.sln", "projects": [ - "ConnectorCore\\BatchUploader.OperationDriver\\BatchUploader.OperationDriver.csproj", - "ConnectorCore\\BatchUploader.Sdk\\BatchUploader.Sdk.csproj", "ConnectorCore\\DllConflictManagement\\DllConflictManagement.csproj", "ConnectorRevit\\ConnectorRevit2020\\ConnectorRevit2020.csproj", "ConnectorRevit\\ConnectorRevit2021\\ConnectorRevit2021.csproj", "ConnectorRevit\\ConnectorRevit2022\\ConnectorRevit2022.csproj", "ConnectorRevit\\ConnectorRevit2023\\ConnectorRevit2023.csproj", "ConnectorRevit\\ConnectorRevit2024\\ConnectorRevit2024.csproj", + "ConnectorRevit\\ConnectorRevit2025\\ConnectorRevit2025.csproj", "ConnectorRevit\\ConnectorRevit\\ConnectorRevitShared.shproj", "ConnectorRevit\\RevitSharedResources2020\\RevitSharedResources2020.csproj", "ConnectorRevit\\RevitSharedResources2021\\RevitSharedResources2021.csproj", "ConnectorRevit\\RevitSharedResources2022\\RevitSharedResources2022.csproj", "ConnectorRevit\\RevitSharedResources2023\\RevitSharedResources2023.csproj", "ConnectorRevit\\RevitSharedResources2024\\RevitSharedResources2024.csproj", + "ConnectorRevit\\RevitSharedResources2025\\RevitSharedResources2025.csproj", "ConnectorRevit\\RevitSharedResources\\RevitSharedResources.shproj", "Core\\Core\\Core.csproj", "Core\\Tests\\Speckle.Core.Tests.Integration\\Speckle.Core.Tests.Integration.csproj", @@ -30,6 +30,7 @@ "Objects\\Converters\\ConverterRevit\\ConverterRevit2022\\ConverterRevit2022.csproj", "Objects\\Converters\\ConverterRevit\\ConverterRevit2023\\ConverterRevit2023.csproj", "Objects\\Converters\\ConverterRevit\\ConverterRevit2024\\ConverterRevit2024.csproj", + "Objects\\Converters\\ConverterRevit\\ConverterRevit2025\\ConverterRevit2025.csproj", "Objects\\Converters\\ConverterRevit\\ConverterRevitShared\\ConverterRevitShared.shproj", "Objects\\Converters\\ConverterRevit\\ConverterRevitTests\\ConverterRevitTests2021\\ConverterRevitTests2021.csproj", "Objects\\Converters\\ConverterRevit\\ConverterRevitTests\\ConverterRevitTests2022\\ConverterRevitTests2022.csproj", @@ -40,4 +41,4 @@ "Objects\\Tests\\Objects.Tests.Unit\\Objects.Tests.Unit.csproj" ] } -} \ No newline at end of file +} diff --git a/ConnectorRevit/ConnectorRevit/ConnectorRevit.projitems b/ConnectorRevit/ConnectorRevit/ConnectorRevit.projitems index 14f3502044..47290ab313 100644 --- a/ConnectorRevit/ConnectorRevit/ConnectorRevit.projitems +++ b/ConnectorRevit/ConnectorRevit/ConnectorRevit.projitems @@ -31,7 +31,6 @@ - diff --git a/ConnectorRevit/ConnectorRevit/ConnectorRevitUtils.cs b/ConnectorRevit/ConnectorRevit/ConnectorRevitUtils.cs index 14ff934f33..469db91068 100644 --- a/ConnectorRevit/ConnectorRevit/ConnectorRevitUtils.cs +++ b/ConnectorRevit/ConnectorRevit/ConnectorRevitUtils.cs @@ -13,7 +13,9 @@ namespace Speckle.ConnectorRevit; public static class ConnectorRevitUtils { -#if REVIT2024 +#if REVIT2025 + public static string RevitAppName = HostApplications.Revit.GetVersion(HostAppVersion.v2025); +#elif REVIT2024 public static string RevitAppName = HostApplications.Revit.GetVersion(HostAppVersion.v2024); #elif REVIT2023 public static string RevitAppName = HostApplications.Revit.GetVersion(HostAppVersion.v2023); diff --git a/ConnectorRevit/ConnectorRevit/Entry/App.cs b/ConnectorRevit/ConnectorRevit/Entry/App.cs index ce01ed30c7..a02e17c337 100644 --- a/ConnectorRevit/ConnectorRevit/Entry/App.cs +++ b/ConnectorRevit/ConnectorRevit/Entry/App.cs @@ -6,11 +6,8 @@ using System.Windows.Media.Imaging; using Autodesk.Revit.ApplicationServices; using Autodesk.Revit.UI; -using ConnectorRevit; using RevitSharedResources.Extensions.SpeckleExtensions; using RevitSharedResources.Models; -using Speckle.BatchUploader.Sdk; -using Speckle.BatchUploader.OperationDriver; using Speckle.ConnectorRevit.UI; using Speckle.Core.Kits; using Speckle.Core.Logging; @@ -33,7 +30,8 @@ public class App : IExternalApplication private bool _initialized; private static readonly string[] s_assemblyPathFragmentsToIgnore = new string[] { - "Microsoft.Net\\assembly\\GAC_MSIL\\" + "Microsoft.Net\\assembly\\GAC_MSIL\\", + "C:\\Program Files\\dotnet\\shared\\" }; public Result OnStartup(UIControlledApplication application) @@ -75,7 +73,6 @@ public Result OnStartup(UIControlledApplication application) APIContext.Initialize(application); InitializeUiPanel(application); - conflictNotifier.WarnUserOfPossibleConflicts(); return Result.Succeeded; } @@ -133,6 +130,8 @@ private static string GetRevitVersion() return "2023"; #elif REVIT2024 return "2024"; +#elif REVIT2025 + return "2025"; #endif } @@ -178,13 +177,6 @@ Autodesk.Revit.DB.Events.ApplicationInitializedEventArgs e AppInstance ??= new UIApplication(sender as Application); CreateBindings(); - BatchUploaderClient client = new(new Uri("http://localhost:5001")); - RevitApplicationController revitAppController = new(AppInstance); - BatchUploadOperationDriver batchUploadOperationDriver = - new(client, revitAppController, SpeckleRevitCommand.Bindings); - - batchUploadOperationDriver.ProcessAllJobs(); - //This is also called in DUI, adding it here to know how often the connector is loaded and used Analytics.TrackEvent(Analytics.Events.Registered, null, false); diff --git a/ConnectorRevit/ConnectorRevit/RevitApplicationFunctionalityController.cs b/ConnectorRevit/ConnectorRevit/RevitApplicationFunctionalityController.cs deleted file mode 100644 index 21cbbc09db..0000000000 --- a/ConnectorRevit/ConnectorRevit/RevitApplicationFunctionalityController.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Threading.Tasks; -using Autodesk.Revit.UI; -using RevitSharedResources.Models; -using Speckle.BatchUploader.Sdk.Interfaces; - -namespace ConnectorRevit; - -internal class RevitApplicationController : IApplicationFunctionalityController -{ - private readonly UIApplication application; - - public RevitApplicationController(UIApplication application) - { - this.application = application; - } - - public async Task OpenDocument(string path) - { - await APIContext - .Run(() => - { - application.OpenAndActivateDocument(path); - }) - .ConfigureAwait(false); - } -} diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.cs index 044aca5d8a..9f043babcb 100644 --- a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.cs +++ b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.cs @@ -8,6 +8,7 @@ using RevitSharedResources.Interfaces; using Speckle.ConnectorRevit.Storage; using Speckle.Core.Kits; +using MenuItem = DesktopUI2.Models.MenuItem; using Timer = System.Timers.Timer; namespace Speckle.ConnectorRevit.UI; diff --git a/ConnectorRevit/ConnectorRevit2020/ConnectorRevit2020.csproj b/ConnectorRevit/ConnectorRevit2020/ConnectorRevit2020.csproj index c99e9feb09..872df4ba54 100644 --- a/ConnectorRevit/ConnectorRevit2020/ConnectorRevit2020.csproj +++ b/ConnectorRevit/ConnectorRevit2020/ConnectorRevit2020.csproj @@ -28,7 +28,6 @@ - diff --git a/ConnectorRevit/ConnectorRevit2021/ConnectorRevit2021.csproj b/ConnectorRevit/ConnectorRevit2021/ConnectorRevit2021.csproj index a342d0d2b4..7560c5b6b6 100644 --- a/ConnectorRevit/ConnectorRevit2021/ConnectorRevit2021.csproj +++ b/ConnectorRevit/ConnectorRevit2021/ConnectorRevit2021.csproj @@ -30,7 +30,6 @@ - diff --git a/ConnectorRevit/ConnectorRevit2022/ConnectorRevit2022.csproj b/ConnectorRevit/ConnectorRevit2022/ConnectorRevit2022.csproj index 9dc02fa821..4af27fbc35 100644 --- a/ConnectorRevit/ConnectorRevit2022/ConnectorRevit2022.csproj +++ b/ConnectorRevit/ConnectorRevit2022/ConnectorRevit2022.csproj @@ -26,7 +26,6 @@ - diff --git a/ConnectorRevit/ConnectorRevit2023/ConnectorRevit2023.csproj b/ConnectorRevit/ConnectorRevit2023/ConnectorRevit2023.csproj index f830ec9684..d48279d567 100644 --- a/ConnectorRevit/ConnectorRevit2023/ConnectorRevit2023.csproj +++ b/ConnectorRevit/ConnectorRevit2023/ConnectorRevit2023.csproj @@ -26,7 +26,6 @@ - diff --git a/ConnectorRevit/ConnectorRevit2024/ConnectorRevit2024.csproj b/ConnectorRevit/ConnectorRevit2024/ConnectorRevit2024.csproj index 58a885a204..74aeaf8f1e 100644 --- a/ConnectorRevit/ConnectorRevit2024/ConnectorRevit2024.csproj +++ b/ConnectorRevit/ConnectorRevit2024/ConnectorRevit2024.csproj @@ -26,7 +26,6 @@ - diff --git a/ConnectorRevit/ConnectorRevit2025/ConnectorRevit2025.csproj b/ConnectorRevit/ConnectorRevit2025/ConnectorRevit2025.csproj new file mode 100644 index 0000000000..2976df7668 --- /dev/null +++ b/ConnectorRevit/ConnectorRevit2025/ConnectorRevit2025.csproj @@ -0,0 +1,68 @@ + + + Speckle.ConnectorRevit + SpeckleConnectorRevit + net8.0-windows + true + SpeckleRevit2 + 2025 + ConnectorRevit + ConnectorRevit + bin\$(Configuration)\ + true + $(DefineConstants);REVIT2025 + false + true + x64 + win-x64 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ConnectorRevit/ConnectorRevit2025/Properties/launchSettings.json b/ConnectorRevit/ConnectorRevit2025/Properties/launchSettings.json new file mode 100644 index 0000000000..25c146a467 --- /dev/null +++ b/ConnectorRevit/ConnectorRevit2025/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "ConnectorRevit2025": { + "commandName": "Executable", + "executablePath": "C:\\Program Files\\Autodesk\\Revit 2025\\Revit.exe" + } + } +} diff --git a/ConnectorRevit/RevitSharedResources2025/RevitSharedResources2025.csproj b/ConnectorRevit/RevitSharedResources2025/RevitSharedResources2025.csproj new file mode 100644 index 0000000000..0f714f6d48 --- /dev/null +++ b/ConnectorRevit/RevitSharedResources2025/RevitSharedResources2025.csproj @@ -0,0 +1,21 @@ + + + + net8.0-windows + $(DefineConstants);REVIT2025 + RevitSharedResources + true + true + + + + + + + + + + + + + diff --git a/DUI3-DX/Connectors/ArcGIS/Speckle.Connectors.ArcGIS3/Speckle.Connectors.ArcGIS3.csproj b/DUI3-DX/Connectors/ArcGIS/Speckle.Connectors.ArcGIS3/Speckle.Connectors.ArcGIS3.csproj index 9e9e4a9d1f..2f19e002e1 100644 --- a/DUI3-DX/Connectors/ArcGIS/Speckle.Connectors.ArcGIS3/Speckle.Connectors.ArcGIS3.csproj +++ b/DUI3-DX/Connectors/ArcGIS/Speckle.Connectors.ArcGIS3/Speckle.Connectors.ArcGIS3.csproj @@ -7,24 +7,28 @@ win-x64 Speckle.Connectors.ArcGIS true + true - + - - - - - + + + + + - + - - + + - + - - - + + + - + \ No newline at end of file diff --git a/DUI3-DX/DUI3/Speckle.Connectors.DUI.WebView/Speckle.Connectors.DUI.WebView.csproj b/DUI3-DX/DUI3/Speckle.Connectors.DUI.WebView/Speckle.Connectors.DUI.WebView.csproj index 689ceb67c4..ed1204c751 100644 --- a/DUI3-DX/DUI3/Speckle.Connectors.DUI.WebView/Speckle.Connectors.DUI.WebView.csproj +++ b/DUI3-DX/DUI3/Speckle.Connectors.DUI.WebView/Speckle.Connectors.DUI.WebView.csproj @@ -1,8 +1,9 @@ - net4.8;net6.0-windows + net48;net6.0-windows true + true @@ -10,6 +11,6 @@ - + - + \ No newline at end of file diff --git a/DUI3-DX/Directory.Build.Props b/DUI3-DX/Directory.Build.Props index add00d3739..64c85531c3 100644 --- a/DUI3-DX/Directory.Build.Props +++ b/DUI3-DX/Directory.Build.Props @@ -1,14 +1,15 @@ - - - enable - enable - true - + + + enable + enable + true + false + - - - - - + + + + + \ No newline at end of file diff --git a/Objects/Converters/ConverterAutocadCivil/ConverterAutocad2025/ConverterAutocad2025.csproj b/Objects/Converters/ConverterAutocadCivil/ConverterAutocad2025/ConverterAutocad2025.csproj new file mode 100644 index 0000000000..96d027e17f --- /dev/null +++ b/Objects/Converters/ConverterAutocadCivil/ConverterAutocad2025/ConverterAutocad2025.csproj @@ -0,0 +1,28 @@ + + + + net8.0 + enable + Objects.Converter.Autocad2025 + Objects.Converter.Autocad + $(DefineConstants);AUTOCAD2025 + Speckle.Objects.Converter.Autocad2025 + Objects.Converter.Autocad2025 + Converter for Autocad 2025 + $(PackageTags) objects converter autocad + true + False + + + + + + + + + + + + + + diff --git a/Objects/Converters/ConverterAutocadCivil/ConverterAutocadCivilShared/Converter.AutocadCivil.Utils.cs b/Objects/Converters/ConverterAutocadCivil/ConverterAutocadCivilShared/Converter.AutocadCivil.Utils.cs index 078bb18770..e9fc4928e9 100644 --- a/Objects/Converters/ConverterAutocadCivil/ConverterAutocadCivilShared/Converter.AutocadCivil.Utils.cs +++ b/Objects/Converters/ConverterAutocadCivil/ConverterAutocadCivilShared/Converter.AutocadCivil.Utils.cs @@ -11,7 +11,7 @@ using Autodesk.AutoCAD.EditorInput; using Speckle.Core.Logging; -#if CIVIL2021 || CIVIL2022 || CIVIL2023 || CIVIL2024 +#if CIVIL using Autodesk.Aec.ApplicationServices; #endif @@ -412,7 +412,7 @@ public string ModelUnits { _modelUnits = UnitToSpeckle(Doc.Database.Insunits); -#if CIVIL2021 || CIVIL2022 || CIVIL2023 || CIVIL2024 +#if CIVIL if (_modelUnits == Units.None) { // try to get the drawing unit instead diff --git a/Objects/Converters/ConverterAutocadCivil/ConverterAutocadCivilShared/ConverterAutocadCivil.Civil.cs b/Objects/Converters/ConverterAutocadCivil/ConverterAutocadCivilShared/ConverterAutocadCivil.Civil.cs index 116e3c0a77..20ede66c9c 100644 --- a/Objects/Converters/ConverterAutocadCivil/ConverterAutocadCivilShared/ConverterAutocadCivil.Civil.cs +++ b/Objects/Converters/ConverterAutocadCivil/ConverterAutocadCivilShared/ConverterAutocadCivil.Civil.cs @@ -1,4 +1,4 @@ -#if CIVIL2021 || CIVIL2022 || CIVIL2023 || CIVIL2024 +#if CIVIL using System; using System.Collections.Generic; using System.Linq; @@ -599,7 +599,7 @@ public CivilProfile ProfileToSpeckle(CivilDB.Profile profile) foreach (ProfilePVI pvi in profile.PVIs) { double pviStation = 0; -#if CIVIL2024 +#if CIVIL2024_OR_GREATER pviStation = pvi.RawStation; #else pviStation = pvi.Station; diff --git a/Objects/Converters/ConverterAutocadCivil/ConverterAutocadCivilShared/ConverterAutocadCivil.cs b/Objects/Converters/ConverterAutocadCivil/ConverterAutocadCivilShared/ConverterAutocadCivil.cs index 057144695d..957fff734b 100644 --- a/Objects/Converters/ConverterAutocadCivil/ConverterAutocadCivilShared/ConverterAutocadCivil.cs +++ b/Objects/Converters/ConverterAutocadCivil/ConverterAutocadCivilShared/ConverterAutocadCivil.cs @@ -26,7 +26,7 @@ using Spiral = Objects.Geometry.Spiral; using Speckle.Core.Logging; -#if CIVIL2021 || CIVIL2022 || CIVIL2023 || CIVIL2024 +#if CIVIL using CivilDB = Autodesk.Civil.DatabaseServices; #endif @@ -42,6 +42,8 @@ public partial class ConverterAutocadCivil : ISpeckleConverter public static string AutocadAppName = HostApplications.AutoCAD.GetVersion(HostAppVersion.v2023); #elif AUTOCAD2024 public static string AutocadAppName = HostApplications.AutoCAD.GetVersion(HostAppVersion.v2024); +#elif AUTOCAD2025 + public static string AutocadAppName = HostApplications.AutoCAD.GetVersion(HostAppVersion.v2025); #elif CIVIL2021 public static string AutocadAppName = HostApplications.Civil.GetVersion(HostAppVersion.v2021); #elif CIVIL2022 @@ -50,6 +52,8 @@ public partial class ConverterAutocadCivil : ISpeckleConverter public static string AutocadAppName = HostApplications.Civil.GetVersion(HostAppVersion.v2023); #elif CIVIL2024 public static string AutocadAppName = HostApplications.Civil.GetVersion(HostAppVersion.v2024); +#elif CIVIL2025 + public static string AutocadAppName = HostApplications.Civil.GetVersion(HostAppVersion.v2025); #elif ADVANCESTEEL2023 public static string AutocadAppName = HostApplications.AdvanceSteel.GetVersion(HostAppVersion.v2023); #elif ADVANCESTEEL2024 @@ -194,7 +198,7 @@ public Base ConvertToSpeckle(object @object) case LayerTableRecord o: @base = LayerToSpeckle(o); break; -#if CIVIL2021 || CIVIL2022 || CIVIL2023 || CIVIL2024 +#if CIVIL case CivilDB.Alignment o: @base = AlignmentToSpeckle(o); break; @@ -378,7 +382,7 @@ public object ConvertToNative(Base @object) break; case Mesh o: -#if CIVIL2021 || CIVIL2022 || CIVIL2023 || CIVIL2024 +#if CIVIL acadObj = isFromCivil ? CivilSurfaceToNative(o) : MeshToNativeDB(o); #else acadObj = MeshToNativeDB(o); @@ -405,7 +409,7 @@ public object ConvertToNative(Base @object) acadObj = CollectionToNative(o); break; -#if CIVIL2021 || CIVIL2022 || CIVIL2023 || CIVIL2024 +#if CIVIL case Alignment o: acadObj = AlignmentToNative(o); break; @@ -515,7 +519,7 @@ public bool CanConvertToSpeckle(object @object) case LayerTableRecord: return true; -#if CIVIL2021 || CIVIL2022 || CIVIL2023 || CIVIL2024 +#if CIVIL // NOTE: C3D pressure pipes and pressure fittings API under development case CivilDB.FeatureLine: case CivilDB.Corridor: diff --git a/Objects/Converters/ConverterAutocadCivil/ConverterCivil2021/ConverterCivil2021.csproj b/Objects/Converters/ConverterAutocadCivil/ConverterCivil2021/ConverterCivil2021.csproj index 44fb3cc244..9c101b39cb 100644 --- a/Objects/Converters/ConverterAutocadCivil/ConverterCivil2021/ConverterCivil2021.csproj +++ b/Objects/Converters/ConverterAutocadCivil/ConverterCivil2021/ConverterCivil2021.csproj @@ -4,7 +4,7 @@ netstandard2.0 Objects.Converter.Civil3D2021 Objects.Converter.Civil - $(DefineConstants);CIVIL2021 + $(DefineConstants);CIVIL2021;CIVIL;CIVIL2021_OR_GREATER Speckle.Objects.Converter.Civil2021 Objects.Converter.Civil2021 Converter for Civil3D 2021 diff --git a/Objects/Converters/ConverterAutocadCivil/ConverterCivil2022/ConverterCivil2022.csproj b/Objects/Converters/ConverterAutocadCivil/ConverterCivil2022/ConverterCivil2022.csproj index 15cd07f6d6..6b9ac54c54 100644 --- a/Objects/Converters/ConverterAutocadCivil/ConverterCivil2022/ConverterCivil2022.csproj +++ b/Objects/Converters/ConverterAutocadCivil/ConverterCivil2022/ConverterCivil2022.csproj @@ -4,7 +4,7 @@ netstandard2.0 Objects.Converter.Civil3D2022 Objects.Converter.Civil - $(DefineConstants);CIVIL2022 + $(DefineConstants);CIVIL2022;CIVIL;CIVIL2021_OR_GREATER;CIVIL2022_OR_GREATER Speckle.Objects.Converter.Civil2022 Objects.Converter.Civil2022 Converter for Civil3D 2022 diff --git a/Objects/Converters/ConverterAutocadCivil/ConverterCivil2023/ConverterCivil2023.csproj b/Objects/Converters/ConverterAutocadCivil/ConverterCivil2023/ConverterCivil2023.csproj index b0d497c59a..a2cbe48b3b 100644 --- a/Objects/Converters/ConverterAutocadCivil/ConverterCivil2023/ConverterCivil2023.csproj +++ b/Objects/Converters/ConverterAutocadCivil/ConverterCivil2023/ConverterCivil2023.csproj @@ -5,7 +5,7 @@ Objects.Converter.Civil3D2023 Objects.Converter.Civil Speckle.Objects.Converter.Civil2023 - $(DefineConstants);CIVIL2023 + $(DefineConstants);CIVIL2023;CIVIL;CIVIL2021_OR_GREATER;CIVIL2022_OR_GREATER;CIVIL2023_OR_GREATER Converter for Civil3D 2023 $(PackageTags) objects converter civil3d true diff --git a/Objects/Converters/ConverterAutocadCivil/ConverterCivil2024/ConverterCivil2024.csproj b/Objects/Converters/ConverterAutocadCivil/ConverterCivil2024/ConverterCivil2024.csproj index 760cb514e5..22ab7fcbb5 100644 --- a/Objects/Converters/ConverterAutocadCivil/ConverterCivil2024/ConverterCivil2024.csproj +++ b/Objects/Converters/ConverterAutocadCivil/ConverterCivil2024/ConverterCivil2024.csproj @@ -5,7 +5,7 @@ Objects.Converter.Civil3D2024 Objects.Converter.Civil Speckle.Objects.Converter.Civil2024 - $(DefineConstants);CIVIL2024 + $(DefineConstants);CIVIL2024;CIVIL;CIVIL2021_OR_GREATER;CIVIL2022_OR_GREATER;CIVIL2023_OR_GREATER;CIVIL2024_OR_GREATER Converter for Civil3D 2024 $(PackageTags) objects converter civil3d true diff --git a/Objects/Converters/ConverterAutocadCivil/ConverterCivil2025/ConverterCivil2025.csproj b/Objects/Converters/ConverterAutocadCivil/ConverterCivil2025/ConverterCivil2025.csproj new file mode 100644 index 0000000000..33b238682d --- /dev/null +++ b/Objects/Converters/ConverterAutocadCivil/ConverterCivil2025/ConverterCivil2025.csproj @@ -0,0 +1,30 @@ + + + + net8.0 + enable + Objects.Converter.Civil3D2025 + Objects.Converter.Civil + $(DefineConstants);CIVIL2025;CIVIL;CIVIL2021_OR_GREATER;CIVIL2022_OR_GREATER;CIVIL2023_OR_GREATER;CIVIL2024_OR_GREATER;CIVIL2025_OR_GREATER + Speckle.Objects.Converter.Civil2025 + Objects.Converter.Civil2025 + Converter for Civil 3D 2025 + $(PackageTags) objects converter civil3d + true + False + + + + + + + + + + + + + + + diff --git a/Objects/Converters/ConverterCSI/ConverterCSIShared/ConverterCSIUtils.cs b/Objects/Converters/ConverterCSI/ConverterCSIShared/ConverterCSIUtils.cs index e9a33a27dc..61dd48d6f6 100644 --- a/Objects/Converters/ConverterCSI/ConverterCSIShared/ConverterCSIUtils.cs +++ b/Objects/Converters/ConverterCSI/ConverterCSIShared/ConverterCSIUtils.cs @@ -4,6 +4,7 @@ using Objects.Structural.CSI.Analysis; using System.Linq; using System; +using Speckle.Core.Logging; namespace Objects.Converter.CSI; @@ -26,14 +27,18 @@ public string ModelUnits() return _modelUnits; } - var units = Model.GetPresentUnits(); - if (units != 0) + eForce forceUnits = eForce.NotApplicable; + eLength lengthUnits = eLength.NotApplicable; + eTemperature temperatureUnits = eTemperature.NotApplicable; + _ = Model.GetPresentUnits_2(ref forceUnits, ref lengthUnits, ref temperatureUnits); + + if (lengthUnits == eLength.NotApplicable) { - string[] unitsCat = units.ToString().Split('_'); - _modelUnits = unitsCat[1]; - return _modelUnits; + throw new SpeckleException("Unable to retreive valid length units from the ETABS document"); } - return null; + + _modelUnits = lengthUnits.ToString(); + return _modelUnits; } public double ScaleToNative(double value, string units) diff --git a/Objects/Converters/ConverterRevit/ConverterRevit2025/ConverterRevit2025.csproj b/Objects/Converters/ConverterRevit/ConverterRevit2025/ConverterRevit2025.csproj new file mode 100644 index 0000000000..daf2872ec2 --- /dev/null +++ b/Objects/Converters/ConverterRevit/ConverterRevit2025/ConverterRevit2025.csproj @@ -0,0 +1,32 @@ + + + net8.0-windows + Objects.Converter.Revit + Objects.Converter.Revit2025 + $(DefineConstants);REVIT2025 + Speckle.Objects.Converter.Revit2025 + Objects.Converter.Revit2025 + Converter for Revit 2025 + $(PackageTags) objects converter revit + true + true + + + + + + + + + + + + + + + + + + + + diff --git a/Objects/Converters/ConverterRevit/ConverterRevitShared/ConverterRevit.cs b/Objects/Converters/ConverterRevit/ConverterRevitShared/ConverterRevit.cs index 2f25f02f9d..337f32a2f4 100644 --- a/Objects/Converters/ConverterRevit/ConverterRevitShared/ConverterRevit.cs +++ b/Objects/Converters/ConverterRevit/ConverterRevitShared/ConverterRevit.cs @@ -24,7 +24,9 @@ namespace Objects.Converter.Revit; public partial class ConverterRevit : ISpeckleConverter { -#if REVIT2024 +#if REVIT2025 + public static string RevitAppName = HostApplications.Revit.GetVersion(HostAppVersion.v2025); +#elif REVIT2024 public static string RevitAppName = HostApplications.Revit.GetVersion(HostAppVersion.v2024); #elif REVIT2023 public static string RevitAppName = HostApplications.Revit.GetVersion(HostAppVersion.v2023); diff --git a/Objects/Converters/ConverterRevit/ConverterRevitShared/Extensions/ParameterExtensions.cs b/Objects/Converters/ConverterRevit/ConverterRevitShared/Extensions/ParameterExtensions.cs index 0103f15db5..319a46ac65 100644 --- a/Objects/Converters/ConverterRevit/ConverterRevitShared/Extensions/ParameterExtensions.cs +++ b/Objects/Converters/ConverterRevit/ConverterRevitShared/Extensions/ParameterExtensions.cs @@ -49,7 +49,9 @@ internal static class ParameterExtensions case StorageType.String: return parameter.AsString(); case StorageType.ElementId: - return parameter.AsElementId().ToString(); + ElementId id = parameter.AsElementId(); + Element el = parameter.Element.Document.GetElement(id); + return el?.Name ?? id.ToString(); default: return null; } diff --git a/Objects/Converters/ConverterRevit/Templates/2025/Block - Imperial.rft b/Objects/Converters/ConverterRevit/Templates/2025/Block - Imperial.rft new file mode 100644 index 0000000000..0d74d992c8 Binary files /dev/null and b/Objects/Converters/ConverterRevit/Templates/2025/Block - Imperial.rft differ diff --git a/Objects/Converters/ConverterRevit/Templates/2025/Block - Metric.rft b/Objects/Converters/ConverterRevit/Templates/2025/Block - Metric.rft new file mode 100644 index 0000000000..5e82cf475e Binary files /dev/null and b/Objects/Converters/ConverterRevit/Templates/2025/Block - Metric.rft differ diff --git a/Objects/Converters/ConverterRevit/Templates/2025/Generic Model - Imperial.rft b/Objects/Converters/ConverterRevit/Templates/2025/Generic Model - Imperial.rft new file mode 100644 index 0000000000..4de515cb0a Binary files /dev/null and b/Objects/Converters/ConverterRevit/Templates/2025/Generic Model - Imperial.rft differ diff --git a/Objects/Converters/ConverterRevit/Templates/2025/Generic Model - Metric.rft b/Objects/Converters/ConverterRevit/Templates/2025/Generic Model - Metric.rft new file mode 100644 index 0000000000..b08a7b2c43 Binary files /dev/null and b/Objects/Converters/ConverterRevit/Templates/2025/Generic Model - Metric.rft differ diff --git a/Objects/Converters/ConverterRevit/Templates/2025/Mass - Imperial.rft b/Objects/Converters/ConverterRevit/Templates/2025/Mass - Imperial.rft new file mode 100644 index 0000000000..583fb2fb81 Binary files /dev/null and b/Objects/Converters/ConverterRevit/Templates/2025/Mass - Imperial.rft differ diff --git a/Objects/Converters/ConverterRevit/Templates/2025/Mass - Metric.rft b/Objects/Converters/ConverterRevit/Templates/2025/Mass - Metric.rft new file mode 100644 index 0000000000..617867b156 Binary files /dev/null and b/Objects/Converters/ConverterRevit/Templates/2025/Mass - Metric.rft differ diff --git a/Objects/Objects.sln b/Objects/Objects.sln index 9945108d66..f32fc6b4a3 100644 --- a/Objects/Objects.sln +++ b/Objects/Objects.sln @@ -125,11 +125,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterNavisworks2024", " EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRhino8", "Converters\ConverterRhinoGh\ConverterRhino8\ConverterRhino8.csproj", "{DB55FC55-0FE8-4622-AA0B-66F5EF9737B9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConverterGrasshopper8", "Converters\ConverterRhinoGh\ConverterGrasshopper8\ConverterGrasshopper8.csproj", "{738A607A-C51C-447B-AFBB-47D7FED47CA0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterGrasshopper8", "Converters\ConverterRhinoGh\ConverterGrasshopper8\ConverterGrasshopper8.csproj", "{738A607A-C51C-447B-AFBB-47D7FED47CA0}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{985946E0-ACEC-4EF7-92D6-E0B153271393}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Objects.Tests.Unit", "Tests\Objects.Tests.Unit\Objects.Tests.Unit.csproj", "{70AB0F97-B226-44F9-8CCE-0927A9C18037}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Objects.Tests.Unit", "Tests\Objects.Tests.Unit\Objects.Tests.Unit.csproj", "{70AB0F97-B226-44F9-8CCE-0927A9C18037}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterAutocad2025", "Converters\ConverterAutocadCivil\ConverterAutocad2025\ConverterAutocad2025.csproj", "{0E85DB68-4547-4059-83BD-D66F54F0201E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConverterCivil2025", "Converters\ConverterAutocadCivil\ConverterCivil2025\ConverterCivil2025.csproj", "{82C22520-8EFE-426B-8865-43965FA3DD87}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -491,6 +495,22 @@ Global {70AB0F97-B226-44F9-8CCE-0927A9C18037}.Release|Any CPU.Build.0 = Release|Any CPU {70AB0F97-B226-44F9-8CCE-0927A9C18037}.Release|x64.ActiveCfg = Release|Any CPU {70AB0F97-B226-44F9-8CCE-0927A9C18037}.Release|x64.Build.0 = Release|Any CPU + {0E85DB68-4547-4059-83BD-D66F54F0201E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E85DB68-4547-4059-83BD-D66F54F0201E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0E85DB68-4547-4059-83BD-D66F54F0201E}.Debug|x64.ActiveCfg = Debug|Any CPU + {0E85DB68-4547-4059-83BD-D66F54F0201E}.Debug|x64.Build.0 = Debug|Any CPU + {0E85DB68-4547-4059-83BD-D66F54F0201E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0E85DB68-4547-4059-83BD-D66F54F0201E}.Release|Any CPU.Build.0 = Release|Any CPU + {0E85DB68-4547-4059-83BD-D66F54F0201E}.Release|x64.ActiveCfg = Release|Any CPU + {0E85DB68-4547-4059-83BD-D66F54F0201E}.Release|x64.Build.0 = Release|Any CPU + {82C22520-8EFE-426B-8865-43965FA3DD87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82C22520-8EFE-426B-8865-43965FA3DD87}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82C22520-8EFE-426B-8865-43965FA3DD87}.Debug|x64.ActiveCfg = Debug|Any CPU + {82C22520-8EFE-426B-8865-43965FA3DD87}.Debug|x64.Build.0 = Debug|Any CPU + {82C22520-8EFE-426B-8865-43965FA3DD87}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82C22520-8EFE-426B-8865-43965FA3DD87}.Release|Any CPU.Build.0 = Release|Any CPU + {82C22520-8EFE-426B-8865-43965FA3DD87}.Release|x64.ActiveCfg = Release|Any CPU + {82C22520-8EFE-426B-8865-43965FA3DD87}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -556,6 +576,8 @@ Global {DB55FC55-0FE8-4622-AA0B-66F5EF9737B9} = {1A35077C-2936-4A3D-8D48-65F39F76D999} {738A607A-C51C-447B-AFBB-47D7FED47CA0} = {1A35077C-2936-4A3D-8D48-65F39F76D999} {70AB0F97-B226-44F9-8CCE-0927A9C18037} = {985946E0-ACEC-4EF7-92D6-E0B153271393} + {0E85DB68-4547-4059-83BD-D66F54F0201E} = {5419488F-6509-4F16-A342-BB2BE2689E00} + {82C22520-8EFE-426B-8865-43965FA3DD87} = {5419488F-6509-4F16-A342-BB2BE2689E00} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {DA57EC2E-0A9E-4F59-B1F7-A65F76A74B74} @@ -564,6 +586,7 @@ Global Converters\ConverterNavisworks\ConverterNavisworks\ConverterNavisworksShared.projitems*{05ff1d88-1b2d-4a25-bf65-2895d4e6746d}*SharedItemsImports = 5 Converters\ConverterTeklaStructures\ConverterTeklaStructuresShared\ConverterTeklaStructuresShared.projitems*{08ee146e-9f7a-4c82-b790-688fe4532ca7}*SharedItemsImports = 5 Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{0af5ba0f-0fea-463b-9877-f063892ea7de}*SharedItemsImports = 5 + Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{0e85db68-4547-4059-83bd-d66f54f0201e}*SharedItemsImports = 5 Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{13f93c20-793c-4f2d-b836-68d7744063df}*SharedItemsImports = 5 Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{156ff86c-8531-46d0-aa23-97db326bc591}*SharedItemsImports = 5 Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{1dc0a8f4-1f14-47e8-8456-9d8e9c0e6cff}*SharedItemsImports = 5 @@ -584,6 +607,7 @@ Global Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{63b3f901-7c14-4530-8a6f-ccad68586664}*SharedItemsImports = 5 Converters\ConverterBentley\ConverterBentleyShared\ConverterBentleyShared.projitems*{651f0278-3de2-4371-8586-70d3732f9770}*SharedItemsImports = 5 Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{6d1265b2-31fb-4096-9ec9-dd937a349b9c}*SharedItemsImports = 5 + Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{738a607a-c51c-447b-afbb-47d7fed47ca0}*SharedItemsImports = 5 Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{73d708ca-e956-455a-be62-785b0cc79264}*SharedItemsImports = 5 Converters\ConverterNavisworks\ConverterNavisworks\ConverterNavisworksShared.projitems*{74081536-2a3e-447d-8f53-bdc5dcb5d98b}*SharedItemsImports = 5 Converters\ConverterCSI\ConverterCSIShared\ConverterCSIShared.projitems*{79aa475d-7cde-4501-90ce-9a0d9d0db023}*SharedItemsImports = 5 diff --git a/README.md b/README.md index a11774d7f3..8e3bd06db0 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ This monorepo is the home to our Speckle 2.0 .NET projects: - [`ConnectorGrasshopper`](https://github.com/specklesystems/speckle-sharp/tree/main/ConnectorGrasshopper): for McNeel Grasshopper - [`ConnectorRevit`](https://github.com/specklesystems/speckle-sharp/tree/main/ConnectorRevit): for Autodesk Revit 2019+ - [`ConnectorRhino`](https://github.com/specklesystems/speckle-sharp/tree/main/ConnectorRhino): for McNeel Rhino 6+ -- [`DesktopUI`](https://github.com/specklesystems/speckle-sharp/tree/main/DesktopUI): reusable UI for all connectors (except visual programming) +- [`DesktopUI2`](https://github.com/specklesystems/speckle-sharp/tree/main/DesktopUI2): reusable UI for all connectors (except visual programming) ### Other repos diff --git a/SDK.slnf b/SDK.slnf index cb717b1bcb..6e1d487fed 100644 --- a/SDK.slnf +++ b/SDK.slnf @@ -4,8 +4,6 @@ "projects": [ "Automate\\Speckle.Automate.Sdk\\Speckle.Automate.Sdk.csproj", "Automate\\Tests\\Speckle.Automate.Sdk.Tests.Integration\\Speckle.Automate.Sdk.Tests.Integration.csproj", - "ConnectorCore\\BatchUploader.OperationDriver\\BatchUploader.OperationDriver.csproj", - "ConnectorCore\\BatchUploader.Sdk\\BatchUploader.Sdk.csproj", "Core\\Core\\Core.csproj", "Core\\Tests\\Speckle.Core.Tests.Integration\\Speckle.Core.Tests.Integration.csproj", "Core\\Tests\\Speckle.Core.Tests.Performance\\Speckle.Core.Tests.Performance.csproj", @@ -14,7 +12,7 @@ "Core\\Transports\\MongoDBTransport\\MongoDBTransport.csproj", "DesktopUI2\\DesktopUI2\\DesktopUI2.csproj", "Objects\\Objects\\Objects.csproj", - "Objects\\Tests\\Objects.Tests.Unit\\Objects.Tests.Unit.csproj", + "Objects\\Tests\\Objects.Tests.Unit\\Objects.Tests.Unit.csproj" ] } -} \ No newline at end of file +} diff --git a/global.json b/global.json index 3cb4f9622d..08f229ce09 100644 --- a/global.json +++ b/global.json @@ -1,7 +1,7 @@ { "sdk": { "version": "7.0.0", - "rollForward": "latestMinor", + "rollForward": "latestMajor", "allowPrerelease": false } }