diff --git a/.circleci/scripts/config-template.yml b/.circleci/scripts/config-template.yml index 734bcb98c7..40a802e927 100644 --- a/.circleci/scripts/config-template.yml +++ b/.circleci/scripts/config-template.yml @@ -1,7 +1,7 @@ version: 2.1 orbs: - win: circleci/windows@5 + win: circleci/windows@5.0.0 aws-s3: circleci/aws-s3@2.0.0 codecov: codecov/codecov@3.2.2 wait-for: cobli/wait-for@0.0.2 @@ -15,7 +15,7 @@ commands: - run: name: Publish nuget package command: | - $tag = if([string]::IsNullOrEmpty($env:CIRCLE_TAG)) { "0.0.$($env:WORFKLOW_NUM)-beta/a" } else { $env:CIRCLE_TAG } + $tag = if([string]::IsNullOrEmpty($env:CIRCLE_TAG)) { "2.0.999.$($env:WORKFLOW_NUM)" } else { $env:CIRCLE_TAG } $version = $tag.Split("/")[1] msbuild <> /p:Version="$version" /p:Configuration=Release /p:WarningLevel=0 /p:IsDesktopBuild=false -t:pack dotnet nuget push **/*.nupkg -s https://api.nuget.org/v3/index.json -k $env:NUGET_APIKEY -n true @@ -29,7 +29,7 @@ commands: - run: name: Publish nuget package command: | - TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "0.0.0"; fi;) + TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "2.0.999.$WORKFLOW_NUM"; fi;) SEMVER=$(echo "$TAG" | sed -e 's/\/[a-zA-Z-]+//') VERSION=$(echo "$SEMVER" | sed -e 's/[a-zA-Z]*\///') msbuild <> /p:Version="$VERSION" /p:Configuration=Release /p:WarningLevel=0 /p:IsDesktopBuild=false -t:pack @@ -49,8 +49,8 @@ jobs: # Each project will have individual jobs for each specific task it has to test-core: docker: - - image: "mcr.microsoft.com/dotnet/core/sdk" # dotnet core 3.1 sdk - - image: "mcr.microsoft.com/dotnet/core/sdk:2.1-focal" # dotnet core 2.1 sdk (for netstandard support on build) + - image: "mcr.microsoft.com/dotnet/sdk:6.0" # dotnet + # - image: "mcr.microsoft.com/dotnet/core/sdk:2.1-focal" # dotnet core 2.1 sdk (for netstandard support on build) # Node, redis, postgres and speckle-server images for test server - image: "cimg/node:16.15" - image: "cimg/redis:6.2" @@ -154,7 +154,7 @@ jobs: # Each project will have individual jobs for each specific task it has to - run: name: Build << parameters.slnname >> command: | - $tag = if([string]::IsNullOrEmpty($env:CIRCLE_TAG)) { "0.0.0" } else { $env:CIRCLE_TAG } + $tag = if([string]::IsNullOrEmpty($env:CIRCLE_TAG)) { "2.0.999" } else { $env:CIRCLE_TAG } $semver = if($tag.Contains('/')) {$tag.Split("/")[0] } else { $tag } $ver = if($semver.Contains('-')) {$semver.Split("-")[0] } else { $semver } $version = "$($ver).$($env:WORKFLOW_NUM)" @@ -207,9 +207,11 @@ jobs: # Each project will have individual jobs for each specific task it has to - run: name: Upload new version command: | - TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "0.0.0"; fi;) + TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "2.0.999.$WORKFLOW_NUM"; fi;) SEMVER=$(echo "$TAG" | sed -e 's/\/[a-zA-Z-]*//') /root/.dotnet/tools/Speckle.Manager.Feed deploy -s << parameters.slug >> -v ${SEMVER} -u https://releases.speckle.dev/installers/<< parameters.slug >>/<< parameters.slug >>-${SEMVER}.<< parameters.extension >> -o << parameters.os >> -a << parameters.arch >> -f speckle-sharp-ci-tools/Installers/<< parameters.slug >>/<< parameters.slug >>-${SEMVER}.<< parameters.extension >> + environment: + WORKFLOW_NUM: << pipeline.number >> build-connector-mac: macos: @@ -265,7 +267,7 @@ jobs: # Each project will have individual jobs for each specific task it has to - run: name: Set environment variables command: | - TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "0.0.0"; fi;) + TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "2.0.999"; fi;) SEMVER=$(echo "$TAG" | sed -e 's/\/[a-zA-Z-]*//') VER=$(echo "$SEMVER" | sed -e 's/-beta//') VERSION=$(echo $VER.$WORKFLOW_NUM) @@ -279,7 +281,9 @@ jobs: # Each project will have individual jobs for each specific task it has to - run: name: Build << parameters.slnname >> command: | - msbuild << parameters.slnname >>/<< parameters.slnname >>.sln /r /p:Configuration='<< parameters.build-config >>' /p:WarningLevel=0 /p:IsDesktopBuild=false + TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "2.0.999"; fi;) + SEMVER=$(echo "$TAG" | sed -e 's/\/[a-zA-Z-]*//') + msbuild << parameters.slnname >>/<< parameters.slnname >>.sln /r /p:Configuration='<< parameters.build-config >>' /p:WarningLevel=0 /p:IsDesktopBuild=false /p:Version=$SEMVER # Compress build files - run: name: Zip Objects Kit files @@ -303,9 +307,11 @@ jobs: # Each project will have individual jobs for each specific task it has to - run: name: Publish x64 and arm64 command: | - TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "2.0.0"; fi;) + TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "2.0.999.$WORKFLOW_NUM"; fi;) SEMVER=$(echo "$TAG" | sed -e 's/\/[a-zA-Z-]*//') $HOME/.dotnet/dotnet publish << parameters.slnname >>/<< parameters.slnname >>/<< parameters.projname >>.csproj -c Release -v q -r osx-x64 --self-contained /p:WarningLevel=0 /p:Version=$SEMVER + environment: + WORKFLOW_NUM: << pipeline.number >> # $HOME/.dotnet/dotnet msbuild << parameters.slnname >>/<< parameters.slnname >>/<< parameters.projname >>.csproj -t:BundleApp -p:Configuration=Release -p:RuntimeIdentifier=osx-x64 -p:SelfContained=true /p:WarningLevel=0 -p:Version=$TAG # $HOME/.dotnet/dotnet publish << parameters.slnname >>/<< parameters.slnname >>/<< parameters.projname >>.csproj -c Release -v q -r osx-arm64 --self-contained /p:WarningLevel=0 /p:Version=$TAG # $HOME/.dotnet/dotnet msbuild << parameters.slnname >>/<< parameters.slnname >>/<< parameters.projname >>.csproj -t:BundleApp -p:Configuration=Release -p:RuntimeIdentifier=osx-arm64 -p:SelfContained=true /p:WarningLevel=0 -p:Version=$TAG @@ -342,9 +348,11 @@ jobs: # Each project will have individual jobs for each specific task it has to - run: name: Copy to installer location command: | - TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "0.0.0"; fi;) + TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "2.0.999.$WORKFLOW_NUM"; fi;) SEMVER=$(echo "$TAG" | sed -e 's/\/[a-zA-Z-]*//') cp speckle-sharp-ci-tools/Mac/<>/bin/Release/netcoreapp3.1/osx-x64/<>.zip speckle-sharp-ci-tools/Installers/<< parameters.slug >>/<>-$SEMVER.zip + environment: + WORKFLOW_NUM: << pipeline.number >> - when: condition: << pipeline.git.tag >> steps: @@ -397,7 +405,7 @@ jobs: # Each project will have individual jobs for each specific task it has to cd ConnectorArchicad/AddOn mkdir Build.Win.x64.<> export PATH=$PATH:"C:\Program Files\CMake\bin" - cmake -B "./Build.Win.x64.<>/" -DAC_API_DEVKIT_DIR="../../Resources/Archicad<>DevKit" -DAC_MDID_DEV=$GRAPHISOFT_DEV_ID -DAC_MDID_LOC=$GRAPHISOFT_ADDON_ID + cmake -B "./Build.Win.x64.<>/" -A "x64" -T "v142" -DAC_API_DEVKIT_DIR="../../Resources/Archicad<>DevKit" -DAC_MDID_DEV=$GRAPHISOFT_DEV_ID -DAC_MDID_LOC=$GRAPHISOFT_ADDON_ID - run: name: Build add-on command: | diff --git a/.gitignore b/.gitignore index 90b24e1de0..6180455370 100644 --- a/.gitignore +++ b/.gitignore @@ -224,6 +224,8 @@ _pkginfo.txt !?*.[Cc]ache/ # Others +Records/ +Sandbox/ ClientBin/ ~$* *~ diff --git a/All.sln b/All.sln index 6629563333..7210d940db 100644 --- a/All.sln +++ b/All.sln @@ -1,934 +1,940 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.1.32210.238 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Connectors", "Connectors", "{DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dynamo", "Dynamo", "{CB6F8F77-4487-469B-896A-1EEEC4451A04}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorDynamo", "ConnectorDynamo\ConnectorDynamo\ConnectorDynamo.csproj", "{61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorDynamoExtension", "ConnectorDynamo\ConnectorDynamoExtension\ConnectorDynamoExtension.csproj", "{B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorDynamoFunctions", "ConnectorDynamo\ConnectorDynamoFunctions\ConnectorDynamoFunctions.csproj", "{8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorGrasshopper", "ConnectorGrasshopper\ConnectorGrasshopper\ConnectorGrasshopper.csproj", "{109B3382-634B-408A-8A5C-4CD09CB92641}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesktopUI", "DesktopUI\DesktopUI\DesktopUI.csproj", "{A97C3046-2D55-4C49-AB40-A3C2194B82FA}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Objects", "Objects\Objects\Objects.csproj", "{60BE029E-1F31-4473-8B68-A745A43AF179}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core", "Core\Core\Core.csproj", "{A2C8730A-B605-483E-914E-61F3ED7954D9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DiskTransport", "Core\Transports\DiskTransport\DiskTransport.csproj", "{8BBED205-C34E-4226-8757-0B576132D2BC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MongoDBTransport", "Core\Transports\MongoDBTransport\MongoDBTransport.csproj", "{8FA5494A-D651-4C80-9B69-EB1808CF64F8}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Transports", "Transports", "{DC6BE73D-4D60-4F90-9778-D44151CD6F98}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Objects", "Objects", "{E3916A0F-68D5-4C84-ACAE-41547F75E454}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Converters", "Converters", "{4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Revit", "Revit", "{42A86931-7497-4A34-B2FD-060231CD0A8F}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorRevit2021", "ConnectorRevit\ConnectorRevit2021\ConnectorRevit2021.csproj", "{27A79ACA-7EA8-4406-8BB8-216578CC3AB7}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConnectorRevitShared", "ConnectorRevit\ConnectorRevit\ConnectorRevitShared.shproj", "{5FD0D810-03E9-4FD2-93E4-B1B51E5D82C5}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterRevit", "ConverterRevit", "{925C0BF6-A0B1-4699-9C4B-078E01D652CC}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterRevitShared", "Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.shproj", "{2DCD648D-DCA5-4D2A-8B14-AD2CB85D24B0}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterDynamo", "ConverterDynamo", "{F0DD5C38-083B-43EA-8654-96247028D8AC}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterDynamoShared", "Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.shproj", "{5BAB09DC-B0FC-4004-9FD5-6496A9634071}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterDynamoRevit", "Objects\Converters\ConverterDynamo\ConverterDynamoRevit\ConverterDynamoRevit.csproj", "{AACD5D91-99F1-4E69-B23B-E25239E5FB59}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterDynamoSandbox", "Objects\Converters\ConverterDynamo\ConverterDynamoSandbox\ConverterDynamoSandbox.csproj", "{3DF12639-78B6-41B3-A046-A675035369BE}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AutocadCivil", "AutocadCivil", "{890F3257-FCC2-4ED8-9180-22B3641B494C}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorAutocad2021", "ConnectorAutocadCivil\ConnectorAutocad2021\ConnectorAutocad2021.csproj", "{58A88F1A-7489-46D2-949D-2FC3F68C8D84}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConnectorAutocadCivilShared", "ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.shproj", "{B47492D9-2EDA-4016-A930-7FA708C85C3D}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorCivil2021", "ConnectorAutocadCivil\ConnectorCivil2021\ConnectorCivil2021.csproj", "{AD10C167-937F-4706-9EB5-C99F86C35E8F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterAutocadCivil", "ConverterAutocadCivil", "{BE521908-7944-46F3-98BF-B47D34509934}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterAutocad2021", "Objects\Converters\ConverterAutocadCivil\ConverterAutocad2021\ConverterAutocad2021.csproj", "{78573ADC-87A5-489F-8134-FB4A435A05F0}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterAutocadCivilShared", "Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.shproj", "{2D0F9F8A-2E89-4780-978A-CD92D6D7B843}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterCivil2021", "Objects\Converters\ConverterAutocadCivil\ConverterCivil2021\ConverterCivil2021.csproj", "{D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorRevit2020", "ConnectorRevit\ConnectorRevit2020\ConnectorRevit2020.csproj", "{8A53B084-20D8-48F6-9591-9D53CFA74130}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorRevit2019", "ConnectorRevit\ConnectorRevit2019\ConnectorRevit2019.csproj", "{EF418256-8118-47B4-8386-A945946FB92D}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorAutocad2022", "ConnectorAutocadCivil\ConnectorAutocad2022\ConnectorAutocad2022.csproj", "{FF1793E1-77F5-4A92-B3F2-6D8B104E479B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorCivil2022", "ConnectorAutocadCivil\ConnectorCivil2022\ConnectorCivil2022.csproj", "{464F2220-D7D9-4D8C-BB3D-B93A1C603469}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterAutocad2022", "Objects\Converters\ConverterAutocadCivil\ConverterAutocad2022\ConverterAutocad2022.csproj", "{50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterCivil2022", "Objects\Converters\ConverterAutocadCivil\ConverterCivil2022\ConverterCivil2022.csproj", "{8581B4BB-A8BC-4328-99FE-D18615AF2554}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorGrasshopperUtils", "ConnectorGrasshopper\ConnectorGrasshopperUtils\ConnectorGrasshopperUtils.csproj", "{E2A8E961-6DB6-4474-9E31-0C00FEB4A067}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterRhino", "ConverterRhino", "{1FD850CA-A8D7-41DC-9316-B315800437E1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRhino6", "Objects\Converters\ConverterRhinoGh\ConverterRhino6\ConverterRhino6.csproj", "{3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRhino7", "Objects\Converters\ConverterRhinoGh\ConverterRhino7\ConverterRhino7.csproj", "{26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterRhinoGhShared", "Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.shproj", "{B74CB8C1-187B-46A6-B20B-92B8C129F3EE}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Grasshopper", "Grasshopper", "{9461B162-AD2F-4F60-BCE4-E72DCEFD4608}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Rhino", "Rhino", "{E94E7327-5A9B-48EE-93CC-E9E9A5B980F1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorRhino6", "ConnectorRhino\ConnectorRhino6\ConnectorRhino6.csproj", "{D648BB69-B992-4D34-906E-7A547374B86C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorRhino7", "ConnectorRhino\ConnectorRhino7\ConnectorRhino7.csproj", "{A64ACBF9-DB82-4839-AF99-57ED2E7989F4}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConnectorRhinoShared", "ConnectorRhino\ConnectorRhino\ConnectorRhinoShared\ConnectorRhinoShared.shproj", "{B7376EC8-5D3E-47D2-96A7-748552F14C39}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PolygonMesher", "Objects\Converters\StructuralUtilities\PolygonMesher\PolygonMesher.csproj", "{6185B1A1-0A12-44B1-8AC5-0ED48147FB21}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StructuralUtilities", "StructuralUtilities", "{85C30B55-E486-49AE-B3F5-6A196D14CCB8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopUI2", "DesktopUI2\DesktopUI2\DesktopUI2.csproj", "{AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MicroStation", "MicroStation", "{0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorMicroStation", "ConnectorMicroStation\ConnectorMicroStation\ConnectorMicroStation.csproj", "{0420D74A-2997-4B92-844B-C3769DEAA1AD}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConnectorMicroStationOpenShared", "ConnectorMicroStation\ConnectorMicroStationOpenShared\ConnectorMicroStationOpenShared.shproj", "{372D9F0F-EDE9-4050-BF8C-758911C5C2E0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorOpenBuildings", "ConnectorMicroStation\ConnectorOpenBuildings\ConnectorOpenBuildings.csproj", "{A3A0EE09-6055-4009-AB8E-13FBC1A403A9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorOpenRail", "ConnectorMicroStation\ConnectorOpenRail\ConnectorOpenRail.csproj", "{FC044D89-0FF3-441D-B35D-87454A693C16}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorOpenRoads", "ConnectorMicroStation\ConnectorOpenRoads\ConnectorOpenRoads.csproj", "{57BF94A8-8F73-4D1A-91D2-B10CC64178B6}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterMicroStation", "ConverterMicroStation", "{B9D189AE-B0AE-49BC-A0A5-ACF87C849615}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterMicroStation", "Objects\Converters\ConverterMicroStation\ConverterMicroStation\ConverterMicroStation.csproj", "{BD2287FA-8272-4D14-9A26-889092AEBFE0}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterMicroStationOpenShared", "Objects\Converters\ConverterMicroStation\ConverterMicroStationOpenShared\ConverterMicroStationOpenShared.shproj", "{208B25E4-2D0E-4534-B197-4C5C96CC53CE}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterOpenBuildings", "Objects\Converters\ConverterMicroStation\ConverterOpenBuildings\ConverterOpenBuildings.csproj", "{FFBC46F0-1874-42E9-8270-BBF962EF32D1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterOpenRail", "Objects\Converters\ConverterMicroStation\ConverterOpenRail\ConverterOpenRail.csproj", "{C96D609B-B210-401C-8FFC-5D17F324E9E8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterOpenRoads", "Objects\Converters\ConverterMicroStation\ConverterOpenRoads\ConverterOpenRoads.csproj", "{CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2021", "Objects\Converters\ConverterRevit\ConverterRevit2021\ConverterRevit2021.csproj", "{D1D0F986-12BE-4FD5-8925-C96B1F86427D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2022", "Objects\Converters\ConverterRevit\ConverterRevit2022\ConverterRevit2022.csproj", "{76937388-BC9E-4083-9D6E-59CC627E3804}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2020", "Objects\Converters\ConverterRevit\ConverterRevit2020\ConverterRevit2020.csproj", "{C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2019", "Objects\Converters\ConverterRevit\ConverterRevit2019\ConverterRevit2019.csproj", "{98136BFC-A71B-48AD-B0D2-8A5A07FD3D6D}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorRevit2022", "ConnectorRevit\ConnectorRevit2022\ConnectorRevit2022.csproj", "{DFDFDBB8-018B-4DCB-A012-54227ABF53A7}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TeklaStructures", "TeklaStructures", "{18C8730C-0173-4987-9416-46F86EC20541}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConnectorTeklaStructuresShared", "ConnectorTeklaStructures\ConnectorTeklaStructuresShared\ConnectorTeklaStructuresShared.shproj", "{28E2EA7F-FFD1-4E13-9165-0243B5AC82F5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorTeklaStructures2021", "ConnectorTeklaStructures\ConnectorTeklaStructures2021\ConnectorTeklaStructures2021.csproj", "{3AF1EF30-0906-4926-A02C-4E3AD666352A}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorTeklaStructures2020", "ConnectorTeklaStructures\ConnectorTeklaStructures2020\ConnectorTeklaStructures2020.csproj", "{67157264-AAA5-46A8-A38B-16254B49B892}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterTeklaStructures", "ConverterTeklaStructures", "{5D988C50-8E85-402A-9020-A4AB0565F0C9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterTeklaStructures2020", "Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructures2020\ConverterTeklaStructures2020.csproj", "{02A24DD8-E0CA-4657-BAA7-B033A4563709}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterTeklaStructures2021", "Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructures2021\ConverterTeklaStructures2021.csproj", "{C1D53822-B11F-4772-996E-1E6D485E0702}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterTeklaStructuresShared", "Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructuresShared\ConverterTeklaStructuresShared.shproj", "{7FFDAB72-145D-4490-9892-FAC5F1D72B17}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterCSI", "ConverterCSI", "{7E702AF1-3A72-454D-BE04-D2AF4EF1304B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterCSIBridge", "Objects\Converters\ConverterCSI\ConverterCSIBridge\ConverterCSIBridge.csproj", "{21223BA5-C6E8-405D-B581-106C4726EDC0}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterCSIShared", "Objects\Converters\ConverterCSI\ConverterCSIShared\ConverterCSIShared.shproj", "{5BBDE14E-50F8-4D6E-8E35-747667AD4A09}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterETABS", "Objects\Converters\ConverterCSI\ConverterETABS\ConverterETABS.csproj", "{D06F557C-452A-4BBE-9B79-A10DB03F3832}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterSAFE", "Objects\Converters\ConverterCSI\ConverterSAFE\ConverterSAFE.csproj", "{442116F3-0F4A-4136-894E-FF5F4295500B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterSAP2000", "Objects\Converters\ConverterCSI\ConverterSAP2000\ConverterSAP2000.csproj", "{907AED7A-719B-4157-8CC9-D21CB26E9243}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CSI", "CSI", "{11C013F3-2583-4292-938B-707294DAECE1}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorCSIBridge", "ConnectorCSI\ConnectorCSIBridge\ConnectorCSIBridge.csproj", "{23BE6E54-96C1-4373-89F3-E18A1C9807FD}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConnectorCSIShared", "ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.shproj", "{61374CD0-E774-4DCD-BFAB-6356B0931283}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorETABS", "ConnectorCSI\ConnectorETABS\ConnectorETABS.csproj", "{81299D15-5788-414D-A962-1A568C251323}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorSAFE", "ConnectorCSI\ConnectorSAFE\ConnectorSAFE.csproj", "{9D188843-8841-4A76-A844-EFBE8E32EE05}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorSAP2000", "ConnectorCSI\ConnectorSAP2000\ConnectorSAP2000.csproj", "{31E0C098-6813-4571-AB96-A245E0FC1C23}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DriverCSharp", "ConnectorCSI\DriverCSharp\DriverCSharp.csproj", "{C091E499-597D-4077-B83F-08E069091090}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DriverPluginCSharp", "ConnectorCSI\DriverPluginCSharp\DriverPluginCSharp.csproj", "{C59939F6-D383-44E3-A7EF-4E160E3DFB73}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorRevit2023", "ConnectorRevit\ConnectorRevit2023\ConnectorRevit2023.csproj", "{586A5A37-93F6-427E-8DF8-C10DB4D6822A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ArchiCAD", "ArchiCAD", "{DF1B3505-793C-4073-975B-04C81CC3CDC4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorArchicad", "ConnectorArchicad\ConnectorArchicad\ConnectorArchicad.csproj", "{D163D710-B946-4D50-8833-BD8B9941033A}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorAutocad2023", "ConnectorAutocadCivil\ConnectorAutocad2023\ConnectorAutocad2023.csproj", "{F4BFB155-7BA9-4E46-8240-9C825060C904}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorCivil2023", "ConnectorAutocadCivil\ConnectorCivil2023\ConnectorCivil2023.csproj", "{2639E37D-80D3-415A-B4D1-20D7F321F27F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DesktopUI", "DesktopUI", "{59764E6A-8366-4AF3-AB0A-BA28BD0318FA}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopUI2.Launcher", "DesktopUI2\DesktopUI2.Launcher\DesktopUI2.Launcher.csproj", "{BDBB6B68-1DF8-4C41-B4AD-55037F81543D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopUI2.WPF", "DesktopUI2\DesktopUI2.WPF\DesktopUI2.WPF.csproj", "{3D066801-9823-48ED-8FB3-273B53825808}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterDxf", "Objects\Converters\ConverterDxf\ConverterDxf\ConverterDxf.csproj", "{B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaHwndHost", "DesktopUI2\AvaloniaHwndHost\AvaloniaHwndHost.csproj", "{050E8BAB-773E-4FE6-BD38-F71CF65FC257}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterDynamoRevit2021", "Objects\Converters\ConverterDynamo\ConverterDynamoRevit2021\ConverterDynamoRevit2021.csproj", "{4DBF45EE-3BCE-47F4-B399-963B36A31951}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterDynamoRevit2022", "Objects\Converters\ConverterDynamo\ConverterDynamoRevit2022\ConverterDynamoRevit2022.csproj", "{AAA05C3D-856D-4F22-971E-5E3F066D0EAE}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterDynamoRevit2023", "Objects\Converters\ConverterDynamo\ConverterDynamoRevit2023\ConverterDynamoRevit2023.csproj", "{67A463D3-E98B-4B16-B069-D7BBB05386A1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2023", "Objects\Converters\ConverterRevit\ConverterRevit2023\ConverterRevit2023.csproj", "{CC790553-8088-41A9-83CD-B29F7141F408}" -EndProject -Global - GlobalSection(SharedMSBuildProjectFiles) = preSolution - Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructuresShared\ConverterTeklaStructuresShared.projitems*{02a24dd8-e0ca-4657-baa7-b033a4563709}*SharedItemsImports = 5 - ConnectorMicroStation\ConnectorMicroStationOpenShared\ConnectorMicroStationOpenShared.projitems*{0420d74a-2997-4b92-844b-c3769deaa1ad}*SharedItemsImports = 4 - Objects\Converters\ConverterMicroStation\ConverterMicroStationOpenShared\ConverterMicroStationOpenShared.projitems*{208b25e4-2d0e-4534-b197-4c5c96cc53ce}*SharedItemsImports = 13 - Objects\Converters\ConverterCSI\ConverterCSIShared\ConverterCSIShared.projitems*{21223ba5-c6e8-405d-b581-106c4726edc0}*SharedItemsImports = 5 - ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.projitems*{23be6e54-96c1-4373-89f3-e18a1c9807fd}*SharedItemsImports = 4 - ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{2639e37d-80d3-415a-b4d1-20d7f321f27f}*SharedItemsImports = 4 - Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{26eca1be-f5b2-4a41-9658-46a4a917bfe6}*SharedItemsImports = 5 - ConnectorRevit\ConnectorRevit\ConnectorRevit.projitems*{27a79aca-7ea8-4406-8bb8-216578cc3ab7}*SharedItemsImports = 4 - ConnectorTeklaStructures\ConnectorTeklaStructuresShared\ConnectorTeklaStructuresShared.projitems*{28e2ea7f-ffd1-4e13-9165-0243b5ac82f5}*SharedItemsImports = 13 - Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{2d0f9f8a-2e89-4780-978a-cd92d6d7b843}*SharedItemsImports = 13 - Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{2dcd648d-dca5-4d2a-8b14-ad2cb85d24b0}*SharedItemsImports = 13 - ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.projitems*{31e0c098-6813-4571-ab96-a245e0fc1c23}*SharedItemsImports = 4 - ConnectorMicroStation\ConnectorMicroStationOpenShared\ConnectorMicroStationOpenShared.projitems*{372d9f0f-ede9-4050-bf8c-758911c5c2e0}*SharedItemsImports = 13 - ConnectorTeklaStructures\ConnectorTeklaStructuresShared\ConnectorTeklaStructuresShared.projitems*{3af1ef30-0906-4926-a02c-4e3ad666352a}*SharedItemsImports = 4 - Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructuresShared\ConverterTeklaStructuresShared.projitems*{3af1ef30-0906-4926-a02c-4e3ad666352a}*SharedItemsImports = 4 - Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{3cdef4cc-2cfa-4939-8427-3ed00fa9db55}*SharedItemsImports = 5 - Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.projitems*{3df12639-78b6-41b3-a046-a675035369be}*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 = 4 - Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.projitems*{4dbf45ee-3bce-47f4-b399-963b36a31951}*SharedItemsImports = 5 - Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{4dbf45ee-3bce-47f4-b399-963b36a31951}*SharedItemsImports = 5 - Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{50bc1552-3e7e-4c77-ac3a-aa7c572dfe09}*SharedItemsImports = 5 - ConnectorMicroStation\ConnectorMicroStationOpenShared\ConnectorMicroStationOpenShared.projitems*{57bf94a8-8f73-4d1a-91d2-b10cc64178b6}*SharedItemsImports = 4 - ConnectorRevit\ConnectorRevit\ConnectorRevit.projitems*{586a5a37-93f6-427e-8df8-c10db4d6822a}*SharedItemsImports = 4 - ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{58a88f1a-7489-46d2-949d-2fc3f68c8d84}*SharedItemsImports = 4 - Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.projitems*{5bab09dc-b0fc-4004-9fd5-6496a9634071}*SharedItemsImports = 13 - Objects\Converters\ConverterCSI\ConverterCSIShared\ConverterCSIShared.projitems*{5bbde14e-50f8-4d6e-8e35-747667ad4a09}*SharedItemsImports = 13 - ConnectorRevit\ConnectorRevit\ConnectorRevit.projitems*{5fd0d810-03e9-4fd2-93e4-b1b51e5d82c5}*SharedItemsImports = 13 - ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.projitems*{61374cd0-e774-4dcd-bfab-6356b0931283}*SharedItemsImports = 13 - ConnectorTeklaStructures\ConnectorTeklaStructuresShared\ConnectorTeklaStructuresShared.projitems*{67157264-aaa5-46a8-a38b-16254b49b892}*SharedItemsImports = 4 - Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructuresShared\ConverterTeklaStructuresShared.projitems*{67157264-aaa5-46a8-a38b-16254b49b892}*SharedItemsImports = 4 - 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 - Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{76937388-bc9e-4083-9d6e-59cc627e3804}*SharedItemsImports = 5 - Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{78573adc-87a5-489f-8134-fb4a435a05f0}*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 = 4 - Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{8581b4bb-a8bc-4328-99fe-d18615af2554}*SharedItemsImports = 5 - ConnectorRevit\ConnectorRevit\ConnectorRevit.projitems*{8a53b084-20d8-48f6-9591-9d53cfa74130}*SharedItemsImports = 4 - Objects\Converters\ConverterCSI\ConverterCSIShared\ConverterCSIShared.projitems*{907aed7a-719b-4157-8cc9-d21cb26e9243}*SharedItemsImports = 5 - Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{98136bfc-a71b-48ad-b0d2-8a5a07fd3d6d}*SharedItemsImports = 5 - ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.projitems*{9d188843-8841-4a76-a844-efbe8e32ee05}*SharedItemsImports = 4 - ConnectorMicroStation\ConnectorMicroStationOpenShared\ConnectorMicroStationOpenShared.projitems*{a3a0ee09-6055-4009-ab8e-13fbc1a403a9}*SharedItemsImports = 4 - ConnectorRhino\ConnectorRhino\ConnectorRhinoShared\ConnectorRhinoShared.projitems*{a64acbf9-db82-4839-af99-57ed2e7989f4}*SharedItemsImports = 5 - Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.projitems*{aaa05c3d-856d-4f22-971e-5e3f066d0eae}*SharedItemsImports = 5 - Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{aaa05c3d-856d-4f22-971e-5e3f066d0eae}*SharedItemsImports = 5 - Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.projitems*{aacd5d91-99f1-4e69-b23b-e25239e5fb59}*SharedItemsImports = 5 - Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{aacd5d91-99f1-4e69-b23b-e25239e5fb59}*SharedItemsImports = 5 - ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{ad10c167-937f-4706-9eb5-c99f86c35e8f}*SharedItemsImports = 4 - ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{b47492d9-2eda-4016-a930-7fa708c85c3d}*SharedItemsImports = 13 - 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 - Objects\Converters\ConverterMicroStation\ConverterMicroStationOpenShared\ConverterMicroStationOpenShared.projitems*{bd2287fa-8272-4d14-9a26-889092aebfe0}*SharedItemsImports = 5 - ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.projitems*{c091e499-597d-4077-b83f-08e069091090}*SharedItemsImports = 4 - 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 - Objects\Converters\ConverterMicroStation\ConverterMicroStationOpenShared\ConverterMicroStationOpenShared.projitems*{c96d609b-b210-401c-8ffc-5d17f324e9e8}*SharedItemsImports = 5 - Objects\Converters\ConverterMicroStation\ConverterMicroStationOpenShared\ConverterMicroStationOpenShared.projitems*{cc10bbc6-09da-4bbb-ae92-3f6097a022f1}*SharedItemsImports = 5 - Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{cc790553-8088-41a9-83cd-b29f7141f408}*SharedItemsImports = 5 - Objects\Converters\ConverterCSI\ConverterCSIShared\ConverterCSIShared.projitems*{d06f557c-452a-4bbe-9b79-a10db03f3832}*SharedItemsImports = 5 - Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{d1d0f986-12be-4fd5-8925-c96b1f86427d}*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 - ConnectorRevit\ConnectorRevit\ConnectorRevit.projitems*{dfdfdbb8-018b-4dcb-a012-54227abf53a7}*SharedItemsImports = 4 - ConnectorRevit\ConnectorRevit\ConnectorRevit.projitems*{ef418256-8118-47b4-8386-a945946fb92d}*SharedItemsImports = 4 - ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{f4bfb155-7ba9-4e46-8240-9c825060c904}*SharedItemsImports = 4 - ConnectorMicroStation\ConnectorMicroStationOpenShared\ConnectorMicroStationOpenShared.projitems*{fc044d89-0ff3-441d-b35d-87454a693c16}*SharedItemsImports = 4 - ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{ff1793e1-77f5-4a92-b3f2-6d8b104e479b}*SharedItemsImports = 4 - Objects\Converters\ConverterMicroStation\ConverterMicroStationOpenShared\ConverterMicroStationOpenShared.projitems*{ffbc46f0-1874-42e9-8270-bbf962ef32d1}*SharedItemsImports = 5 - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Debug|x64.ActiveCfg = Debug|Any CPU - {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Debug|x64.Build.0 = Debug|Any CPU - {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Release|Any CPU.Build.0 = Release|Any CPU - {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Release|x64.ActiveCfg = Release|Any CPU - {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Release|x64.Build.0 = Release|Any CPU - {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Debug|x64.ActiveCfg = Debug|Any CPU - {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Debug|x64.Build.0 = Debug|Any CPU - {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Release|Any CPU.Build.0 = Release|Any CPU - {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Release|x64.ActiveCfg = Release|Any CPU - {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Release|x64.Build.0 = Release|Any CPU - {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Debug|x64.ActiveCfg = Debug|Any CPU - {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Debug|x64.Build.0 = Debug|Any CPU - {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Release|Any CPU.Build.0 = Release|Any CPU - {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Release|x64.ActiveCfg = Release|Any CPU - {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Release|x64.Build.0 = Release|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug|Any CPU.Build.0 = Debug|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug|x64.ActiveCfg = Debug|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug|x64.Build.0 = Debug|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Release|Any CPU.ActiveCfg = Release|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Release|Any CPU.Build.0 = Release|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Release|x64.ActiveCfg = Release|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Release|x64.Build.0 = Release|Any CPU - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Debug|x64.ActiveCfg = Debug|x64 - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Debug|x64.Build.0 = Debug|x64 - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Release|Any CPU.Build.0 = Release|Any CPU - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Release|x64.ActiveCfg = Release|x64 - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Release|x64.Build.0 = Release|x64 - {60BE029E-1F31-4473-8B68-A745A43AF179}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {60BE029E-1F31-4473-8B68-A745A43AF179}.Debug|Any CPU.Build.0 = Debug|Any CPU - {60BE029E-1F31-4473-8B68-A745A43AF179}.Debug|x64.ActiveCfg = Debug|Any CPU - {60BE029E-1F31-4473-8B68-A745A43AF179}.Debug|x64.Build.0 = Debug|Any CPU - {60BE029E-1F31-4473-8B68-A745A43AF179}.Release|Any CPU.ActiveCfg = Release|Any CPU - {60BE029E-1F31-4473-8B68-A745A43AF179}.Release|Any CPU.Build.0 = Release|Any CPU - {60BE029E-1F31-4473-8B68-A745A43AF179}.Release|x64.ActiveCfg = Release|Any CPU - {60BE029E-1F31-4473-8B68-A745A43AF179}.Release|x64.Build.0 = Release|Any CPU - {A2C8730A-B605-483E-914E-61F3ED7954D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A2C8730A-B605-483E-914E-61F3ED7954D9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A2C8730A-B605-483E-914E-61F3ED7954D9}.Debug|x64.ActiveCfg = Debug|Any CPU - {A2C8730A-B605-483E-914E-61F3ED7954D9}.Debug|x64.Build.0 = Debug|Any CPU - {A2C8730A-B605-483E-914E-61F3ED7954D9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A2C8730A-B605-483E-914E-61F3ED7954D9}.Release|Any CPU.Build.0 = Release|Any CPU - {A2C8730A-B605-483E-914E-61F3ED7954D9}.Release|x64.ActiveCfg = Release|Any CPU - {A2C8730A-B605-483E-914E-61F3ED7954D9}.Release|x64.Build.0 = Release|Any CPU - {8BBED205-C34E-4226-8757-0B576132D2BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8BBED205-C34E-4226-8757-0B576132D2BC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8BBED205-C34E-4226-8757-0B576132D2BC}.Debug|x64.ActiveCfg = Debug|Any CPU - {8BBED205-C34E-4226-8757-0B576132D2BC}.Debug|x64.Build.0 = Debug|Any CPU - {8BBED205-C34E-4226-8757-0B576132D2BC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8BBED205-C34E-4226-8757-0B576132D2BC}.Release|Any CPU.Build.0 = Release|Any CPU - {8BBED205-C34E-4226-8757-0B576132D2BC}.Release|x64.ActiveCfg = Release|Any CPU - {8BBED205-C34E-4226-8757-0B576132D2BC}.Release|x64.Build.0 = Release|Any CPU - {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Debug|x64.ActiveCfg = Debug|Any CPU - {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Debug|x64.Build.0 = Debug|Any CPU - {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Release|Any CPU.Build.0 = Release|Any CPU - {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Release|x64.ActiveCfg = Release|Any CPU - {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Release|x64.Build.0 = 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 - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug|x64.Build.0 = Debug|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release|Any CPU.Build.0 = Release|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release|x64.ActiveCfg = Release|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release|x64.Build.0 = Release|Any CPU - {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Debug|x64.ActiveCfg = Debug|Any CPU - {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Debug|x64.Build.0 = Debug|Any CPU - {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Release|Any CPU.Build.0 = Release|Any CPU - {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Release|x64.ActiveCfg = Release|Any CPU - {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Release|x64.Build.0 = Release|Any CPU - {3DF12639-78B6-41B3-A046-A675035369BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3DF12639-78B6-41B3-A046-A675035369BE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3DF12639-78B6-41B3-A046-A675035369BE}.Debug|x64.ActiveCfg = Debug|Any CPU - {3DF12639-78B6-41B3-A046-A675035369BE}.Debug|x64.Build.0 = Debug|Any CPU - {3DF12639-78B6-41B3-A046-A675035369BE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3DF12639-78B6-41B3-A046-A675035369BE}.Release|Any CPU.Build.0 = Release|Any CPU - {3DF12639-78B6-41B3-A046-A675035369BE}.Release|x64.ActiveCfg = Release|Any CPU - {3DF12639-78B6-41B3-A046-A675035369BE}.Release|x64.Build.0 = Release|Any CPU - {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Debug|Any CPU.Build.0 = Debug|Any CPU - {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Debug|x64.ActiveCfg = Debug|Any CPU - {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Debug|x64.Build.0 = Debug|Any CPU - {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Release|Any CPU.ActiveCfg = Release|Any CPU - {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Release|Any CPU.Build.0 = Release|Any CPU - {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Release|x64.ActiveCfg = Release|Any CPU - {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Release|x64.Build.0 = Release|Any CPU - {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Debug|x64.ActiveCfg = Debug|Any CPU - {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Debug|x64.Build.0 = Debug|Any CPU - {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Release|Any CPU.Build.0 = Release|Any CPU - {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Release|x64.ActiveCfg = Release|Any CPU - {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Release|x64.Build.0 = Release|Any CPU - {78573ADC-87A5-489F-8134-FB4A435A05F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {78573ADC-87A5-489F-8134-FB4A435A05F0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {78573ADC-87A5-489F-8134-FB4A435A05F0}.Debug|x64.ActiveCfg = Debug|Any CPU - {78573ADC-87A5-489F-8134-FB4A435A05F0}.Debug|x64.Build.0 = Debug|Any CPU - {78573ADC-87A5-489F-8134-FB4A435A05F0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {78573ADC-87A5-489F-8134-FB4A435A05F0}.Release|Any CPU.Build.0 = Release|Any CPU - {78573ADC-87A5-489F-8134-FB4A435A05F0}.Release|x64.ActiveCfg = Release|Any CPU - {78573ADC-87A5-489F-8134-FB4A435A05F0}.Release|x64.Build.0 = Release|Any CPU - {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Debug|x64.ActiveCfg = Debug|Any CPU - {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Debug|x64.Build.0 = Debug|Any CPU - {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Release|Any CPU.Build.0 = Release|Any CPU - {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Release|x64.ActiveCfg = Release|Any CPU - {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Release|x64.Build.0 = Release|Any CPU - {8A53B084-20D8-48F6-9591-9D53CFA74130}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8A53B084-20D8-48F6-9591-9D53CFA74130}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8A53B084-20D8-48F6-9591-9D53CFA74130}.Debug|x64.ActiveCfg = Debug|Any CPU - {8A53B084-20D8-48F6-9591-9D53CFA74130}.Debug|x64.Build.0 = Debug|Any CPU - {8A53B084-20D8-48F6-9591-9D53CFA74130}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8A53B084-20D8-48F6-9591-9D53CFA74130}.Release|Any CPU.Build.0 = Release|Any CPU - {8A53B084-20D8-48F6-9591-9D53CFA74130}.Release|x64.ActiveCfg = Release|Any CPU - {8A53B084-20D8-48F6-9591-9D53CFA74130}.Release|x64.Build.0 = Release|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Debug|x64.ActiveCfg = Debug|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Debug|x64.Build.0 = Debug|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Release|Any CPU.Build.0 = Release|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Release|x64.ActiveCfg = Release|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Release|x64.Build.0 = Release|Any CPU - {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Debug|x64.ActiveCfg = Debug|Any CPU - {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Debug|x64.Build.0 = Debug|Any CPU - {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Release|Any CPU.Build.0 = Release|Any CPU - {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Release|x64.ActiveCfg = Release|Any CPU - {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Release|x64.Build.0 = Release|Any CPU - {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Debug|Any CPU.Build.0 = Debug|Any CPU - {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Debug|x64.ActiveCfg = Debug|Any CPU - {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Debug|x64.Build.0 = Debug|Any CPU - {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Release|Any CPU.ActiveCfg = Release|Any CPU - {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Release|Any CPU.Build.0 = Release|Any CPU - {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Release|x64.ActiveCfg = Release|Any CPU - {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Release|x64.Build.0 = Release|Any CPU - {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Debug|Any CPU.Build.0 = Debug|Any CPU - {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Debug|x64.ActiveCfg = Debug|Any CPU - {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Debug|x64.Build.0 = Debug|Any CPU - {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Release|Any CPU.ActiveCfg = Release|Any CPU - {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Release|Any CPU.Build.0 = Release|Any CPU - {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Release|x64.ActiveCfg = Release|Any CPU - {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Release|x64.Build.0 = Release|Any CPU - {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Debug|x64.ActiveCfg = Debug|Any CPU - {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Debug|x64.Build.0 = Debug|Any CPU - {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Release|Any CPU.Build.0 = Release|Any CPU - {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Release|x64.ActiveCfg = Release|Any CPU - {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Release|x64.Build.0 = Release|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|x64.ActiveCfg = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|x64.Build.0 = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|Any CPU.Build.0 = Release|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|x64.ActiveCfg = Release|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|x64.Build.0 = Release|Any CPU - {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Debug|x64.ActiveCfg = Debug|Any CPU - {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Debug|x64.Build.0 = Debug|Any CPU - {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Release|Any CPU.Build.0 = Release|Any CPU - {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Release|x64.ActiveCfg = Release|Any CPU - {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Release|x64.Build.0 = Release|Any CPU - {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Debug|x64.ActiveCfg = Debug|Any CPU - {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Debug|x64.Build.0 = Debug|Any CPU - {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Release|Any CPU.Build.0 = Release|Any CPU - {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Release|x64.ActiveCfg = Release|Any CPU - {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Release|x64.Build.0 = Release|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Debug|x64.ActiveCfg = Debug|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Debug|x64.Build.0 = Debug|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Release|Any CPU.Build.0 = Release|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Release|x64.ActiveCfg = Release|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Release|x64.Build.0 = Release|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug|x64.ActiveCfg = Debug|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug|x64.Build.0 = Debug|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release|Any CPU.Build.0 = Release|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release|x64.ActiveCfg = Release|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release|x64.Build.0 = Release|Any CPU - {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Debug|x64.ActiveCfg = Debug|Any CPU - {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Debug|x64.Build.0 = Debug|Any CPU - {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Release|Any CPU.Build.0 = Release|Any CPU - {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Release|x64.ActiveCfg = Release|Any CPU - {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Release|x64.Build.0 = Release|Any CPU - {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Debug|x64.ActiveCfg = Debug|Any CPU - {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Debug|x64.Build.0 = Debug|Any CPU - {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Release|Any CPU.Build.0 = Release|Any CPU - {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Release|x64.ActiveCfg = Release|Any CPU - {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Release|x64.Build.0 = Release|Any CPU - {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Debug|x64.ActiveCfg = Debug|Any CPU - {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Debug|x64.Build.0 = Debug|Any CPU - {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Release|Any CPU.Build.0 = Release|Any CPU - {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Release|x64.ActiveCfg = Release|Any CPU - {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Release|x64.Build.0 = Release|Any CPU - {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Debug|x64.ActiveCfg = Debug|Any CPU - {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Debug|x64.Build.0 = Debug|Any CPU - {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Release|Any CPU.Build.0 = Release|Any CPU - {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Release|x64.ActiveCfg = Release|Any CPU - {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Release|x64.Build.0 = Release|Any CPU - {FC044D89-0FF3-441D-B35D-87454A693C16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC044D89-0FF3-441D-B35D-87454A693C16}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FC044D89-0FF3-441D-B35D-87454A693C16}.Debug|x64.ActiveCfg = Debug|Any CPU - {FC044D89-0FF3-441D-B35D-87454A693C16}.Debug|x64.Build.0 = Debug|Any CPU - {FC044D89-0FF3-441D-B35D-87454A693C16}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FC044D89-0FF3-441D-B35D-87454A693C16}.Release|Any CPU.Build.0 = Release|Any CPU - {FC044D89-0FF3-441D-B35D-87454A693C16}.Release|x64.ActiveCfg = Release|Any CPU - {FC044D89-0FF3-441D-B35D-87454A693C16}.Release|x64.Build.0 = Release|Any CPU - {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Debug|x64.ActiveCfg = Debug|Any CPU - {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Debug|x64.Build.0 = Debug|Any CPU - {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Release|Any CPU.Build.0 = Release|Any CPU - {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Release|x64.ActiveCfg = Release|Any CPU - {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Release|x64.Build.0 = Release|Any CPU - {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Debug|x64.ActiveCfg = Debug|Any CPU - {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Debug|x64.Build.0 = Debug|Any CPU - {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Release|Any CPU.Build.0 = Release|Any CPU - {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Release|x64.ActiveCfg = Release|Any CPU - {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Release|x64.Build.0 = Release|Any CPU - {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Debug|x64.ActiveCfg = Debug|Any CPU - {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Debug|x64.Build.0 = Debug|Any CPU - {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Release|Any CPU.Build.0 = Release|Any CPU - {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Release|x64.ActiveCfg = Release|Any CPU - {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Release|x64.Build.0 = Release|Any CPU - {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Debug|x64.ActiveCfg = Debug|Any CPU - {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Debug|x64.Build.0 = Debug|Any CPU - {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Release|Any CPU.Build.0 = Release|Any CPU - {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Release|x64.ActiveCfg = Release|Any CPU - {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Release|x64.Build.0 = Release|Any CPU - {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Debug|x64.ActiveCfg = Debug|Any CPU - {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Debug|x64.Build.0 = Debug|Any CPU - {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Release|Any CPU.Build.0 = Release|Any CPU - {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Release|x64.ActiveCfg = Release|Any CPU - {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Release|x64.Build.0 = Release|Any CPU - {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Debug|x64.ActiveCfg = Debug|Any CPU - {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Debug|x64.Build.0 = Debug|Any CPU - {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Release|Any CPU.Build.0 = Release|Any CPU - {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Release|x64.ActiveCfg = Release|Any CPU - {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Release|x64.Build.0 = Release|Any CPU - {76937388-BC9E-4083-9D6E-59CC627E3804}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {76937388-BC9E-4083-9D6E-59CC627E3804}.Debug|Any CPU.Build.0 = Debug|Any CPU - {76937388-BC9E-4083-9D6E-59CC627E3804}.Debug|x64.ActiveCfg = Debug|Any CPU - {76937388-BC9E-4083-9D6E-59CC627E3804}.Debug|x64.Build.0 = Debug|Any CPU - {76937388-BC9E-4083-9D6E-59CC627E3804}.Release|Any CPU.ActiveCfg = Release|Any CPU - {76937388-BC9E-4083-9D6E-59CC627E3804}.Release|Any CPU.Build.0 = Release|Any CPU - {76937388-BC9E-4083-9D6E-59CC627E3804}.Release|x64.ActiveCfg = Release|Any CPU - {76937388-BC9E-4083-9D6E-59CC627E3804}.Release|x64.Build.0 = Release|Any CPU - {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Debug|x64.ActiveCfg = Debug|Any CPU - {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Debug|x64.Build.0 = Debug|Any CPU - {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Release|Any CPU.Build.0 = Release|Any CPU - {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Release|x64.ActiveCfg = Release|Any CPU - {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Release|x64.Build.0 = Release|Any CPU - {98136BFC-A71B-48AD-B0D2-8A5A07FD3D6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {98136BFC-A71B-48AD-B0D2-8A5A07FD3D6D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {98136BFC-A71B-48AD-B0D2-8A5A07FD3D6D}.Debug|x64.ActiveCfg = Debug|Any CPU - {98136BFC-A71B-48AD-B0D2-8A5A07FD3D6D}.Debug|x64.Build.0 = Debug|Any CPU - {98136BFC-A71B-48AD-B0D2-8A5A07FD3D6D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {98136BFC-A71B-48AD-B0D2-8A5A07FD3D6D}.Release|Any CPU.Build.0 = Release|Any CPU - {98136BFC-A71B-48AD-B0D2-8A5A07FD3D6D}.Release|x64.ActiveCfg = Release|Any CPU - {98136BFC-A71B-48AD-B0D2-8A5A07FD3D6D}.Release|x64.Build.0 = Release|Any CPU - {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Debug|x64.ActiveCfg = Debug|Any CPU - {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Debug|x64.Build.0 = Debug|Any CPU - {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Release|Any CPU.Build.0 = Release|Any CPU - {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Release|x64.ActiveCfg = Release|Any CPU - {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Release|x64.Build.0 = Release|Any CPU - {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Debug|x64.ActiveCfg = Debug|Any CPU - {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Debug|x64.Build.0 = Debug|Any CPU - {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Release|Any CPU.Build.0 = Release|Any CPU - {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Release|x64.ActiveCfg = Release|Any CPU - {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Release|x64.Build.0 = Release|Any CPU - {67157264-AAA5-46A8-A38B-16254B49B892}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {67157264-AAA5-46A8-A38B-16254B49B892}.Debug|Any CPU.Build.0 = Debug|Any CPU - {67157264-AAA5-46A8-A38B-16254B49B892}.Debug|x64.ActiveCfg = Debug|Any CPU - {67157264-AAA5-46A8-A38B-16254B49B892}.Debug|x64.Build.0 = Debug|Any CPU - {67157264-AAA5-46A8-A38B-16254B49B892}.Release|Any CPU.ActiveCfg = Release|Any CPU - {67157264-AAA5-46A8-A38B-16254B49B892}.Release|Any CPU.Build.0 = Release|Any CPU - {67157264-AAA5-46A8-A38B-16254B49B892}.Release|x64.ActiveCfg = Release|Any CPU - {67157264-AAA5-46A8-A38B-16254B49B892}.Release|x64.Build.0 = Release|Any CPU - {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Debug|Any CPU.Build.0 = Debug|Any CPU - {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Debug|x64.ActiveCfg = Debug|Any CPU - {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Debug|x64.Build.0 = Debug|Any CPU - {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Release|Any CPU.ActiveCfg = Release|Any CPU - {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Release|Any CPU.Build.0 = Release|Any CPU - {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Release|x64.ActiveCfg = Release|Any CPU - {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Release|x64.Build.0 = Release|Any CPU - {C1D53822-B11F-4772-996E-1E6D485E0702}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C1D53822-B11F-4772-996E-1E6D485E0702}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C1D53822-B11F-4772-996E-1E6D485E0702}.Debug|x64.ActiveCfg = Debug|Any CPU - {C1D53822-B11F-4772-996E-1E6D485E0702}.Debug|x64.Build.0 = Debug|Any CPU - {C1D53822-B11F-4772-996E-1E6D485E0702}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C1D53822-B11F-4772-996E-1E6D485E0702}.Release|Any CPU.Build.0 = Release|Any CPU - {C1D53822-B11F-4772-996E-1E6D485E0702}.Release|x64.ActiveCfg = Release|Any CPU - {C1D53822-B11F-4772-996E-1E6D485E0702}.Release|x64.Build.0 = Release|Any CPU - {21223BA5-C6E8-405D-B581-106C4726EDC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {21223BA5-C6E8-405D-B581-106C4726EDC0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {21223BA5-C6E8-405D-B581-106C4726EDC0}.Debug|x64.ActiveCfg = Debug|Any CPU - {21223BA5-C6E8-405D-B581-106C4726EDC0}.Debug|x64.Build.0 = Debug|Any CPU - {21223BA5-C6E8-405D-B581-106C4726EDC0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {21223BA5-C6E8-405D-B581-106C4726EDC0}.Release|Any CPU.Build.0 = Release|Any CPU - {21223BA5-C6E8-405D-B581-106C4726EDC0}.Release|x64.ActiveCfg = Release|Any CPU - {21223BA5-C6E8-405D-B581-106C4726EDC0}.Release|x64.Build.0 = Release|Any CPU - {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Debug|x64.ActiveCfg = Debug|Any CPU - {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Debug|x64.Build.0 = Debug|Any CPU - {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Release|Any CPU.Build.0 = Release|Any CPU - {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Release|x64.ActiveCfg = Release|Any CPU - {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Release|x64.Build.0 = Release|Any CPU - {442116F3-0F4A-4136-894E-FF5F4295500B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {442116F3-0F4A-4136-894E-FF5F4295500B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {442116F3-0F4A-4136-894E-FF5F4295500B}.Debug|x64.ActiveCfg = Debug|Any CPU - {442116F3-0F4A-4136-894E-FF5F4295500B}.Debug|x64.Build.0 = Debug|Any CPU - {442116F3-0F4A-4136-894E-FF5F4295500B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {442116F3-0F4A-4136-894E-FF5F4295500B}.Release|Any CPU.Build.0 = Release|Any CPU - {442116F3-0F4A-4136-894E-FF5F4295500B}.Release|x64.ActiveCfg = Release|Any CPU - {442116F3-0F4A-4136-894E-FF5F4295500B}.Release|x64.Build.0 = Release|Any CPU - {907AED7A-719B-4157-8CC9-D21CB26E9243}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {907AED7A-719B-4157-8CC9-D21CB26E9243}.Debug|Any CPU.Build.0 = Debug|Any CPU - {907AED7A-719B-4157-8CC9-D21CB26E9243}.Debug|x64.ActiveCfg = Debug|Any CPU - {907AED7A-719B-4157-8CC9-D21CB26E9243}.Debug|x64.Build.0 = Debug|Any CPU - {907AED7A-719B-4157-8CC9-D21CB26E9243}.Release|Any CPU.ActiveCfg = Release|Any CPU - {907AED7A-719B-4157-8CC9-D21CB26E9243}.Release|Any CPU.Build.0 = Release|Any CPU - {907AED7A-719B-4157-8CC9-D21CB26E9243}.Release|x64.ActiveCfg = Release|Any CPU - {907AED7A-719B-4157-8CC9-D21CB26E9243}.Release|x64.Build.0 = Release|Any CPU - {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Debug|x64.ActiveCfg = Debug|Any CPU - {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Debug|x64.Build.0 = Debug|Any CPU - {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Release|Any CPU.Build.0 = Release|Any CPU - {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Release|x64.ActiveCfg = Release|Any CPU - {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Release|x64.Build.0 = Release|Any CPU - {81299D15-5788-414D-A962-1A568C251323}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {81299D15-5788-414D-A962-1A568C251323}.Debug|Any CPU.Build.0 = Debug|Any CPU - {81299D15-5788-414D-A962-1A568C251323}.Debug|x64.ActiveCfg = Debug|Any CPU - {81299D15-5788-414D-A962-1A568C251323}.Debug|x64.Build.0 = Debug|Any CPU - {81299D15-5788-414D-A962-1A568C251323}.Release|Any CPU.ActiveCfg = Release|Any CPU - {81299D15-5788-414D-A962-1A568C251323}.Release|Any CPU.Build.0 = Release|Any CPU - {81299D15-5788-414D-A962-1A568C251323}.Release|x64.ActiveCfg = Release|Any CPU - {81299D15-5788-414D-A962-1A568C251323}.Release|x64.Build.0 = Release|Any CPU - {9D188843-8841-4A76-A844-EFBE8E32EE05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9D188843-8841-4A76-A844-EFBE8E32EE05}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9D188843-8841-4A76-A844-EFBE8E32EE05}.Debug|x64.ActiveCfg = Debug|Any CPU - {9D188843-8841-4A76-A844-EFBE8E32EE05}.Debug|x64.Build.0 = Debug|Any CPU - {9D188843-8841-4A76-A844-EFBE8E32EE05}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9D188843-8841-4A76-A844-EFBE8E32EE05}.Release|Any CPU.Build.0 = Release|Any CPU - {9D188843-8841-4A76-A844-EFBE8E32EE05}.Release|x64.ActiveCfg = Release|Any CPU - {9D188843-8841-4A76-A844-EFBE8E32EE05}.Release|x64.Build.0 = Release|Any CPU - {31E0C098-6813-4571-AB96-A245E0FC1C23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {31E0C098-6813-4571-AB96-A245E0FC1C23}.Debug|Any CPU.Build.0 = Debug|Any CPU - {31E0C098-6813-4571-AB96-A245E0FC1C23}.Debug|x64.ActiveCfg = Debug|Any CPU - {31E0C098-6813-4571-AB96-A245E0FC1C23}.Debug|x64.Build.0 = Debug|Any CPU - {31E0C098-6813-4571-AB96-A245E0FC1C23}.Release|Any CPU.ActiveCfg = Release|Any CPU - {31E0C098-6813-4571-AB96-A245E0FC1C23}.Release|Any CPU.Build.0 = Release|Any CPU - {31E0C098-6813-4571-AB96-A245E0FC1C23}.Release|x64.ActiveCfg = Release|Any CPU - {31E0C098-6813-4571-AB96-A245E0FC1C23}.Release|x64.Build.0 = Release|Any CPU - {C091E499-597D-4077-B83F-08E069091090}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C091E499-597D-4077-B83F-08E069091090}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C091E499-597D-4077-B83F-08E069091090}.Debug|x64.ActiveCfg = Debug|Any CPU - {C091E499-597D-4077-B83F-08E069091090}.Debug|x64.Build.0 = Debug|Any CPU - {C091E499-597D-4077-B83F-08E069091090}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C091E499-597D-4077-B83F-08E069091090}.Release|Any CPU.Build.0 = Release|Any CPU - {C091E499-597D-4077-B83F-08E069091090}.Release|x64.ActiveCfg = Release|Any CPU - {C091E499-597D-4077-B83F-08E069091090}.Release|x64.Build.0 = Release|Any CPU - {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Debug|x64.ActiveCfg = Debug|Any CPU - {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Debug|x64.Build.0 = Debug|Any CPU - {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Release|Any CPU.Build.0 = Release|Any CPU - {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Release|x64.ActiveCfg = Release|Any CPU - {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Release|x64.Build.0 = Release|Any CPU - {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Debug|x64.ActiveCfg = Debug|Any CPU - {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Debug|x64.Build.0 = Debug|Any CPU - {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Release|Any CPU.Build.0 = Release|Any CPU - {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Release|x64.ActiveCfg = Release|Any CPU - {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Release|x64.Build.0 = Release|Any CPU - {D163D710-B946-4D50-8833-BD8B9941033A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D163D710-B946-4D50-8833-BD8B9941033A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D163D710-B946-4D50-8833-BD8B9941033A}.Debug|x64.ActiveCfg = Debug|Any CPU - {D163D710-B946-4D50-8833-BD8B9941033A}.Debug|x64.Build.0 = Debug|Any CPU - {D163D710-B946-4D50-8833-BD8B9941033A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D163D710-B946-4D50-8833-BD8B9941033A}.Release|Any CPU.Build.0 = Release|Any CPU - {D163D710-B946-4D50-8833-BD8B9941033A}.Release|x64.ActiveCfg = Release|Any CPU - {D163D710-B946-4D50-8833-BD8B9941033A}.Release|x64.Build.0 = Release|Any CPU - {F4BFB155-7BA9-4E46-8240-9C825060C904}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F4BFB155-7BA9-4E46-8240-9C825060C904}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F4BFB155-7BA9-4E46-8240-9C825060C904}.Debug|x64.ActiveCfg = Debug|Any CPU - {F4BFB155-7BA9-4E46-8240-9C825060C904}.Debug|x64.Build.0 = Debug|Any CPU - {F4BFB155-7BA9-4E46-8240-9C825060C904}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F4BFB155-7BA9-4E46-8240-9C825060C904}.Release|Any CPU.Build.0 = Release|Any CPU - {F4BFB155-7BA9-4E46-8240-9C825060C904}.Release|x64.ActiveCfg = Release|Any CPU - {F4BFB155-7BA9-4E46-8240-9C825060C904}.Release|x64.Build.0 = Release|Any CPU - {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Debug|x64.ActiveCfg = Debug|Any CPU - {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Debug|x64.Build.0 = Debug|Any CPU - {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Release|Any CPU.Build.0 = Release|Any CPU - {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Release|x64.ActiveCfg = Release|Any CPU - {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Release|x64.Build.0 = Release|Any CPU - {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Debug|x64.ActiveCfg = Debug|Any CPU - {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Debug|x64.Build.0 = Debug|Any CPU - {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Release|Any CPU.Build.0 = Release|Any CPU - {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Release|x64.ActiveCfg = Release|Any CPU - {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Release|x64.Build.0 = Release|Any CPU - {3D066801-9823-48ED-8FB3-273B53825808}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3D066801-9823-48ED-8FB3-273B53825808}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3D066801-9823-48ED-8FB3-273B53825808}.Debug|x64.ActiveCfg = Debug|Any CPU - {3D066801-9823-48ED-8FB3-273B53825808}.Debug|x64.Build.0 = Debug|Any CPU - {3D066801-9823-48ED-8FB3-273B53825808}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3D066801-9823-48ED-8FB3-273B53825808}.Release|Any CPU.Build.0 = Release|Any CPU - {3D066801-9823-48ED-8FB3-273B53825808}.Release|x64.ActiveCfg = Release|Any CPU - {3D066801-9823-48ED-8FB3-273B53825808}.Release|x64.Build.0 = Release|Any CPU - {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Debug|x64.ActiveCfg = Debug|Any CPU - {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Debug|x64.Build.0 = Debug|Any CPU - {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Release|Any CPU.Build.0 = Release|Any CPU - {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Release|x64.ActiveCfg = Release|Any CPU - {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Release|x64.Build.0 = Release|Any CPU - {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Debug|Any CPU.Build.0 = Debug|Any CPU - {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Debug|x64.ActiveCfg = Debug|Any CPU - {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Debug|x64.Build.0 = Debug|Any CPU - {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Release|Any CPU.ActiveCfg = Release|Any CPU - {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Release|Any CPU.Build.0 = Release|Any CPU - {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Release|x64.ActiveCfg = Release|Any CPU - {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Release|x64.Build.0 = Release|Any CPU - {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Debug|x64.ActiveCfg = Debug|Any CPU - {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Debug|x64.Build.0 = Debug|Any CPU - {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Release|Any CPU.Build.0 = Release|Any CPU - {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Release|x64.ActiveCfg = Release|Any CPU - {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Release|x64.Build.0 = Release|Any CPU - {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Debug|x64.ActiveCfg = Debug|Any CPU - {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Debug|x64.Build.0 = Debug|Any CPU - {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Release|Any CPU.Build.0 = Release|Any CPU - {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Release|x64.ActiveCfg = Release|Any CPU - {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Release|x64.Build.0 = Release|Any CPU - {CC790553-8088-41A9-83CD-B29F7141F408}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CC790553-8088-41A9-83CD-B29F7141F408}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CC790553-8088-41A9-83CD-B29F7141F408}.Debug|x64.ActiveCfg = Debug|Any CPU - {CC790553-8088-41A9-83CD-B29F7141F408}.Debug|x64.Build.0 = Debug|Any CPU - {CC790553-8088-41A9-83CD-B29F7141F408}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CC790553-8088-41A9-83CD-B29F7141F408}.Release|Any CPU.Build.0 = Release|Any CPU - {CC790553-8088-41A9-83CD-B29F7141F408}.Release|x64.ActiveCfg = Release|Any CPU - {CC790553-8088-41A9-83CD-B29F7141F408}.Release|x64.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {CB6F8F77-4487-469B-896A-1EEEC4451A04} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} - {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F} = {CB6F8F77-4487-469B-896A-1EEEC4451A04} - {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A} = {CB6F8F77-4487-469B-896A-1EEEC4451A04} - {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906} = {CB6F8F77-4487-469B-896A-1EEEC4451A04} - {109B3382-634B-408A-8A5C-4CD09CB92641} = {9461B162-AD2F-4F60-BCE4-E72DCEFD4608} - {A97C3046-2D55-4C49-AB40-A3C2194B82FA} = {59764E6A-8366-4AF3-AB0A-BA28BD0318FA} - {60BE029E-1F31-4473-8B68-A745A43AF179} = {E3916A0F-68D5-4C84-ACAE-41547F75E454} - {8BBED205-C34E-4226-8757-0B576132D2BC} = {DC6BE73D-4D60-4F90-9778-D44151CD6F98} - {8FA5494A-D651-4C80-9B69-EB1808CF64F8} = {DC6BE73D-4D60-4F90-9778-D44151CD6F98} - {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} = {E3916A0F-68D5-4C84-ACAE-41547F75E454} - {42A86931-7497-4A34-B2FD-060231CD0A8F} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7} = {42A86931-7497-4A34-B2FD-060231CD0A8F} - {5FD0D810-03E9-4FD2-93E4-B1B51E5D82C5} = {42A86931-7497-4A34-B2FD-060231CD0A8F} - {925C0BF6-A0B1-4699-9C4B-078E01D652CC} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} - {2DCD648D-DCA5-4D2A-8B14-AD2CB85D24B0} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} - {F0DD5C38-083B-43EA-8654-96247028D8AC} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} - {5BAB09DC-B0FC-4004-9FD5-6496A9634071} = {F0DD5C38-083B-43EA-8654-96247028D8AC} - {AACD5D91-99F1-4E69-B23B-E25239E5FB59} = {F0DD5C38-083B-43EA-8654-96247028D8AC} - {3DF12639-78B6-41B3-A046-A675035369BE} = {F0DD5C38-083B-43EA-8654-96247028D8AC} - {890F3257-FCC2-4ED8-9180-22B3641B494C} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} - {58A88F1A-7489-46D2-949D-2FC3F68C8D84} = {890F3257-FCC2-4ED8-9180-22B3641B494C} - {B47492D9-2EDA-4016-A930-7FA708C85C3D} = {890F3257-FCC2-4ED8-9180-22B3641B494C} - {AD10C167-937F-4706-9EB5-C99F86C35E8F} = {890F3257-FCC2-4ED8-9180-22B3641B494C} - {BE521908-7944-46F3-98BF-B47D34509934} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} - {78573ADC-87A5-489F-8134-FB4A435A05F0} = {BE521908-7944-46F3-98BF-B47D34509934} - {2D0F9F8A-2E89-4780-978A-CD92D6D7B843} = {BE521908-7944-46F3-98BF-B47D34509934} - {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE} = {BE521908-7944-46F3-98BF-B47D34509934} - {8A53B084-20D8-48F6-9591-9D53CFA74130} = {42A86931-7497-4A34-B2FD-060231CD0A8F} - {EF418256-8118-47B4-8386-A945946FB92D} = {42A86931-7497-4A34-B2FD-060231CD0A8F} - {FF1793E1-77F5-4A92-B3F2-6D8B104E479B} = {890F3257-FCC2-4ED8-9180-22B3641B494C} - {464F2220-D7D9-4D8C-BB3D-B93A1C603469} = {890F3257-FCC2-4ED8-9180-22B3641B494C} - {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09} = {BE521908-7944-46F3-98BF-B47D34509934} - {8581B4BB-A8BC-4328-99FE-D18615AF2554} = {BE521908-7944-46F3-98BF-B47D34509934} - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067} = {9461B162-AD2F-4F60-BCE4-E72DCEFD4608} - {1FD850CA-A8D7-41DC-9316-B315800437E1} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} - {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55} = {1FD850CA-A8D7-41DC-9316-B315800437E1} - {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6} = {1FD850CA-A8D7-41DC-9316-B315800437E1} - {B74CB8C1-187B-46A6-B20B-92B8C129F3EE} = {1FD850CA-A8D7-41DC-9316-B315800437E1} - {9461B162-AD2F-4F60-BCE4-E72DCEFD4608} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} - {E94E7327-5A9B-48EE-93CC-E9E9A5B980F1} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} - {D648BB69-B992-4D34-906E-7A547374B86C} = {E94E7327-5A9B-48EE-93CC-E9E9A5B980F1} - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4} = {E94E7327-5A9B-48EE-93CC-E9E9A5B980F1} - {B7376EC8-5D3E-47D2-96A7-748552F14C39} = {E94E7327-5A9B-48EE-93CC-E9E9A5B980F1} - {6185B1A1-0A12-44B1-8AC5-0ED48147FB21} = {85C30B55-E486-49AE-B3F5-6A196D14CCB8} - {85C30B55-E486-49AE-B3F5-6A196D14CCB8} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} - {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE} = {59764E6A-8366-4AF3-AB0A-BA28BD0318FA} - {0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} - {0420D74A-2997-4B92-844B-C3769DEAA1AD} = {0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17} - {372D9F0F-EDE9-4050-BF8C-758911C5C2E0} = {0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17} - {A3A0EE09-6055-4009-AB8E-13FBC1A403A9} = {0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17} - {FC044D89-0FF3-441D-B35D-87454A693C16} = {0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17} - {57BF94A8-8F73-4D1A-91D2-B10CC64178B6} = {0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17} - {B9D189AE-B0AE-49BC-A0A5-ACF87C849615} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} - {BD2287FA-8272-4D14-9A26-889092AEBFE0} = {B9D189AE-B0AE-49BC-A0A5-ACF87C849615} - {208B25E4-2D0E-4534-B197-4C5C96CC53CE} = {B9D189AE-B0AE-49BC-A0A5-ACF87C849615} - {FFBC46F0-1874-42E9-8270-BBF962EF32D1} = {B9D189AE-B0AE-49BC-A0A5-ACF87C849615} - {C96D609B-B210-401C-8FFC-5D17F324E9E8} = {B9D189AE-B0AE-49BC-A0A5-ACF87C849615} - {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1} = {B9D189AE-B0AE-49BC-A0A5-ACF87C849615} - {D1D0F986-12BE-4FD5-8925-C96B1F86427D} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} - {76937388-BC9E-4083-9D6E-59CC627E3804} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} - {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} - {98136BFC-A71B-48AD-B0D2-8A5A07FD3D6D} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} - {DFDFDBB8-018B-4DCB-A012-54227ABF53A7} = {42A86931-7497-4A34-B2FD-060231CD0A8F} - {18C8730C-0173-4987-9416-46F86EC20541} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} - {28E2EA7F-FFD1-4E13-9165-0243B5AC82F5} = {18C8730C-0173-4987-9416-46F86EC20541} - {3AF1EF30-0906-4926-A02C-4E3AD666352A} = {18C8730C-0173-4987-9416-46F86EC20541} - {67157264-AAA5-46A8-A38B-16254B49B892} = {18C8730C-0173-4987-9416-46F86EC20541} - {5D988C50-8E85-402A-9020-A4AB0565F0C9} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} - {02A24DD8-E0CA-4657-BAA7-B033A4563709} = {5D988C50-8E85-402A-9020-A4AB0565F0C9} - {C1D53822-B11F-4772-996E-1E6D485E0702} = {5D988C50-8E85-402A-9020-A4AB0565F0C9} - {7FFDAB72-145D-4490-9892-FAC5F1D72B17} = {5D988C50-8E85-402A-9020-A4AB0565F0C9} - {7E702AF1-3A72-454D-BE04-D2AF4EF1304B} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} - {21223BA5-C6E8-405D-B581-106C4726EDC0} = {7E702AF1-3A72-454D-BE04-D2AF4EF1304B} - {5BBDE14E-50F8-4D6E-8E35-747667AD4A09} = {7E702AF1-3A72-454D-BE04-D2AF4EF1304B} - {D06F557C-452A-4BBE-9B79-A10DB03F3832} = {7E702AF1-3A72-454D-BE04-D2AF4EF1304B} - {442116F3-0F4A-4136-894E-FF5F4295500B} = {7E702AF1-3A72-454D-BE04-D2AF4EF1304B} - {907AED7A-719B-4157-8CC9-D21CB26E9243} = {7E702AF1-3A72-454D-BE04-D2AF4EF1304B} - {11C013F3-2583-4292-938B-707294DAECE1} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} - {23BE6E54-96C1-4373-89F3-E18A1C9807FD} = {11C013F3-2583-4292-938B-707294DAECE1} - {61374CD0-E774-4DCD-BFAB-6356B0931283} = {11C013F3-2583-4292-938B-707294DAECE1} - {81299D15-5788-414D-A962-1A568C251323} = {11C013F3-2583-4292-938B-707294DAECE1} - {9D188843-8841-4A76-A844-EFBE8E32EE05} = {11C013F3-2583-4292-938B-707294DAECE1} - {31E0C098-6813-4571-AB96-A245E0FC1C23} = {11C013F3-2583-4292-938B-707294DAECE1} - {C091E499-597D-4077-B83F-08E069091090} = {11C013F3-2583-4292-938B-707294DAECE1} - {C59939F6-D383-44E3-A7EF-4E160E3DFB73} = {11C013F3-2583-4292-938B-707294DAECE1} - {586A5A37-93F6-427E-8DF8-C10DB4D6822A} = {42A86931-7497-4A34-B2FD-060231CD0A8F} - {DF1B3505-793C-4073-975B-04C81CC3CDC4} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} - {D163D710-B946-4D50-8833-BD8B9941033A} = {DF1B3505-793C-4073-975B-04C81CC3CDC4} - {F4BFB155-7BA9-4E46-8240-9C825060C904} = {890F3257-FCC2-4ED8-9180-22B3641B494C} - {2639E37D-80D3-415A-B4D1-20D7F321F27F} = {890F3257-FCC2-4ED8-9180-22B3641B494C} - {59764E6A-8366-4AF3-AB0A-BA28BD0318FA} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} - {BDBB6B68-1DF8-4C41-B4AD-55037F81543D} = {59764E6A-8366-4AF3-AB0A-BA28BD0318FA} - {3D066801-9823-48ED-8FB3-273B53825808} = {59764E6A-8366-4AF3-AB0A-BA28BD0318FA} - {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} - {050E8BAB-773E-4FE6-BD38-F71CF65FC257} = {59764E6A-8366-4AF3-AB0A-BA28BD0318FA} - {AAA05C3D-856D-4F22-971E-5E3F066D0EAE} = {F0DD5C38-083B-43EA-8654-96247028D8AC} - {67A463D3-E98B-4B16-B069-D7BBB05386A1} = {F0DD5C38-083B-43EA-8654-96247028D8AC} - {CC790553-8088-41A9-83CD-B29F7141F408} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1D43D91B-4F01-4A78-8250-CC6F9BD93A14} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32210.238 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Connectors", "Connectors", "{DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dynamo", "Dynamo", "{CB6F8F77-4487-469B-896A-1EEEC4451A04}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorDynamo", "ConnectorDynamo\ConnectorDynamo\ConnectorDynamo.csproj", "{61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorDynamoExtension", "ConnectorDynamo\ConnectorDynamoExtension\ConnectorDynamoExtension.csproj", "{B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorDynamoFunctions", "ConnectorDynamo\ConnectorDynamoFunctions\ConnectorDynamoFunctions.csproj", "{8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorGrasshopper", "ConnectorGrasshopper\ConnectorGrasshopper\ConnectorGrasshopper.csproj", "{109B3382-634B-408A-8A5C-4CD09CB92641}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesktopUI", "DesktopUI\DesktopUI\DesktopUI.csproj", "{A97C3046-2D55-4C49-AB40-A3C2194B82FA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Objects", "Objects\Objects\Objects.csproj", "{60BE029E-1F31-4473-8B68-A745A43AF179}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core", "Core\Core\Core.csproj", "{A2C8730A-B605-483E-914E-61F3ED7954D9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DiskTransport", "Core\Transports\DiskTransport\DiskTransport.csproj", "{8BBED205-C34E-4226-8757-0B576132D2BC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MongoDBTransport", "Core\Transports\MongoDBTransport\MongoDBTransport.csproj", "{8FA5494A-D651-4C80-9B69-EB1808CF64F8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Transports", "Transports", "{DC6BE73D-4D60-4F90-9778-D44151CD6F98}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Objects", "Objects", "{E3916A0F-68D5-4C84-ACAE-41547F75E454}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Converters", "Converters", "{4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Revit", "Revit", "{42A86931-7497-4A34-B2FD-060231CD0A8F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorRevit2021", "ConnectorRevit\ConnectorRevit2021\ConnectorRevit2021.csproj", "{27A79ACA-7EA8-4406-8BB8-216578CC3AB7}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConnectorRevitShared", "ConnectorRevit\ConnectorRevit\ConnectorRevitShared.shproj", "{5FD0D810-03E9-4FD2-93E4-B1B51E5D82C5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterRevit", "ConverterRevit", "{925C0BF6-A0B1-4699-9C4B-078E01D652CC}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterRevitShared", "Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.shproj", "{2DCD648D-DCA5-4D2A-8B14-AD2CB85D24B0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterDynamo", "ConverterDynamo", "{F0DD5C38-083B-43EA-8654-96247028D8AC}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterDynamoShared", "Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.shproj", "{5BAB09DC-B0FC-4004-9FD5-6496A9634071}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterDynamoRevit", "Objects\Converters\ConverterDynamo\ConverterDynamoRevit\ConverterDynamoRevit.csproj", "{AACD5D91-99F1-4E69-B23B-E25239E5FB59}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterDynamoSandbox", "Objects\Converters\ConverterDynamo\ConverterDynamoSandbox\ConverterDynamoSandbox.csproj", "{3DF12639-78B6-41B3-A046-A675035369BE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AutocadCivil", "AutocadCivil", "{890F3257-FCC2-4ED8-9180-22B3641B494C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorAutocad2021", "ConnectorAutocadCivil\ConnectorAutocad2021\ConnectorAutocad2021.csproj", "{58A88F1A-7489-46D2-949D-2FC3F68C8D84}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConnectorAutocadCivilShared", "ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.shproj", "{B47492D9-2EDA-4016-A930-7FA708C85C3D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorCivil2021", "ConnectorAutocadCivil\ConnectorCivil2021\ConnectorCivil2021.csproj", "{AD10C167-937F-4706-9EB5-C99F86C35E8F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterAutocadCivil", "ConverterAutocadCivil", "{BE521908-7944-46F3-98BF-B47D34509934}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterAutocad2021", "Objects\Converters\ConverterAutocadCivil\ConverterAutocad2021\ConverterAutocad2021.csproj", "{78573ADC-87A5-489F-8134-FB4A435A05F0}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterAutocadCivilShared", "Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.shproj", "{2D0F9F8A-2E89-4780-978A-CD92D6D7B843}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterCivil2021", "Objects\Converters\ConverterAutocadCivil\ConverterCivil2021\ConverterCivil2021.csproj", "{D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorRevit2020", "ConnectorRevit\ConnectorRevit2020\ConnectorRevit2020.csproj", "{8A53B084-20D8-48F6-9591-9D53CFA74130}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorAutocad2022", "ConnectorAutocadCivil\ConnectorAutocad2022\ConnectorAutocad2022.csproj", "{FF1793E1-77F5-4A92-B3F2-6D8B104E479B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorCivil2022", "ConnectorAutocadCivil\ConnectorCivil2022\ConnectorCivil2022.csproj", "{464F2220-D7D9-4D8C-BB3D-B93A1C603469}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterAutocad2022", "Objects\Converters\ConverterAutocadCivil\ConverterAutocad2022\ConverterAutocad2022.csproj", "{50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterCivil2022", "Objects\Converters\ConverterAutocadCivil\ConverterCivil2022\ConverterCivil2022.csproj", "{8581B4BB-A8BC-4328-99FE-D18615AF2554}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorGrasshopperUtils", "ConnectorGrasshopper\ConnectorGrasshopperUtils\ConnectorGrasshopperUtils.csproj", "{E2A8E961-6DB6-4474-9E31-0C00FEB4A067}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterRhino", "ConverterRhino", "{1FD850CA-A8D7-41DC-9316-B315800437E1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRhino6", "Objects\Converters\ConverterRhinoGh\ConverterRhino6\ConverterRhino6.csproj", "{3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRhino7", "Objects\Converters\ConverterRhinoGh\ConverterRhino7\ConverterRhino7.csproj", "{26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterRhinoGhShared", "Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.shproj", "{B74CB8C1-187B-46A6-B20B-92B8C129F3EE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Grasshopper", "Grasshopper", "{9461B162-AD2F-4F60-BCE4-E72DCEFD4608}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Rhino", "Rhino", "{E94E7327-5A9B-48EE-93CC-E9E9A5B980F1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorRhino6", "ConnectorRhino\ConnectorRhino6\ConnectorRhino6.csproj", "{D648BB69-B992-4D34-906E-7A547374B86C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorRhino7", "ConnectorRhino\ConnectorRhino7\ConnectorRhino7.csproj", "{A64ACBF9-DB82-4839-AF99-57ED2E7989F4}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConnectorRhinoShared", "ConnectorRhino\ConnectorRhino\ConnectorRhinoShared\ConnectorRhinoShared.shproj", "{B7376EC8-5D3E-47D2-96A7-748552F14C39}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PolygonMesher", "Objects\Converters\StructuralUtilities\PolygonMesher\PolygonMesher.csproj", "{6185B1A1-0A12-44B1-8AC5-0ED48147FB21}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StructuralUtilities", "StructuralUtilities", "{85C30B55-E486-49AE-B3F5-6A196D14CCB8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopUI2", "DesktopUI2\DesktopUI2\DesktopUI2.csproj", "{AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MicroStation", "MicroStation", "{0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorMicroStation", "ConnectorMicroStation\ConnectorMicroStation\ConnectorMicroStation.csproj", "{0420D74A-2997-4B92-844B-C3769DEAA1AD}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConnectorMicroStationOpenShared", "ConnectorMicroStation\ConnectorMicroStationOpenShared\ConnectorMicroStationOpenShared.shproj", "{372D9F0F-EDE9-4050-BF8C-758911C5C2E0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorOpenBuildings", "ConnectorMicroStation\ConnectorOpenBuildings\ConnectorOpenBuildings.csproj", "{A3A0EE09-6055-4009-AB8E-13FBC1A403A9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorOpenRail", "ConnectorMicroStation\ConnectorOpenRail\ConnectorOpenRail.csproj", "{FC044D89-0FF3-441D-B35D-87454A693C16}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorOpenRoads", "ConnectorMicroStation\ConnectorOpenRoads\ConnectorOpenRoads.csproj", "{57BF94A8-8F73-4D1A-91D2-B10CC64178B6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterMicroStation", "ConverterMicroStation", "{B9D189AE-B0AE-49BC-A0A5-ACF87C849615}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterMicroStation", "Objects\Converters\ConverterMicroStation\ConverterMicroStation\ConverterMicroStation.csproj", "{BD2287FA-8272-4D14-9A26-889092AEBFE0}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterMicroStationOpenShared", "Objects\Converters\ConverterMicroStation\ConverterMicroStationOpenShared\ConverterMicroStationOpenShared.shproj", "{208B25E4-2D0E-4534-B197-4C5C96CC53CE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterOpenBuildings", "Objects\Converters\ConverterMicroStation\ConverterOpenBuildings\ConverterOpenBuildings.csproj", "{FFBC46F0-1874-42E9-8270-BBF962EF32D1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterOpenRail", "Objects\Converters\ConverterMicroStation\ConverterOpenRail\ConverterOpenRail.csproj", "{C96D609B-B210-401C-8FFC-5D17F324E9E8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterOpenRoads", "Objects\Converters\ConverterMicroStation\ConverterOpenRoads\ConverterOpenRoads.csproj", "{CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2021", "Objects\Converters\ConverterRevit\ConverterRevit2021\ConverterRevit2021.csproj", "{D1D0F986-12BE-4FD5-8925-C96B1F86427D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2022", "Objects\Converters\ConverterRevit\ConverterRevit2022\ConverterRevit2022.csproj", "{76937388-BC9E-4083-9D6E-59CC627E3804}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2020", "Objects\Converters\ConverterRevit\ConverterRevit2020\ConverterRevit2020.csproj", "{C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorRevit2022", "ConnectorRevit\ConnectorRevit2022\ConnectorRevit2022.csproj", "{DFDFDBB8-018B-4DCB-A012-54227ABF53A7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TeklaStructures", "TeklaStructures", "{18C8730C-0173-4987-9416-46F86EC20541}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConnectorTeklaStructuresShared", "ConnectorTeklaStructures\ConnectorTeklaStructuresShared\ConnectorTeklaStructuresShared.shproj", "{28E2EA7F-FFD1-4E13-9165-0243B5AC82F5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorTeklaStructures2021", "ConnectorTeklaStructures\ConnectorTeklaStructures2021\ConnectorTeklaStructures2021.csproj", "{3AF1EF30-0906-4926-A02C-4E3AD666352A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorTeklaStructures2020", "ConnectorTeklaStructures\ConnectorTeklaStructures2020\ConnectorTeklaStructures2020.csproj", "{67157264-AAA5-46A8-A38B-16254B49B892}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterTeklaStructures", "ConverterTeklaStructures", "{5D988C50-8E85-402A-9020-A4AB0565F0C9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterTeklaStructures2020", "Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructures2020\ConverterTeklaStructures2020.csproj", "{02A24DD8-E0CA-4657-BAA7-B033A4563709}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterTeklaStructures2021", "Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructures2021\ConverterTeklaStructures2021.csproj", "{C1D53822-B11F-4772-996E-1E6D485E0702}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterTeklaStructuresShared", "Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructuresShared\ConverterTeklaStructuresShared.shproj", "{7FFDAB72-145D-4490-9892-FAC5F1D72B17}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterCSI", "ConverterCSI", "{7E702AF1-3A72-454D-BE04-D2AF4EF1304B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterCSIBridge", "Objects\Converters\ConverterCSI\ConverterCSIBridge\ConverterCSIBridge.csproj", "{21223BA5-C6E8-405D-B581-106C4726EDC0}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterCSIShared", "Objects\Converters\ConverterCSI\ConverterCSIShared\ConverterCSIShared.shproj", "{5BBDE14E-50F8-4D6E-8E35-747667AD4A09}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterETABS", "Objects\Converters\ConverterCSI\ConverterETABS\ConverterETABS.csproj", "{D06F557C-452A-4BBE-9B79-A10DB03F3832}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterSAFE", "Objects\Converters\ConverterCSI\ConverterSAFE\ConverterSAFE.csproj", "{442116F3-0F4A-4136-894E-FF5F4295500B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterSAP2000", "Objects\Converters\ConverterCSI\ConverterSAP2000\ConverterSAP2000.csproj", "{907AED7A-719B-4157-8CC9-D21CB26E9243}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CSI", "CSI", "{11C013F3-2583-4292-938B-707294DAECE1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorCSIBridge", "ConnectorCSI\ConnectorCSIBridge\ConnectorCSIBridge.csproj", "{23BE6E54-96C1-4373-89F3-E18A1C9807FD}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConnectorCSIShared", "ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.shproj", "{61374CD0-E774-4DCD-BFAB-6356B0931283}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorETABS", "ConnectorCSI\ConnectorETABS\ConnectorETABS.csproj", "{81299D15-5788-414D-A962-1A568C251323}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorSAFE", "ConnectorCSI\ConnectorSAFE\ConnectorSAFE.csproj", "{9D188843-8841-4A76-A844-EFBE8E32EE05}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorSAP2000", "ConnectorCSI\ConnectorSAP2000\ConnectorSAP2000.csproj", "{31E0C098-6813-4571-AB96-A245E0FC1C23}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DriverCSharp", "ConnectorCSI\DriverCSharp\DriverCSharp.csproj", "{C091E499-597D-4077-B83F-08E069091090}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DriverPluginCSharp", "ConnectorCSI\DriverPluginCSharp\DriverPluginCSharp.csproj", "{C59939F6-D383-44E3-A7EF-4E160E3DFB73}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorRevit2023", "ConnectorRevit\ConnectorRevit2023\ConnectorRevit2023.csproj", "{586A5A37-93F6-427E-8DF8-C10DB4D6822A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ArchiCAD", "ArchiCAD", "{DF1B3505-793C-4073-975B-04C81CC3CDC4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorArchicad", "ConnectorArchicad\ConnectorArchicad\ConnectorArchicad.csproj", "{D163D710-B946-4D50-8833-BD8B9941033A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorAutocad2023", "ConnectorAutocadCivil\ConnectorAutocad2023\ConnectorAutocad2023.csproj", "{F4BFB155-7BA9-4E46-8240-9C825060C904}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorCivil2023", "ConnectorAutocadCivil\ConnectorCivil2023\ConnectorCivil2023.csproj", "{2639E37D-80D3-415A-B4D1-20D7F321F27F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DesktopUI", "DesktopUI", "{59764E6A-8366-4AF3-AB0A-BA28BD0318FA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopUI2.Launcher", "DesktopUI2\DesktopUI2.Launcher\DesktopUI2.Launcher.csproj", "{BDBB6B68-1DF8-4C41-B4AD-55037F81543D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopUI2.WPF", "DesktopUI2\DesktopUI2.WPF\DesktopUI2.WPF.csproj", "{3D066801-9823-48ED-8FB3-273B53825808}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterDxf", "Objects\Converters\ConverterDxf\ConverterDxf\ConverterDxf.csproj", "{B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaHwndHost", "DesktopUI2\AvaloniaHwndHost\AvaloniaHwndHost.csproj", "{050E8BAB-773E-4FE6-BD38-F71CF65FC257}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterDynamoRevit2021", "Objects\Converters\ConverterDynamo\ConverterDynamoRevit2021\ConverterDynamoRevit2021.csproj", "{4DBF45EE-3BCE-47F4-B399-963B36A31951}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterDynamoRevit2022", "Objects\Converters\ConverterDynamo\ConverterDynamoRevit2022\ConverterDynamoRevit2022.csproj", "{AAA05C3D-856D-4F22-971E-5E3F066D0EAE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterDynamoRevit2023", "Objects\Converters\ConverterDynamo\ConverterDynamoRevit2023\ConverterDynamoRevit2023.csproj", "{67A463D3-E98B-4B16-B069-D7BBB05386A1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2023", "Objects\Converters\ConverterRevit\ConverterRevit2023\ConverterRevit2023.csproj", "{CC790553-8088-41A9-83CD-B29F7141F408}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Objects\Tests\Tests.csproj", "{4BED69F3-5835-4224-BD2C-50FA65C11395}" +EndProject +Global + GlobalSection(SharedMSBuildProjectFiles) = preSolution + Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructuresShared\ConverterTeklaStructuresShared.projitems*{02a24dd8-e0ca-4657-baa7-b033a4563709}*SharedItemsImports = 5 + ConnectorMicroStation\ConnectorMicroStationOpenShared\ConnectorMicroStationOpenShared.projitems*{0420d74a-2997-4b92-844b-c3769deaa1ad}*SharedItemsImports = 4 + Objects\Converters\ConverterMicroStation\ConverterMicroStationOpenShared\ConverterMicroStationOpenShared.projitems*{208b25e4-2d0e-4534-b197-4c5c96cc53ce}*SharedItemsImports = 13 + Objects\Converters\ConverterCSI\ConverterCSIShared\ConverterCSIShared.projitems*{21223ba5-c6e8-405d-b581-106c4726edc0}*SharedItemsImports = 5 + ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.projitems*{23be6e54-96c1-4373-89f3-e18a1c9807fd}*SharedItemsImports = 4 + ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{2639e37d-80d3-415a-b4d1-20d7f321f27f}*SharedItemsImports = 4 + Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{26eca1be-f5b2-4a41-9658-46a4a917bfe6}*SharedItemsImports = 5 + ConnectorRevit\ConnectorRevit\ConnectorRevit.projitems*{27a79aca-7ea8-4406-8bb8-216578cc3ab7}*SharedItemsImports = 4 + ConnectorTeklaStructures\ConnectorTeklaStructuresShared\ConnectorTeklaStructuresShared.projitems*{28e2ea7f-ffd1-4e13-9165-0243b5ac82f5}*SharedItemsImports = 13 + Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{2d0f9f8a-2e89-4780-978a-cd92d6d7b843}*SharedItemsImports = 13 + Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{2dcd648d-dca5-4d2a-8b14-ad2cb85d24b0}*SharedItemsImports = 13 + ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.projitems*{31e0c098-6813-4571-ab96-a245e0fc1c23}*SharedItemsImports = 4 + ConnectorMicroStation\ConnectorMicroStationOpenShared\ConnectorMicroStationOpenShared.projitems*{372d9f0f-ede9-4050-bf8c-758911c5c2e0}*SharedItemsImports = 13 + ConnectorTeklaStructures\ConnectorTeklaStructuresShared\ConnectorTeklaStructuresShared.projitems*{3af1ef30-0906-4926-a02c-4e3ad666352a}*SharedItemsImports = 4 + Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructuresShared\ConverterTeklaStructuresShared.projitems*{3af1ef30-0906-4926-a02c-4e3ad666352a}*SharedItemsImports = 4 + Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{3cdef4cc-2cfa-4939-8427-3ed00fa9db55}*SharedItemsImports = 5 + Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.projitems*{3df12639-78b6-41b3-a046-a675035369be}*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 = 4 + Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.projitems*{4dbf45ee-3bce-47f4-b399-963b36a31951}*SharedItemsImports = 5 + Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{4dbf45ee-3bce-47f4-b399-963b36a31951}*SharedItemsImports = 5 + Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{50bc1552-3e7e-4c77-ac3a-aa7c572dfe09}*SharedItemsImports = 5 + ConnectorMicroStation\ConnectorMicroStationOpenShared\ConnectorMicroStationOpenShared.projitems*{57bf94a8-8f73-4d1a-91d2-b10cc64178b6}*SharedItemsImports = 4 + ConnectorRevit\ConnectorRevit\ConnectorRevit.projitems*{586a5a37-93f6-427e-8df8-c10db4d6822a}*SharedItemsImports = 4 + ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{58a88f1a-7489-46d2-949d-2fc3f68c8d84}*SharedItemsImports = 4 + Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.projitems*{5bab09dc-b0fc-4004-9fd5-6496a9634071}*SharedItemsImports = 13 + Objects\Converters\ConverterCSI\ConverterCSIShared\ConverterCSIShared.projitems*{5bbde14e-50f8-4d6e-8e35-747667ad4a09}*SharedItemsImports = 13 + ConnectorRevit\ConnectorRevit\ConnectorRevit.projitems*{5fd0d810-03e9-4fd2-93e4-b1b51e5d82c5}*SharedItemsImports = 13 + ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.projitems*{61374cd0-e774-4dcd-bfab-6356b0931283}*SharedItemsImports = 13 + ConnectorTeklaStructures\ConnectorTeklaStructuresShared\ConnectorTeklaStructuresShared.projitems*{67157264-aaa5-46a8-a38b-16254b49b892}*SharedItemsImports = 4 + Objects\Converters\ConverterTeklaStructures\ConverterTeklaStructuresShared\ConverterTeklaStructuresShared.projitems*{67157264-aaa5-46a8-a38b-16254b49b892}*SharedItemsImports = 4 + 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 + Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{76937388-bc9e-4083-9d6e-59cc627e3804}*SharedItemsImports = 5 + Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{78573adc-87a5-489f-8134-fb4a435a05f0}*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 = 4 + Objects\Converters\ConverterAutocadCivil\ConverterAutocadCivilShared\ConverterAutocadCivilShared.projitems*{8581b4bb-a8bc-4328-99fe-d18615af2554}*SharedItemsImports = 5 + ConnectorRevit\ConnectorRevit\ConnectorRevit.projitems*{8a53b084-20d8-48f6-9591-9d53cfa74130}*SharedItemsImports = 4 + Objects\Converters\ConverterCSI\ConverterCSIShared\ConverterCSIShared.projitems*{907aed7a-719b-4157-8cc9-d21cb26e9243}*SharedItemsImports = 5 + Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{98136bfc-a71b-48ad-b0d2-8a5a07fd3d6d}*SharedItemsImports = 5 + ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.projitems*{9d188843-8841-4a76-a844-efbe8e32ee05}*SharedItemsImports = 4 + ConnectorMicroStation\ConnectorMicroStationOpenShared\ConnectorMicroStationOpenShared.projitems*{a3a0ee09-6055-4009-ab8e-13fbc1a403a9}*SharedItemsImports = 4 + ConnectorRhino\ConnectorRhino\ConnectorRhinoShared\ConnectorRhinoShared.projitems*{a64acbf9-db82-4839-af99-57ed2e7989f4}*SharedItemsImports = 5 + Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.projitems*{aaa05c3d-856d-4f22-971e-5e3f066d0eae}*SharedItemsImports = 5 + Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{aaa05c3d-856d-4f22-971e-5e3f066d0eae}*SharedItemsImports = 5 + Objects\Converters\ConverterDynamo\ConverterDynamoShared\ConverterDynamoShared.projitems*{aacd5d91-99f1-4e69-b23b-e25239e5fb59}*SharedItemsImports = 5 + Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{aacd5d91-99f1-4e69-b23b-e25239e5fb59}*SharedItemsImports = 5 + ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{ad10c167-937f-4706-9eb5-c99f86c35e8f}*SharedItemsImports = 4 + ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{b47492d9-2eda-4016-a930-7fa708c85c3d}*SharedItemsImports = 13 + 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 + Objects\Converters\ConverterMicroStation\ConverterMicroStationOpenShared\ConverterMicroStationOpenShared.projitems*{bd2287fa-8272-4d14-9a26-889092aebfe0}*SharedItemsImports = 5 + ConnectorCSI\ConnectorCSIShared\ConnectorCSIShared.projitems*{c091e499-597d-4077-b83f-08e069091090}*SharedItemsImports = 4 + 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 + Objects\Converters\ConverterMicroStation\ConverterMicroStationOpenShared\ConverterMicroStationOpenShared.projitems*{c96d609b-b210-401c-8ffc-5d17f324e9e8}*SharedItemsImports = 5 + Objects\Converters\ConverterMicroStation\ConverterMicroStationOpenShared\ConverterMicroStationOpenShared.projitems*{cc10bbc6-09da-4bbb-ae92-3f6097a022f1}*SharedItemsImports = 5 + Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{cc790553-8088-41a9-83cd-b29f7141f408}*SharedItemsImports = 5 + Objects\Converters\ConverterCSI\ConverterCSIShared\ConverterCSIShared.projitems*{d06f557c-452a-4bbe-9b79-a10db03f3832}*SharedItemsImports = 5 + Objects\Converters\ConverterRevit\ConverterRevitShared\ConverterRevitShared.projitems*{d1d0f986-12be-4fd5-8925-c96b1f86427d}*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 + ConnectorRevit\ConnectorRevit\ConnectorRevit.projitems*{dfdfdbb8-018b-4dcb-a012-54227abf53a7}*SharedItemsImports = 4 + ConnectorRevit\ConnectorRevit\ConnectorRevit.projitems*{ef418256-8118-47b4-8386-a945946fb92d}*SharedItemsImports = 4 + ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{f4bfb155-7ba9-4e46-8240-9c825060c904}*SharedItemsImports = 4 + ConnectorMicroStation\ConnectorMicroStationOpenShared\ConnectorMicroStationOpenShared.projitems*{fc044d89-0ff3-441d-b35d-87454a693c16}*SharedItemsImports = 4 + ConnectorAutocadCivil\ConnectorAutocadCivil\ConnectorAutocadCivilShared.projitems*{ff1793e1-77f5-4a92-b3f2-6d8b104e479b}*SharedItemsImports = 4 + Objects\Converters\ConverterMicroStation\ConverterMicroStationOpenShared\ConverterMicroStationOpenShared.projitems*{ffbc46f0-1874-42e9-8270-bbf962ef32d1}*SharedItemsImports = 5 + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Debug|x64.ActiveCfg = Debug|Any CPU + {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Debug|x64.Build.0 = Debug|Any CPU + {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Release|Any CPU.Build.0 = Release|Any CPU + {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Release|x64.ActiveCfg = Release|Any CPU + {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F}.Release|x64.Build.0 = Release|Any CPU + {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Debug|x64.ActiveCfg = Debug|Any CPU + {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Debug|x64.Build.0 = Debug|Any CPU + {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Release|Any CPU.Build.0 = Release|Any CPU + {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Release|x64.ActiveCfg = Release|Any CPU + {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A}.Release|x64.Build.0 = Release|Any CPU + {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Debug|x64.ActiveCfg = Debug|Any CPU + {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Debug|x64.Build.0 = Debug|Any CPU + {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Release|Any CPU.Build.0 = Release|Any CPU + {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Release|x64.ActiveCfg = Release|Any CPU + {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906}.Release|x64.Build.0 = Release|Any CPU + {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug|Any CPU.Build.0 = Debug|Any CPU + {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug|x64.ActiveCfg = Debug|Any CPU + {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug|x64.Build.0 = Debug|Any CPU + {109B3382-634B-408A-8A5C-4CD09CB92641}.Release|Any CPU.ActiveCfg = Release|Any CPU + {109B3382-634B-408A-8A5C-4CD09CB92641}.Release|Any CPU.Build.0 = Release|Any CPU + {109B3382-634B-408A-8A5C-4CD09CB92641}.Release|x64.ActiveCfg = Release|Any CPU + {109B3382-634B-408A-8A5C-4CD09CB92641}.Release|x64.Build.0 = Release|Any CPU + {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Debug|x64.ActiveCfg = Debug|x64 + {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Debug|x64.Build.0 = Debug|x64 + {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Release|Any CPU.Build.0 = Release|Any CPU + {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Release|x64.ActiveCfg = Release|x64 + {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Release|x64.Build.0 = Release|x64 + {60BE029E-1F31-4473-8B68-A745A43AF179}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60BE029E-1F31-4473-8B68-A745A43AF179}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60BE029E-1F31-4473-8B68-A745A43AF179}.Debug|x64.ActiveCfg = Debug|Any CPU + {60BE029E-1F31-4473-8B68-A745A43AF179}.Debug|x64.Build.0 = Debug|Any CPU + {60BE029E-1F31-4473-8B68-A745A43AF179}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60BE029E-1F31-4473-8B68-A745A43AF179}.Release|Any CPU.Build.0 = Release|Any CPU + {60BE029E-1F31-4473-8B68-A745A43AF179}.Release|x64.ActiveCfg = Release|Any CPU + {60BE029E-1F31-4473-8B68-A745A43AF179}.Release|x64.Build.0 = Release|Any CPU + {A2C8730A-B605-483E-914E-61F3ED7954D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2C8730A-B605-483E-914E-61F3ED7954D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2C8730A-B605-483E-914E-61F3ED7954D9}.Debug|x64.ActiveCfg = Debug|Any CPU + {A2C8730A-B605-483E-914E-61F3ED7954D9}.Debug|x64.Build.0 = Debug|Any CPU + {A2C8730A-B605-483E-914E-61F3ED7954D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2C8730A-B605-483E-914E-61F3ED7954D9}.Release|Any CPU.Build.0 = Release|Any CPU + {A2C8730A-B605-483E-914E-61F3ED7954D9}.Release|x64.ActiveCfg = Release|Any CPU + {A2C8730A-B605-483E-914E-61F3ED7954D9}.Release|x64.Build.0 = Release|Any CPU + {8BBED205-C34E-4226-8757-0B576132D2BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BBED205-C34E-4226-8757-0B576132D2BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BBED205-C34E-4226-8757-0B576132D2BC}.Debug|x64.ActiveCfg = Debug|Any CPU + {8BBED205-C34E-4226-8757-0B576132D2BC}.Debug|x64.Build.0 = Debug|Any CPU + {8BBED205-C34E-4226-8757-0B576132D2BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BBED205-C34E-4226-8757-0B576132D2BC}.Release|Any CPU.Build.0 = Release|Any CPU + {8BBED205-C34E-4226-8757-0B576132D2BC}.Release|x64.ActiveCfg = Release|Any CPU + {8BBED205-C34E-4226-8757-0B576132D2BC}.Release|x64.Build.0 = Release|Any CPU + {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Debug|x64.ActiveCfg = Debug|Any CPU + {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Debug|x64.Build.0 = Debug|Any CPU + {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Release|Any CPU.Build.0 = Release|Any CPU + {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Release|x64.ActiveCfg = Release|Any CPU + {8FA5494A-D651-4C80-9B69-EB1808CF64F8}.Release|x64.Build.0 = 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 + {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug|x64.Build.0 = Debug|Any CPU + {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release|Any CPU.Build.0 = Release|Any CPU + {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release|x64.ActiveCfg = Release|Any CPU + {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release|x64.Build.0 = Release|Any CPU + {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Debug|x64.ActiveCfg = Debug|Any CPU + {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Debug|x64.Build.0 = Debug|Any CPU + {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Release|Any CPU.Build.0 = Release|Any CPU + {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Release|x64.ActiveCfg = Release|Any CPU + {AACD5D91-99F1-4E69-B23B-E25239E5FB59}.Release|x64.Build.0 = Release|Any CPU + {3DF12639-78B6-41B3-A046-A675035369BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DF12639-78B6-41B3-A046-A675035369BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DF12639-78B6-41B3-A046-A675035369BE}.Debug|x64.ActiveCfg = Debug|Any CPU + {3DF12639-78B6-41B3-A046-A675035369BE}.Debug|x64.Build.0 = Debug|Any CPU + {3DF12639-78B6-41B3-A046-A675035369BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DF12639-78B6-41B3-A046-A675035369BE}.Release|Any CPU.Build.0 = Release|Any CPU + {3DF12639-78B6-41B3-A046-A675035369BE}.Release|x64.ActiveCfg = Release|Any CPU + {3DF12639-78B6-41B3-A046-A675035369BE}.Release|x64.Build.0 = Release|Any CPU + {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Debug|Any CPU.Build.0 = Debug|Any CPU + {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Debug|x64.ActiveCfg = Debug|Any CPU + {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Debug|x64.Build.0 = Debug|Any CPU + {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Release|Any CPU.ActiveCfg = Release|Any CPU + {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Release|Any CPU.Build.0 = Release|Any CPU + {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Release|x64.ActiveCfg = Release|Any CPU + {58A88F1A-7489-46D2-949D-2FC3F68C8D84}.Release|x64.Build.0 = Release|Any CPU + {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Debug|x64.ActiveCfg = Debug|Any CPU + {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Debug|x64.Build.0 = Debug|Any CPU + {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Release|Any CPU.Build.0 = Release|Any CPU + {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Release|x64.ActiveCfg = Release|Any CPU + {AD10C167-937F-4706-9EB5-C99F86C35E8F}.Release|x64.Build.0 = Release|Any CPU + {78573ADC-87A5-489F-8134-FB4A435A05F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78573ADC-87A5-489F-8134-FB4A435A05F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78573ADC-87A5-489F-8134-FB4A435A05F0}.Debug|x64.ActiveCfg = Debug|Any CPU + {78573ADC-87A5-489F-8134-FB4A435A05F0}.Debug|x64.Build.0 = Debug|Any CPU + {78573ADC-87A5-489F-8134-FB4A435A05F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78573ADC-87A5-489F-8134-FB4A435A05F0}.Release|Any CPU.Build.0 = Release|Any CPU + {78573ADC-87A5-489F-8134-FB4A435A05F0}.Release|x64.ActiveCfg = Release|Any CPU + {78573ADC-87A5-489F-8134-FB4A435A05F0}.Release|x64.Build.0 = Release|Any CPU + {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Debug|x64.ActiveCfg = Debug|Any CPU + {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Debug|x64.Build.0 = Debug|Any CPU + {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Release|Any CPU.Build.0 = Release|Any CPU + {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Release|x64.ActiveCfg = Release|Any CPU + {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE}.Release|x64.Build.0 = Release|Any CPU + {8A53B084-20D8-48F6-9591-9D53CFA74130}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A53B084-20D8-48F6-9591-9D53CFA74130}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A53B084-20D8-48F6-9591-9D53CFA74130}.Debug|x64.ActiveCfg = Debug|Any CPU + {8A53B084-20D8-48F6-9591-9D53CFA74130}.Debug|x64.Build.0 = Debug|Any CPU + {8A53B084-20D8-48F6-9591-9D53CFA74130}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A53B084-20D8-48F6-9591-9D53CFA74130}.Release|Any CPU.Build.0 = Release|Any CPU + {8A53B084-20D8-48F6-9591-9D53CFA74130}.Release|x64.ActiveCfg = Release|Any CPU + {8A53B084-20D8-48F6-9591-9D53CFA74130}.Release|x64.Build.0 = Release|Any CPU + {EF418256-8118-47B4-8386-A945946FB92D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF418256-8118-47B4-8386-A945946FB92D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF418256-8118-47B4-8386-A945946FB92D}.Debug|x64.ActiveCfg = Debug|Any CPU + {EF418256-8118-47B4-8386-A945946FB92D}.Debug|x64.Build.0 = Debug|Any CPU + {EF418256-8118-47B4-8386-A945946FB92D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF418256-8118-47B4-8386-A945946FB92D}.Release|Any CPU.Build.0 = Release|Any CPU + {EF418256-8118-47B4-8386-A945946FB92D}.Release|x64.ActiveCfg = Release|Any CPU + {EF418256-8118-47B4-8386-A945946FB92D}.Release|x64.Build.0 = Release|Any CPU + {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Debug|x64.ActiveCfg = Debug|Any CPU + {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Debug|x64.Build.0 = Debug|Any CPU + {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Release|Any CPU.Build.0 = Release|Any CPU + {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Release|x64.ActiveCfg = Release|Any CPU + {FF1793E1-77F5-4A92-B3F2-6D8B104E479B}.Release|x64.Build.0 = Release|Any CPU + {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Debug|Any CPU.Build.0 = Debug|Any CPU + {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Debug|x64.ActiveCfg = Debug|Any CPU + {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Debug|x64.Build.0 = Debug|Any CPU + {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Release|Any CPU.ActiveCfg = Release|Any CPU + {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Release|Any CPU.Build.0 = Release|Any CPU + {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Release|x64.ActiveCfg = Release|Any CPU + {464F2220-D7D9-4D8C-BB3D-B93A1C603469}.Release|x64.Build.0 = Release|Any CPU + {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Debug|x64.ActiveCfg = Debug|Any CPU + {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Debug|x64.Build.0 = Debug|Any CPU + {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Release|Any CPU.Build.0 = Release|Any CPU + {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Release|x64.ActiveCfg = Release|Any CPU + {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09}.Release|x64.Build.0 = Release|Any CPU + {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Debug|x64.ActiveCfg = Debug|Any CPU + {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Debug|x64.Build.0 = Debug|Any CPU + {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Release|Any CPU.Build.0 = Release|Any CPU + {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Release|x64.ActiveCfg = Release|Any CPU + {8581B4BB-A8BC-4328-99FE-D18615AF2554}.Release|x64.Build.0 = Release|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|x64.ActiveCfg = Debug|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|x64.Build.0 = Debug|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|Any CPU.Build.0 = Release|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|x64.ActiveCfg = Release|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|x64.Build.0 = Release|Any CPU + {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Debug|x64.ActiveCfg = Debug|Any CPU + {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Debug|x64.Build.0 = Debug|Any CPU + {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Release|Any CPU.Build.0 = Release|Any CPU + {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Release|x64.ActiveCfg = Release|Any CPU + {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55}.Release|x64.Build.0 = Release|Any CPU + {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Debug|x64.ActiveCfg = Debug|Any CPU + {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Debug|x64.Build.0 = Debug|Any CPU + {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Release|Any CPU.Build.0 = Release|Any CPU + {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Release|x64.ActiveCfg = Release|Any CPU + {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6}.Release|x64.Build.0 = Release|Any CPU + {D648BB69-B992-4D34-906E-7A547374B86C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D648BB69-B992-4D34-906E-7A547374B86C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D648BB69-B992-4D34-906E-7A547374B86C}.Debug|x64.ActiveCfg = Debug|Any CPU + {D648BB69-B992-4D34-906E-7A547374B86C}.Debug|x64.Build.0 = Debug|Any CPU + {D648BB69-B992-4D34-906E-7A547374B86C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D648BB69-B992-4D34-906E-7A547374B86C}.Release|Any CPU.Build.0 = Release|Any CPU + {D648BB69-B992-4D34-906E-7A547374B86C}.Release|x64.ActiveCfg = Release|Any CPU + {D648BB69-B992-4D34-906E-7A547374B86C}.Release|x64.Build.0 = Release|Any CPU + {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug|x64.ActiveCfg = Debug|Any CPU + {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug|x64.Build.0 = Debug|Any CPU + {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release|Any CPU.Build.0 = Release|Any CPU + {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release|x64.ActiveCfg = Release|Any CPU + {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release|x64.Build.0 = Release|Any CPU + {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Debug|x64.ActiveCfg = Debug|Any CPU + {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Debug|x64.Build.0 = Debug|Any CPU + {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Release|Any CPU.Build.0 = Release|Any CPU + {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Release|x64.ActiveCfg = Release|Any CPU + {6185B1A1-0A12-44B1-8AC5-0ED48147FB21}.Release|x64.Build.0 = Release|Any CPU + {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Debug|x64.ActiveCfg = Debug|Any CPU + {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Debug|x64.Build.0 = Debug|Any CPU + {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Release|Any CPU.Build.0 = Release|Any CPU + {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Release|x64.ActiveCfg = Release|Any CPU + {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE}.Release|x64.Build.0 = Release|Any CPU + {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Debug|x64.ActiveCfg = Debug|Any CPU + {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Debug|x64.Build.0 = Debug|Any CPU + {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Release|Any CPU.Build.0 = Release|Any CPU + {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Release|x64.ActiveCfg = Release|Any CPU + {0420D74A-2997-4B92-844B-C3769DEAA1AD}.Release|x64.Build.0 = Release|Any CPU + {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Debug|x64.ActiveCfg = Debug|Any CPU + {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Debug|x64.Build.0 = Debug|Any CPU + {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Release|Any CPU.Build.0 = Release|Any CPU + {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Release|x64.ActiveCfg = Release|Any CPU + {A3A0EE09-6055-4009-AB8E-13FBC1A403A9}.Release|x64.Build.0 = Release|Any CPU + {FC044D89-0FF3-441D-B35D-87454A693C16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC044D89-0FF3-441D-B35D-87454A693C16}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC044D89-0FF3-441D-B35D-87454A693C16}.Debug|x64.ActiveCfg = Debug|Any CPU + {FC044D89-0FF3-441D-B35D-87454A693C16}.Debug|x64.Build.0 = Debug|Any CPU + {FC044D89-0FF3-441D-B35D-87454A693C16}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC044D89-0FF3-441D-B35D-87454A693C16}.Release|Any CPU.Build.0 = Release|Any CPU + {FC044D89-0FF3-441D-B35D-87454A693C16}.Release|x64.ActiveCfg = Release|Any CPU + {FC044D89-0FF3-441D-B35D-87454A693C16}.Release|x64.Build.0 = Release|Any CPU + {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Debug|x64.ActiveCfg = Debug|Any CPU + {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Debug|x64.Build.0 = Debug|Any CPU + {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Release|Any CPU.Build.0 = Release|Any CPU + {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Release|x64.ActiveCfg = Release|Any CPU + {57BF94A8-8F73-4D1A-91D2-B10CC64178B6}.Release|x64.Build.0 = Release|Any CPU + {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Debug|x64.ActiveCfg = Debug|Any CPU + {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Debug|x64.Build.0 = Debug|Any CPU + {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Release|Any CPU.Build.0 = Release|Any CPU + {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Release|x64.ActiveCfg = Release|Any CPU + {BD2287FA-8272-4D14-9A26-889092AEBFE0}.Release|x64.Build.0 = Release|Any CPU + {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Debug|x64.ActiveCfg = Debug|Any CPU + {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Debug|x64.Build.0 = Debug|Any CPU + {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Release|Any CPU.Build.0 = Release|Any CPU + {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Release|x64.ActiveCfg = Release|Any CPU + {FFBC46F0-1874-42E9-8270-BBF962EF32D1}.Release|x64.Build.0 = Release|Any CPU + {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Debug|x64.ActiveCfg = Debug|Any CPU + {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Debug|x64.Build.0 = Debug|Any CPU + {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Release|Any CPU.Build.0 = Release|Any CPU + {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Release|x64.ActiveCfg = Release|Any CPU + {C96D609B-B210-401C-8FFC-5D17F324E9E8}.Release|x64.Build.0 = Release|Any CPU + {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Debug|x64.ActiveCfg = Debug|Any CPU + {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Debug|x64.Build.0 = Debug|Any CPU + {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Release|Any CPU.Build.0 = Release|Any CPU + {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Release|x64.ActiveCfg = Release|Any CPU + {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1}.Release|x64.Build.0 = Release|Any CPU + {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Debug|x64.ActiveCfg = Debug|Any CPU + {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Debug|x64.Build.0 = Debug|Any CPU + {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Release|Any CPU.Build.0 = Release|Any CPU + {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Release|x64.ActiveCfg = Release|Any CPU + {D1D0F986-12BE-4FD5-8925-C96B1F86427D}.Release|x64.Build.0 = Release|Any CPU + {76937388-BC9E-4083-9D6E-59CC627E3804}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76937388-BC9E-4083-9D6E-59CC627E3804}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76937388-BC9E-4083-9D6E-59CC627E3804}.Debug|x64.ActiveCfg = Debug|Any CPU + {76937388-BC9E-4083-9D6E-59CC627E3804}.Debug|x64.Build.0 = Debug|Any CPU + {76937388-BC9E-4083-9D6E-59CC627E3804}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76937388-BC9E-4083-9D6E-59CC627E3804}.Release|Any CPU.Build.0 = Release|Any CPU + {76937388-BC9E-4083-9D6E-59CC627E3804}.Release|x64.ActiveCfg = Release|Any CPU + {76937388-BC9E-4083-9D6E-59CC627E3804}.Release|x64.Build.0 = Release|Any CPU + {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Debug|x64.ActiveCfg = Debug|Any CPU + {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Debug|x64.Build.0 = Debug|Any CPU + {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Release|Any CPU.Build.0 = Release|Any CPU + {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Release|x64.ActiveCfg = Release|Any CPU + {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809}.Release|x64.Build.0 = Release|Any CPU + {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Debug|x64.ActiveCfg = Debug|Any CPU + {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Debug|x64.Build.0 = Debug|Any CPU + {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Release|Any CPU.Build.0 = Release|Any CPU + {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Release|x64.ActiveCfg = Release|Any CPU + {DFDFDBB8-018B-4DCB-A012-54227ABF53A7}.Release|x64.Build.0 = Release|Any CPU + {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Debug|x64.ActiveCfg = Debug|Any CPU + {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Debug|x64.Build.0 = Debug|Any CPU + {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Release|Any CPU.Build.0 = Release|Any CPU + {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Release|x64.ActiveCfg = Release|Any CPU + {3AF1EF30-0906-4926-A02C-4E3AD666352A}.Release|x64.Build.0 = Release|Any CPU + {67157264-AAA5-46A8-A38B-16254B49B892}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {67157264-AAA5-46A8-A38B-16254B49B892}.Debug|Any CPU.Build.0 = Debug|Any CPU + {67157264-AAA5-46A8-A38B-16254B49B892}.Debug|x64.ActiveCfg = Debug|Any CPU + {67157264-AAA5-46A8-A38B-16254B49B892}.Debug|x64.Build.0 = Debug|Any CPU + {67157264-AAA5-46A8-A38B-16254B49B892}.Release|Any CPU.ActiveCfg = Release|Any CPU + {67157264-AAA5-46A8-A38B-16254B49B892}.Release|Any CPU.Build.0 = Release|Any CPU + {67157264-AAA5-46A8-A38B-16254B49B892}.Release|x64.ActiveCfg = Release|Any CPU + {67157264-AAA5-46A8-A38B-16254B49B892}.Release|x64.Build.0 = Release|Any CPU + {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Debug|x64.ActiveCfg = Debug|Any CPU + {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Debug|x64.Build.0 = Debug|Any CPU + {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Release|Any CPU.Build.0 = Release|Any CPU + {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Release|x64.ActiveCfg = Release|Any CPU + {02A24DD8-E0CA-4657-BAA7-B033A4563709}.Release|x64.Build.0 = Release|Any CPU + {C1D53822-B11F-4772-996E-1E6D485E0702}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1D53822-B11F-4772-996E-1E6D485E0702}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1D53822-B11F-4772-996E-1E6D485E0702}.Debug|x64.ActiveCfg = Debug|Any CPU + {C1D53822-B11F-4772-996E-1E6D485E0702}.Debug|x64.Build.0 = Debug|Any CPU + {C1D53822-B11F-4772-996E-1E6D485E0702}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1D53822-B11F-4772-996E-1E6D485E0702}.Release|Any CPU.Build.0 = Release|Any CPU + {C1D53822-B11F-4772-996E-1E6D485E0702}.Release|x64.ActiveCfg = Release|Any CPU + {C1D53822-B11F-4772-996E-1E6D485E0702}.Release|x64.Build.0 = Release|Any CPU + {21223BA5-C6E8-405D-B581-106C4726EDC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21223BA5-C6E8-405D-B581-106C4726EDC0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21223BA5-C6E8-405D-B581-106C4726EDC0}.Debug|x64.ActiveCfg = Debug|Any CPU + {21223BA5-C6E8-405D-B581-106C4726EDC0}.Debug|x64.Build.0 = Debug|Any CPU + {21223BA5-C6E8-405D-B581-106C4726EDC0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21223BA5-C6E8-405D-B581-106C4726EDC0}.Release|Any CPU.Build.0 = Release|Any CPU + {21223BA5-C6E8-405D-B581-106C4726EDC0}.Release|x64.ActiveCfg = Release|Any CPU + {21223BA5-C6E8-405D-B581-106C4726EDC0}.Release|x64.Build.0 = Release|Any CPU + {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Debug|x64.ActiveCfg = Debug|Any CPU + {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Debug|x64.Build.0 = Debug|Any CPU + {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Release|Any CPU.Build.0 = Release|Any CPU + {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Release|x64.ActiveCfg = Release|Any CPU + {D06F557C-452A-4BBE-9B79-A10DB03F3832}.Release|x64.Build.0 = Release|Any CPU + {442116F3-0F4A-4136-894E-FF5F4295500B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {442116F3-0F4A-4136-894E-FF5F4295500B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {442116F3-0F4A-4136-894E-FF5F4295500B}.Debug|x64.ActiveCfg = Debug|Any CPU + {442116F3-0F4A-4136-894E-FF5F4295500B}.Debug|x64.Build.0 = Debug|Any CPU + {442116F3-0F4A-4136-894E-FF5F4295500B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {442116F3-0F4A-4136-894E-FF5F4295500B}.Release|Any CPU.Build.0 = Release|Any CPU + {442116F3-0F4A-4136-894E-FF5F4295500B}.Release|x64.ActiveCfg = Release|Any CPU + {442116F3-0F4A-4136-894E-FF5F4295500B}.Release|x64.Build.0 = Release|Any CPU + {907AED7A-719B-4157-8CC9-D21CB26E9243}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {907AED7A-719B-4157-8CC9-D21CB26E9243}.Debug|Any CPU.Build.0 = Debug|Any CPU + {907AED7A-719B-4157-8CC9-D21CB26E9243}.Debug|x64.ActiveCfg = Debug|Any CPU + {907AED7A-719B-4157-8CC9-D21CB26E9243}.Debug|x64.Build.0 = Debug|Any CPU + {907AED7A-719B-4157-8CC9-D21CB26E9243}.Release|Any CPU.ActiveCfg = Release|Any CPU + {907AED7A-719B-4157-8CC9-D21CB26E9243}.Release|Any CPU.Build.0 = Release|Any CPU + {907AED7A-719B-4157-8CC9-D21CB26E9243}.Release|x64.ActiveCfg = Release|Any CPU + {907AED7A-719B-4157-8CC9-D21CB26E9243}.Release|x64.Build.0 = Release|Any CPU + {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Debug|x64.ActiveCfg = Debug|Any CPU + {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Debug|x64.Build.0 = Debug|Any CPU + {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Release|Any CPU.Build.0 = Release|Any CPU + {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Release|x64.ActiveCfg = Release|Any CPU + {23BE6E54-96C1-4373-89F3-E18A1C9807FD}.Release|x64.Build.0 = Release|Any CPU + {81299D15-5788-414D-A962-1A568C251323}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81299D15-5788-414D-A962-1A568C251323}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81299D15-5788-414D-A962-1A568C251323}.Debug|x64.ActiveCfg = Debug|Any CPU + {81299D15-5788-414D-A962-1A568C251323}.Debug|x64.Build.0 = Debug|Any CPU + {81299D15-5788-414D-A962-1A568C251323}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81299D15-5788-414D-A962-1A568C251323}.Release|Any CPU.Build.0 = Release|Any CPU + {81299D15-5788-414D-A962-1A568C251323}.Release|x64.ActiveCfg = Release|Any CPU + {81299D15-5788-414D-A962-1A568C251323}.Release|x64.Build.0 = Release|Any CPU + {9D188843-8841-4A76-A844-EFBE8E32EE05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9D188843-8841-4A76-A844-EFBE8E32EE05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9D188843-8841-4A76-A844-EFBE8E32EE05}.Debug|x64.ActiveCfg = Debug|Any CPU + {9D188843-8841-4A76-A844-EFBE8E32EE05}.Debug|x64.Build.0 = Debug|Any CPU + {9D188843-8841-4A76-A844-EFBE8E32EE05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9D188843-8841-4A76-A844-EFBE8E32EE05}.Release|Any CPU.Build.0 = Release|Any CPU + {9D188843-8841-4A76-A844-EFBE8E32EE05}.Release|x64.ActiveCfg = Release|Any CPU + {9D188843-8841-4A76-A844-EFBE8E32EE05}.Release|x64.Build.0 = Release|Any CPU + {31E0C098-6813-4571-AB96-A245E0FC1C23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31E0C098-6813-4571-AB96-A245E0FC1C23}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31E0C098-6813-4571-AB96-A245E0FC1C23}.Debug|x64.ActiveCfg = Debug|Any CPU + {31E0C098-6813-4571-AB96-A245E0FC1C23}.Debug|x64.Build.0 = Debug|Any CPU + {31E0C098-6813-4571-AB96-A245E0FC1C23}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31E0C098-6813-4571-AB96-A245E0FC1C23}.Release|Any CPU.Build.0 = Release|Any CPU + {31E0C098-6813-4571-AB96-A245E0FC1C23}.Release|x64.ActiveCfg = Release|Any CPU + {31E0C098-6813-4571-AB96-A245E0FC1C23}.Release|x64.Build.0 = Release|Any CPU + {C091E499-597D-4077-B83F-08E069091090}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C091E499-597D-4077-B83F-08E069091090}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C091E499-597D-4077-B83F-08E069091090}.Debug|x64.ActiveCfg = Debug|Any CPU + {C091E499-597D-4077-B83F-08E069091090}.Debug|x64.Build.0 = Debug|Any CPU + {C091E499-597D-4077-B83F-08E069091090}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C091E499-597D-4077-B83F-08E069091090}.Release|Any CPU.Build.0 = Release|Any CPU + {C091E499-597D-4077-B83F-08E069091090}.Release|x64.ActiveCfg = Release|Any CPU + {C091E499-597D-4077-B83F-08E069091090}.Release|x64.Build.0 = Release|Any CPU + {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Debug|x64.ActiveCfg = Debug|Any CPU + {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Debug|x64.Build.0 = Debug|Any CPU + {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Release|Any CPU.Build.0 = Release|Any CPU + {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Release|x64.ActiveCfg = Release|Any CPU + {C59939F6-D383-44E3-A7EF-4E160E3DFB73}.Release|x64.Build.0 = Release|Any CPU + {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Debug|x64.ActiveCfg = Debug|Any CPU + {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Debug|x64.Build.0 = Debug|Any CPU + {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Release|Any CPU.Build.0 = Release|Any CPU + {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Release|x64.ActiveCfg = Release|Any CPU + {586A5A37-93F6-427E-8DF8-C10DB4D6822A}.Release|x64.Build.0 = Release|Any CPU + {D163D710-B946-4D50-8833-BD8B9941033A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D163D710-B946-4D50-8833-BD8B9941033A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D163D710-B946-4D50-8833-BD8B9941033A}.Debug|x64.ActiveCfg = Debug|Any CPU + {D163D710-B946-4D50-8833-BD8B9941033A}.Debug|x64.Build.0 = Debug|Any CPU + {D163D710-B946-4D50-8833-BD8B9941033A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D163D710-B946-4D50-8833-BD8B9941033A}.Release|Any CPU.Build.0 = Release|Any CPU + {D163D710-B946-4D50-8833-BD8B9941033A}.Release|x64.ActiveCfg = Release|Any CPU + {D163D710-B946-4D50-8833-BD8B9941033A}.Release|x64.Build.0 = Release|Any CPU + {F4BFB155-7BA9-4E46-8240-9C825060C904}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4BFB155-7BA9-4E46-8240-9C825060C904}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4BFB155-7BA9-4E46-8240-9C825060C904}.Debug|x64.ActiveCfg = Debug|Any CPU + {F4BFB155-7BA9-4E46-8240-9C825060C904}.Debug|x64.Build.0 = Debug|Any CPU + {F4BFB155-7BA9-4E46-8240-9C825060C904}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4BFB155-7BA9-4E46-8240-9C825060C904}.Release|Any CPU.Build.0 = Release|Any CPU + {F4BFB155-7BA9-4E46-8240-9C825060C904}.Release|x64.ActiveCfg = Release|Any CPU + {F4BFB155-7BA9-4E46-8240-9C825060C904}.Release|x64.Build.0 = Release|Any CPU + {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Debug|x64.ActiveCfg = Debug|Any CPU + {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Debug|x64.Build.0 = Debug|Any CPU + {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Release|Any CPU.Build.0 = Release|Any CPU + {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Release|x64.ActiveCfg = Release|Any CPU + {2639E37D-80D3-415A-B4D1-20D7F321F27F}.Release|x64.Build.0 = Release|Any CPU + {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Debug|x64.ActiveCfg = Debug|Any CPU + {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Debug|x64.Build.0 = Debug|Any CPU + {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Release|Any CPU.Build.0 = Release|Any CPU + {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Release|x64.ActiveCfg = Release|Any CPU + {BDBB6B68-1DF8-4C41-B4AD-55037F81543D}.Release|x64.Build.0 = Release|Any CPU + {3D066801-9823-48ED-8FB3-273B53825808}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D066801-9823-48ED-8FB3-273B53825808}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D066801-9823-48ED-8FB3-273B53825808}.Debug|x64.ActiveCfg = Debug|Any CPU + {3D066801-9823-48ED-8FB3-273B53825808}.Debug|x64.Build.0 = Debug|Any CPU + {3D066801-9823-48ED-8FB3-273B53825808}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D066801-9823-48ED-8FB3-273B53825808}.Release|Any CPU.Build.0 = Release|Any CPU + {3D066801-9823-48ED-8FB3-273B53825808}.Release|x64.ActiveCfg = Release|Any CPU + {3D066801-9823-48ED-8FB3-273B53825808}.Release|x64.Build.0 = Release|Any CPU + {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Debug|x64.ActiveCfg = Debug|Any CPU + {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Debug|x64.Build.0 = Debug|Any CPU + {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Release|Any CPU.Build.0 = Release|Any CPU + {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Release|x64.ActiveCfg = Release|Any CPU + {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F}.Release|x64.Build.0 = Release|Any CPU + {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Debug|Any CPU.Build.0 = Debug|Any CPU + {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Debug|x64.ActiveCfg = Debug|Any CPU + {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Debug|x64.Build.0 = Debug|Any CPU + {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Release|Any CPU.ActiveCfg = Release|Any CPU + {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Release|Any CPU.Build.0 = Release|Any CPU + {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Release|x64.ActiveCfg = Release|Any CPU + {050E8BAB-773E-4FE6-BD38-F71CF65FC257}.Release|x64.Build.0 = Release|Any CPU + {4DBF45EE-3BCE-47F4-B399-963B36A31951}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4DBF45EE-3BCE-47F4-B399-963B36A31951}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4DBF45EE-3BCE-47F4-B399-963B36A31951}.Debug|x64.ActiveCfg = Debug|Any CPU + {4DBF45EE-3BCE-47F4-B399-963B36A31951}.Debug|x64.Build.0 = Debug|Any CPU + {4DBF45EE-3BCE-47F4-B399-963B36A31951}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4DBF45EE-3BCE-47F4-B399-963B36A31951}.Release|Any CPU.Build.0 = Release|Any CPU + {4DBF45EE-3BCE-47F4-B399-963B36A31951}.Release|x64.ActiveCfg = Release|Any CPU + {4DBF45EE-3BCE-47F4-B399-963B36A31951}.Release|x64.Build.0 = Release|Any CPU + {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Debug|x64.ActiveCfg = Debug|Any CPU + {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Debug|x64.Build.0 = Debug|Any CPU + {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Release|Any CPU.Build.0 = Release|Any CPU + {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Release|x64.ActiveCfg = Release|Any CPU + {AAA05C3D-856D-4F22-971E-5E3F066D0EAE}.Release|x64.Build.0 = Release|Any CPU + {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Debug|x64.ActiveCfg = Debug|Any CPU + {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Debug|x64.Build.0 = Debug|Any CPU + {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Release|Any CPU.Build.0 = Release|Any CPU + {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Release|x64.ActiveCfg = Release|Any CPU + {67A463D3-E98B-4B16-B069-D7BBB05386A1}.Release|x64.Build.0 = Release|Any CPU + {CC790553-8088-41A9-83CD-B29F7141F408}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CC790553-8088-41A9-83CD-B29F7141F408}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CC790553-8088-41A9-83CD-B29F7141F408}.Debug|x64.ActiveCfg = Debug|Any CPU + {CC790553-8088-41A9-83CD-B29F7141F408}.Debug|x64.Build.0 = Debug|Any CPU + {CC790553-8088-41A9-83CD-B29F7141F408}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CC790553-8088-41A9-83CD-B29F7141F408}.Release|Any CPU.Build.0 = Release|Any CPU + {CC790553-8088-41A9-83CD-B29F7141F408}.Release|x64.ActiveCfg = Release|Any CPU + {CC790553-8088-41A9-83CD-B29F7141F408}.Release|x64.Build.0 = Release|Any CPU + {4BED69F3-5835-4224-BD2C-50FA65C11395}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BED69F3-5835-4224-BD2C-50FA65C11395}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BED69F3-5835-4224-BD2C-50FA65C11395}.Debug|x64.ActiveCfg = Debug|Any CPU + {4BED69F3-5835-4224-BD2C-50FA65C11395}.Debug|x64.Build.0 = Debug|Any CPU + {4BED69F3-5835-4224-BD2C-50FA65C11395}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BED69F3-5835-4224-BD2C-50FA65C11395}.Release|Any CPU.Build.0 = Release|Any CPU + {4BED69F3-5835-4224-BD2C-50FA65C11395}.Release|x64.ActiveCfg = Release|Any CPU + {4BED69F3-5835-4224-BD2C-50FA65C11395}.Release|x64.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {CB6F8F77-4487-469B-896A-1EEEC4451A04} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} + {61A977EE-10DA-47F2-8BD9-3CC7BBB6904F} = {CB6F8F77-4487-469B-896A-1EEEC4451A04} + {B494FD40-5E59-4D5E-87B0-80AAC8BDCD5A} = {CB6F8F77-4487-469B-896A-1EEEC4451A04} + {8F4D907B-A2DF-4B40-8EA6-D79F9ED6D906} = {CB6F8F77-4487-469B-896A-1EEEC4451A04} + {109B3382-634B-408A-8A5C-4CD09CB92641} = {9461B162-AD2F-4F60-BCE4-E72DCEFD4608} + {A97C3046-2D55-4C49-AB40-A3C2194B82FA} = {59764E6A-8366-4AF3-AB0A-BA28BD0318FA} + {60BE029E-1F31-4473-8B68-A745A43AF179} = {E3916A0F-68D5-4C84-ACAE-41547F75E454} + {8BBED205-C34E-4226-8757-0B576132D2BC} = {DC6BE73D-4D60-4F90-9778-D44151CD6F98} + {8FA5494A-D651-4C80-9B69-EB1808CF64F8} = {DC6BE73D-4D60-4F90-9778-D44151CD6F98} + {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} = {E3916A0F-68D5-4C84-ACAE-41547F75E454} + {42A86931-7497-4A34-B2FD-060231CD0A8F} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} + {27A79ACA-7EA8-4406-8BB8-216578CC3AB7} = {42A86931-7497-4A34-B2FD-060231CD0A8F} + {5FD0D810-03E9-4FD2-93E4-B1B51E5D82C5} = {42A86931-7497-4A34-B2FD-060231CD0A8F} + {925C0BF6-A0B1-4699-9C4B-078E01D652CC} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} + {2DCD648D-DCA5-4D2A-8B14-AD2CB85D24B0} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} + {F0DD5C38-083B-43EA-8654-96247028D8AC} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} + {5BAB09DC-B0FC-4004-9FD5-6496A9634071} = {F0DD5C38-083B-43EA-8654-96247028D8AC} + {AACD5D91-99F1-4E69-B23B-E25239E5FB59} = {F0DD5C38-083B-43EA-8654-96247028D8AC} + {3DF12639-78B6-41B3-A046-A675035369BE} = {F0DD5C38-083B-43EA-8654-96247028D8AC} + {890F3257-FCC2-4ED8-9180-22B3641B494C} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} + {58A88F1A-7489-46D2-949D-2FC3F68C8D84} = {890F3257-FCC2-4ED8-9180-22B3641B494C} + {B47492D9-2EDA-4016-A930-7FA708C85C3D} = {890F3257-FCC2-4ED8-9180-22B3641B494C} + {AD10C167-937F-4706-9EB5-C99F86C35E8F} = {890F3257-FCC2-4ED8-9180-22B3641B494C} + {BE521908-7944-46F3-98BF-B47D34509934} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} + {78573ADC-87A5-489F-8134-FB4A435A05F0} = {BE521908-7944-46F3-98BF-B47D34509934} + {2D0F9F8A-2E89-4780-978A-CD92D6D7B843} = {BE521908-7944-46F3-98BF-B47D34509934} + {D9F443B5-C55B-4AD8-9C70-BC3D2BE781BE} = {BE521908-7944-46F3-98BF-B47D34509934} + {8A53B084-20D8-48F6-9591-9D53CFA74130} = {42A86931-7497-4A34-B2FD-060231CD0A8F} + {EF418256-8118-47B4-8386-A945946FB92D} = {42A86931-7497-4A34-B2FD-060231CD0A8F} + {FF1793E1-77F5-4A92-B3F2-6D8B104E479B} = {890F3257-FCC2-4ED8-9180-22B3641B494C} + {464F2220-D7D9-4D8C-BB3D-B93A1C603469} = {890F3257-FCC2-4ED8-9180-22B3641B494C} + {50BC1552-3E7E-4C77-AC3A-AA7C572DFE09} = {BE521908-7944-46F3-98BF-B47D34509934} + {8581B4BB-A8BC-4328-99FE-D18615AF2554} = {BE521908-7944-46F3-98BF-B47D34509934} + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067} = {9461B162-AD2F-4F60-BCE4-E72DCEFD4608} + {1FD850CA-A8D7-41DC-9316-B315800437E1} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} + {3CDEF4CC-2CFA-4939-8427-3ED00FA9DB55} = {1FD850CA-A8D7-41DC-9316-B315800437E1} + {26ECA1BE-F5B2-4A41-9658-46A4A917BFE6} = {1FD850CA-A8D7-41DC-9316-B315800437E1} + {B74CB8C1-187B-46A6-B20B-92B8C129F3EE} = {1FD850CA-A8D7-41DC-9316-B315800437E1} + {9461B162-AD2F-4F60-BCE4-E72DCEFD4608} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} + {E94E7327-5A9B-48EE-93CC-E9E9A5B980F1} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} + {D648BB69-B992-4D34-906E-7A547374B86C} = {E94E7327-5A9B-48EE-93CC-E9E9A5B980F1} + {A64ACBF9-DB82-4839-AF99-57ED2E7989F4} = {E94E7327-5A9B-48EE-93CC-E9E9A5B980F1} + {B7376EC8-5D3E-47D2-96A7-748552F14C39} = {E94E7327-5A9B-48EE-93CC-E9E9A5B980F1} + {6185B1A1-0A12-44B1-8AC5-0ED48147FB21} = {85C30B55-E486-49AE-B3F5-6A196D14CCB8} + {85C30B55-E486-49AE-B3F5-6A196D14CCB8} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} + {AC0613B5-BD0E-4DA3-B704-7BE70D17AFFE} = {59764E6A-8366-4AF3-AB0A-BA28BD0318FA} + {0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} + {0420D74A-2997-4B92-844B-C3769DEAA1AD} = {0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17} + {372D9F0F-EDE9-4050-BF8C-758911C5C2E0} = {0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17} + {A3A0EE09-6055-4009-AB8E-13FBC1A403A9} = {0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17} + {FC044D89-0FF3-441D-B35D-87454A693C16} = {0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17} + {57BF94A8-8F73-4D1A-91D2-B10CC64178B6} = {0DA15CBF-A6C5-4EEC-BDDE-9FA403E20A17} + {B9D189AE-B0AE-49BC-A0A5-ACF87C849615} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} + {BD2287FA-8272-4D14-9A26-889092AEBFE0} = {B9D189AE-B0AE-49BC-A0A5-ACF87C849615} + {208B25E4-2D0E-4534-B197-4C5C96CC53CE} = {B9D189AE-B0AE-49BC-A0A5-ACF87C849615} + {FFBC46F0-1874-42E9-8270-BBF962EF32D1} = {B9D189AE-B0AE-49BC-A0A5-ACF87C849615} + {C96D609B-B210-401C-8FFC-5D17F324E9E8} = {B9D189AE-B0AE-49BC-A0A5-ACF87C849615} + {CC10BBC6-09DA-4BBB-AE92-3F6097A022F1} = {B9D189AE-B0AE-49BC-A0A5-ACF87C849615} + {D1D0F986-12BE-4FD5-8925-C96B1F86427D} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} + {76937388-BC9E-4083-9D6E-59CC627E3804} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} + {C21A6553-B4EC-4EC3-B82A-C7A83CFFB809} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} + {DFDFDBB8-018B-4DCB-A012-54227ABF53A7} = {42A86931-7497-4A34-B2FD-060231CD0A8F} + {18C8730C-0173-4987-9416-46F86EC20541} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} + {28E2EA7F-FFD1-4E13-9165-0243B5AC82F5} = {18C8730C-0173-4987-9416-46F86EC20541} + {3AF1EF30-0906-4926-A02C-4E3AD666352A} = {18C8730C-0173-4987-9416-46F86EC20541} + {67157264-AAA5-46A8-A38B-16254B49B892} = {18C8730C-0173-4987-9416-46F86EC20541} + {5D988C50-8E85-402A-9020-A4AB0565F0C9} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} + {02A24DD8-E0CA-4657-BAA7-B033A4563709} = {5D988C50-8E85-402A-9020-A4AB0565F0C9} + {C1D53822-B11F-4772-996E-1E6D485E0702} = {5D988C50-8E85-402A-9020-A4AB0565F0C9} + {7FFDAB72-145D-4490-9892-FAC5F1D72B17} = {5D988C50-8E85-402A-9020-A4AB0565F0C9} + {7E702AF1-3A72-454D-BE04-D2AF4EF1304B} = {4DE5ED81-2A55-4C23-A05F-3C9B9B06F85D} + {21223BA5-C6E8-405D-B581-106C4726EDC0} = {7E702AF1-3A72-454D-BE04-D2AF4EF1304B} + {5BBDE14E-50F8-4D6E-8E35-747667AD4A09} = {7E702AF1-3A72-454D-BE04-D2AF4EF1304B} + {D06F557C-452A-4BBE-9B79-A10DB03F3832} = {7E702AF1-3A72-454D-BE04-D2AF4EF1304B} + {442116F3-0F4A-4136-894E-FF5F4295500B} = {7E702AF1-3A72-454D-BE04-D2AF4EF1304B} + {907AED7A-719B-4157-8CC9-D21CB26E9243} = {7E702AF1-3A72-454D-BE04-D2AF4EF1304B} + {11C013F3-2583-4292-938B-707294DAECE1} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} + {23BE6E54-96C1-4373-89F3-E18A1C9807FD} = {11C013F3-2583-4292-938B-707294DAECE1} + {61374CD0-E774-4DCD-BFAB-6356B0931283} = {11C013F3-2583-4292-938B-707294DAECE1} + {81299D15-5788-414D-A962-1A568C251323} = {11C013F3-2583-4292-938B-707294DAECE1} + {9D188843-8841-4A76-A844-EFBE8E32EE05} = {11C013F3-2583-4292-938B-707294DAECE1} + {31E0C098-6813-4571-AB96-A245E0FC1C23} = {11C013F3-2583-4292-938B-707294DAECE1} + {C091E499-597D-4077-B83F-08E069091090} = {11C013F3-2583-4292-938B-707294DAECE1} + {C59939F6-D383-44E3-A7EF-4E160E3DFB73} = {11C013F3-2583-4292-938B-707294DAECE1} + {586A5A37-93F6-427E-8DF8-C10DB4D6822A} = {42A86931-7497-4A34-B2FD-060231CD0A8F} + {DF1B3505-793C-4073-975B-04C81CC3CDC4} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} + {D163D710-B946-4D50-8833-BD8B9941033A} = {DF1B3505-793C-4073-975B-04C81CC3CDC4} + {F4BFB155-7BA9-4E46-8240-9C825060C904} = {890F3257-FCC2-4ED8-9180-22B3641B494C} + {2639E37D-80D3-415A-B4D1-20D7F321F27F} = {890F3257-FCC2-4ED8-9180-22B3641B494C} + {59764E6A-8366-4AF3-AB0A-BA28BD0318FA} = {DD7DA7E3-FBB7-4216-852B-A4A5BF3AB9AB} + {BDBB6B68-1DF8-4C41-B4AD-55037F81543D} = {59764E6A-8366-4AF3-AB0A-BA28BD0318FA} + {3D066801-9823-48ED-8FB3-273B53825808} = {59764E6A-8366-4AF3-AB0A-BA28BD0318FA} + {B5A7A2E9-B46A-44FC-9D6F-42BE2773C51F} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} + {050E8BAB-773E-4FE6-BD38-F71CF65FC257} = {59764E6A-8366-4AF3-AB0A-BA28BD0318FA} + {AAA05C3D-856D-4F22-971E-5E3F066D0EAE} = {F0DD5C38-083B-43EA-8654-96247028D8AC} + {67A463D3-E98B-4B16-B069-D7BBB05386A1} = {F0DD5C38-083B-43EA-8654-96247028D8AC} + {CC790553-8088-41A9-83CD-B29F7141F408} = {925C0BF6-A0B1-4699-9C4B-078E01D652CC} + {4BED69F3-5835-4224-BD2C-50FA65C11395} = {E3916A0F-68D5-4C84-ACAE-41547F75E454} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1D43D91B-4F01-4A78-8250-CC6F9BD93A14} + EndGlobalSection +EndGlobal diff --git a/ConnectorArchicad/AddOn/.vscode/tasks.json b/ConnectorArchicad/AddOn/.vscode/tasks.json index 1e9d8a7f49..c051ffa006 100644 --- a/ConnectorArchicad/AddOn/.vscode/tasks.json +++ b/ConnectorArchicad/AddOn/.vscode/tasks.json @@ -1,24 +1,22 @@ { "version": "2.0.0", - "tasks": [ + "tasks": [ { - "label": "cmake build AddOn", // not tested on mac - may not work! + "label": "Speckle Archicad cmake 26", "type": "shell", "command": "cmake -G 'Xcode' -DCMAKE_OSX_ARCHITECTURES=x86_64 -DAC_API_DEVKIT_DIR='../../../../../../Dependencies/SDKs/ARCHICAD/APIDevKit25/macOS' ..", "windows": { - "command": "cmake -B ./Build/ -DAC_API_DEVKIT_DIR='C:/Program Files/GRAPHISOFT/API Development Kit 25.3002'" + "command": "if (!(Test-Path Build.Win.x64.26 -PathType Container)) {New-Item -ItemType Directory -Force -Path Build.Win.x64.26} ; cmake -B ./Build.Win.x64.26 -A \"x64\" -T \"v142\" -DAC_API_DEVKIT_DIR='../../../../../Dependencies/SDKs/Archicad/APIDevKit26/Win' -DAC_MDID_DEV=860313445 -DAC_MDID_LOC=2324968578" }, "problemMatcher": [] }, { - "label": "msbuild AddOn", - "type": "shell", - "command": "'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe' 'Build/Speckle Connector.sln' -property:Configuration=Release" - }, - { - "label": "copy AddOn build files (win)", - "type": "shell", - "command": "cp -a ./Build/Debug/. 'C:/Program Files/GRAPHISOFT/ARCHICAD 25/Add-Ons/ConnectorArchicad'", + "label": "Speckle Archicad build 26", + "type": "process", + "windows": { + "command": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\MSBuild.exe", + "args": [".\\Build.Win.x64.26\\Speckle Connector.sln", "-property:Configuration=Release"] + }, "problemMatcher": [] }, ] diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/AddOnMain.cpp b/ConnectorArchicad/AddOn/Sources/AddOn/AddOnMain.cpp index eb445f177f..94f0338fad 100644 --- a/ConnectorArchicad/AddOn/Sources/AddOn/AddOnMain.cpp +++ b/ConnectorArchicad/AddOn/Sources/AddOn/AddOnMain.cpp @@ -7,14 +7,19 @@ #include "FileSystem.hpp" #include "Commands/GetModelForElements.hpp" -#include "Commands/GetSelectedApplicationIds.hpp" +#include "Commands/GetElementIds.hpp" #include "Commands/GetElementTypes.hpp" #include "Commands/GetWallData.hpp" +#include "Commands/GetDoorData.hpp" +#include "Commands/GetWindowData.hpp" #include "Commands/GetBeamData.hpp" #include "Commands/GetSlabData.hpp" #include "Commands/GetRoomData.hpp" #include "Commands/GetProjectInfo.hpp" +#include "Commands/GetSubElementInfo.hpp" #include "Commands/CreateWall.hpp" +#include "Commands/CreateDoor.hpp" +#include "Commands/CreateWindow.hpp" #include "Commands/CreateBeam.hpp" #include "Commands/CreateSlab.hpp" #include "Commands/CreateZone.hpp" @@ -75,7 +80,6 @@ class AvaloniaProcessManager { #endif static const char* FolderName = "ConnectorArchicad"; - IO::Location ownFileLoc; auto err = ACAPI_GetOwnLocation(&ownFileLoc); if (err != NoError) { @@ -158,14 +162,19 @@ static GSErrCode MenuCommandHandler(const API_MenuParams* menuParams) static GSErrCode RegisterAddOnCommands() { CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); - CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); + CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); + CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); + CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); + CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); + CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); + CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); CHECKERROR(ACAPI_Install_AddOnCommandHandler(NewOwned())); diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateDoor.cpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateDoor.cpp new file mode 100644 index 0000000000..1d7e22d8f0 --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateDoor.cpp @@ -0,0 +1,184 @@ +#include "CreateDoor.hpp" +#include "CreateOpeningBase.hpp" +#include "ResourceIds.hpp" +#include "ObjectState.hpp" +#include "Utility.hpp" +#include "Objects/Point.hpp" +#include "RealNumber.h" +#include "DGModule.hpp" +#include "FieldNames.hpp" +#include "TypeNameTables.hpp" +#include "Database.hpp" + + +namespace AddOnCommands +{ + static GSErrCode CreateNewDoor(API_Element& element, API_ElementMemo& memo, API_SubElement& marker) + { + return ACAPI_Element_CreateExt(&element, &memo, 1UL, &marker); + } + + static GSErrCode ModifyExistingDoor(API_Element& door, API_Element& mask) + { + return ACAPI_Element_ChangeExt(&door, &mask, nullptr, 0, 0, nullptr, true, 0); + } + + static GSErrCode GetDoorFromObjectState(const GS::ObjectState& currentDoor, API_Element& element, API_Element& wallMask, API_ElementMemo& memo, API_SubElement& marker) { + GSErrCode err = NoError; + +#ifdef ServerMainVers_2600 + element.header.type = API_DoorID; +#else + element.header.typeID = API_DoorID; +#endif + + marker.subType = APISubElement_MainMarker; + + err = ACAPI_Element_GetDefaultsExt(&element, &memo, 1UL, &marker); + if (err != NoError) { + ACAPI_DisposeElemMemoHdls(&memo); + ACAPI_DisposeElemMemoHdls(&marker.memo); + return err; + } + +#pragma region ReviewRequired + API_LibPart libPart; + BNZeroMemory (&libPart, sizeof (API_LibPart)); + +#ifdef ServerMainVers_2600 + err = ACAPI_Goodies_GetMarkerParent (element.header.type, libPart); +#else + err = ACAPI_Goodies (APIAny_GetMarkerParentID, &element.header.typeID, &libPart); +#endif + + if (err != NoError) { + ACAPI_DisposeElemMemoHdls (&memo); + ACAPI_DisposeElemMemoHdls (&marker.memo); + return err; + } + + err = ACAPI_LibPart_Search (&libPart, false, true); + if (err != NoError) { + ACAPI_DisposeElemMemoHdls (&memo); + ACAPI_DisposeElemMemoHdls (&marker.memo); + return err; + } + + delete libPart.location; + + double a = .0, b = .0; + Int32 addParNum = 0; + API_AddParType **markAddPars; + err = ACAPI_LibPart_GetParams (libPart.index, &a, &b, &addParNum, &markAddPars); + if (err != NoError) { + ACAPI_DisposeElemMemoHdls (&memo); + ACAPI_DisposeElemMemoHdls (&marker.memo); + return err; + } + + marker.memo.params = markAddPars; +#pragma endregion + + GS::UniString guidString; + currentDoor.Get(ApplicationIdFieldName, guidString); + element.header.guid = APIGuidFromString(guidString.ToCStr()); + + err = GetOpeningBaseFromObjectState (currentDoor, element.door, wallMask); + + return err; + } + + GS::String CreateDoor::GetName() const + { + return CreateDoorCommandName; + } + + GS::ObjectState CreateDoor::Execute(const GS::ObjectState& parameters, GS::ProcessControl& /*processControl*/) const + { + GS::ObjectState result; + GSErrCode err = NoError; + + GS::Array subElements; + parameters.Get(SubElementsFieldName, subElements); + + const auto& listAdder = result.AddList(ApplicationIdsFieldName); + + ACAPI_CallUndoableCommand("CreateSpeckleDoor", [&]() -> GSErrCode + { + Utility::Database db; + db.SwitchToFloorPlan(); + + for (const GS::ObjectState& subElement : subElements) + { + API_Element element = {}; + + // Check if parent exist + GS::UniString parentGuidString; + subElement.Get(ParentElementIdFieldName, parentGuidString); + API_Guid parentGuid = APIGuidFromString(parentGuidString.ToCStr()); + +#ifdef ServerMainVers_2600 + element.header.type = API_WallID; +#else + element.header.typeID = API_WallID; +#endif + element.header.guid = parentGuid; + err = ACAPI_Element_Get(&element); + if (err != NoError) { + continue; + } + + if (element.wall.type == APIWtyp_Poly) { + continue; + } + + // This may be redundant, should test it + bool parentExists = Utility::ElementExists(parentGuid); + bool isParentWall = Utility::GetElementType(parentGuid) == API_WallID; + if (!(parentExists && isParentWall)) { + continue; + } + + // Subelement + API_ElementMemo memo = {}; + API_SubElement marker = {}; + API_Element elementMask = {}; + + // Try to get subelement + err = GetDoorFromObjectState(subElement, element, elementMask, memo, marker); + if (err != NoError) { + ACAPI_DisposeElemMemoHdls(&memo); + ACAPI_DisposeElemMemoHdls(&marker.memo); + continue; + } + + // Set its parent + element.door.owner = parentGuid; + + // Update or create + bool doorExists = Utility::ElementExists(element.header.guid); + if (doorExists) + { + err = ModifyExistingDoor(element, elementMask); + } + else + { + err = CreateNewDoor(element, memo, marker); + } + + if (err == NoError) + { + GS::UniString elemId = APIGuidToString(element.header.guid); + listAdder(elemId); + } + + err = ACAPI_DisposeElemMemoHdls(&memo); + err = ACAPI_DisposeElemMemoHdls(&marker.memo); + } + + return NoError; + }); + + return result; + } +} diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateDoor.hpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateDoor.hpp new file mode 100644 index 0000000000..5f6f9f1109 --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateDoor.hpp @@ -0,0 +1,23 @@ +#ifndef CREATE_DOOR_HPP +#define CREATE_DOOR_HPP + +#include "BaseCommand.hpp" + + +namespace AddOnCommands { + + + class CreateDoor : public BaseCommand { + public: + virtual GS::String GetName() const override; + virtual GS::ObjectState Execute(const GS::ObjectState& parameters, GS::ProcessControl& processControl) const override; +#ifdef ServerMainVers_2600 + virtual bool IsProcessWindowVisible() const override { return true; } +#endif + }; + + +} + + +#endif //#define CREATE_DOOR_HPP diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateOpeningBase.hpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateOpeningBase.hpp new file mode 100644 index 0000000000..113964930b --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateOpeningBase.hpp @@ -0,0 +1,123 @@ +#ifndef CREATE_OPENINGBASE_HPP +#define CREATE_OPENINGBASE_HPP + +// API +#include "APIEnvir.h" +#include "ACAPinc.h" + +#include "Objects/Point.hpp" +#include "FieldNames.hpp" +#include "TypeNameTables.hpp" + +// GSRoot +#include "ObjectState.hpp" + + +namespace AddOnCommands { + + +template +GSErrCode GetOpeningBaseFromObjectState (const GS::ObjectState& os, T& element, API_Element& mask) +{ + GSErrCode err = NoError; + + os.Get(OpeningBase::width, element.openingBase.width); + ACAPI_ELEMENT_MASK_SET(mask, T, openingBase.width); + + os.Get(OpeningBase::height, element.openingBase.height); + ACAPI_ELEMENT_MASK_SET(mask, T, openingBase.height); + + os.Get(OpeningBase::subFloorThickness, element.openingBase.subFloorThickness); + ACAPI_ELEMENT_MASK_SET(mask, T, openingBase.subFloorThickness); + + os.Get(OpeningBase::reflected, element.openingBase.reflected); + ACAPI_ELEMENT_MASK_SET(mask, T, openingBase.reflected); + + os.Get(OpeningBase::oSide, element.openingBase.oSide); + ACAPI_ELEMENT_MASK_SET(mask, T, openingBase.oSide); + + os.Get(OpeningBase::refSide, element.openingBase.refSide); + ACAPI_ELEMENT_MASK_SET(mask, T, openingBase.refSide); + + if (os.Contains(OpeningBase::buildingMaterial)) { + GS::UniString attrName; + os.Get(OpeningBase::buildingMaterial, attrName); + + if (!attrName.IsEmpty()) { + API_Attribute attrib; + BNZeroMemory(&attrib, sizeof(API_Attribute)); + attrib.header.typeID = API_BuildingMaterialID; + CHCopyC(attrName.ToCStr(), attrib.header.name); + err = ACAPI_Attribute_Get(&attrib); + + if (err == NoError) + element.openingBase.mat = attrib.header.index; + } + } + + if (os.Contains(OpeningBase::libraryPart)) { + GS::UniString libPartName; + os.Get(OpeningBase::libraryPart, libPartName); + + if (!libPartName.IsEmpty()) { + API_LibPart libPart; + BNZeroMemory (&libPart, sizeof (API_LibPart)); + GS::ucscpy (libPart.docu_UName, libPartName.ToUStr ()); + + err = ACAPI_LibPart_Search (&libPart, false, true); + if (err == NoError) + element.openingBase.libInd = libPart.index; + } + } + + os.Get(OpeningBase::revealDepthFromSide, element.revealDepthFromSide); + ACAPI_ELEMENT_MASK_SET(mask, T, revealDepthFromSide); + + os.Get(OpeningBase::jambDepthHead, element.jambDepthHead); + ACAPI_ELEMENT_MASK_SET(mask, T, jambDepthHead); + + os.Get(OpeningBase::jambDepth, element.jambDepth); + ACAPI_ELEMENT_MASK_SET(mask, T, jambDepth); + + os.Get(OpeningBase::jambDepth2, element.jambDepth2); + ACAPI_ELEMENT_MASK_SET(mask, T, jambDepth2); + + os.Get(OpeningBase::objLoc, element.objLoc); + ACAPI_ELEMENT_MASK_SET(mask, T, objLoc); + + os.Get(OpeningBase::lower, element.lower); + ACAPI_ELEMENT_MASK_SET(mask, T, lower); + + if (os.Contains(OpeningBase::directionType)) { + API_WindowDoorDirectionTypes realDirectionTypeName = API_WDAssociativeToWall; + GS::UniString directionTypeName; + os.Get(OpeningBase::directionType, directionTypeName); + + GS::Optional tmpDirectionTypeName = windowDoorDirectionTypeNames.FindValue(directionTypeName); + if (tmpDirectionTypeName.HasValue()) + realDirectionTypeName = tmpDirectionTypeName.Get(); + element.directionType = realDirectionTypeName; + ACAPI_ELEMENT_MASK_SET(mask, T, directionType); + } + + Objects::Point3D startPoint; + if (os.Contains(OpeningBase::startPoint)) + os.Get(OpeningBase::startPoint, startPoint); + element.startPoint = startPoint.ToAPI_Coord(); + ACAPI_ELEMENT_MASK_SET(mask, T, startPoint); + + Objects::Point3D dirVector; + if (os.Contains(OpeningBase::dirVector)) + os.Get(OpeningBase::dirVector, dirVector); + element.dirVector = dirVector.ToAPI_Coord(); + ACAPI_ELEMENT_MASK_SET(mask, T, dirVector); + + return err; +} + + + +} // namespace AddOnCommands + + +#endif // CREATE_OPENINGBASE_HPP diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateWall.cpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateWall.cpp index 480e37facf..2831911405 100644 --- a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateWall.cpp +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateWall.cpp @@ -191,6 +191,15 @@ namespace AddOnCommands if (os.Contains(Wall::InsideSlantAngleFieldName)) os.Get(Wall::InsideSlantAngleFieldName, element.wall.slantBeta); ACAPI_ELEMENT_MASK_SET(wallMask, API_WallType, slantBeta); + + // Door & window + if (os.Contains(Wall::HasDoorFieldName)) + os.Get(Wall::HasDoorFieldName, element.wall.hasDoor); + ACAPI_ELEMENT_MASK_SET(wallMask, API_WallType, hasDoor); + + if (os.Contains(Wall::HasWindowFieldName)) + os.Get(Wall::HasWindowFieldName, element.wall.hasWindow); + ACAPI_ELEMENT_MASK_SET(wallMask, API_WallType, hasWindow); return NoError; } diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateWindow.cpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateWindow.cpp new file mode 100644 index 0000000000..2524c0fb02 --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateWindow.cpp @@ -0,0 +1,182 @@ +#include "CreateWindow.hpp" +#include "CreateOpeningBase.hpp" +#include "ResourceIds.hpp" +#include "ObjectState.hpp" +#include "Utility.hpp" +#include "Objects/Point.hpp" +#include "RealNumber.h" +#include "DGModule.hpp" +#include "FieldNames.hpp" +#include "TypeNameTables.hpp" +#include "Database.hpp" + + +namespace AddOnCommands +{ + static GSErrCode CreateNewWindow(API_Element& element, API_ElementMemo& memo, API_SubElement& marker) + { + return ACAPI_Element_CreateExt(&element, &memo, 1UL, &marker); + } + + static GSErrCode ModifyExistingWindow(API_Element& Window, API_Element& mask) + { + return ACAPI_Element_ChangeExt(&Window, &mask, nullptr, 0, 0, nullptr, true, 0); + } + + static GSErrCode GetWindowFromObjectState(const GS::ObjectState& currentWindow, API_Element& element, API_Element& wallMask, API_ElementMemo& memo, API_SubElement& marker) { + GSErrCode err = NoError; + +#ifdef ServerMainVers_2600 + element.header.type = API_WindowID; +#else + element.header.typeID = API_WindowID; +#endif + marker.subType = APISubElement_MainMarker; + + err = ACAPI_Element_GetDefaultsExt(&element, &memo, 1UL, &marker); + if (err != NoError) { + ACAPI_DisposeElemMemoHdls(&memo); + ACAPI_DisposeElemMemoHdls(&marker.memo); + return err; + } + +#pragma region ReviewRequired + API_LibPart libPart; + BNZeroMemory(&libPart, sizeof(API_LibPart)); + +#ifdef ServerMainVers_2600 + err = ACAPI_Goodies_GetMarkerParent (element.header.type, libPart); +#else + err = ACAPI_Goodies (APIAny_GetMarkerParentID, &element.header.typeID, &libPart); +#endif + if (err != NoError) { + ACAPI_DisposeElemMemoHdls(&memo); + ACAPI_DisposeElemMemoHdls(&marker.memo); + return err; + } + + err = ACAPI_LibPart_Search(&libPart, false, true); + if (err != NoError) { + ACAPI_DisposeElemMemoHdls(&memo); + ACAPI_DisposeElemMemoHdls(&marker.memo); + return err; + } + + delete libPart.location; + + double a = .0, b = .0; + Int32 addParNum = 0; + API_AddParType** markAddPars; + err = ACAPI_LibPart_GetParams(libPart.index, &a, &b, &addParNum, &markAddPars); + if (err != NoError) { + ACAPI_DisposeElemMemoHdls(&memo); + ACAPI_DisposeElemMemoHdls(&marker.memo); + return err; + } + + marker.memo.params = markAddPars; +#pragma endregion + + GS::UniString guidString; + currentWindow.Get(ApplicationIdFieldName, guidString); + element.header.guid = APIGuidFromString(guidString.ToCStr()); + + err = GetOpeningBaseFromObjectState (currentWindow, element.window, wallMask); + + return err; + } + + GS::String CreateWindow::GetName() const + { + return CreateWindowCommandName; + } + + GS::ObjectState CreateWindow::Execute(const GS::ObjectState& parameters, GS::ProcessControl& /*processControl*/) const + { + GS::ObjectState result; + GSErrCode err = NoError; + + GS::Array subElements; + parameters.Get(SubElementsFieldName, subElements); + + const auto& listAdder = result.AddList(ApplicationIdsFieldName); + + ACAPI_CallUndoableCommand("CreateSpeckleWindow", [&]() -> GSErrCode + { + Utility::Database db; + db.SwitchToFloorPlan(); + + for (const GS::ObjectState& subElement : subElements) + { + API_Element element = {}; + + // Check if parent exist + GS::UniString parentGuidString; + subElement.Get(ParentElementIdFieldName, parentGuidString); + API_Guid parentGuid = APIGuidFromString(parentGuidString.ToCStr()); + +#ifdef ServerMainVers_2600 + element.header.type = API_WallID; +#else + element.header.typeID = API_WallID; +#endif + element.header.guid = parentGuid; + err = ACAPI_Element_Get(&element); + if (err != NoError) { + continue; + } + + if (element.wall.type == APIWtyp_Poly) { + continue; + } + + // This may be redundant, should test it + bool parentExists = Utility::ElementExists(parentGuid); + bool isParentWall = Utility::GetElementType(parentGuid) == API_WallID; + if (!(parentExists && isParentWall)) { + continue; + } + + // Subelement + API_ElementMemo memo = {}; + API_SubElement marker = {}; + API_Element elementMask = {}; + + // Try to get subelement + err = GetWindowFromObjectState(subElement, element, elementMask, memo, marker); + if (err != NoError) { + ACAPI_DisposeElemMemoHdls(&memo); + ACAPI_DisposeElemMemoHdls(&marker.memo); + continue; + } + + // Set its parent + element.window.owner = parentGuid; + + // Update or create + bool WindowExists = Utility::ElementExists(element.header.guid); + if (WindowExists) + { + err = ModifyExistingWindow(element, elementMask); + } + else + { + err = CreateNewWindow(element, memo, marker); + } + + if (err == NoError) + { + GS::UniString elemId = APIGuidToString(element.header.guid); + listAdder(elemId); + } + + err = ACAPI_DisposeElemMemoHdls(&memo); + err = ACAPI_DisposeElemMemoHdls(&marker.memo); + } + + return NoError; + }); + + return result; + } +} diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateWindow.hpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateWindow.hpp new file mode 100644 index 0000000000..ca1f95092c --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/CreateWindow.hpp @@ -0,0 +1,23 @@ +#ifndef CREATE_WINDOW_HPP +#define CREATE_WINDOW_HPP + +#include "BaseCommand.hpp" + + +namespace AddOnCommands { + + + class CreateWindow : public BaseCommand { + public: + virtual GS::String GetName() const override; + virtual GS::ObjectState Execute(const GS::ObjectState& parameters, GS::ProcessControl& processControl) const override; +#ifdef ServerMainVers_2600 + virtual bool IsProcessWindowVisible() const override { return true; } +#endif + }; + + +} + + +#endif \ No newline at end of file diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetDoorData.cpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetDoorData.cpp new file mode 100644 index 0000000000..c5ae3af4a0 --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetDoorData.cpp @@ -0,0 +1,74 @@ +#include "GetDoorData.hpp" +#include "GetOpeningBaseData.hpp" +#include "ResourceIds.hpp" +#include "ObjectState.hpp" +#include "Utility.hpp" +#include "Objects/Point.hpp" +#include "RealNumber.h" +#include "FieldNames.hpp" +#include "TypeNameTables.hpp" + + +namespace AddOnCommands { + static GS::ObjectState GetDoors(const API_Guid& guid) { + GSErrCode err = NoError; + + GS::ObjectState currentDoor; + API_Element element; + + BNZeroMemory(&element, sizeof(API_Element)); + element.header.guid = guid; + err = ACAPI_Element_Get(&element); + + if (err == NoError) { + currentDoor.Add(ApplicationIdFieldName, APIGuidToString(guid)); + currentDoor.Add(ParentElementIdFieldName, APIGuidToString(element.door.owner)); + + AddOnCommands::GetOpeningBaseData (element.door, currentDoor); + } + + return currentDoor; + } + + GS::String GetDoorData::GetName () const { + return GetDoorCommandName; + } + + GS::ObjectState GetDoorData::Execute (const GS::ObjectState& parameters, GS::ProcessControl& /*processControl*/) const { + GS::ObjectState result; + + GS::Array ids; + parameters.Get(ApplicationIdsFieldName, ids); + GS::Array elementGuids = ids.Transform([](const GS::UniString& idStr) + { return APIGuidFromString(idStr.ToCStr()); }); + + if (elementGuids.IsEmpty()) + return result; + + const auto& listAdderDoors = result.AddList(DoorsFieldName); + + for (const API_Guid& guid : elementGuids) + { + API_Element element{}; + element.header.guid = guid; + + GSErrCode err = ACAPI_Element_Get(&element); + + if (err != NoError /*|| element.header.type.typeID != API_WallID*/) { + return result; + } + +#ifdef ServerMainVers_2600 + if (element.header.type.typeID == API_DoorID) { +#else + if (element.header.typeID == API_DoorID) { +#endif + GS::ObjectState door = GetDoors(element.header.guid); + listAdderDoors(door); + } + } + + return result; + } + +} diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetDoorData.hpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetDoorData.hpp new file mode 100644 index 0000000000..0439ecfc04 --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetDoorData.hpp @@ -0,0 +1,22 @@ +#ifndef GET_OPENING_DATA_HPP +#define GET_OPENING_DATA_HPP + +#include "BaseCommand.hpp" + +namespace AddOnCommands { + + + class GetDoorData : public BaseCommand { + public: + virtual GS::String GetName() const override; + virtual GS::ObjectState Execute(const GS::ObjectState& parameters, GS::ProcessControl& processControl) const override; +#ifdef ServerMainVers_2600 + virtual bool IsProcessWindowVisible() const override { return true; } +#endif + }; + + +} + + +#endif \ No newline at end of file diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetElementIds.cpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetElementIds.cpp new file mode 100644 index 0000000000..ee7e43f8b2 --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetElementIds.cpp @@ -0,0 +1,79 @@ +#include "GetElementIds.hpp" +#include "ResourceIds.hpp" +#include "ObjectState.hpp" +#include "Utility.hpp" +#include "FieldNames.hpp" + + +namespace AddOnCommands { + + + static GS::Array GetSelectedElementGuids() + { + GS::Array elementGuids; + API_SelectionInfo selectionInfo; + GS::Array selNeigs; + + GSErrCode err = ACAPI_Selection_Get(&selectionInfo, &selNeigs, true); + if (err == NoError) { + if (selectionInfo.typeID != API_SelEmpty) { + for (const API_Neig& neig : selNeigs) { + if (Utility::IsElement3D(neig.guid)) { + elementGuids.Push(neig.guid); + } + } + } + } + + BMKillHandle((GSHandle*)&selectionInfo.marquee.coords); + + return elementGuids; + } + + + static GS::Array GetAllElementGuids() + { + GS::Array elementGuids; + GS::Array element3DGuids; + GSErrCode err = ACAPI_Element_GetElemList (API_ZombieElemID, &elementGuids, APIFilt_OnVisLayer | APIFilt_In3D); + if (err == NoError) { + for (const API_Guid& guid : elementGuids) { + if (Utility::IsElement3D(guid)) { + element3DGuids.Push(guid); + } + } + } + + return element3DGuids; + } + + + GS::String GetElementIds::GetName() const + { + return GetElementIdsCommandName; + } + + + GS::ObjectState GetElementIds::Execute(const GS::ObjectState& parameters, GS::ProcessControl& /*processControl*/) const + { + GS::UniString elementFilter; + parameters.Get(ElementFilterFieldName, elementFilter); + + GS::ObjectState retVal; + + GS::Array elementGuids; + if (elementFilter == "Selection") + elementGuids = GetSelectedElementGuids(); + else if (elementFilter == "All") + elementGuids = GetAllElementGuids(); + + const auto& listAdder = retVal.AddList(ApplicationIdsFieldName); + for (const API_Guid& guid : elementGuids) { + listAdder(APIGuidToString(guid)); + } + + return retVal; + } + + +} diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetSelectedApplicationIds.hpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetElementIds.hpp similarity index 88% rename from ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetSelectedApplicationIds.hpp rename to ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetElementIds.hpp index 0cfa18baa9..9f8ef3987b 100644 --- a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetSelectedApplicationIds.hpp +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetElementIds.hpp @@ -7,7 +7,7 @@ namespace AddOnCommands { - class GetSelectedApplicationIds : public BaseCommand { + class GetElementIds : public BaseCommand { public: virtual GS::String GetName() const override; virtual GS::ObjectState Execute(const GS::ObjectState& parameters, GS::ProcessControl& processControl) const override; diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetOpeningBaseData.hpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetOpeningBaseData.hpp new file mode 100644 index 0000000000..dc5b396a08 --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetOpeningBaseData.hpp @@ -0,0 +1,68 @@ +#ifndef GET_OPENINGBASE_DATA_HPP +#define GET_OPENINGBASE_DATA_HPP + +// API +#include "APIEnvir.h" +#include "ACAPinc.h" + +#include "Objects/Point.hpp" +#include "FieldNames.hpp" +#include "TypeNameTables.hpp" + +// GSRoot +#include "ObjectState.hpp" + + +namespace AddOnCommands { + + +template +GSErrCode GetOpeningBaseData (const T& element, GS::ObjectState& os) +{ + GSErrCode err = NoError; + + os.Add(OpeningBase::width, element.openingBase.width); + os.Add(OpeningBase::height, element.openingBase.height); + os.Add(OpeningBase::subFloorThickness, element.openingBase.subFloorThickness); + os.Add(OpeningBase::reflected, element.openingBase.reflected); + os.Add(OpeningBase::oSide, element.openingBase.oSide); + os.Add(OpeningBase::refSide, element.openingBase.refSide); + + { + API_Attribute attrib; + BNZeroMemory(&attrib, sizeof(API_Attribute)); + attrib.header.typeID = API_BuildingMaterialID; + attrib.header.index = element.openingBase.mat; + ACAPI_Attribute_Get(&attrib); + os.Add(OpeningBase::buildingMaterial, GS::UniString{ attrib.header.name }); + } + + { + API_LibPart libPart; + BNZeroMemory (&libPart, sizeof (API_LibPart)); + libPart.index = element.openingBase.libInd; + + err = ACAPI_LibPart_Get (&libPart); + if (err == NoError) + os.Add(OpeningBase::libraryPart, GS::UniString (libPart.docu_UName)); + } + + os.Add(OpeningBase::revealDepthFromSide, element.revealDepthFromSide); + os.Add(OpeningBase::jambDepthHead, element.jambDepthHead); + os.Add(OpeningBase::jambDepth, element.jambDepth); + os.Add(OpeningBase::jambDepth2, element.jambDepth2); + os.Add(OpeningBase::objLoc, element.objLoc); + os.Add(OpeningBase::lower, element.lower); + os.Add(OpeningBase::directionType, windowDoorDirectionTypeNames.Get(element.directionType)); + + os.Add(OpeningBase::startPoint, Objects::Point3D(element.startPoint.x, element.startPoint.y, 0)); + os.Add(OpeningBase::dirVector, Objects::Point3D(element.dirVector.x, element.dirVector.y, 0)); + + return err; +} + + +} // namespace AddOnCommands + + +#endif // GET_OPENINGBASE_DATA_HPP diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetSelectedApplicationIds.cpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetSelectedApplicationIds.cpp deleted file mode 100644 index c6daeda019..0000000000 --- a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetSelectedApplicationIds.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include "GetSelectedApplicationIds.hpp" -#include "ResourceIds.hpp" -#include "ObjectState.hpp" -#include "Utility.hpp" -#include "FieldNames.hpp" - - -namespace AddOnCommands { - - - static GS::Array GetSelectedElementGuids() - { - GS::Array elementGuids; - API_SelectionInfo selectionInfo; - GS::Array selNeigs; - - GSErrCode err = ACAPI_Selection_Get(&selectionInfo, &selNeigs, true); - if (err == NoError) { - if (selectionInfo.typeID != API_SelEmpty) { - for (const API_Neig& neig : selNeigs) { - if (Utility::IsElement3D(neig.guid)) { - elementGuids.Push(neig.guid); - } - } - } - } - - BMKillHandle((GSHandle*)&selectionInfo.marquee.coords); - - return elementGuids; - } - - - GS::String GetSelectedApplicationIds::GetName() const - { - return GetSelectedApplicationIdsCommandName; - } - - - GS::ObjectState GetSelectedApplicationIds::Execute(const GS::ObjectState& /*parameters*/, GS::ProcessControl& /*processControl*/) const - { - - GS::Array elementGuids = GetSelectedElementGuids(); - - GS::ObjectState retVal; - - const auto& listAdder = retVal.AddList(ApplicationIdsFieldName); - for (const API_Guid& guid : elementGuids) { - listAdder(APIGuidToString(guid)); - } - - return retVal; - } - - -} \ No newline at end of file diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetSubElementInfo.cpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetSubElementInfo.cpp new file mode 100644 index 0000000000..ad9b9c1d9d --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetSubElementInfo.cpp @@ -0,0 +1,50 @@ +#include "GetSubElementInfo.hpp" +#include "ResourceIds.hpp" +#include "ObjectState.hpp" +#include "Utility.hpp" +#include "Objects/Point.hpp" +#include "RealNumber.h" +#include "FieldNames.hpp" +#include "TypeNameTables.hpp" + + +namespace AddOnCommands { + + GS::String GetSubElementInfo::GetName () const { + return GetSubelementInfoCommandName; + } + + GS::ObjectState GetSubElementInfo::Execute (const GS::ObjectState& parameters, GS::ProcessControl& /*processControl*/) const { + GSErrCode err = NoError; + GS::UniString id; + parameters.Get(ApplicationIdFieldName, id); + API_Guid wallGuid = APIGuidFromString(id.ToCStr()); + + GS::ObjectState result; + const auto& listAdder = result.AddList(SubelementModelsFieldName); + + API_Element wallElement{}; + wallElement.header.guid = wallGuid; + err = ACAPI_Element_Get(&wallElement); + + if (err == NoError) { + GS::Array elementGuids = Utility::GetWallSubelements(wallElement.wall); + for (GS::UInt32 i = 0; i < elementGuids.GetSize(); i++) + { + API_Guid currentGuid = elementGuids.Get(i); + + GS::UniString guid = APIGuidToString(currentGuid); + API_ElemTypeID elementTypeId = Utility::GetElementType(currentGuid); + GS::UniString elemType = elementNames.Get(elementTypeId); + + GS::ObjectState subelementModel; + subelementModel.Add(ApplicationIdFieldName, guid); + subelementModel.Add(ElementTypeFieldName, elemType); + listAdder(subelementModel); + } + } + + return result; + } + +} \ No newline at end of file diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetSubElementInfo.hpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetSubElementInfo.hpp new file mode 100644 index 0000000000..234780bdab --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetSubElementInfo.hpp @@ -0,0 +1,22 @@ +#ifndef GET_SUBELEMENT_DATA_HPP +#define GET_SUBELEMENT_DATA_HPP + +#include "BaseCommand.hpp" + +namespace AddOnCommands { + + + class GetSubElementInfo : public BaseCommand { + public: + virtual GS::String GetName() const override; + virtual GS::ObjectState Execute(const GS::ObjectState& parameters, GS::ProcessControl& processControl) const override; +#ifdef ServerMainVers_2600 + virtual bool IsProcessWindowVisible() const override { return true; } +#endif + }; + + +} + + +#endif \ No newline at end of file diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetWallData.cpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetWallData.cpp index 4084f4ff5b..80621f1006 100644 --- a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetWallData.cpp +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetWallData.cpp @@ -7,102 +7,97 @@ #include "FieldNames.hpp" #include "TypeNameTables.hpp" -namespace AddOnCommands -{ +namespace AddOnCommands { - static GS::ObjectState SerializeWallType(const API_WallType& wall) - { + static GS::ObjectState SerializeWallType (const API_WallType& wall) { GS::ObjectState os; // The identifier of the wall - os.Add(ApplicationIdFieldName, APIGuidToString(wall.head.guid)); + os.Add (ApplicationIdFieldName, APIGuidToString (wall.head.guid)); // The index of the wall's floor - os.Add(FloorIndexFieldName, wall.head.floorInd); + os.Add (FloorIndexFieldName, wall.head.floorInd); // The start and end points of the wall - double z = Utility::GetStoryLevel(wall.head.floorInd) + wall.bottomOffset; - os.Add(Wall::StartPointFieldName, Objects::Point3D(wall.begC.x, wall.begC.y, z)); - os.Add(Wall::EndPointFieldName, Objects::Point3D(wall.endC.x, wall.endC.y, z)); + double z = Utility::GetStoryLevel (wall.head.floorInd) + wall.bottomOffset; + os.Add (Wall::StartPointFieldName, Objects::Point3D (wall.begC.x, wall.begC.y, z)); + os.Add (Wall::EndPointFieldName, Objects::Point3D (wall.endC.x, wall.endC.y, z)); // The arc angle of the wall - if (abs(wall.angle) > EPS) - os.Add(Wall::ArcAngleFieldName, wall.angle); + if (abs (wall.angle) > EPS) + os.Add (Wall::ArcAngleFieldName, wall.angle); // The parameters of the wall - os.Add(Wall::HeightFieldName, wall.height); - os.Add(Wall::BaseOffsetFieldName, wall.bottomOffset); - os.Add(Wall::TopOffsetFieldName, wall.topOffset); - os.Add(Wall::FlippedFieldName, wall.flipped); + os.Add (Wall::HeightFieldName, wall.height); + os.Add (Wall::BaseOffsetFieldName, wall.bottomOffset); + os.Add (Wall::TopOffsetFieldName, wall.topOffset); + os.Add (Wall::FlippedFieldName, wall.flipped); // The structure type of the wall (basic, composite or profiled) - os.Add(Wall::StructureFieldName, structureTypeNames.Get(wall.modelElemStructureType)); + os.Add (Wall::StructureFieldName, structureTypeNames.Get (wall.modelElemStructureType)); // The building material index, composite index or the profile index of the wall - switch (wall.modelElemStructureType) - { + switch (wall.modelElemStructureType) { case API_BasicStructure: - os.Add(Wall::BuildingMaterialIndexFieldName, wall.buildingMaterial); + os.Add (Wall::BuildingMaterialIndexFieldName, wall.buildingMaterial); break; case API_CompositeStructure: - os.Add(Wall::CompositeIndexFieldName, wall.composite); + os.Add (Wall::CompositeIndexFieldName, wall.composite); break; case API_ProfileStructure: - os.Add(Wall::ProfileIndexFieldName, wall.profileAttr); + os.Add (Wall::ProfileIndexFieldName, wall.profileAttr); break; default: break; } // The geometry method of the wall (straight, trapezoid or polygonal) - os.Add(Wall::GeometryMethodFieldName, wallTypeNames.Get(wall.type)); + os.Add (Wall::GeometryMethodFieldName, wallTypeNames.Get (wall.type)); // The profile type of the wall (straight, slanted, trapezoid or polygonal) - os.Add(Wall::WallComplexityFieldName, profileTypeNames.Get(wall.profileType)); + os.Add (Wall::WallComplexityFieldName, profileTypeNames.Get (wall.profileType)); // The thickness of the wall (first and second thickness for trapezoid walls) - if (wall.type == APIWtyp_Trapez) - { - os.Add(Wall::FirstThicknessFieldName, wall.thickness); - os.Add(Wall::SecondThicknessFieldName, wall.thickness1); + if (wall.type == APIWtyp_Trapez) { + os.Add (Wall::FirstThicknessFieldName, wall.thickness); + os.Add (Wall::SecondThicknessFieldName, wall.thickness1); } - else - { - os.Add(Wall::ThicknessFieldName, wall.thickness); + else { + os.Add (Wall::ThicknessFieldName, wall.thickness); } // The outside slant angle of the wall - os.Add(Wall::OutsideSlantAngleFieldName, wall.slantAlpha); + os.Add (Wall::OutsideSlantAngleFieldName, wall.slantAlpha); // The inside slant angle of the wall if (wall.profileType == APISect_Trapez) - os.Add(Wall::InsideSlantAngleFieldName, wall.slantBeta); + os.Add (Wall::InsideSlantAngleFieldName, wall.slantBeta); + // Does it have any embedded object? + os.Add(Wall::HasDoorFieldName, wall.hasDoor); + os.Add(Wall::HasWindowFieldName, wall.hasWindow); + + // End return os; } - GS::String GetWallData::GetName() const - { + GS::String GetWallData::GetName () const { return GetWallDataCommandName; } - GS::ObjectState GetWallData::Execute(const GS::ObjectState& parameters, GS::ProcessControl& /*processControl*/) const - { + GS::ObjectState GetWallData::Execute (const GS::ObjectState& parameters, GS::ProcessControl& /*processControl*/) const { GS::Array ids; - parameters.Get(ApplicationIdsFieldName, ids); - GS::Array elementGuids = ids.Transform([](const GS::UniString& idStr) - { return APIGuidFromString(idStr.ToCStr()); }); + parameters.Get (ApplicationIdsFieldName, ids); + GS::Array elementGuids = ids.Transform ([] (const GS::UniString& idStr) { return APIGuidFromString (idStr.ToCStr ()); }); GS::ObjectState result; - const auto& listAdder = result.AddList(WallsFieldName); - for (const API_Guid& guid : elementGuids) - { - API_Element element{}; + const auto& listAdder = result.AddList (WallsFieldName); + for (const API_Guid& guid : elementGuids) { + API_Element element {}; element.header.guid = guid; - GSErrCode err = ACAPI_Element_Get(&element); - if (err != NoError) - { + GSErrCode err = ACAPI_Element_Get (&element); + if (err != NoError) { continue; } diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetWindowData.cpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetWindowData.cpp new file mode 100644 index 0000000000..176bd58e3b --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetWindowData.cpp @@ -0,0 +1,76 @@ +#include "GetWindowData.hpp" +#include "GetOpeningBaseData.hpp" +#include "ResourceIds.hpp" +#include "ObjectState.hpp" +#include "Utility.hpp" +#include "Objects/Point.hpp" +#include "RealNumber.h" +#include "FieldNames.hpp" +#include "TypeNameTables.hpp" + + +namespace AddOnCommands { + static GS::ObjectState GetWindows(const API_Guid& guid) { + GSErrCode err = NoError; + + GS::ObjectState currentWindow; + API_Element element; + + BNZeroMemory(&element, sizeof(API_Element)); + element.header.guid = guid; + err = ACAPI_Element_Get(&element); + + if (err == NoError) { + if (err == NoError) { + currentWindow.Add(ApplicationIdFieldName, APIGuidToString(guid)); + currentWindow.Add(ParentElementIdFieldName, APIGuidToString(element.door.owner)); + + AddOnCommands::GetOpeningBaseData (element.window, currentWindow); + } + } + + return currentWindow; + } + + GS::String GetWindowData::GetName () const { + return GetWindowCommandName; + } + + GS::ObjectState GetWindowData::Execute (const GS::ObjectState& parameters, GS::ProcessControl& /*processControl*/) const { + GS::ObjectState result; + + GS::Array ids; + parameters.Get(ApplicationIdsFieldName, ids); + GS::Array elementGuids = ids.Transform([](const GS::UniString& idStr) + { return APIGuidFromString(idStr.ToCStr()); }); + + if (elementGuids.IsEmpty()) + return result; + + const auto& listAdderWindows = result.AddList(WindowsFieldName); + + for (const API_Guid& guid : elementGuids) + { + API_Element element{}; + element.header.guid = guid; + + GSErrCode err = ACAPI_Element_Get(&element); + + if (err != NoError /*|| element.header.type.typeID != API_WallID*/) { + return result; + } + +#ifdef ServerMainVers_2600 + if (element.header.type.typeID == API_WindowID) { +#else + if (element.header.typeID == API_WindowID) { +#endif + GS::ObjectState door = GetWindows(element.header.guid); + listAdderWindows(door); + } + } + + return result; + } + +} diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetWindowData.hpp b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetWindowData.hpp new file mode 100644 index 0000000000..82a6a8fe46 --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Commands/GetWindowData.hpp @@ -0,0 +1,22 @@ +#ifndef GET_WINDOW_DATA_HPP +#define GET_WINDOW_DATA_HPP + +#include "BaseCommand.hpp" + +namespace AddOnCommands { + + + class GetWindowData : public BaseCommand { + public: + virtual GS::String GetName() const override; + virtual GS::ObjectState Execute(const GS::ObjectState& parameters, GS::ProcessControl& processControl) const override; +#ifdef ServerMainVers_2600 + virtual bool IsProcessWindowVisible() const override { return true; } +#endif + }; + + +} + + +#endif \ No newline at end of file diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Database.cpp b/ConnectorArchicad/AddOn/Sources/AddOn/Database.cpp new file mode 100644 index 0000000000..49cbf7d770 --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Database.cpp @@ -0,0 +1,60 @@ +#include "Database.hpp" +#include "ACAPinc.h" + + +using namespace Utility; + +Database::Database() : + currentDatabaseType (API_ZombieWindowID) +{ + originalDatabaseInfo = Utility::Database::GetCurrent (); + currentDatabaseType= originalDatabaseInfo.typeID; +} + + +Database::~Database () +{ + Utility::Database::ChangeCurrent (originalDatabaseInfo); +} + + +bool Database::IsInFloorPlan(void) const +{ + return currentDatabaseType == APIWind_FloorPlanID; +} + + +bool Database::IsIn3DWindow(void) const +{ + return currentDatabaseType == APIWind_3DModelID; +} + + +void Database::SwitchToFloorPlan(void) +{ + API_DatabaseInfo databaseInfo; + BNZeroMemory (&databaseInfo, sizeof (API_DatabaseInfo)); + databaseInfo.typeID = APIWind_FloorPlanID; + + ChangeCurrent (databaseInfo); + currentDatabaseType = databaseInfo.typeID; +} + + +/*static*/ API_DatabaseInfo Database::GetCurrent (void) +{ + API_DatabaseInfo databaseInfo; + BNZeroMemory (&databaseInfo, sizeof (API_DatabaseInfo)); + GSErrCode err = ACAPI_Database (APIDb_GetCurrentDatabaseID, &databaseInfo, nullptr); + + if (err != NoError) + databaseInfo.typeID = API_ZombieWindowID; + + return databaseInfo; +} + + +/*static*/ void Database::ChangeCurrent (API_DatabaseInfo& databaseInfo) +{ + ACAPI_Database (APIDb_ChangeCurrentDatabaseID, &databaseInfo, nullptr); +} diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Database.hpp b/ConnectorArchicad/AddOn/Sources/AddOn/Database.hpp new file mode 100644 index 0000000000..1a15c11efe --- /dev/null +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Database.hpp @@ -0,0 +1,38 @@ +#ifndef DATABASE_HPP +#define DATABASE_HPP + +#pragma once + +//API +#include "APIdefs_Database.h" + + +namespace Utility { + + +class Database +{ +public: + Database (); + virtual ~Database (); + + bool IsInFloorPlan (void) const; + bool IsIn3DWindow (void) const; + + void SwitchToFloorPlan(void); + void SwitchToPreviousState(void); + +private: + static API_DatabaseInfo GetCurrent (void); + static void ChangeCurrent (API_DatabaseInfo&); + +private: + API_DatabaseInfo originalDatabaseInfo; + API_DatabaseTypeID currentDatabaseType; +}; + + +} //namespace Utility + + +#endif //DATABASE_HPP diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/FieldNames.hpp b/ConnectorArchicad/AddOn/Sources/AddOn/FieldNames.hpp index 662ef57106..c18238b9d3 100644 --- a/ConnectorArchicad/AddOn/Sources/AddOn/FieldNames.hpp +++ b/ConnectorArchicad/AddOn/Sources/AddOn/FieldNames.hpp @@ -3,13 +3,20 @@ static const char* ApplicationIdFieldName = "applicationId"; static const char* ApplicationIdsFieldName = "applicationIds"; +static const char* ParentElementIdFieldName = "parentApplicationId"; +static const char* ElementFilterFieldName = "elementFilter"; static const char* ElementTypeFieldName = "elementType"; static const char* ElementTypesFieldName = "elementTypes"; +static const char* ElementsFieldName = "elements"; +static const char* SubElementsFieldName = "subElements"; static const char* FloorIndexFieldName = "floorIndex"; static const char* ShapeFieldName = "shape"; static const char* WallsFieldName = "walls"; +static const char* WindowsFieldName = "windows"; +static const char* SubelementModelsFieldName = "subelementModels"; +static const char* DoorsFieldName = "doors"; static const char* BeamsFieldName = "beams"; static const char* SlabsFieldName = "slabs"; static const char* ZonesFieldName = "zones"; @@ -37,76 +44,107 @@ namespace Wall static const char* BaseOffsetFieldName = "baseOffset"; static const char* TopOffsetFieldName = "topOffset"; static const char* FlippedFieldName = "flipped"; + static const char* HasDoorFieldName = "hasDoor"; + static const char* HasWindowFieldName = "hasWindow"; + +} + + +namespace OpeningBase { + static const char* DoorFieldName = "Door #%d"; + // + static const char* guid = "guid"; + // OpeningBase + static const char* width = "width"; + static const char* height = "height"; + static const char* subFloorThickness = "subFloorThickness"; + static const char* reflected = "reflected"; + static const char* oSide = "oSide"; + static const char* refSide = "refSide"; + + static const char* buildingMaterial = "buildingMaterial"; + static const char* libraryPart = "libraryPart"; + + static const char* revealDepthFromSide = "revealDepthFromSide"; + static const char* jambDepthHead = "jambDepthHead"; + static const char* jambDepth = "jambDepth"; + static const char* jambDepth2 = "jambDepth2"; + static const char* objLoc = "objLoc"; + static const char* lower = "lower"; + static const char* directionType = "directionType"; + + static const char* startPoint = "startPoint"; + static const char* dirVector = "dirVector"; } namespace Beam { - // Naming - static const char* BeamSegmentName = "Segment #%d"; - static const char* SchemeName = "Scheme #%d"; - static const char* CutName = "Cut #%d"; - static const char* HoleName = "Hole #%d"; - // Main - static const char* begC = "begC"; - static const char* endC = "endC"; - static const char* aboveViewLinePen = "aboveViewLinePen"; - static const char* refPen = "refPen"; - static const char* cutContourLinePen = "cutContourLinePen"; - static const char* sequence = "sequence"; - static const char* isAutoOnStoryVisibility = "isAutoOnStoryVisibility"; - static const char* offset = "offset"; - static const char* level = "level"; - static const char* curveAngle = "curveAngle"; - static const char* verticalCurveHeight = "verticalCurveHeight"; - static const char* beamShape = "beamShape"; - static const char* hiddenLinePen = "hiddenLinePen"; - static const char* anchorPoint = "anchorPoint"; - static const char* belowViewLinePen = "belowViewLinePen"; - static const char* isFlipped = "isFlipped"; - static const char* isSlanted = "isSlanted"; - static const char* slantAngle = "slantAngle"; - static const char* profileAngle = "profileAngle"; - static const char* nSegments = "nSegments"; - static const char* nCuts = "nCuts"; - static const char* nSchemes = "nSchemes"; - static const char* nProfiles = "nProfiles"; - static const char* useCoverFill = "useCoverFill"; - static const char* useCoverFillFromSurface = "useCoverFillFromSurface"; - static const char* coverFillOrientationComesFrom3D = "coverFillOrientationComesFrom3D"; - static const char* coverFillForegroundPen = "coverFillForegroundPen"; - static const char* coverFillBackgroundPen = "coverFillBackgroundPen"; - static const char* modelElemStructureType = "modelElemStructureType"; - // From API_BeamSegmentType - static const char* segmentData = "Segments"; - static const char* circleBased = "circleBased"; - static const char* profileAttrName = "profileAttrName"; - static const char* buildingMaterial = "buildingMaterial"; - static const char* nominalWidth = "nominalWidth"; - static const char* nominalHeight = "nominalHeight"; - static const char* isHomogeneous = "isHomogeneous"; - static const char* endWidth = "endWidth"; - static const char* endHeight = "endHeight"; - static const char* isEndWidthAndHeightLinked = "isEndWidthAndHeightLinked"; - static const char* isWidthAndHeightLinked = "isWidthAndHeightLinked"; - // From API_AssemblySegmentSchemeData - static const char* schemeData = "Schemes"; - static const char* lengthType = "lengthType"; - static const char* fixedLength = "fixedLength"; - static const char* lengthProportion = "lengthProportion"; - // From API_AssemblySegmentCutData - static const char* cutData = "Cuts"; - static const char* cutType = "cutType"; - static const char* customAngle = "customAngle"; - // From API_Beam_Hole - static const char* holeData = "Holes"; - static const char* holeType = "holeType"; - static const char* holeContourOn = "holeContourOn"; - static const char* holeId = "holeId"; - static const char* centerx = "centerx"; - static const char* centerz = "centerz"; - static const char* width = "width"; - static const char* height = "height"; + // Naming + static const char* BeamSegmentName = "Segment #%d"; + static const char* SchemeName = "Scheme #%d"; + static const char* CutName = "Cut #%d"; + static const char* HoleName = "Hole #%d"; + // Main + static const char* begC = "begC"; + static const char* endC = "endC"; + static const char* aboveViewLinePen = "aboveViewLinePen"; + static const char* refPen = "refPen"; + static const char* cutContourLinePen = "cutContourLinePen"; + static const char* sequence = "sequence"; + static const char* isAutoOnStoryVisibility = "isAutoOnStoryVisibility"; + static const char* offset = "offset"; + static const char* level = "level"; + static const char* curveAngle = "curveAngle"; + static const char* verticalCurveHeight = "verticalCurveHeight"; + static const char* beamShape = "beamShape"; + static const char* hiddenLinePen = "hiddenLinePen"; + static const char* anchorPoint = "anchorPoint"; + static const char* belowViewLinePen = "belowViewLinePen"; + static const char* isFlipped = "isFlipped"; + static const char* isSlanted = "isSlanted"; + static const char* slantAngle = "slantAngle"; + static const char* profileAngle = "profileAngle"; + static const char* nSegments = "nSegments"; + static const char* nCuts = "nCuts"; + static const char* nSchemes = "nSchemes"; + static const char* nProfiles = "nProfiles"; + static const char* useCoverFill = "useCoverFill"; + static const char* useCoverFillFromSurface = "useCoverFillFromSurface"; + static const char* coverFillOrientationComesFrom3D = "coverFillOrientationComesFrom3D"; + static const char* coverFillForegroundPen = "coverFillForegroundPen"; + static const char* coverFillBackgroundPen = "coverFillBackgroundPen"; + static const char* modelElemStructureType = "modelElemStructureType"; + // From API_BeamSegmentType + static const char* segmentData = "Segments"; + static const char* circleBased = "circleBased"; + static const char* profileAttrName = "profileAttrName"; + static const char* buildingMaterial = "buildingMaterial"; + static const char* nominalWidth = "nominalWidth"; + static const char* nominalHeight = "nominalHeight"; + static const char* isHomogeneous = "isHomogeneous"; + static const char* endWidth = "endWidth"; + static const char* endHeight = "endHeight"; + static const char* isEndWidthAndHeightLinked = "isEndWidthAndHeightLinked"; + static const char* isWidthAndHeightLinked = "isWidthAndHeightLinked"; + // From API_AssemblySegmentSchemeData + static const char* schemeData = "Schemes"; + static const char* lengthType = "lengthType"; + static const char* fixedLength = "fixedLength"; + static const char* lengthProportion = "lengthProportion"; + // From API_AssemblySegmentCutData + static const char* cutData = "Cuts"; + static const char* cutType = "cutType"; + static const char* customAngle = "customAngle"; + // From API_Beam_Hole + static const char* holeData = "Holes"; + static const char* holeType = "holeType"; + static const char* holeContourOn = "holeContourOn"; + static const char* holeId = "holeId"; + static const char* centerx = "centerx"; + static const char* centerz = "centerz"; + static const char* width = "width"; + static const char* height = "height"; } diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/ResourceIds.hpp b/ConnectorArchicad/AddOn/Sources/AddOn/ResourceIds.hpp index cf4fece747..723b3ec766 100644 --- a/ConnectorArchicad/AddOn/Sources/AddOn/ResourceIds.hpp +++ b/ConnectorArchicad/AddOn/Sources/AddOn/ResourceIds.hpp @@ -6,16 +6,21 @@ #define CommandNamespace "Speckle"; #define GetModelForElementsCommandName "GetModelForElements"; -#define GetSelectedApplicationIdsCommandName "GetSelectedApplicationIds"; +#define GetElementIdsCommandName "GetElementIds"; #define GetElementTypesCommandName "GetElementTypes"; #define GetWallDataCommandName "GetWallData"; +#define GetDoorCommandName "GetDoorData"; +#define GetWindowCommandName "GetWindowData"; #define GetBeamDataCommandName "GetBeamData"; #define GetSlabDataCommandName "GetSlabData"; #define GetRoomDataCommandName "GetRoomData"; #define GetRoofDataCommandName "GetRoofData"; #define GetProjectInfoCommandName "GetProjectInfo"; +#define GetSubelementInfoCommandName "GetSubelementInfo"; #define CreateDirectShapesCommandName "CreateDirectShapes"; #define CreateWallCommandName "CreateWall"; +#define CreateDoorCommandName "CreateDoor"; +#define CreateWindowCommandName "CreateWindow"; #define CreateBeamCommandName "CreateBeam"; #define CreateSlabCommandName "CreateSlab"; #define CreateZoneCommandName "CreateZone"; diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/TypeNameTables.cpp b/ConnectorArchicad/AddOn/Sources/AddOn/TypeNameTables.cpp index 40c1a550d1..3e283b8191 100644 --- a/ConnectorArchicad/AddOn/Sources/AddOn/TypeNameTables.cpp +++ b/ConnectorArchicad/AddOn/Sources/AddOn/TypeNameTables.cpp @@ -93,4 +93,11 @@ const GS::HashTable beamShapeTypeNames { API_StraightBeam, "Straight" }, { API_HorizontallyCurvedBeam, "HorizontallyCurved"}, { API_VerticallyCurvedBeam, "VerticallyCurved"} -}; \ No newline at end of file +}; + + +const GS::HashTable windowDoorDirectionTypeNames +{ + { API_WDAssociativeToWall, "AssociativeToWall" }, + { API_WDVertical, "Vertical"}, +}; diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/TypeNameTables.hpp b/ConnectorArchicad/AddOn/Sources/AddOn/TypeNameTables.hpp index 854e06d680..6ca997680c 100644 --- a/ConnectorArchicad/AddOn/Sources/AddOn/TypeNameTables.hpp +++ b/ConnectorArchicad/AddOn/Sources/AddOn/TypeNameTables.hpp @@ -17,5 +17,6 @@ extern const GS::HashTable segme extern const GS::HashTable assemblySegmentCutTypeNames; extern const GS::HashTable beamHoleTypeNames; extern const GS::HashTable beamShapeTypeNames; +extern const GS::HashTable windowDoorDirectionTypeNames; #endif \ No newline at end of file diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Utility.cpp b/ConnectorArchicad/AddOn/Sources/AddOn/Utility.cpp index 548b7280e0..54b73ff0b7 100644 --- a/ConnectorArchicad/AddOn/Sources/AddOn/Utility.cpp +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Utility.cpp @@ -166,5 +166,22 @@ namespace Utility { floorInd += GetActualStoryItem().index; } + GS::Array GetWallSubelements(API_WallType& wall) { + GS::Array result; + + if (wall.hasDoor) { + GS::Array doors; + GSErrCode err = ACAPI_Element_GetConnectedElements(wall.head.guid, API_DoorID, &doors); + if (err == NoError) + result.Append(doors); + } + if (wall.hasWindow) { + GS::Array windows; + GSErrCode err = ACAPI_Element_GetConnectedElements(wall.head.guid, API_WindowID, &windows); + if (err == NoError) + result.Append(windows); + } + return result; + } } \ No newline at end of file diff --git a/ConnectorArchicad/AddOn/Sources/AddOn/Utility.hpp b/ConnectorArchicad/AddOn/Sources/AddOn/Utility.hpp index b62e3e6793..69ef9bf685 100644 --- a/ConnectorArchicad/AddOn/Sources/AddOn/Utility.hpp +++ b/ConnectorArchicad/AddOn/Sources/AddOn/Utility.hpp @@ -24,6 +24,7 @@ namespace Utility { void SetStoryLevel(const double& inLevel, const short& floorInd, double& level); + GS::Array GetWallSubelements(API_WallType& wall); } diff --git a/ConnectorArchicad/ConnectorArchicad/.editorconfig b/ConnectorArchicad/ConnectorArchicad/.editorconfig index a45dc20816..3c2927d801 100644 --- a/ConnectorArchicad/ConnectorArchicad/.editorconfig +++ b/ConnectorArchicad/ConnectorArchicad/.editorconfig @@ -8,6 +8,9 @@ root = true indent_style = space # (Please don't specify an indent_size here; that has too many unintended consequences.) +[*] +end_of_line = lf + # Code files [*.{cs, csx, vb, vbx}] indent_size = 2 diff --git a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateDoor.cs b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateDoor.cs new file mode 100644 index 0000000000..11f3d80eb5 --- /dev/null +++ b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateDoor.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Newtonsoft.Json; +using Objects.BuiltElements.Archicad; +using Speckle.Core.Models; + +namespace Archicad.Communication.Commands +{ + sealed internal class CreateDoor : ICommand> + { + + [JsonObject(MemberSerialization.OptIn)] + public sealed class Parameters + { + [JsonProperty("subElements")] + private IEnumerable Datas { get; } + + public Parameters(IEnumerable datas) + { + Datas = datas; + } + + } + + [JsonObject(MemberSerialization.OptIn)] + private sealed class Result + { + + [JsonProperty("applicationIds")] + public IEnumerable ApplicationIds { get; private set; } + + } + private IEnumerable Datas { get; } + + public CreateDoor(IEnumerable datas) + { + Datas = datas; + } + + public async Task> Execute() + { + var result = await HttpCommandExecutor.Execute("CreateDoor", new Parameters(Datas)); + return result == null ? null : result.ApplicationIds; + } + + } +} diff --git a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateFloor.cs b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateFloor.cs index 51e1ab910d..e8dc71b9a0 100644 --- a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateFloor.cs +++ b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateFloor.cs @@ -11,9 +11,9 @@ sealed internal class CreateFloor : ICommand> public sealed class Parameters { [JsonProperty("slabs")] - private IEnumerable Datas { get; } + private IEnumerable Datas { get; } - public Parameters(IEnumerable datas) + public Parameters(IEnumerable datas) { Datas = datas; } @@ -26,9 +26,9 @@ private sealed class Result public IEnumerable ApplicationIds { get; private set; } } - private IEnumerable Datas { get; } + private IEnumerable Datas { get; } - public CreateFloor(IEnumerable datas) + public CreateFloor(IEnumerable datas) { Datas = datas; } diff --git a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateRoom.cs b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateRoom.cs index 70d1cc9cad..0e7cc4db9d 100644 --- a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateRoom.cs +++ b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateRoom.cs @@ -10,9 +10,9 @@ sealed internal class CreateRoom : ICommand> [JsonObject(MemberSerialization.OptIn)] public sealed class Parameters { - [JsonProperty("zones")] private IEnumerable Datas { get; } + [JsonProperty("zones")] private IEnumerable Datas { get; } - public Parameters(IEnumerable datas) + public Parameters(IEnumerable datas) { Datas = datas; } @@ -24,9 +24,9 @@ private sealed class Result [JsonProperty("applicationIds")] public IEnumerable ApplicationIds { get; private set; } } - private IEnumerable Datas { get; } + private IEnumerable Datas { get; } - public CreateRoom(IEnumerable datas) + public CreateRoom(IEnumerable datas) { Datas = datas; } diff --git a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateWall.cs b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateWall.cs index 214fe9ce5f..657f4ead45 100644 --- a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateWall.cs +++ b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateWall.cs @@ -13,9 +13,9 @@ public sealed class Parameters { [JsonProperty("walls")] - private IEnumerable Datas { get; } + private IEnumerable Datas { get; } - public Parameters(IEnumerable datas) + public Parameters(IEnumerable datas) { Datas = datas; } @@ -31,9 +31,9 @@ private sealed class Result } - private IEnumerable Datas { get; } + private IEnumerable Datas { get; } - public CreateWall(IEnumerable datas) + public CreateWall(IEnumerable datas) { foreach (var data in datas) { diff --git a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateWindow.cs b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateWindow.cs new file mode 100644 index 0000000000..5bc38694b5 --- /dev/null +++ b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_CreateWindow.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Newtonsoft.Json; +using Objects.BuiltElements.Archicad; +using Speckle.Core.Models; + +namespace Archicad.Communication.Commands +{ + sealed internal class CreateWindow : ICommand> + { + + [JsonObject(MemberSerialization.OptIn)] + public sealed class Parameters + { + [JsonProperty("subElements")] + private IEnumerable Datas { get; } + + public Parameters(IEnumerable datas) + { + Datas = datas; + } + + } + + [JsonObject(MemberSerialization.OptIn)] + private sealed class Result + { + + [JsonProperty("applicationIds")] + public IEnumerable ApplicationIds { get; private set; } + + } + private IEnumerable Datas { get; } + + public CreateWindow(IEnumerable datas) + { + Datas = datas; + } + + public async Task> Execute() + { + var result = await HttpCommandExecutor.Execute("CreateWindow", new Parameters(Datas)); + return result == null ? null : result.ApplicationIds; + } + + } +} diff --git a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetDoorData.cs b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetDoorData.cs new file mode 100644 index 0000000000..224cb86c30 --- /dev/null +++ b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetDoorData.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Newtonsoft.Json; +using Objects.BuiltElements.Archicad; +using Speckle.Core.Kits; + +namespace Archicad.Communication.Commands +{ + sealed internal class GetDoorData : ICommand> + { + + [JsonObject(MemberSerialization.OptIn)] + public sealed class Parameters + { + + [JsonProperty("applicationIds")] + private IEnumerable ApplicationIds { get; } + + public Parameters(IEnumerable applicationIds) + { + ApplicationIds = applicationIds; + } + + } + + [JsonObject(MemberSerialization.OptIn)] + private sealed class Result + { + + [JsonProperty("doors")] + public IEnumerable Datas { get; private set; } + + } + + private IEnumerable ApplicationIds { get; } + + public GetDoorData(IEnumerable applicationIds) + { + ApplicationIds = applicationIds; + } + + public async Task> Execute() + { + Result result = await HttpCommandExecutor.Execute("GetDoorData", new Parameters(ApplicationIds)); + //foreach (var subelement in result.Datas) + //subelement.units = Units.Meters; + + return result.Datas; + } + + } +} diff --git a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetElementIds.cs b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetElementIds.cs new file mode 100644 index 0000000000..4425557bbf --- /dev/null +++ b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetElementIds.cs @@ -0,0 +1,78 @@ +using System.Collections.Generic; +using System.Runtime.Serialization; +using System.Threading.Tasks; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; + +namespace Archicad.Communication.Commands +{ + internal sealed class GetElementIds : ICommand> + { + public enum ElementFilter + { + All, + Selection + } + + #region --- Classes --- + + [JsonObject(MemberSerialization.OptIn)] + public sealed class Parameters + { + #region --- Fields --- + + [JsonProperty("elementFilter")] + [JsonConverter(typeof(StringEnumConverter))] + private ElementFilter Filter { get; } + + #endregion + + #region --- Ctor \ Dtor --- + + public Parameters(ElementFilter filter) + { + Filter = filter; + } + + #endregion + } + + [JsonObject(MemberSerialization.OptIn)] + private sealed class Result + { + #region --- Fields --- + + [JsonProperty("applicationIds")] + public IEnumerable ApplicationIds { get; private set; } + + #endregion + } + + #endregion + + #region --- Fields --- + + private ElementFilter Filter { get; } + + #endregion + + #region --- Ctor \ Dtor --- + + public GetElementIds(ElementFilter filter) + { + Filter = filter; + } + + #endregion + + #region --- Functions --- + + public async Task> Execute() + { + Result result = await HttpCommandExecutor.Execute("GetElementIds", new Parameters(Filter)); + return result.ApplicationIds; + } + + #endregion + } +} diff --git a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetFloorData.cs b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetFloorData.cs index 8dd878e285..2fb9423ac9 100644 --- a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetFloorData.cs +++ b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetFloorData.cs @@ -6,7 +6,7 @@ namespace Archicad.Communication.Commands { - internal sealed class GetFloorData : ICommand> + internal sealed class GetFloorData : ICommand> { [JsonObject(MemberSerialization.OptIn)] public sealed class Parameters @@ -24,7 +24,7 @@ public Parameters(IEnumerable applicationIds) private sealed class Result { [JsonProperty("slabs")] - public IEnumerable Datas { get; private set; } + public IEnumerable Datas { get; private set; } } private IEnumerable ApplicationIds { get; } @@ -34,7 +34,7 @@ public GetFloorData(IEnumerable applicationIds) ApplicationIds = applicationIds; } - public async Task> Execute() + public async Task> Execute() { Result result = await HttpCommandExecutor.Execute("GetSlabData", new Parameters(ApplicationIds)); foreach (var floor in result.Datas) diff --git a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetRoomData.cs b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetRoomData.cs index 0aad5d2a25..278299e7d7 100644 --- a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetRoomData.cs +++ b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetRoomData.cs @@ -6,7 +6,7 @@ namespace Archicad.Communication.Commands { - sealed internal class GetRoomData : ICommand> + sealed internal class GetRoomData : ICommand> { [JsonObject(MemberSerialization.OptIn)] @@ -28,7 +28,7 @@ private sealed class Result { [JsonProperty("zones")] - public IEnumerable Rooms { get; private set; } + public IEnumerable Rooms { get; private set; } } @@ -39,7 +39,7 @@ public GetRoomData(IEnumerable applicationIds) ApplicationIds = applicationIds; } - public async Task> Execute() + public async Task> Execute() { var result = await HttpCommandExecutor.Execute("GetRoomData", new Parameters(ApplicationIds)); foreach (var room in result.Rooms) diff --git a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetSelectedElements.cs b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetSelectedElements.cs deleted file mode 100644 index e65ea40902..0000000000 --- a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetSelectedElements.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Newtonsoft.Json; - -namespace Archicad.Communication.Commands -{ - internal sealed class GetSelectedElements : ICommand> - { - #region --- Classes --- - - [JsonObject] - public sealed class Parameters { } - - [JsonObject(MemberSerialization.OptIn)] - private sealed class Result - { - #region --- Fields --- - - [JsonProperty("applicationIds")] - public IEnumerable ApplicationIds { get; private set; } - - #endregion - } - - #endregion - - #region --- Functions --- - - public async Task> Execute() - { - Result result = await HttpCommandExecutor.Execute("GetSelectedApplicationIds", null); - return result.ApplicationIds; - } - - #endregion - } -} diff --git a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetSubelementInfo.cs b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetSubelementInfo.cs new file mode 100644 index 0000000000..5ff96fbff0 --- /dev/null +++ b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetSubelementInfo.cs @@ -0,0 +1,50 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Newtonsoft.Json; +using Objects.BuiltElements.Archicad; +using Speckle.Core.Kits; + +namespace Archicad.Communication.Commands +{ + sealed internal class GetSubElementInfo : ICommand> + { + + [JsonObject(MemberSerialization.OptIn)] + public sealed class Parameters + { + + [JsonProperty("applicationId")] + private string ApplicationId { get; } + + public Parameters(string applicationId) + { + ApplicationId = applicationId; + } + + } + + [JsonObject(MemberSerialization.OptIn)] + private sealed class Result + { + + [JsonProperty("subelementModels")] + public IEnumerable Datas { get; private set; } + + } + + private string ApplicationId { get; } + + public GetSubElementInfo(string applicationId) + { + ApplicationId = applicationId; + } + + public async Task> Execute() + { + Result result = await HttpCommandExecutor.Execute("GetSubelementInfo", new Parameters(ApplicationId)); + return result.Datas; + } + + } +} diff --git a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetWallData.cs b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetWallData.cs index f19ef42f29..42bebd5e16 100644 --- a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetWallData.cs +++ b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetWallData.cs @@ -6,7 +6,7 @@ namespace Archicad.Communication.Commands { - sealed internal class GetWallData : ICommand> + sealed internal class GetWallData : ICommand> { [JsonObject(MemberSerialization.OptIn)] @@ -28,7 +28,7 @@ private sealed class Result { [JsonProperty("walls")] - public IEnumerable Datas { get; private set; } + public IEnumerable Datas { get; private set; } } @@ -39,7 +39,7 @@ public GetWallData(IEnumerable applicationIds) ApplicationIds = applicationIds; } - public async Task> Execute() + public async Task> Execute() { Result result = await HttpCommandExecutor.Execute("GetWallData", new Parameters(ApplicationIds)); foreach (var wall in result.Datas) diff --git a/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetWindowData.cs b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetWindowData.cs new file mode 100644 index 0000000000..1d747abdc6 --- /dev/null +++ b/ConnectorArchicad/ConnectorArchicad/Communication/Commands/Command_GetWindowData.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Newtonsoft.Json; +using Objects.BuiltElements.Archicad; +using Speckle.Core.Kits; + +namespace Archicad.Communication.Commands +{ + sealed internal class GetWindowData : ICommand> + { + + [JsonObject(MemberSerialization.OptIn)] + public sealed class Parameters + { + + [JsonProperty("applicationIds")] + private IEnumerable ApplicationIds { get; } + + public Parameters(IEnumerable applicationIds) + { + ApplicationIds = applicationIds; + } + + } + + [JsonObject(MemberSerialization.OptIn)] + private sealed class Result + { + + [JsonProperty("windows")] + public IEnumerable Datas { get; private set; } + + } + + private IEnumerable ApplicationIds { get; } + + public GetWindowData(IEnumerable applicationIds) + { + ApplicationIds = applicationIds; + } + + public async Task> Execute() + { + Result result = await HttpCommandExecutor.Execute("GetWindowData", new Parameters(ApplicationIds)); + //foreach (var subelement in result.Datas) + //subelement.units = Units.Meters; + + return result.Datas; + } + + } +} diff --git a/ConnectorArchicad/ConnectorArchicad/ConnectorBinding.cs b/ConnectorArchicad/ConnectorArchicad/ConnectorBinding.cs index 6d27b0acd4..b41ff7da41 100644 --- a/ConnectorArchicad/ConnectorArchicad/ConnectorBinding.cs +++ b/ConnectorArchicad/ConnectorArchicad/ConnectorBinding.cs @@ -81,13 +81,18 @@ public override List GetObjectsInView() public override List GetSelectedObjects() { - var elementIds = AsyncCommandProcessor.Execute(new Communication.Commands.GetSelectedElements())?.Result; + var elementIds = AsyncCommandProcessor.Execute(new Communication.Commands.GetElementIds(Communication.Commands.GetElementIds.ElementFilter.Selection))?.Result; return elementIds is null ? new List() : elementIds.ToList(); } public override List GetSelectionFilters() { - return new List { new ManualSelectionFilter() }; + return new List() + { + new ManualSelectionFilter(), + new AllSelectionFilter {Slug="all", Name = "Everything", Icon = "CubeScan", Description = "Sends all supported elements and project information." } + }; + } public override List GetStreamsInFile() @@ -137,9 +142,10 @@ public override async Task SendStream(StreamState state, ProgressViewMod if (state.Filter is null) return null; - state.SelectedObjectIds = state.Filter.Selection; + var commitObject = await ElementConverterManager.Instance.ConvertToSpeckle( + state.Filter, + progress); - var commitObject = await ElementConverterManager.Instance.ConvertToSpeckle(state.SelectedObjectIds, progress.CancellationTokenSource.Token); if (commitObject is not null) { return await Helpers.Send(IdentifyStream(state), commitObject, state.CommitMessage, HostApplications.Archicad.Name); diff --git a/ConnectorArchicad/ConnectorArchicad/Converters/Converters/DoorConverter.cs b/ConnectorArchicad/ConnectorArchicad/Converters/Converters/DoorConverter.cs new file mode 100644 index 0000000000..b34f7ac87a --- /dev/null +++ b/ConnectorArchicad/ConnectorArchicad/Converters/Converters/DoorConverter.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Archicad.Communication; +using Archicad.Model; +using Objects.BuiltElements.Revit; +using Objects.Geometry; +using Speckle.Core.Models; + +namespace Archicad.Converters +{ + public sealed class Door : IConverter + { + public Type Type => typeof(Objects.BuiltElements.Archicad.ArchicadDoor); + + public async Task> ConvertToArchicad(IEnumerable elements, CancellationToken token) + { + var doors = new List(); + foreach (var el in elements) + { + switch (el) + { + case Objects.BuiltElements.Archicad.ArchicadDoor archicadDoors: + doors.Add(archicadDoors); + break; + //case Objects.BuiltElements.Opening window: + // var baseLine = (Line)wall.baseLine; + // var newWall = new Objects.BuiltElements.Archicad.ArchicadDoor(Utils.ScaleToNative(baseLine.start), + // Utils.ScaleToNative(baseLine.end), Utils.ScaleToNative(wall.height, wall.units)); + // if (el is RevitWall revitWall) + // newWall.flipped = revitWall.flipped; + // walls.Add(newWall); + // break; + } + } + + var result = await AsyncCommandProcessor.Execute(new Communication.Commands.CreateDoor(doors), token); + + return result is null ? new List() : result.ToList(); + } + + public async Task> ConvertToSpeckle(IEnumerable elements, + CancellationToken token) + { + var elementModels = elements as ElementModelData[] ?? elements.ToArray(); + IEnumerable datas = + await AsyncCommandProcessor.Execute(new Communication.Commands.GetDoorData(elementModels.Select(e => e.applicationId))); + + if (datas is null ) + { + return new List(); + } + + List openings = new List(); + foreach ( Objects.BuiltElements.Archicad.ArchicadDoor subelement in datas) + { + subelement.displayValue = + Operations.ModelConverter.MeshesToSpeckle(elementModels.First(e => e.applicationId == subelement.applicationId) + .model); + openings.Add(subelement); + } + + return openings; + } + } +} diff --git a/ConnectorArchicad/ConnectorArchicad/Converters/Converters/FloorConverter.cs b/ConnectorArchicad/ConnectorArchicad/Converters/Converters/FloorConverter.cs index da798fe5bc..e78ca887ca 100644 --- a/ConnectorArchicad/ConnectorArchicad/Converters/Converters/FloorConverter.cs +++ b/ConnectorArchicad/ConnectorArchicad/Converters/Converters/FloorConverter.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading; @@ -15,16 +15,16 @@ public sealed class Floor : IConverter public async Task> ConvertToArchicad(IEnumerable elements, CancellationToken token) { - var floors = new List(); + var floors = new List(); foreach ( var el in elements ) { switch ( el ) { - case Objects.BuiltElements.Archicad.Floor archiFloor: + case Objects.BuiltElements.Archicad.ArchicadFloor archiFloor: floors.Add(archiFloor); break; case Objects.BuiltElements.Floor floor: - floors.Add(new Objects.BuiltElements.Archicad.Floor + floors.Add(new Objects.BuiltElements.Archicad.ArchicadFloor { shape = Utils.PolycurvesToElementShape(floor.outline, floor.voids), }); diff --git a/ConnectorArchicad/ConnectorArchicad/Converters/Converters/RoomConverter.cs b/ConnectorArchicad/ConnectorArchicad/Converters/Converters/RoomConverter.cs index c80b63b864..0829e18b25 100644 --- a/ConnectorArchicad/ConnectorArchicad/Converters/Converters/RoomConverter.cs +++ b/ConnectorArchicad/ConnectorArchicad/Converters/Converters/RoomConverter.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading; @@ -18,16 +18,16 @@ public sealed class Room : IConverter public async Task> ConvertToArchicad(IEnumerable elements, CancellationToken token) { - var rooms = new List(); + var rooms = new List(); foreach ( var el in elements ) { switch ( el ) { - case Objects.BuiltElements.Archicad.Room archiRoom: + case Objects.BuiltElements.Archicad.ArchicadRoom archiRoom: rooms.Add(archiRoom); break; case Objects.BuiltElements.Room room: - rooms.Add(new Objects.BuiltElements.Archicad.Room + rooms.Add(new Objects.BuiltElements.Archicad.ArchicadRoom { shape = Utils.PolycurvesToElementShape(room.outline, room.voids), name = room.name, @@ -47,7 +47,7 @@ public async Task> ConvertToSpeckle(IEnumerable data = + IEnumerable data = await AsyncCommandProcessor.Execute( new Communication.Commands.GetRoomData(elementModels.Select(e => e.applicationId)), token); @@ -57,7 +57,7 @@ await AsyncCommandProcessor.Execute( } List rooms = new List(); - foreach ( Objects.BuiltElements.Archicad.Room room in data ) + foreach ( Objects.BuiltElements.Archicad.ArchicadRoom room in data ) { room.displayValue = Operations.ModelConverter.MeshesToSpeckle(elementModels.First(e => e.applicationId == room.applicationId) diff --git a/ConnectorArchicad/ConnectorArchicad/Converters/Converters/WallConverter.cs b/ConnectorArchicad/ConnectorArchicad/Converters/Converters/WallConverter.cs index d5febf6eed..37a60d5457 100644 --- a/ConnectorArchicad/ConnectorArchicad/Converters/Converters/WallConverter.cs +++ b/ConnectorArchicad/ConnectorArchicad/Converters/Converters/WallConverter.cs @@ -1,10 +1,11 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using Archicad.Communication; using Archicad.Model; +using Objects.BuiltElements.Archicad; using Objects.BuiltElements.Revit; using Objects.Geometry; using Speckle.Core.Models; @@ -17,17 +18,17 @@ public sealed class Wall : IConverter public async Task> ConvertToArchicad(IEnumerable elements, CancellationToken token) { - var walls = new List(); + var walls = new List(); foreach ( var el in elements ) { switch ( el ) { - case Objects.BuiltElements.Archicad.Wall archiWall: + case Objects.BuiltElements.Archicad.ArchicadWall archiWall: walls.Add(archiWall); break; case Objects.BuiltElements.Wall wall: var baseLine = ( Line )wall.baseLine; - var newWall = new Objects.BuiltElements.Archicad.Wall(Utils.ScaleToNative(baseLine.start), + var newWall = new Objects.BuiltElements.Archicad.ArchicadWall(Utils.ScaleToNative(baseLine.start), Utils.ScaleToNative(baseLine.end), Utils.ScaleToNative(wall.height, wall.units)); if ( el is RevitWall revitWall ) newWall.flipped = revitWall.flipped; @@ -44,18 +45,18 @@ public async Task> ConvertToArchicad(IEnumerable elements, Ca public async Task> ConvertToSpeckle(IEnumerable elements, CancellationToken token) { + List walls = new List(); var elementModels = elements as ElementModelData[ ] ?? elements.ToArray(); - IEnumerable data = + + IEnumerable data = await AsyncCommandProcessor.Execute( new Communication.Commands.GetWallData(elementModels.Select(e => e.applicationId)), token); + if ( data is null ) - { - return new List(); - } + return walls; - List walls = new List(); - foreach ( Objects.BuiltElements.Archicad.Wall wall in data ) + foreach ( Objects.BuiltElements.Archicad.ArchicadWall wall in data ) { wall.displayValue = Operations.ModelConverter.MeshesToSpeckle(elementModels.First(e => e.applicationId == wall.applicationId) diff --git a/ConnectorArchicad/ConnectorArchicad/Converters/Converters/WindowConverter.cs b/ConnectorArchicad/ConnectorArchicad/Converters/Converters/WindowConverter.cs new file mode 100644 index 0000000000..009c6c3ee9 --- /dev/null +++ b/ConnectorArchicad/ConnectorArchicad/Converters/Converters/WindowConverter.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Archicad.Communication; +using Archicad.Model; +using Objects.BuiltElements.Revit; +using Objects.Geometry; +using Speckle.Core.Models; + +namespace Archicad.Converters +{ + public sealed class Window : IConverter + { + public Type Type => typeof(Objects.BuiltElements.Archicad.ArchicadWindow); + + public async Task> ConvertToArchicad(IEnumerable elements, CancellationToken token) + { + var windows = new List(); + foreach (var el in elements) + { + switch (el) + { + case Objects.BuiltElements.Archicad.ArchicadWindow archicadWindow: + windows.Add(archicadWindow); + break; + //case Objects.BuiltElements.Opening window: + // var baseLine = (Line)wall.baseLine; + // var newWall = new Objects.BuiltElements.Archicad.ArchicadDoor(Utils.ScaleToNative(baseLine.start), + // Utils.ScaleToNative(baseLine.end), Utils.ScaleToNative(wall.height, wall.units)); + // if (el is RevitWall revitWall) + // newWall.flipped = revitWall.flipped; + // walls.Add(newWall); + // break; + } + } + var result = await AsyncCommandProcessor.Execute(new Communication.Commands.CreateWindow(windows), token); + + return result is null ? new List() : result.ToList(); + } + + public async Task> ConvertToSpeckle(IEnumerable elements, + CancellationToken token) + { + // Get subelements + var elementModels = elements as ElementModelData[] ?? elements.ToArray(); + IEnumerable datas = + await AsyncCommandProcessor.Execute(new Communication.Commands.GetWindowData(elementModels.Select(e => e.applicationId))); + + if (datas is null ) + { + return new List(); + } + + List openings = new List(); + foreach ( Objects.BuiltElements.Archicad.ArchicadWindow subelement in datas) + { + subelement.displayValue = + Operations.ModelConverter.MeshesToSpeckle(elementModels.First(e => e.applicationId == subelement.applicationId) + .model); + openings.Add(subelement); + } + + return openings; + } + } +} diff --git a/ConnectorArchicad/ConnectorArchicad/Converters/ElementConverterManager.cs b/ConnectorArchicad/ConnectorArchicad/Converters/ElementConverterManager.cs index 2208ad8457..2740191409 100644 --- a/ConnectorArchicad/ConnectorArchicad/Converters/ElementConverterManager.cs +++ b/ConnectorArchicad/ConnectorArchicad/Converters/ElementConverterManager.cs @@ -12,11 +12,15 @@ using Objects.Geometry; using Speckle.Core.Kits; using Speckle.Core.Models; +using DesktopUI2.ViewModels; +using DesktopUI2.Models.Filters; using Ceiling = Objects.BuiltElements.Ceiling; using Floor = Objects.BuiltElements.Floor; -using Room = Objects.BuiltElements.Archicad.Room; using Wall = Objects.BuiltElements.Wall; using Beam = Objects.BuiltElements.Beam; +using Room = Objects.BuiltElements.Archicad.ArchicadRoom; +using Door = Objects.BuiltElements.Archicad.ArchicadDoor; +using Window = Objects.BuiltElements.Archicad.ArchicadWindow; namespace Archicad { @@ -29,7 +33,10 @@ public sealed class ElementConverterManager private Dictionary Converters { get; } = new(); private Converters.IConverter DefaultConverter { get; } = new Converters.DirectShape(); + private Dictionary> ReceivedObjects { get; set; } + private Dictionary> SelectedObjects { get; set; } + private List CanHaveSubElements = new List { "Wall" }; // Hardcoded until we know whats the shared property that defines wether elements may be have subelements or not. #endregion #region --- Ctor \ Dtor --- @@ -43,54 +50,64 @@ private ElementConverterManager() #region --- Functions --- - public async Task ConvertToSpeckle(IEnumerable elementIds, CancellationToken token) + public async Task ConvertToSpeckle(ISelectionFilter filter, ProgressViewModel progress) { - IEnumerable rawModels = - await AsyncCommandProcessor.Execute(new Communication.Commands.GetModelForElements(elementIds), token); - if ( rawModels is null ) - return null; + var objectToCommit = new Base(); - var elementTypeTable = - await AsyncCommandProcessor.Execute(new Communication.Commands.GetElementsType(elementIds), token); - if ( elementTypeTable is null ) - return null; + IEnumerable elementIds = filter.Selection; + if (filter.Slug == "all") + elementIds = AsyncCommandProcessor.Execute(new Communication.Commands.GetElementIds(Communication.Commands.GetElementIds.ElementFilter.All))?.Result; - var converted = new Dictionary>(); - foreach ( var (key, value)in elementTypeTable ) + SelectedObjects = await GetElementsType(elementIds, progress.CancellationTokenSource.Token); // Gets all selected objects + SelectedObjects = SortSelectedObjects(); + + foreach (var (element, guids) in SelectedObjects) // For all kind of selected objects (like window, door, wall, etc.) { - var converter = GetConverterForElement(ElementTypeProvider.GetTypeByName(key)); - var bases = await converter.ConvertToSpeckle( - rawModels.Where(model => value.Contains(model.applicationId)), token); - if ( bases.Count > 0 ) - converted[ key ] = bases; + var objects = await ConvertOneTypeToSpeckle(guids, ElementTypeProvider.GetTypeByName(element), progress.CancellationTokenSource.Token); // Deserialize all objects with hiven type + if (objects.Count() > 0) + { + objectToCommit["@" + element] = objects; // Save 'em. Assigned objects are parents with subelements + + // itermediate solution for the OneClick Send report + for (int i = 0; i < objects.Count(); i++) + progress.Report.ReportObjects.Add(new ApplicationObject("", "")); + } } - if ( converted.Count == 0 ) - return null; + return objectToCommit; + } + + Dictionary> SortSelectedObjects() + { + var retval = new Dictionary>(); + var canHave = SelectedObjects.Where(e => CanHaveSubElements.Contains(e.Key)); + var cannotHave = SelectedObjects.Where(e => !CanHaveSubElements.Contains(e.Key)); + + foreach (var (key,value) in canHave) + { + retval[key] = value; + } - var commitObject = new Base(); - foreach ( var (key, bases) in converted ) + foreach (var (key, value) in cannotHave) { - commitObject[ "@" + key ] = bases; + retval[key] = value; } - return commitObject; + return retval; } public async Task> ConvertToNative(Base obj, CancellationToken token) { var result = new List(); - var elements = FlattenCommitObject(obj); - Console.WriteLine(String.Join(", ", elements.Select(el => $"{el.speckle_type}: {el.id}"))); - - var elementTypeTable = elements.GroupBy(element => element.GetType()) + var falttenedElements = FlattenCommitObject(obj); + ReceivedObjects = falttenedElements.GroupBy(element => element.GetType()) .ToDictionary(group => group.Key, group => group.Cast()); - foreach ( var (key, value)in elementTypeTable ) + + foreach (var (elementType, elements) in ReceivedObjects) { - var converter = GetConverterForElement(key); - var convertedElementIds = await converter.ConvertToArchicad(value, token); - result.AddRange(convertedElementIds); + var convertedObjects = await ConvertOneTypeToNative(elementType, elements, token); + result.AddRange(convertedObjects); } return result; @@ -111,18 +128,22 @@ private void RegisterConverters() } } - private Converters.IConverter GetConverterForElement(Type elementType) + public Converters.IConverter GetConverterForElement(Type elementType) { - if ( Converters.ContainsKey(elementType) ) - return Converters[ elementType ]; - if ( elementType.IsSubclassOf(typeof(Wall)) ) - return Converters[ typeof(Wall) ]; + if (Converters.ContainsKey(elementType)) + return Converters[elementType]; + if (elementType.IsSubclassOf(typeof(Wall))) + return Converters[typeof(Wall)]; if (elementType.IsSubclassOf(typeof(Beam))) return Converters[typeof(Beam)]; - if ( elementType.IsSubclassOf(typeof(Floor)) || elementType.IsSubclassOf(typeof(Ceiling)) ) - return Converters[ typeof(Floor) ]; - if ( elementType.IsSubclassOf(typeof(Objects.BuiltElements.Room)) ) - return Converters[ typeof(Objects.BuiltElements.Room) ]; + if (elementType.IsSubclassOf(typeof(Door))) + return Converters[typeof(Door)]; + if (elementType.IsSubclassOf(typeof(Window))) + return Converters[typeof(Window)]; + if (elementType.IsSubclassOf(typeof(Floor)) || elementType.IsSubclassOf(typeof(Ceiling))) + return Converters[typeof(Floor)]; + if (elementType.IsSubclassOf(typeof(Objects.BuiltElements.Room))) + return Converters[typeof(Objects.BuiltElements.Room)]; return DefaultConverter; } @@ -139,6 +160,8 @@ public static bool CanConvertToNative(Base @object) Room _ => true, DirectShape _ => true, Mesh _ => true, + Door => true, + Window => true, _ => false }; } @@ -150,7 +173,7 @@ public static bool CanConvertToNative(Base @object) /// /// /// - private List FlattenCommitObject(object obj) + public List FlattenCommitObject(object obj) { List objects = new List(); @@ -191,7 +214,156 @@ private List FlattenCommitObject(object obj) return objects; } } - #endregion + + + public async Task?> ConvertSubElementsToNative(IEnumerable subElements, CancellationToken token) + { + //Should add a flag to each object to sign if has subelements or not.This way + // we could prevent unneccessary calls. (?) + var convertedObjects = new List(); + + foreach (var subElement in subElements) + { + if (subElement == null) + continue; + var tmp = new List(); + tmp.Add(subElement); + var convertedSubElements = await ConvertOneTypeToNative(subElement.GetType(), tmp, token); + convertedObjects.AddRange(convertedSubElements); + } + + return convertedObjects; + } + + public async Task?> ConvertOneTypeToNative(Type elementType, IEnumerable elements, CancellationToken token) + { + List result = new List(); + var elementConverter = GetConverterForElement(elementType); + List convertedObjects = await elementConverter.ConvertToArchicad(elements, token); + + result.AddRange(convertedObjects); + + foreach (var parentObjectId in convertedObjects) + { + + if (!ReceivedObjects.ContainsKey(elementType)) // Check if type exist at all + continue; + if (ReceivedObjects[elementType].Count() == 0) + continue; + + Base currentObj = ReceivedObjects[elementType].Where(e => e.applicationId == parentObjectId).FirstOrDefault(); + if (currentObj == null) // If no match found + continue; + if (!currentObj.GetMembers().ContainsKey("elements")) // If match found but doesnt have subelements + continue; + + var subElements = currentObj["elements"] as List; + + if (subElements != null && subElements.Count() > 0) + { + var convertedSubElements = await ConvertSubElementsToNative(subElements, token); + result.AddRange(convertedSubElements); + } + + } + + return result; + } + + private async Task>?> GetElementsType(IEnumerable applicationIds, CancellationToken token) + { + var retval = await AsyncCommandProcessor.Execute(new Communication.Commands.GetElementsType(applicationIds), token); + return retval; + } + + public async Task?> ConvertOneTypeToSpeckle(IEnumerable applicationIds, Type elementType, CancellationToken token) + { + var rawModels = await GetModelForElements(applicationIds, token); // Model data, like meshes + var elementConverter = ElementConverterManager.Instance.GetConverterForElement(elementType); // Object converter + var convertedObjects = await elementConverter.ConvertToSpeckle(rawModels, token); // Deserialization + + foreach (var convertedObject in convertedObjects) + { + var subElementsAsBases = await ConvertSubElementsToSpeckle(convertedObject.applicationId, token); + if (subElementsAsBases.Count() > 0) + { + convertedObject["elements"] = subElementsAsBases; + } + + } + + return convertedObjects; + } + + private async Task> GetModelForElements(IEnumerable applicationIds, CancellationToken token) + { + var retval = await AsyncCommandProcessor.Execute(new Communication.Commands.GetModelForElements(applicationIds), token); + return retval; + } + + public async Task?> ConvertSubElementsToSpeckle(string applicationId, CancellationToken token) + { + var subElementsAsBases = new List(); + + var subElements = await GetAllSubElements(applicationId); + if (subElements.Count() == 0) + return subElementsAsBases; + + var subElementsByGuid = await GetElementsType(subElements.Select(e => e.applicationId), token); + var mutualSubElements = GetAllMutualSubElements(subElementsByGuid); + + foreach (var (element, guids) in mutualSubElements) + { + if (guids.Count() == 0) + continue; + var convertedSubElements = await ConvertOneTypeToSpeckle(guids, ElementTypeProvider.GetTypeByName(element), token); + subElementsAsBases = subElementsAsBases.Concat(convertedSubElements).ToList(); // Update list with new values + } + RemoveSubElements(mutualSubElements); // Remove subelements from SelectedObjects (where we stored all selected objects) + + return subElementsAsBases; + } + + private async Task?> GetAllSubElements(string apllicationId) + { + IEnumerable? currentSubElements = + await AsyncCommandProcessor.Execute(new Communication.Commands.GetSubElementInfo(apllicationId), + CancellationToken.None); + + return currentSubElements; + } + + private Dictionary> GetAllMutualSubElements(Dictionary> allSubElementsByGuid) + { + Dictionary> mutualSubElements = new Dictionary>(); + + foreach (var (element, guids) in allSubElementsByGuid) + { + mutualSubElements[element] = GetMutualSubElementsByType(element, guids); + } + + return mutualSubElements; + } + + private IEnumerable GetMutualSubElementsByType(string elementType, IEnumerable applicationIds) + { + if (!SelectedObjects.ContainsKey(elementType)) + return new List(); + + return SelectedObjects[elementType].Where(guid => applicationIds.Contains(guid)); + + } + + public void RemoveSubElements(Dictionary> mutualSubElements) + { + foreach (var (element, guids) in mutualSubElements) + { + if (guids.Count() == 0) + continue; + var guidsToKeep = SelectedObjects[element].Where(guid => !guids.Contains(guid)); + SelectedObjects[element] = guidsToKeep.ToList(); + } + } } } diff --git a/ConnectorArchicad/ConnectorArchicad/Converters/ElementTypeProvider.cs b/ConnectorArchicad/ConnectorArchicad/Converters/ElementTypeProvider.cs index debcae7e8c..652c47d3a3 100644 --- a/ConnectorArchicad/ConnectorArchicad/Converters/ElementTypeProvider.cs +++ b/ConnectorArchicad/ConnectorArchicad/Converters/ElementTypeProvider.cs @@ -3,10 +3,12 @@ using Archicad.Converters; using Objects.BuiltElements.Archicad; using DirectShape = Objects.BuiltElements.Archicad.DirectShape; -using Floor = Objects.BuiltElements.Archicad.Floor; -using Room = Objects.BuiltElements.Archicad.Room; -using Wall = Objects.BuiltElements.Archicad.Wall; +using Floor = Objects.BuiltElements.Archicad.ArchicadFloor; +using Room = Objects.BuiltElements.Archicad.ArchicadRoom; +using Wall = Objects.BuiltElements.Archicad.ArchicadWall; using Beam = Objects.BuiltElements.Archicad.ArchicadBeam; +using Door = Objects.BuiltElements.Archicad.ArchicadDoor; +using Window = Objects.BuiltElements.Archicad.ArchicadWindow; namespace Archicad { @@ -16,7 +18,10 @@ public static class ElementTypeProvider { "Wall", typeof(Wall) }, { "Slab", typeof(Floor) }, { "Zone", typeof(Room) }, - { "Beam", typeof(Beam) } + { "Beam", typeof(Beam) }, + { "Door", typeof(Door) }, + { "Window", typeof(Window) } + }; public static Type GetTypeByName(string name) diff --git a/ConnectorAutocadCivil/ConnectorAutocad2021/Properties/AssemblyInfo.cs b/ConnectorAutocadCivil/ConnectorAutocad2021/Properties/AssemblyInfo.cs index 5e6a3e366f..cc3a89ce30 100644 --- a/ConnectorAutocadCivil/ConnectorAutocad2021/Properties/AssemblyInfo.cs +++ b/ConnectorAutocadCivil/ConnectorAutocad2021/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -32,6 +32,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] +[assembly: AssemblyVersion("2.0.0.0")] +[assembly: AssemblyFileVersion("2.0.0.0")] +[assembly: AssemblyInformationalVersion("2.0.0-beta")] diff --git a/ConnectorAutocadCivil/ConnectorAutocad2022/Properties/AssemblyInfo.cs b/ConnectorAutocadCivil/ConnectorAutocad2022/Properties/AssemblyInfo.cs index ad66daf149..90b6885077 100644 --- a/ConnectorAutocadCivil/ConnectorAutocad2022/Properties/AssemblyInfo.cs +++ b/ConnectorAutocadCivil/ConnectorAutocad2022/Properties/AssemblyInfo.cs @@ -34,4 +34,4 @@ // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("2.0.0-beta")] diff --git a/ConnectorAutocadCivil/ConnectorAutocad2023/ConnectorAutocad2023.csproj b/ConnectorAutocadCivil/ConnectorAutocad2023/ConnectorAutocad2023.csproj index 78c18d7fe0..cfb40be607 100644 --- a/ConnectorAutocadCivil/ConnectorAutocad2023/ConnectorAutocad2023.csproj +++ b/ConnectorAutocadCivil/ConnectorAutocad2023/ConnectorAutocad2023.csproj @@ -77,4 +77,22 @@ + + + true + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ConnectorAutocadCivil/ConnectorAutocad2023/Properties/AssemblyInfo.cs b/ConnectorAutocadCivil/ConnectorAutocad2023/Properties/AssemblyInfo.cs index e47d833036..01a64ed029 100644 --- a/ConnectorAutocadCivil/ConnectorAutocad2023/Properties/AssemblyInfo.cs +++ b/ConnectorAutocadCivil/ConnectorAutocad2023/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; diff --git a/ConnectorAutocadCivil/ConnectorAutocadCivil/ConnectorAutocadCivilShared.projitems b/ConnectorAutocadCivil/ConnectorAutocadCivil/ConnectorAutocadCivilShared.projitems index 3bccfdd12b..9cf3b27263 100644 --- a/ConnectorAutocadCivil/ConnectorAutocadCivil/ConnectorAutocadCivilShared.projitems +++ b/ConnectorAutocadCivil/ConnectorAutocadCivil/ConnectorAutocadCivilShared.projitems @@ -10,7 +10,6 @@ - diff --git a/ConnectorAutocadCivil/ConnectorAutocadCivil/Entry/App.cs b/ConnectorAutocadCivil/ConnectorAutocadCivil/Entry/App.cs index ed3eede4ae..5b2882f121 100644 --- a/ConnectorAutocadCivil/ConnectorAutocadCivil/Entry/App.cs +++ b/ConnectorAutocadCivil/ConnectorAutocadCivil/Entry/App.cs @@ -1,17 +1,15 @@ -using System.Windows.Controls; -using System.Windows.Media; -using System.Reflection; -using System.IO; -using System.Windows.Media.Imaging; -using System.Linq; -using Forms = System.Windows.Forms; - -using Speckle.ConnectorAutocadCivil.UI; - +using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.Runtime; using Autodesk.Windows; -using Autodesk.AutoCAD.ApplicationServices; +using Speckle.ConnectorAutocadCivil.UI; using System; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Windows.Controls; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using Forms = System.Windows.Forms; namespace Speckle.ConnectorAutocadCivil.Entry { @@ -45,9 +43,8 @@ public void Initialize() var bindings = new ConnectorBindingsAutocad(); bindings.RegisterAppEvents(); SpeckleAutocadCommand.Bindings = bindings; - OneClickCommand.Bindings = bindings; } - catch(System.Exception e) + catch (System.Exception e) { Forms.MessageBox.Show($"Add-in initialize context (true = application, false = doc): {Application.DocumentManager.IsApplicationContext.ToString()}. Error encountered: {e.ToString()}"); } @@ -230,9 +227,6 @@ public void Execute(object parameter) case "Speckle": SpeckleAutocadCommand.SpeckleCommand(); break; - case "SpeckleSend": - OneClickCommand.SendCommand(); - break; case "SpeckleCommunity": SpeckleAutocadCommand.SpeckleCommunity(); break; diff --git a/ConnectorAutocadCivil/ConnectorAutocadCivil/Entry/OneClickCommand.cs b/ConnectorAutocadCivil/ConnectorAutocadCivil/Entry/OneClickCommand.cs deleted file mode 100644 index 284ec329a4..0000000000 --- a/ConnectorAutocadCivil/ConnectorAutocadCivil/Entry/OneClickCommand.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Autodesk.AutoCAD.Runtime; -using Application = Autodesk.AutoCAD.ApplicationServices.Core.Application; - -using DesktopUI2.ViewModels; -using DesktopUI2.Models; -using Speckle.ConnectorAutocadCivil.UI; - - -namespace Speckle.ConnectorAutocadCivil.Entry -{ - public class OneClickCommand - { - public static ConnectorBindingsAutocad Bindings { get; set; } - public static StreamState FileStream { get; set; } - - /// - /// Command to send selection to the document stream, or everything if nothing is selected - /// - [CommandMethod("SpeckleSend", CommandFlags.Modal)] - public static void SendCommand() - { - // initialize dui - SpeckleAutocadCommand.CreateOrFocusSpeckle(false); - - // send - var oneClick = new OneClickViewModel(Bindings, FileStream); - oneClick.Send(); - FileStream = oneClick.FileStream; - } - } -} - diff --git a/ConnectorAutocadCivil/ConnectorAutocadCivil/UI/ConnectorBindingsAutocadCivil.cs b/ConnectorAutocadCivil/ConnectorAutocadCivil/UI/ConnectorBindingsAutocadCivil.cs index fe44025e3b..e29d90a783 100644 --- a/ConnectorAutocadCivil/ConnectorAutocadCivil/UI/ConnectorBindingsAutocadCivil.cs +++ b/ConnectorAutocadCivil/ConnectorAutocadCivil/UI/ConnectorBindingsAutocadCivil.cs @@ -947,9 +947,11 @@ private void ConvertSendCommit(Base commitObject, ISpeckleConverter converter, S // get the db object from id DBObject obj = null; string layer = null; + string applicationId = null; if (Utils.GetHandle(autocadObjectHandle, out Handle hn)) { - obj = hn.GetObject(tr, out string type, out layer); + obj = hn.GetObject(tr, out string type, out layer, out applicationId); + if (applicationId == null) { applicationId = autocadObjectHandle; } } else { @@ -960,8 +962,7 @@ private void ConvertSendCommit(Base commitObject, ISpeckleConverter converter, S // create applicationobject for reporting Base converted = null; var descriptor = Utils.ObjectDescriptor(obj); - var applicationId = autocadObjectHandle; // TODO: ADD TEST FOR XDATA APPID - ApplicationObject reportObj = new ApplicationObject(autocadObjectHandle, descriptor) { applicationId = applicationId }; + ApplicationObject reportObj = new ApplicationObject(autocadObjectHandle, descriptor) { applicationId = autocadObjectHandle }; if (!converter.CanConvertToSpeckle(obj)) { diff --git a/ConnectorAutocadCivil/ConnectorAutocadCivil/Utils.cs b/ConnectorAutocadCivil/ConnectorAutocadCivil/Utils.cs index 4045940add..ec32c9a740 100644 --- a/ConnectorAutocadCivil/ConnectorAutocadCivil/Utils.cs +++ b/ConnectorAutocadCivil/ConnectorAutocadCivil/Utils.cs @@ -120,6 +120,12 @@ public static ObjectId Append(this Entity entity, string layer = null) } } + /// + /// Gets the document model space + /// + /// + /// + /// public static BlockTableRecord GetModelSpace(this Database db, OpenMode mode = OpenMode.ForRead) { return (BlockTableRecord)SymbolUtilityServices.GetBlockModelSpaceId(db).GetObject(mode); @@ -132,12 +138,13 @@ public static BlockTableRecord GetModelSpace(this Database db, OpenMode mode = O /// Object class dxf name /// Object layer name /// - public static DBObject GetObject(this Handle handle, Transaction tr, out string type, out string layer) + public static DBObject GetObject(this Handle handle, Transaction tr, out string type, out string layer, out string applicationId) { Document Doc = Application.DocumentManager.MdiActiveDocument; DBObject obj = null; type = null; layer = null; + applicationId = null; // get objectId ObjectId id = Doc.Database.GetObjectId(false, handle, 0); @@ -150,6 +157,20 @@ public static DBObject GetObject(this Handle handle, Transaction tr, out string Entity objEntity = obj as Entity; type = id.ObjectClass.DxfName; layer = objEntity.Layer; + + // application id is stored in xdata + ResultBuffer rb = objEntity.GetXDataForApplication(ApplicationIdKey); + if (rb != null) + { + foreach (var entry in rb) + { + if (entry.TypeCode == 1000) + { + applicationId = entry.Value as string; + break; + } + } + } } } return obj; @@ -376,14 +397,15 @@ public static List ConvertibleObjects(this Document doc, ISpeckleConvert /// /// Id of the application that originally created the element, in AutocadCivil it's the handle /// The element, if found, otherwise null + /// + /// Updating is super buggy because of limitations to how object handles are generated. + /// See: https://forums.autodesk.com/t5/net/is-the-quot-objectid-quot-unique-in-a-drawing-file/m-p/6527799#M49953 + /// public static List GetObjectsByApplicationId(this Document doc, Transaction tr, string appId) { var foundObjects = new List(); - // first see if this appid is a handle (autocad appid) - if (Utils.GetHandle(appId, out Handle handle)) - if (doc.Database.TryGetObjectId(handle, out ObjectId id)) - return new List() { id }; + // first check for custom xdata application ids, because object handles tend to be duplicated // Create a TypedValue array to define the filter criteria TypedValue[] acTypValAr = new TypedValue[1]; @@ -393,25 +415,42 @@ public static List GetObjectsByApplicationId(this Document doc, Transa SelectionFilter acSelFtr = new SelectionFilter(acTypValAr); var editor = Application.DocumentManager.MdiActiveDocument.Editor; var res = editor.SelectAll(acSelFtr); - if (res.Status == PromptStatus.None || res.Status == PromptStatus.Error) - return foundObjects; - // loop through all obj with an appId - foreach (var appIdObj in res.Value.GetObjectIds()) + if (res.Status != PromptStatus.None && res.Status != PromptStatus.Error) { - // get the db object from id - var obj = tr.GetObject(appIdObj, OpenMode.ForRead); - if (obj != null) - foreach (var entry in obj.XData) - if (entry.Value as string == appId) + // loop through all obj with an appId + foreach (var appIdObj in res.Value.GetObjectIds()) + { + // get the db object from id + var obj = tr.GetObject(appIdObj, OpenMode.ForRead); + if (obj != null) + { + foreach (var entry in obj.XData) { - foundObjects.Add(appIdObj); - break; + if (entry.Value as string == appId) + { + foundObjects.Add(appIdObj); + break; + } } + } + } } + if (foundObjects.Any()) return foundObjects; + // if no matching xdata appids were found, loop through handles instead + if (Utils.GetHandle(appId, out Handle handle)) + if (doc.Database.TryGetObjectId(handle, out ObjectId id)) + return id.IsErased ? foundObjects : new List() { id }; + return foundObjects; } + + /// + /// Returns a descriptive string for reporting + /// + /// + /// public static string ObjectDescriptor(DBObject obj) { if (obj == null) return String.Empty; diff --git a/ConnectorAutocadCivil/ConnectorCivil2021/Properties/AssemblyInfo.cs b/ConnectorAutocadCivil/ConnectorCivil2021/Properties/AssemblyInfo.cs index 75d62f28f4..befe2c6582 100644 --- a/ConnectorAutocadCivil/ConnectorCivil2021/Properties/AssemblyInfo.cs +++ b/ConnectorAutocadCivil/ConnectorCivil2021/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -32,6 +32,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] +[assembly: AssemblyVersion("2.0.0.0")] +[assembly: AssemblyFileVersion("2.0.0.0")] +[assembly: AssemblyInformationalVersion("2.0.0-beta")] diff --git a/ConnectorAutocadCivil/ConnectorCivil2022/Properties/AssemblyInfo.cs b/ConnectorAutocadCivil/ConnectorCivil2022/Properties/AssemblyInfo.cs index cc32515821..8a84314fa0 100644 --- a/ConnectorAutocadCivil/ConnectorCivil2022/Properties/AssemblyInfo.cs +++ b/ConnectorAutocadCivil/ConnectorCivil2022/Properties/AssemblyInfo.cs @@ -34,4 +34,4 @@ // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("2.0.0-beta")] diff --git a/ConnectorAutocadCivil/ConnectorCivil2023/Properties/AssemblyInfo.cs b/ConnectorAutocadCivil/ConnectorCivil2023/Properties/AssemblyInfo.cs index 35bdb60d23..274d5ee6f0 100644 --- a/ConnectorAutocadCivil/ConnectorCivil2023/Properties/AssemblyInfo.cs +++ b/ConnectorAutocadCivil/ConnectorCivil2023/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; diff --git a/ConnectorCSI/ConnectorCSIShared/UI/ConnectorBindingsCSI.Selection.cs b/ConnectorCSI/ConnectorCSIShared/UI/ConnectorBindingsCSI.Selection.cs index 7bfa950fcc..515b9af722 100644 --- a/ConnectorCSI/ConnectorCSIShared/UI/ConnectorBindingsCSI.Selection.cs +++ b/ConnectorCSI/ConnectorCSIShared/UI/ConnectorBindingsCSI.Selection.cs @@ -29,42 +29,47 @@ public override List GetSelectedObjects() public override List GetSelectionFilters() { - var objectTypes = new List(); - //var objectIds = new List(); - string[] groupNames = null; - var groups = new List(); - int numNames = 0; + var filters = new List(); + filters.Add(new AllSelectionFilter + { + Slug = "all", + Name = "Everything", + Icon = "CubeScan", + Description = "Selects all document objects." + }); + filters.Add(new ManualSelectionFilter()); + if (Model != null) { ConnectorCSIUtils.GetObjectIDsTypesAndNames(Model); - objectTypes = ConnectorCSIUtils.ObjectIDsTypesAndNames + var objectTypes = ConnectorCSIUtils.ObjectIDsTypesAndNames .Select(pair => pair.Value.Item1).Distinct().ToList(); - //objectIds = ConnectorCSIUtils.ObjectIDsTypesAndNames.Select(pair => pair.Key).ToList(); + + if (objectTypes.Any()) + filters.Add(new ListSelectionFilter + { + Slug = "type", + Name = "Categories", + Icon = "Category", + Values = objectTypes, + Description = "Adds all objects belonging to the selected types." + }); + + string[] groupNames = new string[0]; + int numNames = 0; Model.GroupDef.GetNameList(ref numNames, ref groupNames); - groups = groupNames.ToList(); + if (groupNames.Any()) + filters.Add(new ListSelectionFilter + { + Slug = "group", + Name = "Group", + Icon = "SelectGroup", + Values = groupNames.ToList(), + Description = "Add all objects belonging to CSI Group." + }); } - return new List() - { - new AllSelectionFilter {Slug="all", Name = "Everything", - Icon = "CubeScan", Description = "Selects all document objects." }, - new ListSelectionFilter {Slug="type", Name = "Categories", - Icon = "Category", Values = objectTypes, - Description="Adds all objects belonging to the selected types"}, - //new PropertySelectionFilter{ - // Slug="param", - // Name = "Param", - // Description="Adds all objects satisfying the selected parameter", - // Icon = "FilterList", - // HasCustomProperty = false, - // Values = objectNames, - // Operators = new List {"equals", "contains", "is greater than", "is less than"} - //}, - - new ManualSelectionFilter(), - new ListSelectionFilter { Slug = "group", Name = "Group", - Icon = "SelectGroup", Values = groups, Description = "Add all objects belonging to CSI Group" } - }; + return filters; } public override void SelectClientObjects(List args, bool deselect = false) @@ -83,8 +88,7 @@ private List GetSelectionFilterObjects(ISelectionFilter filter) case "manual": return GetSelectedObjects(); case "all": - if (ConnectorCSIUtils.ObjectIDsTypesAndNames == null) - ConnectorCSIUtils.GetObjectIDsTypesAndNames(Model); + ConnectorCSIUtils.GetObjectIDsTypesAndNames(Model); selection.AddRange(ConnectorCSIUtils.ObjectIDsTypesAndNames .Select(pair => pair.Key).ToList()); @@ -92,8 +96,7 @@ private List GetSelectionFilterObjects(ISelectionFilter filter) case "type": var typeFilter = filter as ListSelectionFilter; - if (ConnectorCSIUtils.ObjectIDsTypesAndNames == null) - ConnectorCSIUtils.GetObjectIDsTypesAndNames(Model); + ConnectorCSIUtils.GetObjectIDsTypesAndNames(Model); foreach (var type in typeFilter.Selection) { diff --git a/ConnectorCSI/ConnectorCSIShared/UI/ConnectorBindingsCSI.cs b/ConnectorCSI/ConnectorCSIShared/UI/ConnectorBindingsCSI.cs index 6aa8777e4e..dbacd44042 100644 --- a/ConnectorCSI/ConnectorCSIShared/UI/ConnectorBindingsCSI.cs +++ b/ConnectorCSI/ConnectorCSIShared/UI/ConnectorBindingsCSI.cs @@ -24,7 +24,7 @@ public ConnectorBindingsCSI(cSapModel model) public override List GetReceiveModes() { - return new List { ReceiveMode.Create, ReceiveMode.Update }; + return new List { ReceiveMode.Create }; } #region boilerplate diff --git a/ConnectorCSI/DriverPluginCSharp/DriverPluginCSharp.csproj b/ConnectorCSI/DriverPluginCSharp/DriverPluginCSharp.csproj index 6aa0cae633..31bf499809 100644 --- a/ConnectorCSI/DriverPluginCSharp/DriverPluginCSharp.csproj +++ b/ConnectorCSI/DriverPluginCSharp/DriverPluginCSharp.csproj @@ -12,6 +12,7 @@ v4.8 512 true + x64 true diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/SchemaBuilderGen.cs b/ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/SchemaBuilderGen.cs deleted file mode 100644 index 4166da2e73..0000000000 --- a/ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/SchemaBuilderGen.cs +++ /dev/null @@ -1,2547 +0,0 @@ - - -using System; -using Grasshopper.Kernel; -using ConnectorGrasshopperUtils; - -namespace ConnectorGrasshopper { -// This is generated code: -public class AdaptiveComponentSchemaComponent: CreateSchemaObjectBase { - - public AdaptiveComponentSchemaComponent(): base("AdaptiveComponent", "AdaptiveComponent", "Creates a Revit adaptive component by points", "Speckle 2 Revit", "Families") { } - - public override Guid ComponentGuid => new Guid("71420d27-62d1-f158-edab-a89e54604d76"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.AdaptiveComponent.ctor(System.String,System.String,System.Collections.Generic.List`1[Objects.Geometry.Point],System.Boolean,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.AdaptiveComponent"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class AngleSchemaComponent: CreateSchemaObjectBase { - - public AngleSchemaComponent(): base("Angle", "Angle", "Creates a Speckle structural angle section profile", "Speckle 2 Structural", "Section Profile") { } - - public override Guid ComponentGuid => new Guid("91df837b-3162-a0de-724d-ea182e77e68c"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Angle.ctor(System.String,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.Profiles.Angle"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ArchicadBeamSchemaComponent: CreateSchemaObjectBase { - - public ArchicadBeamSchemaComponent(): base("ArchicadBeam", "ArchicadBeam", "Creates an Archicad Structures beam by curve.", "Speckle 2 Archicad", "Structure") { } - - public override Guid ComponentGuid => new Guid("73860182-c94b-d570-f568-1ab73eec8bfd"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Archicad.ArchicadBeam.ctor(Objects.Geometry.Point,Objects.Geometry.Point)","Objects.BuiltElements.Archicad.ArchicadBeam"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class AreaSchemaComponent: CreateSchemaObjectBase { - - public AreaSchemaComponent(): base("Area", "Area", "Creates a Speckle area", "Speckle 2 BIM", "Other") { } - - public override Guid ComponentGuid => new Guid("b98bd134-1ebd-b805-821c-465f1a25fb4e"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Area.ctor(System.String,System.String,Objects.BuiltElements.Level,Objects.Geometry.Point)","Objects.BuiltElements.Area"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class AxisSchemaComponent: CreateSchemaObjectBase { - - public AxisSchemaComponent(): base("Axis", "Axis", "Creates a Speckle structural axis (a user-defined axis)", "Speckle 2 Structural", "Geometry") { } - - public override Guid ComponentGuid => new Guid("38fdc896-0404-4961-120f-6e373d19edbc"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Axis.ctor(System.String,Objects.Structural.AxisType,Objects.Geometry.Plane)","Objects.Structural.Geometry.Axis"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class BeamSchemaComponent: CreateSchemaObjectBase { - - public BeamSchemaComponent(): base("Beam", "Beam", "Creates a Speckle beam", "Speckle 2 BIM", "Structure") { } - - public override Guid ComponentGuid => new Guid("5c0a392e-bc1c-cf28-0048-a99ee090ffa1"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Beam.ctor(Objects.ICurve)","Objects.BuiltElements.Beam"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class BlockDefinitionSchemaComponent: CreateSchemaObjectBase { - - public BlockDefinitionSchemaComponent(): base("Block Definition", "Block Definition", "A Speckle Block definition", "Speckle 2 BIM", "Objects.Other") { } - - public override Guid ComponentGuid => new Guid("91f1164e-b519-d72f-d64b-e68bb14836e3"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Other.BlockDefinition.ctor(System.String,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Geometry.Point)","Objects.Other.BlockDefinition"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class BlockInstanceSchemaComponent: CreateSchemaObjectBase { - - public BlockInstanceSchemaComponent(): base("Block Instance", "Block Instance", "A Speckle Block Instance", "Speckle 2 BIM", "Objects.Other") { } - - public override Guid ComponentGuid => new Guid("28238ece-f2e0-fe7d-e25f-e8f8cb35e629"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Other.BlockInstance.ctor(Objects.Other.BlockDefinition,Objects.Other.Transform)","Objects.Other.BlockInstance"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class BraceSchemaComponent: CreateSchemaObjectBase { - - public BraceSchemaComponent(): base("Brace", "Brace", "Creates a Speckle brace", "Speckle 2 BIM", "Structure") { } - - public override Guid ComponentGuid => new Guid("cf5f1dad-80cd-d499-2ef7-6ae1f8d34a5c"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Brace.ctor(Objects.ICurve)","Objects.BuiltElements.Brace"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CatalogueSchemaComponent: CreateSchemaObjectBase { - - public CatalogueSchemaComponent(): base("Catalogue (by description)", "Catalogue (by description)", "Creates a Speckle structural section profile based on a catalogue section description", "Speckle 2 Structural", "Section Profile") { } - - public override Guid ComponentGuid => new Guid("7e0f97be-7297-64f8-fc85-f43623186129"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Catalogue.ctor(System.String)","Objects.Structural.Properties.Profiles.Catalogue"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Catalogue1SchemaComponent: CreateSchemaObjectBase { - - public Catalogue1SchemaComponent(): base("Catalogue", "Catalogue", "Creates a Speckle structural section profile", "Speckle 2 Structural", "Section Profile") { } - - public override Guid ComponentGuid => new Guid("1b5a50a5-4b3d-1018-8e3f-bb34ad0af7ff"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Catalogue.ctor(System.String,System.String,System.String,System.String)","Objects.Structural.Properties.Profiles.Catalogue"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CeilingSchemaComponent: CreateSchemaObjectBase { - - public CeilingSchemaComponent(): base("Ceiling", "Ceiling", "Creates a Speckle ceiling", "Speckle 2 BIM", "Architecture") { } - - public override Guid ComponentGuid => new Guid("91b38d18-dd01-dfc7-f11d-e3d2c118ff0b"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Ceiling.ctor(Objects.ICurve,System.Collections.Generic.List`1[Objects.ICurve],System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.BuiltElements.Ceiling"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ChannelSchemaComponent: CreateSchemaObjectBase { - - public ChannelSchemaComponent(): base("Channel", "Channel", "Creates a Speckle structural channel section profile", "Speckle 2 Structural", "Section Profile") { } - - public override Guid ComponentGuid => new Guid("40336db1-decb-2ad6-6680-01c457f0f31d"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Channel.ctor(System.String,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.Profiles.Channel"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CircularSchemaComponent: CreateSchemaObjectBase { - - public CircularSchemaComponent(): base("Circular", "Circular", "Creates a Speckle structural circular section profile", "Speckle 2 Structural", "Section Profile") { } - - public override Guid ComponentGuid => new Guid("fbf190e3-c085-dfc9-3b49-bcda58ab931f"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Circular.ctor(System.String,System.Double,System.Double)","Objects.Structural.Properties.Profiles.Circular"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ColumnSchemaComponent: CreateSchemaObjectBase { - - public ColumnSchemaComponent(): base("Column", "Column", "Creates a Speckle column", "Speckle 2 BIM", "Structure") { } - - public override Guid ComponentGuid => new Guid("d92fc447-81b6-e595-1905-6239ea13a49b"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Column.ctor(Objects.ICurve)","Objects.BuiltElements.Column"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ConcreteSchemaComponent: CreateSchemaObjectBase { - - public ConcreteSchemaComponent(): base("Concrete", "Concrete", "Creates a Speckle structural material for concrete (to be used in structural analysis models)", "Speckle 2 Structural", "Materials") { } - - public override Guid ComponentGuid => new Guid("104f1e8d-a551-bb84-e671-3394bc6a4c2b"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Materials.Concrete.ctor(System.String,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Boolean,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Materials.Concrete"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CSIAreaSpringSchemaComponent: CreateSchemaObjectBase { - - public CSIAreaSpringSchemaComponent(): base("LinearSpring", "LinearSpring", "Create an CSI AreaSpring", "Speckle 2 CSI", "Properties") { } - - public override Guid ComponentGuid => new Guid("f1b019ec-dac8-2669-a790-818aabd77c81"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIAreaSpring.ctor(System.String,System.Double,System.Double,System.Double,Objects.Structural.CSI.Properties.NonLinearOptions,System.String)","Objects.Structural.CSI.Properties.CSIAreaSpring"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CSIDiaphragmSchemaComponent: CreateSchemaObjectBase { - - public CSIDiaphragmSchemaComponent(): base("CSI Diaphragm", "CSI Diaphragm", "Create an CSI Diaphragm", "Speckle 2 CSI", "Properties") { } - - public override Guid ComponentGuid => new Guid("97f96eaa-f4f3-ef29-0de3-63829f163dc1"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIDiaphragm.ctor(System.String,System.Boolean)","Objects.Structural.CSI.Properties.CSIDiaphragm"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CSIElement1DSchemaComponent: CreateSchemaObjectBase { - - public CSIElement1DSchemaComponent(): base("Element1D (from local axis)", "Element1D (from local axis)", "Creates a Speckle CSI 1D element (from local axis)", "Speckle 2 CSI", "Geometry") { } - - public override Guid ComponentGuid => new Guid("b19522f8-4264-ce56-3cc7-ec2132ece2e1"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Geometry.CSIElement1D.ctor(Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,System.String,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Geometry.Plane,Objects.Structural.CSI.Properties.CSILinearSpring,System.Double[],Objects.Structural.CSI.Properties.DesignProcedure)","Objects.Structural.CSI.Geometry.CSIElement1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CSIElement1D1SchemaComponent: CreateSchemaObjectBase { - - public CSIElement1D1SchemaComponent(): base("Element1D (from orientation node and angle)", "Element1D (from orientation node and angle)", "Creates a Speckle CSI 1D element (from orientation node and angle)", "Speckle 2 CSI", "Geometry") { } - - public override Guid ComponentGuid => new Guid("95254c64-1e71-0902-06a1-206b2f17b844"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Geometry.CSIElement1D.ctor(Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,System.String,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Structural.Geometry.Node,System.Double,Objects.Structural.CSI.Properties.CSILinearSpring,System.Double[],Objects.Structural.CSI.Properties.DesignProcedure)","Objects.Structural.CSI.Geometry.CSIElement1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CSIElement2DSchemaComponent: CreateSchemaObjectBase { - - public CSIElement2DSchemaComponent(): base("Element2D", "Element2D", "Creates a Speckle CSI 2D element (based on a list of edge ie. external, geometry defining nodes)", "Speckle 2 CSI", "Geometry") { } - - public override Guid ComponentGuid => new Guid("33c58e3c-d8cb-86ca-b494-ee5c69ec7b14"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Geometry.CSIElement2D.ctor(System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Properties.Property2D,System.Double,System.Double,System.Double[],Objects.Structural.CSI.Properties.CSIAreaSpring,Objects.Structural.CSI.Properties.CSIDiaphragm)","Objects.Structural.CSI.Geometry.CSIElement2D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CSILinearSpringSchemaComponent: CreateSchemaObjectBase { - - public CSILinearSpringSchemaComponent(): base("LinearSpring", "LinearSpring", "Create an CSI LinearSpring", "Speckle 2 CSI", "Properties") { } - - public override Guid ComponentGuid => new Guid("a81ebbcb-78a6-9f21-5212-09701d89fa5d"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSILinearSpring.ctor(System.String,System.Double,System.Double,System.Double,System.Double,Objects.Structural.CSI.Properties.NonLinearOptions,Objects.Structural.CSI.Properties.NonLinearOptions,System.String)","Objects.Structural.CSI.Properties.CSILinearSpring"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CSILinkPropertySchemaComponent: CreateSchemaObjectBase { - - public CSILinkPropertySchemaComponent(): base("CSILink", "CSILink", "Create an CSI Link Property", "Speckle 2 CSI", "Properties") { } - - public override Guid ComponentGuid => new Guid("0d7960c0-ddc2-fa77-3b52-fd4d1587af32"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSILinkProperty.ctor(System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.CSI.Properties.CSILinkProperty"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CSINodeSchemaComponent: CreateSchemaObjectBase { - - public CSINodeSchemaComponent(): base("Node with properties", "Node with properties", "Creates a Speckle CSI node with spring, mass and/or damper properties", "Speckle 2 CSI", "Geometry") { } - - public override Guid ComponentGuid => new Guid("2c39977e-f47f-3202-c778-ac46b8462fea"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Geometry.CSINode.ctor(Objects.Geometry.Point,System.String,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Axis,Objects.Structural.CSI.Properties.CSISpringProperty,Objects.Structural.Properties.PropertyMass,Objects.Structural.Properties.PropertyDamper,Objects.Structural.CSI.Properties.CSIDiaphragm,Objects.Structural.CSI.Properties.DiaphragmOption)","Objects.Structural.CSI.Geometry.CSINode"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CSIOpeningSchemaComponent: CreateSchemaObjectBase { - - public CSIOpeningSchemaComponent(): base("Opening", "Opening", "Create an CSI Opening", "Speckle 2 CSI", "Properties") { } - - public override Guid ComponentGuid => new Guid("e6405aac-40ff-97c5-66d7-be3586eebbdd"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIOpening.ctor(System.Boolean)","Objects.Structural.CSI.Properties.CSIOpening"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CSISpringPropertySchemaComponent: CreateSchemaObjectBase { - - public CSISpringPropertySchemaComponent(): base("PointSpring from Link", "PointSpring from Link", "Create an CSI PointSpring from Link", "Speckle 2 CSI", "Properties") { } - - public override Guid ComponentGuid => new Guid("efa38436-affe-3ba9-2413-743fe26eb9f7"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSISpringProperty.ctor(System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.CSI.Properties.CSISpringProperty"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class CSISpringProperty1SchemaComponent: CreateSchemaObjectBase { - - public CSISpringProperty1SchemaComponent(): base("PointSpring from Soil Profile", "PointSpring from Soil Profile", "Create an CSI PointSpring from Soil Profile", "Speckle 2 CSI", "Properties") { } - - public override Guid ComponentGuid => new Guid("9b2854b3-f8bc-b8e6-fd86-aa5c55051759"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSISpringProperty.ctor(System.String,System.String,System.String,System.Double)","Objects.Structural.CSI.Properties.CSISpringProperty"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class DeckFilledSchemaComponent: CreateSchemaObjectBase { - - public DeckFilledSchemaComponent(): base("DeckFilled", "DeckFilled", "Create an CSI Filled Deck", "Speckle 2 CSI", "Properties") { } - - public override Guid ComponentGuid => new Guid("151a2166-f739-501f-d3bc-f1a24bdd4093"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIProperty2D+DeckFilled.ctor(System.String,Objects.Structural.CSI.Analysis.ShellType,Objects.Structural.Materials.StructuralMaterial,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.CSI.Properties.CSIProperty2D+DeckFilled"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class DeckSlabSchemaComponent: CreateSchemaObjectBase { - - public DeckSlabSchemaComponent(): base("DeckSlab", "DeckSlab", "Create an CSI Slab Deck", "Speckle 2 CSI", "Properties") { } - - public override Guid ComponentGuid => new Guid("b8102cde-4ea3-0583-9580-4a9530154440"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIProperty2D+DeckSlab.ctor(System.String,Objects.Structural.CSI.Analysis.ShellType,Objects.Structural.Materials.StructuralMaterial,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.CSI.Properties.CSIProperty2D+DeckSlab"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class DeckUnFilledSchemaComponent: CreateSchemaObjectBase { - - public DeckUnFilledSchemaComponent(): base("DeckUnFilled", "DeckUnFilled", "Create an CSI UnFilled Deck", "Speckle 2 CSI", "Properties") { } - - public override Guid ComponentGuid => new Guid("680e6f0c-d140-e8c4-27e1-28d353a87b8f"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIProperty2D+DeckUnFilled.ctor(System.String,Objects.Structural.CSI.Analysis.ShellType,Objects.Structural.Materials.StructuralMaterial,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.CSI.Properties.CSIProperty2D+DeckUnFilled"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class DetailCurveSchemaComponent: CreateSchemaObjectBase { - - public DetailCurveSchemaComponent(): base("DetailCurve", "DetailCurve", "Creates a Revit detail curve", "Speckle 2 Revit", "Curves") { } - - public override Guid ComponentGuid => new Guid("4752d321-22cc-2d9e-dc6d-e3cf8e70c612"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.Curve.DetailCurve.ctor(Objects.ICurve,System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.Curve.DetailCurve"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class DirectShapeSchemaComponent: CreateSchemaObjectBase { - - public DirectShapeSchemaComponent(): base("DirectShape by base geometries", "DirectShape by base geometries", "Creates a Revit DirectShape using a list of base geometry objects.", "Speckle 2 Revit", "Families") { } - - public override Guid ComponentGuid => new Guid("870d9670-cbf5-06d2-f371-e1e49212b063"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.DirectShape.ctor(System.String,Objects.BuiltElements.Revit.RevitCategory,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.DirectShape"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class DuctSchemaComponent: CreateSchemaObjectBase { - - public DuctSchemaComponent(): base("Duct", "Duct", "Creates a Speckle duct", "Speckle 2 BIM", "MEP") { } - - public override Guid ComponentGuid => new Guid("51d40791-43ea-a8e7-ef13-e9bfdf9cd893"); - public override bool Obsolete => true; - public override GH_Exposure Exposure => GH_Exposure.hidden; - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Duct.ctor(Objects.Geometry.Line,System.Double,System.Double,System.Double,System.Double)","Objects.BuiltElements.Duct"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Duct1SchemaComponent: CreateSchemaObjectBase { - - public Duct1SchemaComponent(): base("Duct", "Duct", "Creates a Speckle duct", "Speckle 2 BIM", "MEP") { } - - public override Guid ComponentGuid => new Guid("7e3a3fba-7d4f-d549-96c0-41693b512db0"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Duct.ctor(Objects.ICurve,System.Double,System.Double,System.Double,System.Double)","Objects.BuiltElements.Duct"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Element1DSchemaComponent: CreateSchemaObjectBase { - - public Element1DSchemaComponent(): base("Element1D (from local axis)", "Element1D (from local axis)", "Creates a Speckle structural 1D element (from local axis)", "Speckle 2 Structural", "Geometry") { } - - public override Guid ComponentGuid => new Guid("9fffb53b-3465-7a5b-4839-91cfdcb86f63"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Element1D.ctor(Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,System.String,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Geometry.Plane)","Objects.Structural.Geometry.Element1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Element1D1SchemaComponent: CreateSchemaObjectBase { - - public Element1D1SchemaComponent(): base("Element1D (from orientation node and angle)", "Element1D (from orientation node and angle)", "Creates a Speckle structural 1D element (from orientation node and angle)", "Speckle 2 Structural", "Geometry") { } - - public override Guid ComponentGuid => new Guid("6cb2d683-3116-0246-18b0-1bd35ed8fcc6"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Element1D.ctor(Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,System.String,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Structural.Geometry.Node,System.Double)","Objects.Structural.Geometry.Element1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Element2DSchemaComponent: CreateSchemaObjectBase { - - public Element2DSchemaComponent(): base("Element2D", "Element2D", "Creates a Speckle structural 2D element (based on a list of edge ie. external, geometry defining nodes)", "Speckle 2 Structural", "Geometry") { } - - public override Guid ComponentGuid => new Guid("0927879c-d28c-1c35-0d3f-4ba8e324ec39"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Element2D.ctor(System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Properties.Property2D,System.Double,System.Double)","Objects.Structural.Geometry.Element2D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Element3DSchemaComponent: CreateSchemaObjectBase { - - public Element3DSchemaComponent(): base("Element3D", "Element3D", "Creates a Speckle structural 3D element", "Speckle 2 Structural", "Geometry") { } - - public override Guid ComponentGuid => new Guid("54b79bd6-7a50-2107-afd5-f9b18346f8ea"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Element3D.ctor(Objects.Geometry.Mesh,Objects.Structural.Properties.Property3D,Objects.Structural.Geometry.ElementType3D,System.String,System.Double)","Objects.Structural.Geometry.Element3D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ExplicitSchemaComponent: CreateSchemaObjectBase { - - public ExplicitSchemaComponent(): base("Explicit", "Explicit", "Creates a Speckle structural section profile based on explicitly defining geometric properties", "Speckle 2 Structural", "Section Profile") { } - - public override Guid ComponentGuid => new Guid("e15a7edd-4559-0bb6-3559-48b72c43da2e"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Explicit.ctor(System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.Profiles.Explicit"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class FamilyInstanceSchemaComponent: CreateSchemaObjectBase { - - public FamilyInstanceSchemaComponent(): base("FamilyInstance", "FamilyInstance", "Creates a Revit family instance", "Speckle 2 Revit", "Families") { } - - public override Guid ComponentGuid => new Guid("266c4d84-3f2a-9129-565b-0ddb1e5bdac4"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.FamilyInstance.ctor(Objects.Geometry.Point,System.String,System.String,Objects.BuiltElements.Level,System.Double,System.Boolean,System.Boolean,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.FamilyInstance"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class FloorSchemaComponent: CreateSchemaObjectBase { - - public FloorSchemaComponent(): base("Floor", "Floor", "Creates a Speckle floor", "Speckle 2 BIM", "Architecture") { } - - public override Guid ComponentGuid => new Guid("74c5b6bf-257e-8d4e-d9cb-7dc2c7ae3f22"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Floor.ctor(Objects.ICurve,System.Collections.Generic.List`1[Objects.ICurve],System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.BuiltElements.Floor"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class FreeformElementSchemaComponent: CreateSchemaObjectBase { - - public FreeformElementSchemaComponent(): base("Freeform element", "Freeform element", "Creates a Revit Freeform element using a list of Brep or Meshes. Category defaults to Generic Models", "Speckle 2 Revit", "Families") { } - - public override Guid ComponentGuid => new Guid("b24dc861-1c3c-a509-bc8b-560e9f7d503e"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.FreeformElement.ctor(System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.FreeformElement"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class FreeformElement1SchemaComponent: CreateSchemaObjectBase { - - public FreeformElement1SchemaComponent(): base("Freeform element", "Freeform element", "Creates a Revit Freeform element using a list of Brep or Meshes.", "Speckle 2 Revit", "Families") { } - - public override Guid ComponentGuid => new Guid("d1bb3f50-6abc-9f34-acf3-297e82bbd8ac"); - public override bool Obsolete => true; - public override GH_Exposure Exposure => GH_Exposure.hidden; - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.FreeformElement.ctor(Speckle.Core.Models.Base,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.FreeformElement"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class FreeformElement2SchemaComponent: CreateSchemaObjectBase { - - public FreeformElement2SchemaComponent(): base("Freeform element", "Freeform element", "Creates a Revit Freeform element using a list of Brep or Meshes.", "Speckle 2 Revit", "Families") { } - - public override Guid ComponentGuid => new Guid("d1a2299d-b8b0-ce4a-6a52-8b8ad95acbfd"); - public override bool Obsolete => true; - public override GH_Exposure Exposure => GH_Exposure.hidden; - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.FreeformElement.ctor(System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.FreeformElement"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GridLineSchemaComponent: CreateSchemaObjectBase { - - public GridLineSchemaComponent(): base("GridLine", "GridLine", "Creates a Speckle grid line", "Speckle 2 BIM", "Other") { } - - public override Guid ComponentGuid => new Guid("b2d4bd71-86a7-c142-7220-d9ed2ee7b02e"); - public override bool Obsolete => true; - public override GH_Exposure Exposure => GH_Exposure.hidden; - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.GridLine.ctor(Objects.ICurve)","Objects.BuiltElements.GridLine"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GridLine1SchemaComponent: CreateSchemaObjectBase { - - public GridLine1SchemaComponent(): base("GridLine", "GridLine", "Creates a Speckle grid line with a label", "Speckle 2 BIM", "Other") { } - - public override Guid ComponentGuid => new Guid("436f3773-b3f9-1a35-684e-a75f25f6c3bd"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.GridLine.ctor(Objects.ICurve,System.String)","Objects.BuiltElements.GridLine"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAAlignmentSchemaComponent: CreateSchemaObjectBase { - - public GSAAlignmentSchemaComponent(): base("GSAAlignment", "GSAAlignment", "Creates a Speckle structural alignment for GSA (as a setting out feature for bridge models)", "Speckle 2 GSA", "Bridge") { } - - public override Guid ComponentGuid => new Guid("fc274806-efb5-c3b2-9c1d-bc9a6aba1a34"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Bridge.GSAAlignment.ctor(System.Int32,System.String,Objects.Structural.GSA.Geometry.GSAGridSurface,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double])","Objects.Structural.GSA.Bridge.GSAAlignment"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAAnalysisCaseSchemaComponent: CreateSchemaObjectBase { - - public GSAAnalysisCaseSchemaComponent(): base("GSAAnalysisCase", "GSAAnalysisCase", "Creates a Speckle structural analysis case for GSA", "Speckle 2 GSA", "Analysis") { } - - public override Guid ComponentGuid => new Guid("4bfc261f-98eb-7b2a-5da6-f2ef3505b9b7"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Analysis.GSAAnalysisCase.ctor(System.Int32,System.String,Objects.Structural.GSA.Analysis.GSATask,System.Collections.Generic.List`1[Objects.Structural.Loading.LoadCase],System.Collections.Generic.List`1[System.Double])","Objects.Structural.GSA.Analysis.GSAAnalysisCase"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAAssemblySchemaComponent: CreateSchemaObjectBase { - - public GSAAssemblySchemaComponent(): base("GSAAssembly", "GSAAssembly", "Creates a Speckle structural assembly (ie. a way to define an entity that is formed from a collection of elements or members) for GSA", "Speckle 2 GSA", "Bridge") { } - - public override Guid ComponentGuid => new Guid("9b2c7be3-5172-7660-659a-e39253688363"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAAssembly.ctor(System.Int32,System.String,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.GSA.Geometry.GSANode,Objects.Structural.GSA.Geometry.GSANode,Objects.Structural.GSA.Geometry.GSANode,System.Double,System.Double,System.String,System.Int32,System.String,System.Collections.Generic.List`1[System.Double])","Objects.Structural.GSA.Geometry.GSAAssembly"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAConcreteSchemaComponent: CreateSchemaObjectBase { - - public GSAConcreteSchemaComponent(): base("GSAConcrete", "GSAConcrete", "Creates a Speckle structural concrete material for GSA", "Speckle 2 GSA", "Materials") { } - - public override Guid ComponentGuid => new Guid("a86c1d31-6807-f465-c51c-24d5d7a5a728"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Materials.GSAConcrete.ctor(System.Int32,System.String,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Boolean,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.String)","Objects.Structural.GSA.Materials.GSAConcrete"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAElement1DSchemaComponent: CreateSchemaObjectBase { - - public GSAElement1DSchemaComponent(): base("GSAElement1D (from local axis)", "GSAElement1D (from local axis)", "Creates a Speckle structural 1D element for GSA (from local axis)", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("8b41c9e5-f24b-f0bc-7b62-169f839883ec"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAElement1D.ctor(System.Int32,Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Geometry.Plane)","Objects.Structural.GSA.Geometry.GSAElement1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAElement1D1SchemaComponent: CreateSchemaObjectBase { - - public GSAElement1D1SchemaComponent(): base("GSAElement1D (from orientation node and angle)", "GSAElement1D (from orientation node and angle)", "Creates a Speckle structural 1D element for GSA (from orientation node and angle)", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("d3ff71ed-34b8-6f9b-7ebc-50ff8195d1b2"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAElement1D.ctor(System.Int32,Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Structural.Geometry.Node,System.Double)","Objects.Structural.GSA.Geometry.GSAElement1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAElement2DSchemaComponent: CreateSchemaObjectBase { - - public GSAElement2DSchemaComponent(): base("GSAElement2D", "GSAElement2D", "Creates a Speckle structural 2D element for GSA", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("9a1c5132-a785-c389-fe5f-441820f07446"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAElement2D.ctor(System.Int32,System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Properties.Property2D,Objects.Structural.Geometry.ElementType2D,System.String,System.Double,System.Double,System.Int32,System.String,System.Boolean)","Objects.Structural.GSA.Geometry.GSAElement2D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAElement3DSchemaComponent: CreateSchemaObjectBase { - - public GSAElement3DSchemaComponent(): base("GSAElement3D", "GSAElement3D", "Creates a Speckle structural 3D element for GSA", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("3fb3f410-62f0-f972-de47-4e55d8aee0b6"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAElement3D.ctor(System.Int32,Objects.Geometry.Mesh,Objects.Structural.Properties.Property3D,Objects.Structural.Geometry.ElementType3D,System.String,System.Double,System.Int32,System.String,System.Boolean)","Objects.Structural.GSA.Geometry.GSAElement3D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAGeneralisedRestraintSchemaComponent: CreateSchemaObjectBase { - - public GSAGeneralisedRestraintSchemaComponent(): base("GSAGeneralisedRestraint", "GSAGeneralisedRestraint", "Creates a Speckle structural generalised restraint (a set of restraint conditions to be applied to a list of nodes) for GSA", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("e3b018a2-2196-d3aa-a66a-3248343143aa"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAGeneralisedRestraint.ctor(System.Int32,System.String,Objects.Structural.Geometry.Restraint,System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],System.Collections.Generic.List`1[Objects.Structural.GSA.Analysis.GSAStage])","Objects.Structural.GSA.Geometry.GSAGeneralisedRestraint"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAGridLineSchemaComponent: CreateSchemaObjectBase { - - public GSAGridLineSchemaComponent(): base("GSAGridLine", "GSAGridLine", "Creates a Speckle structural grid line for GSA", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("1fdfd333-8214-4f28-1835-7609247412ac"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAGridLine.ctor(System.Int32,System.String,Objects.ICurve)","Objects.Structural.GSA.Geometry.GSAGridLine"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAGridPlaneSchemaComponent: CreateSchemaObjectBase { - - public GSAGridPlaneSchemaComponent(): base("GSAGridPlane", "GSAGridPlane", "Creates a Speckle structural grid plane for GSA", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("f7db7fc7-c05e-c257-c11c-7d3a3e7ecdfc"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAGridPlane.ctor(System.Int32,System.String,Objects.Structural.Geometry.Axis,System.Double)","Objects.Structural.GSA.Geometry.GSAGridPlane"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAGridSurfaceSchemaComponent: CreateSchemaObjectBase { - - public GSAGridSurfaceSchemaComponent(): base("GSAGridSurface", "GSAGridSurface", "Creates a Speckle structural grid surface for GSA", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("868d0f73-da31-e362-f5c5-c2e5a98f0f46"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAGridSurface.ctor(System.String,System.Int32,Objects.Structural.GSA.Geometry.GSAGridPlane,System.Double,System.Double,Objects.Structural.GSA.Geometry.LoadExpansion,Objects.Structural.GSA.Geometry.GridSurfaceSpanType,System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.Structural.GSA.Geometry.GSAGridSurface"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAInfluenceBeamSchemaComponent: CreateSchemaObjectBase { - - public GSAInfluenceBeamSchemaComponent(): base("GSAInfluenceBeam", "GSAInfluenceBeam", "Creates a Speckle structural beam influence effect for GSA (for an influence analysis)", "Speckle 2 GSA", "Bridge") { } - - public override Guid ComponentGuid => new Guid("8844e443-368c-0b7d-89d8-fc563aa7a56d"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Bridge.GSAInfluenceBeam.ctor(System.Int32,System.String,System.Double,Objects.Structural.GSA.Bridge.InfluenceType,Objects.Structural.Loading.LoadDirection,Objects.Structural.GSA.Geometry.GSAElement1D,System.Double)","Objects.Structural.GSA.Bridge.GSAInfluenceBeam"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAInfluenceNodeSchemaComponent: CreateSchemaObjectBase { - - public GSAInfluenceNodeSchemaComponent(): base("GSAInfluenceBeam", "GSAInfluenceBeam", "Creates a Speckle structural node influence effect for GSA (for an influence analysis)", "Speckle 2 GSA", "Bridge") { } - - public override Guid ComponentGuid => new Guid("61efde90-bb48-abf4-e69a-87376cab33bd"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Bridge.GSAInfluenceNode.ctor(System.Int32,System.String,System.Double,Objects.Structural.GSA.Bridge.InfluenceType,Objects.Structural.Loading.LoadDirection,Objects.Structural.Geometry.Node,Objects.Structural.Geometry.Axis)","Objects.Structural.GSA.Bridge.GSAInfluenceNode"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSALoadBeamSchemaComponent: CreateSchemaObjectBase { - - public GSALoadBeamSchemaComponent(): base("GSALoadBeam", "GSALoadBeam", "Creates a Speckle structural beam (1D elem/member) load for GSA", "Speckle 2 GSA", "Loading") { } - - public override Guid ComponentGuid => new Guid("eb5a5098-d189-58ab-d032-60dfdd6e5495"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadBeam.ctor(System.Int32,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.BeamLoadType,Objects.Structural.Loading.LoadDirection,Objects.Structural.LoadAxisType,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean)","Objects.Structural.GSA.Loading.GSALoadBeam"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSALoadBeam1SchemaComponent: CreateSchemaObjectBase { - - public GSALoadBeam1SchemaComponent(): base("GSALoadBeam (user-defined axis)", "GSALoadBeam (user-defined axis)", "Creates a Speckle structural beam (1D elem/member) load (specified for a user-defined axis) for GSA", "Speckle 2 GSA", "Loading") { } - - public override Guid ComponentGuid => new Guid("29927efe-6612-a3f7-a0c7-49ef97bea3ae"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadBeam.ctor(System.Int32,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.BeamLoadType,Objects.Structural.Loading.LoadDirection,Objects.Structural.Geometry.Axis,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean)","Objects.Structural.GSA.Loading.GSALoadBeam"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSALoadCaseSchemaComponent: CreateSchemaObjectBase { - - public GSALoadCaseSchemaComponent(): base("GSALoadCase", "GSALoadCase", "Creates a Speckle structural load case for GSA", "Speckle 2 GSA", "Loading") { } - - public override Guid ComponentGuid => new Guid("3d862f90-6804-d75c-a0e2-8e90c9b190db"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadCase.ctor(System.Int32,System.String,Objects.Structural.Loading.LoadType,Objects.Structural.Loading.LoadDirection2D,System.String,Objects.Structural.Loading.ActionType,System.String,System.String,System.Boolean)","Objects.Structural.GSA.Loading.GSALoadCase"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSALoadCombinationSchemaComponent: CreateSchemaObjectBase { - - public GSALoadCombinationSchemaComponent(): base("GSALoadCombination", "GSALoadCombination", "Creates a Speckle load combination for GSA", "Speckle 2 GSA", "Loading") { } - - public override Guid ComponentGuid => new Guid("a79c8825-221a-d44f-5faa-b257f3f6c98e"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadCombination.ctor(System.Int32,System.String,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[System.Double])","Objects.Structural.GSA.Loading.GSALoadCombination"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSALoadFaceSchemaComponent: CreateSchemaObjectBase { - - public GSALoadFaceSchemaComponent(): base("GSALoadFace", "GSALoadFace", "Creates a Speckle structural face (2D elem/member) load for GSA", "Speckle 2 GSA", "Loading") { } - - public override Guid ComponentGuid => new Guid("abc889bd-7235-5b08-9f91-124a4dd94c7a"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadFace.ctor(System.Int32,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.FaceLoadType,Objects.Structural.Loading.LoadDirection2D,Objects.Structural.LoadAxisType,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean)","Objects.Structural.GSA.Loading.GSALoadFace"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSALoadGravitySchemaComponent: CreateSchemaObjectBase { - - public GSALoadGravitySchemaComponent(): base("GSALoadGravity", "GSALoadGravity", "Creates a Speckle structural gravity load (applied to all nodes and elements) for GSA", "Speckle 2 GSA", "Loading") { } - - public override Guid ComponentGuid => new Guid("a49dd14b-f073-b628-f175-030c5cee8d3b"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadGravity.ctor(System.Int32,System.String,Objects.Structural.Loading.LoadCase,Objects.Geometry.Vector)","Objects.Structural.GSA.Loading.GSALoadGravity"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSALoadGravity1SchemaComponent: CreateSchemaObjectBase { - - public GSALoadGravity1SchemaComponent(): base("GSALoadGravity (specified elements)", "GSALoadGravity (specified elements)", "Creates a Speckle structural gravity load (applied to specified elements) for GSA", "Speckle 2 GSA", "Loading") { } - - public override Guid ComponentGuid => new Guid("6b27dc40-c384-1058-d7ab-eaf6bcd19587"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadGravity.ctor(System.Int32,System.String,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Geometry.Vector)","Objects.Structural.GSA.Loading.GSALoadGravity"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSALoadGravity2SchemaComponent: CreateSchemaObjectBase { - - public GSALoadGravity2SchemaComponent(): base("GSALoadGravity (specified elements and nodes)", "GSALoadGravity (specified elements and nodes)", "Creates a Speckle structural gravity load (applied to specified nodes and elements) for GSA", "Speckle 2 GSA", "Loading") { } - - public override Guid ComponentGuid => new Guid("05096aa4-f73a-01d0-5613-1184349cb0ea"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadGravity.ctor(System.Int32,System.String,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Geometry.Vector,System.String)","Objects.Structural.GSA.Loading.GSALoadGravity"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSALoadNodeSchemaComponent: CreateSchemaObjectBase { - - public GSALoadNodeSchemaComponent(): base("GSALoadNode", "GSALoadNode", "Creates a Speckle node load for GSA", "Speckle 2 GSA", "Loading") { } - - public override Guid ComponentGuid => new Guid("8a591a6c-207c-f42a-d2f4-596594a536a7"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadNode.ctor(System.Int32,System.String,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Objects.Structural.GSA.Geometry.GSANode],Objects.Structural.Loading.LoadDirection,System.Double)","Objects.Structural.GSA.Loading.GSALoadNode"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSALoadNode1SchemaComponent: CreateSchemaObjectBase { - - public GSALoadNode1SchemaComponent(): base("GSALoadNode (user-defined axis)", "GSALoadNode (user-defined axis)", "Creates a Speckle node load (user-defined axis) for GSA", "Speckle 2 GSA", "Loading") { } - - public override Guid ComponentGuid => new Guid("d641ad56-fa70-fd1f-7066-412a8e15970e"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadNode.ctor(System.Int32,System.String,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Geometry.Axis,Objects.Structural.Loading.LoadDirection,System.Double)","Objects.Structural.GSA.Loading.GSALoadNode"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAMaterialSchemaComponent: CreateSchemaObjectBase { - - public GSAMaterialSchemaComponent(): base("GSAMaterial", "GSAMaterial", "Creates a Speckle structural material for GSA", "Speckle 2 GSA", "Materials") { } - - public override Guid ComponentGuid => new Guid("6e7d020a-4a4b-9f9a-f573-222476220b2c"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Materials.GSAMaterial.ctor(System.Int32,System.String,Objects.Structural.MaterialType,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.String)","Objects.Structural.GSA.Materials.GSAMaterial"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAMember1DSchemaComponent: CreateSchemaObjectBase { - - public GSAMember1DSchemaComponent(): base("GSAMember1D (from local axis)", "GSAMember1D (from local axis)", "Creates a Speckle structural 1D member for GSA (from local axis)", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("e86d92aa-cefd-5a09-138d-a1cd1fe36e7d"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAMember1D.ctor(System.Int32,Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Geometry.Plane)","Objects.Structural.GSA.Geometry.GSAMember1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAMember1D1SchemaComponent: CreateSchemaObjectBase { - - public GSAMember1D1SchemaComponent(): base("GSAMember1D (from orientation node and angle)", "GSAMember1D (from orientation node and angle)", "Creates a Speckle structural 1D member for GSA (from orientation node and angle)", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("7c4f3597-5d45-eb1e-c7e9-c3a4dfb9a240"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAMember1D.ctor(System.Int32,Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Structural.GSA.Geometry.GSANode,System.Double)","Objects.Structural.GSA.Geometry.GSAMember1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAMember2DSchemaComponent: CreateSchemaObjectBase { - - public GSAMember2DSchemaComponent(): base("GSAMember2D", "GSAMember2D", "Creates a Speckle structural 2D member for GSA", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("3b367574-1c20-77d0-c4e8-46979f8a3f42"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAMember2D.ctor(System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Properties.Property2D,Objects.Structural.Geometry.ElementType2D,System.Collections.Generic.List`1[System.Collections.Generic.List`1[Objects.Structural.Geometry.Node]],System.Double,System.Double)","Objects.Structural.GSA.Geometry.GSAMember2D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSANodeSchemaComponent: CreateSchemaObjectBase { - - public GSANodeSchemaComponent(): base("GSANode", "GSANode", "Creates a Speckle structural node for GSA", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("3b6c01e9-4d99-90a8-357e-def8c043faa0"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSANode.ctor(System.Int32,Objects.Geometry.Point,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Axis,Objects.Structural.Properties.PropertySpring,Objects.Structural.Properties.PropertyMass,Objects.Structural.Properties.PropertyDamper,System.Double,System.String)","Objects.Structural.GSA.Geometry.GSANode"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAPathSchemaComponent: CreateSchemaObjectBase { - - public GSAPathSchemaComponent(): base("GSAPath", "GSAPath", "Creates a Speckle structural path for GSA (a path defines traffic lines along a bridge relative to an alignments, for influence analysis)", "Speckle 2 GSA", "Bridge") { } - - public override Guid ComponentGuid => new Guid("f6c0f7f0-b742-f8ca-ebc4-0872bfd0517c"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Bridge.GSAPath.ctor(System.Int32,System.String,Objects.Structural.GSA.Bridge.PathType,System.Int32,Objects.Structural.GSA.Bridge.GSAAlignment,System.Double,System.Double,System.Double,System.Int32)","Objects.Structural.GSA.Bridge.GSAPath"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAPolylineSchemaComponent: CreateSchemaObjectBase { - - public GSAPolylineSchemaComponent(): base("GSAPolyline", "GSAPolyline", "Creates a Speckle structural polyline for GSA", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("e1e8bcb7-7a12-79be-d15f-c2a2bc9ad6df"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSAPolyline.ctor(System.String,System.Int32,System.Collections.Generic.IEnumerable`1[System.Double],System.String,Objects.Structural.GSA.Geometry.GSAGridPlane)","Objects.Structural.GSA.Loading.GSAPolyline"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAProperty1DSchemaComponent: CreateSchemaObjectBase { - - public GSAProperty1DSchemaComponent(): base("GSAProperty1D", "GSAProperty1D", "Creates a Speckle structural 1D element property for GSA", "Speckle 2 GSA", "Properties") { } - - public override Guid ComponentGuid => new Guid("347df789-96b7-21f2-fc2f-5bfd26dfbe6f"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Properties.GSAProperty1D.ctor(System.Int32,System.String,Objects.Structural.Materials.StructuralMaterial,Objects.Structural.Properties.Profiles.SectionProfile,System.Double,System.Double)","Objects.Structural.GSA.Properties.GSAProperty1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAProperty2DSchemaComponent: CreateSchemaObjectBase { - - public GSAProperty2DSchemaComponent(): base("GSAProperty2D", "GSAProperty2D", "Creates a Speckle structural 2D element property for GSA", "Speckle 2 GSA", "Properties") { } - - public override Guid ComponentGuid => new Guid("562e2664-bdf3-8b98-6e09-cc6584cf2146"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Properties.GSAProperty2D.ctor(System.Int32,System.String,Objects.Structural.Materials.StructuralMaterial,System.Double)","Objects.Structural.GSA.Properties.GSAProperty2D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSARigidConstraintSchemaComponent: CreateSchemaObjectBase { - - public GSARigidConstraintSchemaComponent(): base("GSARigidConstraint", "GSARigidConstraint", "Creates a Speckle structural rigid restraint (a set of nodes constrained to move as a rigid body) for GSA", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("fd5845ec-2b73-db4d-8c8f-01d9c7c7d0bb"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSARigidConstraint.ctor(System.String,System.Int32,Objects.Structural.Geometry.Node,System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Speckle.Core.Models.Base,System.Collections.Generic.List`1[Objects.Structural.GSA.Analysis.GSAStage],Objects.Structural.GSA.Geometry.LinkageType,System.Collections.Generic.Dictionary`2[Objects.Structural.GSA.Geometry.AxisDirection6,System.Collections.Generic.List`1[Objects.Structural.GSA.Geometry.AxisDirection6]])","Objects.Structural.GSA.Geometry.GSARigidConstraint"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAStageSchemaComponent: CreateSchemaObjectBase { - - public GSAStageSchemaComponent(): base("GSAStage", "GSAStage", "Creates a Speckle structural analysis stage for GSA", "Speckle 2 GSA", "Analysis") { } - - public override Guid ComponentGuid => new Guid("0f7bf991-1225-1cea-5543-7dea926b1089"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Analysis.GSAStage.ctor(System.Int32,System.String,System.String,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Double,System.Int32,System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.Structural.GSA.Analysis.GSAStage"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSASteelSchemaComponent: CreateSchemaObjectBase { - - public GSASteelSchemaComponent(): base("Steel", "Steel", "Creates a Speckle structural material for steel (to be used in structural analysis models)", "Speckle 2 Structural", "Materials") { } - - public override Guid ComponentGuid => new Guid("073f9f26-2cfb-9f2d-fbcd-67ce9904872e"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Materials.GSASteel.ctor(System.Int32,System.String,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.String)","Objects.Structural.GSA.Materials.GSASteel"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAStoreySchemaComponent: CreateSchemaObjectBase { - - public GSAStoreySchemaComponent(): base("GSAStorey", "GSAStorey", "Creates a Speckle structural storey (to describe floor levels/storeys in the structural model) for GSA", "Speckle 2 GSA", "Geometry") { } - - public override Guid ComponentGuid => new Guid("24bd70e1-024d-538c-8132-d02c4c101e5d"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAStorey.ctor(System.Int32,System.String,Objects.Structural.Geometry.Axis,System.Double,System.Double,System.Double)","Objects.Structural.GSA.Geometry.GSAStorey"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSATaskSchemaComponent: CreateSchemaObjectBase { - - public GSATaskSchemaComponent(): base("GSAAnalysisTask", "GSAAnalysisTask", "Creates a Speckle structural analysis task for GSA", "Speckle 2 GSA", "Analysis") { } - - public override Guid ComponentGuid => new Guid("958d20e6-b44e-1dbc-4df3-6dee9b9e13bb"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Analysis.GSATask.ctor(System.Int32,System.String)","Objects.Structural.GSA.Analysis.GSATask"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class GSAUserVehicleSchemaComponent: CreateSchemaObjectBase { - - public GSAUserVehicleSchemaComponent(): base("GSAUserVehicle", "GSAUserVehicle", "Creates a Speckle structural user-defined vehicle (as a pattern of loading based on axle and wheel positions, for influence analysis) for GSA", "Speckle 2 GSA", "Bridge") { } - - public override Guid ComponentGuid => new Guid("891ecc6d-cf2a-a476-d94c-f31b51eff020"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Bridge.GSAUserVehicle.ctor(System.Int32,System.String,System.Double,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double])","Objects.Structural.GSA.Bridge.GSAUserVehicle"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ISectionSchemaComponent: CreateSchemaObjectBase { - - public ISectionSchemaComponent(): base("ISection", "ISection", "Creates a Speckle structural I section profile", "Speckle 2 Structural", "Section Profile") { } - - public override Guid ComponentGuid => new Guid("321c4075-d631-8957-9daf-244e6374d73e"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.ISection.ctor(System.String,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.Profiles.ISection"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class LevelSchemaComponent: CreateSchemaObjectBase { - - public LevelSchemaComponent(): base("Level", "Level", "Creates a Speckle level", "Speckle 2 BIM", "Architecture") { } - - public override Guid ComponentGuid => new Guid("04fca79a-ae5b-6ac4-581d-79438351a4e8"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Level.ctor(System.String,System.Double)","Objects.BuiltElements.Level"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class LoadBeamSchemaComponent: CreateSchemaObjectBase { - - public LoadBeamSchemaComponent(): base("Beam Load", "Beam Load", "Creates a Speckle structural beam (1D elem/member) load", "Speckle 2 Structural", "Loading") { } - - public override Guid ComponentGuid => new Guid("5aa7c096-d596-e901-49cd-94df21f0f4c9"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadBeam.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.BeamLoadType,Objects.Structural.Loading.LoadDirection,Objects.Structural.LoadAxisType,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean,System.String)","Objects.Structural.Loading.LoadBeam"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class LoadBeam1SchemaComponent: CreateSchemaObjectBase { - - public LoadBeam1SchemaComponent(): base("Beam Load (user-defined axis)", "Beam Load (user-defined axis)", "Creates a Speckle structural beam (1D elem/member) load (specified using a user-defined axis)", "Speckle 2 Structural", "Loading") { } - - public override Guid ComponentGuid => new Guid("a84bb64f-5fdc-13b4-bd37-99fa6ee8260a"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadBeam.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.BeamLoadType,Objects.Structural.Loading.LoadDirection,Objects.Structural.Geometry.Axis,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean,System.String)","Objects.Structural.Loading.LoadBeam"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class LoadCaseSchemaComponent: CreateSchemaObjectBase { - - public LoadCaseSchemaComponent(): base("Load Case", "Load Case", "Creates a Speckle structural load case", "Speckle 2 Structural", "Loading") { } - - public override Guid ComponentGuid => new Guid("6436c6fd-e4e3-b78a-75f5-d967dc2550fc"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadCase.ctor(System.String,Objects.Structural.Loading.LoadType,System.String,Objects.Structural.Loading.ActionType,System.String)","Objects.Structural.Loading.LoadCase"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class LoadCombinationSchemaComponent: CreateSchemaObjectBase { - - public LoadCombinationSchemaComponent(): base("Load Combination", "Load Combination", "Creates a Speckle load combination", "Speckle 2 Structural", "Loading") { } - - public override Guid ComponentGuid => new Guid("fdbef7a9-adba-eeed-cb4f-9d9799e16da7"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadCombination.ctor(System.String,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[System.Double],Objects.Structural.Loading.CombinationType)","Objects.Structural.Loading.LoadCombination"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class LoadFaceSchemaComponent: CreateSchemaObjectBase { - - public LoadFaceSchemaComponent(): base("Face Load", "Face Load", "Creates a Speckle structural face (2D elem/member) load", "Speckle 2 Structural", "Loading") { } - - public override Guid ComponentGuid => new Guid("9bc9c37f-a304-15dc-76ce-17fced07fa46"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadFace.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.FaceLoadType,Objects.Structural.Loading.LoadDirection2D,Objects.Structural.LoadAxisType,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean,System.String)","Objects.Structural.Loading.LoadFace"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class LoadFace1SchemaComponent: CreateSchemaObjectBase { - - public LoadFace1SchemaComponent(): base("Face Load (user-defined axis)", "Face Load (user-defined axis)", "Creates a Speckle structural face (2D elem/member) load (specified using a user-defined axis)", "Speckle 2 Structural", "Loading") { } - - public override Guid ComponentGuid => new Guid("ad3f7cf4-8c06-10ce-39a2-895ab8a9a475"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadFace.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.FaceLoadType,Objects.Structural.Loading.LoadDirection2D,Objects.Structural.Geometry.Axis,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean,System.String)","Objects.Structural.Loading.LoadFace"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class LoadGravitySchemaComponent: CreateSchemaObjectBase { - - public LoadGravitySchemaComponent(): base("Gravity Load (all elements)", "Gravity Load (all elements)", "Creates a Speckle structural gravity load (applied to all nodes and elements)", "Speckle 2 Structural", "Loading") { } - - public override Guid ComponentGuid => new Guid("f29ce365-1d94-af6d-cf2d-455043fba7a4"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadGravity.ctor(Objects.Structural.Loading.LoadCase,Objects.Geometry.Vector,System.String)","Objects.Structural.Loading.LoadGravity"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class LoadGravity1SchemaComponent: CreateSchemaObjectBase { - - public LoadGravity1SchemaComponent(): base("Gravity Load (specified elements)", "Gravity Load (specified elements)", "Creates a Speckle structural gravity load (applied to specified elements)", "Speckle 2 Structural", "Loading") { } - - public override Guid ComponentGuid => new Guid("a916973a-2052-a4b5-9184-2e76e0059e65"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadGravity.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Geometry.Vector,System.String)","Objects.Structural.Loading.LoadGravity"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class LoadGravity2SchemaComponent: CreateSchemaObjectBase { - - public LoadGravity2SchemaComponent(): base("Gravity Load (specified elements and nodes)", "Gravity Load (specified elements and nodes)", "Creates a Speckle structural gravity load (applied to specified nodes and elements)", "Speckle 2 Structural", "Loading") { } - - public override Guid ComponentGuid => new Guid("0a4e16ba-52e5-38d9-dce6-630e15528828"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadGravity.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Geometry.Vector,System.String)","Objects.Structural.Loading.LoadGravity"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class LoadNodeSchemaComponent: CreateSchemaObjectBase { - - public LoadNodeSchemaComponent(): base("Node Load", "Node Load", "Creates a Speckle node load", "Speckle 2 Structural", "Loading") { } - - public override Guid ComponentGuid => new Guid("3d5a37ee-3ce8-8dc6-0efb-7c81bb9d4588"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadNode.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Loading.LoadDirection,System.Double,System.String)","Objects.Structural.Loading.LoadNode"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class LoadNode1SchemaComponent: CreateSchemaObjectBase { - - public LoadNode1SchemaComponent(): base("Node Load (user-defined axis)", "Node Load (user-defined axis)", "Creates a Speckle node load (specifed using a user-defined axis)", "Speckle 2 Structural", "Loading") { } - - public override Guid ComponentGuid => new Guid("cbbfa332-f0f7-0470-a9f7-7a81813075ad"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadNode.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Geometry.Axis,Objects.Structural.Loading.LoadDirection,System.Double,System.String)","Objects.Structural.Loading.LoadNode"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class MaterialSchemaComponent: CreateSchemaObjectBase { - - public MaterialSchemaComponent(): base("RevitMaterial", "RevitMaterial", "Creates a Speckle material", "Speckle 2 BIM", "Architecture") { } - - public override Guid ComponentGuid => new Guid("a2ec94ca-c50c-01bf-3d12-0c8feb41004b"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Other.Material.ctor(System.String)","Objects.Other.Material"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class MaterialQuantitySchemaComponent: CreateSchemaObjectBase { - - public MaterialQuantitySchemaComponent(): base("MaterialQuantity", "MaterialQuantity", "Creates the quantity of a material", "Speckle 2 BIM", "Objects.Other") { } - - public override Guid ComponentGuid => new Guid("c94a9777-99bb-d501-281a-c10300309038"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Other.MaterialQuantity.ctor(Objects.Other.Material,System.Double,System.Double,System.String)","Objects.Other.MaterialQuantity"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ModelSchemaComponent: CreateSchemaObjectBase { - - public ModelSchemaComponent(): base("Model", "Model", "Creates a Speckle structural model object", "Speckle 2 Structural", "Analysis") { } - - public override Guid ComponentGuid => new Guid("af7f27db-7897-fcad-1839-3b5213188ef8"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Analysis.Model.ctor(Objects.Structural.Analysis.ModelInfo,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.Structural.Analysis.Model"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ModelCurveSchemaComponent: CreateSchemaObjectBase { - - public ModelCurveSchemaComponent(): base("ModelCurve", "ModelCurve", "Creates a Revit model curve", "Speckle 2 Revit", "Curves") { } - - public override Guid ComponentGuid => new Guid("7aa6e073-6783-8e7b-eec2-7b7bb0420db2"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.Curve.ModelCurve.ctor(Objects.ICurve,System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.Curve.ModelCurve"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ModelInfoSchemaComponent: CreateSchemaObjectBase { - - public ModelInfoSchemaComponent(): base("ModelInfo", "ModelInfo", "Creates a Speckle object which describes basic model and project information for a structural model", "Speckle 2 Structural", "Analysis") { } - - public override Guid ComponentGuid => new Guid("f9da0acf-e2ee-8d25-662f-f5b9928ff8aa"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Analysis.ModelInfo.ctor(System.String,System.String,System.String,System.String,Objects.Structural.Analysis.ModelSettings,System.String,System.String)","Objects.Structural.Analysis.ModelInfo"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ModelSettingsSchemaComponent: CreateSchemaObjectBase { - - public ModelSettingsSchemaComponent(): base("ModelSettings", "ModelSettings", "Creates a Speckle object which describes design and analysis settings for the structural model", "Speckle 2 Structural", "Analysis") { } - - public override Guid ComponentGuid => new Guid("2f8c73cc-0692-3fd9-a825-7e0677164975"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Analysis.ModelSettings.ctor(Objects.Structural.Analysis.ModelUnits,System.String,System.String,System.Double)","Objects.Structural.Analysis.ModelSettings"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ModelUnitsSchemaComponent: CreateSchemaObjectBase { - - public ModelUnitsSchemaComponent(): base("ModelUnits", "ModelUnits", "Creates a Speckle object which specifies the units associated with the model", "Speckle 2 Structural", "Analysis") { } - - public override Guid ComponentGuid => new Guid("6c3340f9-3493-5e35-7272-e6acd0eefa85"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Analysis.ModelUnits.ctor(Objects.Structural.Analysis.UnitsType)","Objects.Structural.Analysis.ModelUnits"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ModelUnits1SchemaComponent: CreateSchemaObjectBase { - - public ModelUnits1SchemaComponent(): base("ModelUnits (custom)", "ModelUnits (custom)", "Creates a Speckle object which specifies the units associated with the model", "Speckle 2 Structural", "Analysis") { } - - public override Guid ComponentGuid => new Guid("162c2a99-e4c9-314f-1833-f0e4a5c7451d"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Analysis.ModelUnits.ctor(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)","Objects.Structural.Analysis.ModelUnits"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class NodeSchemaComponent: CreateSchemaObjectBase { - - public NodeSchemaComponent(): base("Node with properties", "Node with properties", "Creates a Speckle structural node with spring, mass and/or damper properties", "Speckle 2 Structural", "Geometry") { } - - public override Guid ComponentGuid => new Guid("dacc1582-c084-4685-981a-6f8f8d8663c8"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Node.ctor(Objects.Geometry.Point,System.String,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Axis,Objects.Structural.Properties.PropertySpring,Objects.Structural.Properties.PropertyMass,Objects.Structural.Properties.PropertyDamper)","Objects.Structural.Geometry.Node"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class OpeningSchemaComponent: CreateSchemaObjectBase { - - public OpeningSchemaComponent(): base("Arch Opening", "Arch Opening", "Creates a Speckle opening", "Speckle 2 BIM", "Architecture") { } - - public override Guid ComponentGuid => new Guid("087f847f-6f51-3cc9-5b7d-2cce478b46f4"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Opening.ctor(Objects.ICurve)","Objects.BuiltElements.Opening"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ParameterSchemaComponent: CreateSchemaObjectBase { - - public ParameterSchemaComponent(): base("Parameter", "Parameter", "A Revit instance parameter to set on an element", "Speckle 2 Revit", "Families") { } - - public override Guid ComponentGuid => new Guid("706f3fe9-f499-b07f-b682-febedbe38c9c"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.Parameter.ctor(System.String,System.Object,System.String)","Objects.BuiltElements.Revit.Parameter"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ParameterUpdaterSchemaComponent: CreateSchemaObjectBase { - - public ParameterUpdaterSchemaComponent(): base("ParameterUpdater", "ParameterUpdater", "Updates parameters on a Revit element by id", "Speckle 2 Revit", "Families") { } - - public override Guid ComponentGuid => new Guid("c4f5fc69-58e1-59f6-4dac-e31b738f7254"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.ParameterUpdater.ctor(System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.ParameterUpdater"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class PerimeterSchemaComponent: CreateSchemaObjectBase { - - public PerimeterSchemaComponent(): base("Perimeter", "Perimeter", "Creates a Speckle structural section profile defined by a perimeter curve and, if applicable, a list of void curves", "Speckle 2 Structural", "Section Profile") { } - - public override Guid ComponentGuid => new Guid("63b41dcc-8f2e-b900-be8a-82a661e56f19"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Perimeter.ctor(System.String,Objects.ICurve,System.Collections.Generic.List`1[Objects.ICurve])","Objects.Structural.Properties.Profiles.Perimeter"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class PipeSchemaComponent: CreateSchemaObjectBase { - - public PipeSchemaComponent(): base("Pipe", "Pipe", "Creates a Speckle pipe", "Speckle 2 BIM", "MEP") { } - - public override Guid ComponentGuid => new Guid("6892cf99-6913-7004-27ab-2cfb8435a644"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Pipe.ctor(Objects.ICurve,System.Double,System.Double,System.Double,System.Double)","Objects.BuiltElements.Pipe"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class PropertySchemaComponent: CreateSchemaObjectBase { - - public PropertySchemaComponent(): base("Property", "Property", "Creates a Speckle structural property", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("8f7a7ef0-dbe1-4085-a1e8-f602612698a5"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property.ctor(System.String)","Objects.Structural.Properties.Property"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Property1DSchemaComponent: CreateSchemaObjectBase { - - public Property1DSchemaComponent(): base("Property1D (by name)", "Property1D (by name)", "Creates a Speckle structural 1D element property", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("fa29bbb6-ab8f-a235-67da-c10fe9daa077"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property1D.ctor(System.String)","Objects.Structural.Properties.Property1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Property1D1SchemaComponent: CreateSchemaObjectBase { - - public Property1D1SchemaComponent(): base("Property1D", "Property1D", "Creates a Speckle structural 1D element property", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("301fb47d-9a12-ed72-4dbf-55d23ac5c432"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property1D.ctor(System.String,Objects.Structural.Materials.StructuralMaterial,Objects.Structural.Properties.Profiles.SectionProfile)","Objects.Structural.Properties.Property1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Property2DSchemaComponent: CreateSchemaObjectBase { - - public Property2DSchemaComponent(): base("Property2D (by name)", "Property2D (by name)", "Creates a Speckle structural 2D element property", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("b637985b-c4b8-0bbd-109b-7caf9fea829f"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property2D.ctor(System.String)","Objects.Structural.Properties.Property2D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Property2D1SchemaComponent: CreateSchemaObjectBase { - - public Property2D1SchemaComponent(): base("Property2D", "Property2D", "Creates a Speckle structural 2D element property", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("a1f72576-5106-26da-625e-6c5dfe798b4f"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property2D.ctor(System.String,Objects.Structural.Materials.StructuralMaterial,Objects.Structural.PropertyType2D,System.Double)","Objects.Structural.Properties.Property2D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Property3DSchemaComponent: CreateSchemaObjectBase { - - public Property3DSchemaComponent(): base("Property3D (by name)", "Property3D (by name)", "Creates a Speckle structural 3D element property", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("a1644434-1c43-113c-786e-c1942f56d205"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property3D.ctor(System.String)","Objects.Structural.Properties.Property3D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Property3D1SchemaComponent: CreateSchemaObjectBase { - - public Property3D1SchemaComponent(): base("Property3D", "Property3D", "Creates a Speckle structural 3D element property", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("5cc8c1d0-c3a7-0c95-f2b6-f8f7b4afdc95"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property3D.ctor(System.String,Objects.Structural.PropertyType3D,Objects.Structural.Materials.StructuralMaterial)","Objects.Structural.Properties.Property3D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class PropertyDamperSchemaComponent: CreateSchemaObjectBase { - - public PropertyDamperSchemaComponent(): base("PropertyDamper", "PropertyDamper", "Creates a Speckle structural damper property", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("3d966901-7bcc-b5d0-c5c9-060ae5a2caff"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertyDamper.ctor(System.String)","Objects.Structural.Properties.PropertyDamper"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class PropertyDamper1SchemaComponent: CreateSchemaObjectBase { - - public PropertyDamper1SchemaComponent(): base("PropertyDamper (general)", "PropertyDamper (general)", "Creates a Speckle structural damper property (for 6 degrees of freedom)", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("10534d96-587f-e36f-3a97-db6b3fae6b53"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertyDamper.ctor(System.String,Objects.Structural.PropertyTypeDamper,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.PropertyDamper"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class PropertyMassSchemaComponent: CreateSchemaObjectBase { - - public PropertyMassSchemaComponent(): base("PropertyMass", "PropertyMass", "Creates a Speckle structural mass property", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("2ab5d65b-d4d7-85fa-01bf-2384c5ce5666"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertyMass.ctor(System.String)","Objects.Structural.Properties.PropertyMass"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class PropertyMass1SchemaComponent: CreateSchemaObjectBase { - - public PropertyMass1SchemaComponent(): base("PropertyMass (general)", "PropertyMass (general)", "Creates a Speckle structural mass property", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("66fb8c7a-804c-06d2-a6e0-5da60241dc48"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertyMass.ctor(System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Boolean,System.Double,System.Double,System.Double)","Objects.Structural.Properties.PropertyMass"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class PropertySpringSchemaComponent: CreateSchemaObjectBase { - - public PropertySpringSchemaComponent(): base("PropertySpring", "PropertySpring", "Creates a Speckle structural spring property", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("c83d3807-3ee9-9eb6-d6d3-ae472e5fce01"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertySpring.ctor(System.String)","Objects.Structural.Properties.PropertySpring"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class PropertySpring1SchemaComponent: CreateSchemaObjectBase { - - public PropertySpring1SchemaComponent(): base("PropertySpring (linear/elastic)", "PropertySpring (linear/elastic)", "Creates a Speckle structural spring property (linear/elastic spring)", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("03b67483-b251-b9f3-900a-e70c331314bb"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertySpring.ctor(System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.PropertySpring"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class PropertySpring2SchemaComponent: CreateSchemaObjectBase { - - public PropertySpring2SchemaComponent(): base("PropertySpring (non-linear)", "PropertySpring (non-linear)", "Creates a Speckle structural spring property (non-linear spring)", "Speckle 2 Structural", "Properties") { } - - public override Guid ComponentGuid => new Guid("761c5a65-bec6-b6fb-1df5-c49cc427631b"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertySpring.ctor(System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.PropertySpring"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RectangularSchemaComponent: CreateSchemaObjectBase { - - public RectangularSchemaComponent(): base("Rectangular", "Rectangular", "Creates a Speckle structural rectangular section profile", "Speckle 2 Structural", "Section Profile") { } - - public override Guid ComponentGuid => new Guid("2f4dce06-42d9-fe1e-5096-24debfd2fd4b"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Rectangular.ctor(System.String,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.Profiles.Rectangular"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RenderMaterialSchemaComponent: CreateSchemaObjectBase { - - public RenderMaterialSchemaComponent(): base("RenderMaterial", "RenderMaterial", "Creates a render material.", "Speckle 2 BIM", "Other") { } - - public override Guid ComponentGuid => new Guid("03a49484-4eba-6e08-5e96-b3b78ed13f70"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Other.RenderMaterial.ctor(System.Double,System.Double,System.Double,System.Nullable`1[System.Drawing.Color],System.Nullable`1[System.Drawing.Color])","Objects.Other.RenderMaterial"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RestraintSchemaComponent: CreateSchemaObjectBase { - - public RestraintSchemaComponent(): base("Restraint (by code)", "Restraint (by code)", "Creates a Speckle restraint object", "Speckle 2 Structural", "Geometry") { } - - public override Guid ComponentGuid => new Guid("4a117edf-50f0-9c11-6a80-e9692f15771b"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Restraint.ctor(System.String)","Objects.Structural.Geometry.Restraint"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Restraint1SchemaComponent: CreateSchemaObjectBase { - - public Restraint1SchemaComponent(): base("Restraint (by code and stiffness)", "Restraint (by code and stiffness)", "Creates a Speckle restraint object (to describe support conditions with an explicit stiffness)", "Speckle 2 Structural", "Geometry") { } - - public override Guid ComponentGuid => new Guid("a57df1f7-6fbd-4c84-a9d6-bd2d84f73811"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Restraint.ctor(System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Geometry.Restraint"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Restraint2SchemaComponent: CreateSchemaObjectBase { - - public Restraint2SchemaComponent(): base("Restraint (by enum)", "Restraint (by enum)", "Creates a Speckle restraint object (for pinned condition or fixed condition)", "Speckle 2 Structural", "Geometry") { } - - public override Guid ComponentGuid => new Guid("f85b9d32-e383-56a2-e6fa-1da0d28febe9"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Restraint.ctor(Objects.Structural.Geometry.RestraintType)","Objects.Structural.Geometry.Restraint"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Result1DSchemaComponent: CreateSchemaObjectBase { - - public Result1DSchemaComponent(): base("Result1D (load case)", "Result1D (load case)", "Creates a Speckle 1D element result object (for load case)", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("62b6e9c3-13b6-9dbd-b222-a0b6a978750e"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.Result1D.ctor(Objects.Structural.Geometry.Element1D,Objects.Structural.Loading.LoadCase,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.Result1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Result1D1SchemaComponent: CreateSchemaObjectBase { - - public Result1D1SchemaComponent(): base("Result1D (load combination)", "Result1D (load combination)", "Creates a Speckle 1D element result object (for load combination)", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("1151871b-42cc-e3f5-5e08-454f9733ef08"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.Result1D.ctor(Objects.Structural.Geometry.Element1D,Objects.Structural.Loading.LoadCombination,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.Result1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Result2DSchemaComponent: CreateSchemaObjectBase { - - public Result2DSchemaComponent(): base("Result2D (load case)", "Result2D (load case)", "Creates a Speckle 2D element result object (for load case)", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("4d551fc5-fc7b-b2b8-5bba-63e48aeee645"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.Result2D.ctor(Objects.Structural.Geometry.Element2D,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[System.Double],System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.Result2D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Result2D1SchemaComponent: CreateSchemaObjectBase { - - public Result2D1SchemaComponent(): base("Result2D (load combination)", "Result2D (load combination)", "Creates a Speckle 2D element result object (for load combination)", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("29194017-21da-96ee-56c4-273cc84ff951"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.Result2D.ctor(Objects.Structural.Geometry.Element2D,Objects.Structural.Loading.LoadCombination,System.Collections.Generic.List`1[System.Double],System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.Result2D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Result3DSchemaComponent: CreateSchemaObjectBase { - - public Result3DSchemaComponent(): base("Result3D (load case)", "Result3D (load case)", "Creates a Speckle 3D element result object (for load case)", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("3a15c6fa-36cd-1da9-e410-928a62b940a8"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.Result3D.ctor(Objects.Structural.Geometry.Element3D,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[System.Double],System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.Result3D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Result3D1SchemaComponent: CreateSchemaObjectBase { - - public Result3D1SchemaComponent(): base("Result3D (load combination)", "Result3D (load combination)", "Creates a Speckle 3D element result object (for load combination)", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("1aa4dd1e-d845-7760-0e58-a3744255f0a1"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.Result3D.ctor(Objects.Structural.Geometry.Element3D,Objects.Structural.Loading.LoadCombination,System.Collections.Generic.List`1[System.Double],System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.Result3D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ResultGlobalSchemaComponent: CreateSchemaObjectBase { - - public ResultGlobalSchemaComponent(): base("ResultGlobal (load case)", "ResultGlobal (load case)", "Creates a Speckle global result object (for load case)", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("6e742681-a159-d811-8d7c-4ac42682872f"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultGlobal.ctor(Objects.Structural.Loading.LoadCase,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.ResultGlobal"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ResultGlobal1SchemaComponent: CreateSchemaObjectBase { - - public ResultGlobal1SchemaComponent(): base("ResultGlobal (load combination)", "ResultGlobal (load combination)", "Creates a Speckle global result object (for load combination)", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("cd0af8ae-e8d9-b1d9-fce1-63d137a8f69c"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultGlobal.ctor(Objects.Structural.Loading.LoadCombination,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.ResultGlobal"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ResultNodeSchemaComponent: CreateSchemaObjectBase { - - public ResultNodeSchemaComponent(): base("ResultNode (load case)", "ResultNode (load case)", "Creates a Speckle structural nodal result object", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("5bf05a45-f397-00ae-0cf5-d89191042d21"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultNode.ctor(Objects.Structural.Loading.LoadCase,Objects.Structural.Geometry.Node,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.ResultNode"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ResultNode1SchemaComponent: CreateSchemaObjectBase { - - public ResultNode1SchemaComponent(): base("ResultNode (load combination)", "ResultNode (load combination)", "Creates a Speckle structural nodal result object", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("c219b902-4ffd-8d03-7de0-2264c8ad6030"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultNode.ctor(Objects.Structural.Loading.LoadCombination,Objects.Structural.Geometry.Node,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.ResultNode"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ResultSet1DSchemaComponent: CreateSchemaObjectBase { - - public ResultSet1DSchemaComponent(): base("ResultSet1D", "ResultSet1D", "Creates a Speckle 1D element result set object", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("7928905d-5fad-53c8-8d44-0eec0c5478ba"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultSet1D.ctor(System.Collections.Generic.List`1[Objects.Structural.Results.Result1D])","Objects.Structural.Results.ResultSet1D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ResultSet2DSchemaComponent: CreateSchemaObjectBase { - - public ResultSet2DSchemaComponent(): base("ResultSet2D", "ResultSet2D", "Creates a Speckle 2D element result set object", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("ff5bdc35-b72a-a0be-066f-5ad08fbb047d"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultSet2D.ctor(System.Collections.Generic.List`1[Objects.Structural.Results.Result2D])","Objects.Structural.Results.ResultSet2D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ResultSet3DSchemaComponent: CreateSchemaObjectBase { - - public ResultSet3DSchemaComponent(): base("ResultSet3D", "ResultSet3D", "Creates a Speckle 3D element result set object", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("7cde5263-7dd0-a1f7-535b-e9856769bc39"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultSet3D.ctor(System.Collections.Generic.List`1[Objects.Structural.Results.Result3D])","Objects.Structural.Results.ResultSet3D"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ResultSetAllSchemaComponent: CreateSchemaObjectBase { - - public ResultSetAllSchemaComponent(): base("ResultSetAll", "ResultSetAll", "Creates a Speckle result set object for 1d element, 2d element, 3d element global and nodal results", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("440aefda-79ff-55f5-4571-1a7ef57239e8"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultSetAll.ctor(Objects.Structural.Results.ResultSet1D,Objects.Structural.Results.ResultSet2D,Objects.Structural.Results.ResultSet3D,Objects.Structural.Results.ResultGlobal,Objects.Structural.Results.ResultSetNode)","Objects.Structural.Results.ResultSetAll"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class ResultSetNodeSchemaComponent: CreateSchemaObjectBase { - - public ResultSetNodeSchemaComponent(): base("ResultSetNode", "ResultSetNode", "Creates a Speckle node result set object", "Speckle 2 Structural", "Results") { } - - public override Guid ComponentGuid => new Guid("07d3aa5f-55e8-f0c6-96da-d9599a8da233"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultSetNode.ctor(System.Collections.Generic.List`1[Objects.Structural.Results.ResultNode])","Objects.Structural.Results.ResultSetNode"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitBeamSchemaComponent: CreateSchemaObjectBase { - - public RevitBeamSchemaComponent(): base("RevitBeam", "RevitBeam", "Creates a Revit beam by curve and base level.", "Speckle 2 Revit", "Structure") { } - - public override Guid ComponentGuid => new Guid("6aba19f5-1b1c-8e0c-f063-2a7c91816b1c"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitBeam.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitBeam"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitBraceSchemaComponent: CreateSchemaObjectBase { - - public RevitBraceSchemaComponent(): base("RevitBrace", "RevitBrace", "Creates a Revit brace by curve and base level.", "Speckle 2 Revit", "Structure") { } - - public override Guid ComponentGuid => new Guid("a3a689dc-2ca5-d5be-a225-99a144768e7e"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitBrace.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitBrace"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitCeilingSchemaComponent: CreateSchemaObjectBase { - - public RevitCeilingSchemaComponent(): base("RevitCeiling", "RevitCeiling", "Creates a Revit ceiling", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("93e6568e-0dc2-ebd2-64b0-e202eabe49cb"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitCeiling.ctor(Objects.ICurve,System.String,System.String,Objects.BuiltElements.Level,System.Double,Objects.Geometry.Line,System.Double,System.Collections.Generic.List`1[Objects.ICurve],System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.BuiltElements.Revit.RevitCeiling"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitColumnSchemaComponent: CreateSchemaObjectBase { - - public RevitColumnSchemaComponent(): base("RevitColumn Vertical", "RevitColumn Vertical", "Creates a vertical Revit Column by point and levels.", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("c243fe91-0103-bea1-34b7-3e8b39c8d0ec"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitColumn.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,Objects.BuiltElements.Level,System.Double,System.Double,System.Boolean,System.Double,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitColumn"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitColumn1SchemaComponent: CreateSchemaObjectBase { - - public RevitColumn1SchemaComponent(): base("RevitColumn Slanted (old)", "RevitColumn Slanted (old)", "Creates a slanted Revit Column by curve.", "Speckle 2 Revit", "Structure") { } - - public override Guid ComponentGuid => new Guid("bd9936e6-c75f-c0de-feb0-b801eff0e0ea"); - public override bool Obsolete => true; - public override GH_Exposure Exposure => GH_Exposure.hidden; - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitColumn.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,System.Boolean,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitColumn"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitColumn2SchemaComponent: CreateSchemaObjectBase { - - public RevitColumn2SchemaComponent(): base("RevitColumn Slanted", "RevitColumn Slanted", "Creates a slanted Revit Column by curve.", "Speckle 2 Revit", "Structure") { } - - public override Guid ComponentGuid => new Guid("1600415c-b327-870c-7cd4-bb9c1b1a82fc"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitColumn.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,Objects.BuiltElements.Level,System.Boolean,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitColumn"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitDuctSchemaComponent: CreateSchemaObjectBase { - - public RevitDuctSchemaComponent(): base("RevitDuct", "RevitDuct", "Creates a Revit duct", "Speckle 2 Revit", "MEP") { } - - public override Guid ComponentGuid => new Guid("d7781536-e8a9-8aef-1b27-571584f8c4a3"); - public override bool Obsolete => true; - public override GH_Exposure Exposure => GH_Exposure.hidden; - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitDuct.ctor(System.String,System.String,Objects.Geometry.Line,System.String,System.String,Objects.BuiltElements.Level,System.Double,System.Double,System.Double,System.Double,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitDuct"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitDuct1SchemaComponent: CreateSchemaObjectBase { - - public RevitDuct1SchemaComponent(): base("RevitDuct", "RevitDuct", "Creates a Revit duct", "Speckle 2 Revit", "MEP") { } - - public override Guid ComponentGuid => new Guid("7bb86598-9cd2-8d29-a1dc-7500c4b4ed4b"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitDuct.ctor(System.String,System.String,Objects.ICurve,System.String,System.String,Objects.BuiltElements.Level,System.Double,System.Double,System.Double,System.Double,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitDuct"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitExtrusionRoofSchemaComponent: CreateSchemaObjectBase { - - public RevitExtrusionRoofSchemaComponent(): base("RevitExtrusionRoof", "RevitExtrusionRoof", "Creates a Revit roof by extruding a curve", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("707428ab-15b4-e7ec-a2cd-21154ff50c1b"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitRoof.RevitExtrusionRoof.ctor(System.String,System.String,System.Double,System.Double,Objects.Geometry.Line,Objects.BuiltElements.Level,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitRoof.RevitExtrusionRoof"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitFaceWallSchemaComponent: CreateSchemaObjectBase { - - public RevitFaceWallSchemaComponent(): base("RevitWall by face", "RevitWall by face", "Creates a Revit wall from a surface.", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("fc3927a7-0877-8137-a34e-ecd19a6f688c"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitFaceWall.ctor(System.String,System.String,Objects.Geometry.Brep,Objects.BuiltElements.Level,Objects.BuiltElements.Revit.LocationLine,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitFaceWall"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitFlexDuctSchemaComponent: CreateSchemaObjectBase { - - public RevitFlexDuctSchemaComponent(): base("RevitFlexDuct", "RevitFlexDuct", "Creates a Revit flex duct", "Speckle 2 Revit", "MEP") { } - - public override Guid ComponentGuid => new Guid("f350f9a2-06ca-6118-a4e6-88e721bb7f52"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitFlexDuct.ctor(System.String,System.String,Objects.ICurve,System.String,System.String,Objects.BuiltElements.Level,System.Double,System.Double,System.Double,Objects.Geometry.Vector,Objects.Geometry.Vector,System.Double,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitFlexDuct"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitFlexPipeSchemaComponent: CreateSchemaObjectBase { - - public RevitFlexPipeSchemaComponent(): base("RevitFlexPipe", "RevitFlexPipe", "Creates a Revit flex pipe", "Speckle 2 Revit", "MEP") { } - - public override Guid ComponentGuid => new Guid("219bfacc-9c41-441a-210c-c2cfb877929b"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitFlexPipe.ctor(System.String,System.String,Objects.ICurve,System.Double,Objects.BuiltElements.Level,Objects.Geometry.Vector,Objects.Geometry.Vector,System.String,System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitFlexPipe"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitFloorSchemaComponent: CreateSchemaObjectBase { - - public RevitFloorSchemaComponent(): base("RevitFloor", "RevitFloor", "Creates a Revit floor by outline and level", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("e6f17d4f-6c28-0d0f-2370-7b9c09a14fff"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitFloor.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,System.Boolean,System.Double,Objects.Geometry.Line,System.Collections.Generic.List`1[Objects.ICurve],System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitFloor"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitFootprintRoofSchemaComponent: CreateSchemaObjectBase { - - public RevitFootprintRoofSchemaComponent(): base("RevitFootprintRoof", "RevitFootprintRoof", "Creates a Revit roof by outline", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("b2f55d9f-7242-ee7e-c44a-24e34d5f6e3e"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitRoof.RevitFootprintRoof.ctor(Objects.ICurve,System.String,System.String,Objects.BuiltElements.Level,Objects.BuiltElements.Revit.RevitLevel,System.Double,System.Collections.Generic.List`1[Objects.ICurve],System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitRoof.RevitFootprintRoof"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitLevelSchemaComponent: CreateSchemaObjectBase { - - public RevitLevelSchemaComponent(): base("RevitLevel", "RevitLevel", "Creates a new Revit level unless one with the same elevation already exists", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("5ef6e45c-00bd-f3b9-1cbf-6e9a902da7ab"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitLevel.ctor(System.String,System.Double,System.Boolean,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitLevel"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitLevel1SchemaComponent: CreateSchemaObjectBase { - - public RevitLevel1SchemaComponent(): base("RevitLevel by name", "RevitLevel by name", "Gets an existing Revit level by name", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("e075a88e-7867-3726-3bb7-15b73b2d17e6"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitLevel.ctor(System.String)","Objects.BuiltElements.Revit.RevitLevel"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitMaterialSchemaComponent: CreateSchemaObjectBase { - - public RevitMaterialSchemaComponent(): base("RevitMaterial", "RevitMaterial", "Creates a Speckle material", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("c291d027-7a6a-8950-a2aa-77e134675750"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Other.Revit.RevitMaterial.ctor(System.String,System.String,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.Other.Revit.RevitMaterial"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitPipeSchemaComponent: CreateSchemaObjectBase { - - public RevitPipeSchemaComponent(): base("RevitPipe", "RevitPipe", "Creates a Revit pipe", "Speckle 2 Revit", "MEP") { } - - public override Guid ComponentGuid => new Guid("19700cd2-6310-c8b3-7ad5-954033702e52"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitPipe.ctor(System.String,System.String,Objects.ICurve,System.Double,Objects.BuiltElements.Level,System.String,System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitPipe"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitProfileWallSchemaComponent: CreateSchemaObjectBase { - - public RevitProfileWallSchemaComponent(): base("RevitWall by profile", "RevitWall by profile", "Creates a Revit wall from a profile.", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("b3962fc0-69b0-e766-22b4-b08404650c8a"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitProfileWall.ctor(System.String,System.String,Objects.Geometry.Polycurve,Objects.BuiltElements.Level,Objects.BuiltElements.Revit.LocationLine,System.Boolean,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitProfileWall"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitRailingSchemaComponent: CreateSchemaObjectBase { - - public RevitRailingSchemaComponent(): base("Railing", "Railing", "Creates a Revit railing by base curve.", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("a6c3be7a-9e6b-663b-2bc0-dd9fa2ee6552"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitRailing.ctor(System.String,Objects.Geometry.Polycurve,Objects.BuiltElements.Level,System.Boolean)","Objects.BuiltElements.Revit.RevitRailing"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitShaftSchemaComponent: CreateSchemaObjectBase { - - public RevitShaftSchemaComponent(): base("RevitShaft", "RevitShaft", "Creates a Revit shaft from a bottom and top level", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("00cdb2fd-ef75-107e-822c-3490cd359380"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitShaft.ctor(Objects.ICurve,Objects.BuiltElements.Level,Objects.BuiltElements.Level,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitShaft"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitTopographySchemaComponent: CreateSchemaObjectBase { - - public RevitTopographySchemaComponent(): base("RevitTopography", "RevitTopography", "Creates a Revit topography", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("f0840908-039e-b6d4-98de-8ed003dfd357"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitTopography.ctor(Objects.Geometry.Mesh,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitTopography"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitWallSchemaComponent: CreateSchemaObjectBase { - - public RevitWallSchemaComponent(): base("RevitWall by curve and levels", "RevitWall by curve and levels", "Creates a Revit wall with a top and base level.", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("fa1aef22-ddd5-01f4-887e-145ce21da247"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitWall.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,Objects.BuiltElements.Level,System.Double,System.Double,System.Boolean,System.Boolean,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitWall"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitWall1SchemaComponent: CreateSchemaObjectBase { - - public RevitWall1SchemaComponent(): base("RevitWall by curve and height", "RevitWall by curve and height", "Creates an unconnected Revit wall.", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("bd2a0bb1-14f7-cd0a-76c4-2429412a5128"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitWall.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,System.Double,System.Double,System.Double,System.Boolean,System.Boolean,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitWall"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitWallOpeningSchemaComponent: CreateSchemaObjectBase { - - public RevitWallOpeningSchemaComponent(): base("Revit Wall Opening (Deprecated)", "Revit Wall Opening (Deprecated)", "Creates a Speckle Wall opening for revit", "Speckle 2 BIM", "Architecture") { } - - public override Guid ComponentGuid => new Guid("a1bd278d-fab5-0034-7aba-807b66122022"); - public override bool Obsolete => true; - public override GH_Exposure Exposure => GH_Exposure.hidden; - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitWallOpening.ctor(Objects.ICurve,Objects.BuiltElements.Revit.RevitWall)","Objects.BuiltElements.Revit.RevitWallOpening"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitWallOpening1SchemaComponent: CreateSchemaObjectBase { - - public RevitWallOpening1SchemaComponent(): base("Revit Wall Opening", "Revit Wall Opening", "Creates a Speckle Wall opening for revit", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("541bfed0-738d-e1bd-1130-de05ec4bbf9e"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitWallOpening.ctor(Objects.Geometry.Polyline,Objects.BuiltElements.Revit.RevitWall)","Objects.BuiltElements.Revit.RevitWallOpening"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RevitWireSchemaComponent: CreateSchemaObjectBase { - - public RevitWireSchemaComponent(): base("RevitWire", "RevitWire", "Creates a Revit wire from points and level", "Speckle 2 Revit", "MEP") { } - - public override Guid ComponentGuid => new Guid("4045436b-0804-f0e1-a9f2-6217f4d8a45b"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitWire.ctor(System.Collections.Generic.List`1[System.Double],System.String,System.String,Objects.BuiltElements.Level,System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitWire"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RibbedSlabSchemaComponent: CreateSchemaObjectBase { - - public RibbedSlabSchemaComponent(): base("RibbedSlab", "RibbedSlab", "Create an CSI Ribbed Slab", "Speckle 2 CSI", "Properties") { } - - public override Guid ComponentGuid => new Guid("e5db5889-0924-136f-be6d-39c7de9a3649"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIProperty2D+RibbedSlab.ctor(System.String,Objects.Structural.CSI.Analysis.ShellType,Objects.Structural.Materials.StructuralMaterial,System.Double,System.Double,System.Double,System.Double,System.Double,System.Int32)","Objects.Structural.CSI.Properties.CSIProperty2D+RibbedSlab"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RoofSchemaComponent: CreateSchemaObjectBase { - - public RoofSchemaComponent(): base("Roof", "Roof", "Creates a Speckle roof", "Speckle 2 BIM", "Architecture") { } - - public override Guid ComponentGuid => new Guid("c10c6dcd-e6a8-be88-32f3-45c935d0bae9"); - public override bool Obsolete => true; - public override GH_Exposure Exposure => GH_Exposure.hidden; - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Roof.ctor(Objects.ICurve,System.Collections.Generic.List`1[Objects.ICurve],System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.BuiltElements.Roof"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RoomSchemaComponent: CreateSchemaObjectBase { - - public RoomSchemaComponent(): base("Room", "Room", "Creates a Speckle room", "Speckle 2 BIM", "Architecture") { } - - public override Guid ComponentGuid => new Guid("c62087b7-2a9d-743d-336d-e8ea2ab72a29"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Room.ctor(System.String,System.String,Objects.BuiltElements.Level,Objects.Geometry.Point)","Objects.BuiltElements.Room"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Room1SchemaComponent: CreateSchemaObjectBase { - - public Room1SchemaComponent(): base("RevitRoom", "RevitRoom", "Creates a Revit room with parameters", "Speckle 2 Revit", "Architecture") { } - - public override Guid ComponentGuid => new Guid("9be891e2-aaf6-1d4e-3d6b-bd7ba1a06563"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Room.ctor(System.String,System.String,Objects.BuiltElements.Level,Objects.Geometry.Point,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Room"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class RoomBoundaryLineSchemaComponent: CreateSchemaObjectBase { - - public RoomBoundaryLineSchemaComponent(): base("RoomBoundaryLine", "RoomBoundaryLine", "Creates a Revit room boundary line", "Speckle 2 Revit", "Curves") { } - - public override Guid ComponentGuid => new Guid("2edade8a-5139-09be-4273-551f3ac476e2"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.Curve.RoomBoundaryLine.ctor(Objects.ICurve,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.Curve.RoomBoundaryLine"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class SlabSchemaComponent: CreateSchemaObjectBase { - - public SlabSchemaComponent(): base("Slab", "Slab", "Create an CSI Slab", "Speckle 2 CSI", "Properties") { } - - public override Guid ComponentGuid => new Guid("27930f28-6811-7f66-f432-07dd5585f6e0"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIProperty2D+Slab.ctor(System.String,Objects.Structural.CSI.Analysis.ShellType,Objects.Structural.Materials.StructuralMaterial,System.Double)","Objects.Structural.CSI.Properties.CSIProperty2D+Slab"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class SpaceSchemaComponent: CreateSchemaObjectBase { - - public SpaceSchemaComponent(): base("Space", "Space", "Creates a Speckle space", "Speckle 2 BIM", "MEP") { } - - public override Guid ComponentGuid => new Guid("c6907933-2792-eb6d-7c64-fb54835e9b44"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Space.ctor(System.String,System.String,Objects.Geometry.Point,Objects.BuiltElements.Level)","Objects.BuiltElements.Space"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class Space1SchemaComponent: CreateSchemaObjectBase { - - public Space1SchemaComponent(): base("Space with top level and offset parameters", "Space with top level and offset parameters", "Creates a Speckle space with the specified top level and offsets", "Speckle 2 BIM", "MEP") { } - - public override Guid ComponentGuid => new Guid("8f7b0323-3533-e7cd-ae43-0bdeb34f3570"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Space.ctor(System.String,System.String,Objects.Geometry.Point,Objects.BuiltElements.Level,Objects.BuiltElements.Level,System.Double,System.Double)","Objects.BuiltElements.Space"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class SpaceSeparationLineSchemaComponent: CreateSchemaObjectBase { - - public SpaceSeparationLineSchemaComponent(): base("SpaceSeparationLine", "SpaceSeparationLine", "Creates a Revit space separation line", "Speckle 2 Revit", "Curves") { } - - public override Guid ComponentGuid => new Guid("0bba13ce-5758-8513-42fd-9e0b3702a654"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.Curve.SpaceSeparationLine.ctor(Objects.ICurve,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.Curve.SpaceSeparationLine"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class SteelSchemaComponent: CreateSchemaObjectBase { - - public SteelSchemaComponent(): base("Steel", "Steel", "Creates a Speckle structural material for steel (to be used in structural analysis models)", "Speckle 2 Structural", "Materials") { } - - public override Guid ComponentGuid => new Guid("6756df31-1e5c-0c80-2047-f4b6557c2e3f"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Materials.Steel.ctor(System.String,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Materials.Steel"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class StoreySchemaComponent: CreateSchemaObjectBase { - - public StoreySchemaComponent(): base("Storey", "Storey", "Creates a Speckle structural storey (to describe floor levels/storeys in the structural model)", "Speckle 2 Structural", "Geometry") { } - - public override Guid ComponentGuid => new Guid("a3985ed4-fff8-47c1-bb0e-d63699e263e9"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Storey.ctor(System.String,System.Double)","Objects.Structural.Geometry.Storey"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class StructuralMaterialSchemaComponent: CreateSchemaObjectBase { - - public StructuralMaterialSchemaComponent(): base("Structural Material", "Structural Material", "Creates a Speckle structural material", "Speckle 2 Structural", "Materials") { } - - public override Guid ComponentGuid => new Guid("3e877a75-b3fb-0111-2128-1432ab15c4cf"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Materials.StructuralMaterial.ctor(System.String,Objects.Structural.MaterialType,System.String,System.String,System.String)","Objects.Structural.Materials.StructuralMaterial"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class StructuralMaterial1SchemaComponent: CreateSchemaObjectBase { - - public StructuralMaterial1SchemaComponent(): base("Structural Material (with properties)", "Structural Material (with properties)", "Creates a Speckle structural material with (isotropic) properties", "Speckle 2 Structural", "Materials") { } - - public override Guid ComponentGuid => new Guid("ef78155b-0786-9846-38cd-41ce70911972"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Materials.StructuralMaterial.ctor(System.String,Objects.Structural.MaterialType,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Materials.StructuralMaterial"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class TeeSchemaComponent: CreateSchemaObjectBase { - - public TeeSchemaComponent(): base("Tee", "Tee", "Creates a Speckle structural Tee section profile", "Speckle 2 Structural", "Section Profile") { } - - public override Guid ComponentGuid => new Guid("7832cac3-92e9-9083-df97-0d4296b457c3"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Tee.ctor(System.String,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.Profiles.Tee"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class TeklaBeamSchemaComponent: CreateSchemaObjectBase { - - public TeklaBeamSchemaComponent(): base("TeklaBeam", "TeklaBeam", "Creates a Tekla Structures beam by curve.", "Speckle 2 Tekla", "Structure") { } - - public override Guid ComponentGuid => new Guid("5a4187bc-05d8-2447-7238-cdbc4b2fae45"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.TeklaStructures.TeklaBeam.ctor(Objects.ICurve,Objects.Structural.Properties.Profiles.SectionProfile,Objects.Structural.Materials.StructuralMaterial)","Objects.BuiltElements.TeklaStructures.TeklaBeam"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class TeklaContourPlateSchemaComponent: CreateSchemaObjectBase { - - public TeklaContourPlateSchemaComponent(): base("ContourPlate", "ContourPlate", "Creates a TeklaStructures contour plate.", "Speckle 2 Tekla", "Structure") { } - - public override Guid ComponentGuid => new Guid("3b092935-3c2f-c084-eea5-077630507a49"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.TeklaStructures.TeklaContourPlate.ctor(Objects.Structural.Properties.Profiles.SectionProfile,Objects.Geometry.Polyline,System.String,System.String,System.String,Objects.Structural.Materials.StructuralMaterial,Objects.BuiltElements.TeklaStructures.TeklaPosition,Speckle.Core.Models.Base)","Objects.BuiltElements.TeklaStructures.TeklaContourPlate"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class TimberSchemaComponent: CreateSchemaObjectBase { - - public TimberSchemaComponent(): base("Timber", "Timber", "Creates a Speckle structural material for timber (to be used in structural analysis models)", "Speckle 2 Structural", "Materials") { } - - public override Guid ComponentGuid => new Guid("f11d278f-6a36-fd7c-409d-fb39f52c73f5"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Materials.Timber.ctor(System.String,System.String,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Materials.Timber"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class TopographySchemaComponent: CreateSchemaObjectBase { - - public TopographySchemaComponent(): base("Topography", "Topography", "Creates a Speckle topography", "Speckle 2 BIM", "Architecture") { } - - public override Guid ComponentGuid => new Guid("b9207a45-eebc-72d6-a411-f496443d8b7f"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Topography.ctor(Objects.Geometry.Mesh)","Objects.BuiltElements.Topography"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class WaffleSlabSchemaComponent: CreateSchemaObjectBase { - - public WaffleSlabSchemaComponent(): base("WaffleSlab", "WaffleSlab", "Create an CSI Waffle Slab", "Speckle 2 CSI", "Properties") { } - - public override Guid ComponentGuid => new Guid("b8956ee0-8372-db59-654a-c11c4af5e0f6"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIProperty2D+WaffleSlab.ctor(System.String,Objects.Structural.CSI.Analysis.ShellType,Objects.Structural.Materials.StructuralMaterial,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.CSI.Properties.CSIProperty2D+WaffleSlab"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class WallSchemaComponent: CreateSchemaObjectBase { - - public WallSchemaComponent(): base("Wall", "Wall", "Creates a Speckle wall", "Speckle 2 BIM", "Architecture") { } - - public override Guid ComponentGuid => new Guid("6878cc65-2628-d00d-e8c0-b130e828a6c7"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Wall.ctor(System.Double,Objects.ICurve,System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.BuiltElements.Wall"); - base.AddedToDocument(document); - } -} - -// This is generated code: -public class WireSchemaComponent: CreateSchemaObjectBase { - - public WireSchemaComponent(): base("Wire", "Wire", "Creates a Speckle wire from curve segments and points", "Speckle 2 BIM", "MEP") { } - - public override Guid ComponentGuid => new Guid("c10c9c87-b93d-4e98-d2fb-942d182008dc"); - - public override void AddedToDocument(GH_Document document){ - SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Wire.ctor(System.Collections.Generic.List`1[Objects.ICurve])","Objects.BuiltElements.Wire"); - base.AddedToDocument(document); - } -} - - -} diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/packages.config b/ConnectorGrasshopper/ConnectorGrasshopper/packages.config deleted file mode 100644 index 6fbcc85342..0000000000 --- a/ConnectorGrasshopper/ConnectorGrasshopper/packages.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/ConnectorGrasshopper.csproj b/ConnectorGrasshopper/ConnectorGrasshopper6/ConnectorGrasshopper6.csproj similarity index 53% rename from ConnectorGrasshopper/ConnectorGrasshopper/ConnectorGrasshopper.csproj rename to ConnectorGrasshopper/ConnectorGrasshopper6/ConnectorGrasshopper6.csproj index 99d32e2298..191ab7b034 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/ConnectorGrasshopper.csproj +++ b/ConnectorGrasshopper/ConnectorGrasshopper6/ConnectorGrasshopper6.csproj @@ -1,6 +1,6 @@ - + - {109B3382-634B-408A-8A5C-4CD09CB92641} + {86920221-416E-4A66-A601-3418207E2401} Library Properties ConnectorGrasshopper @@ -15,7 +15,24 @@ false false x64 + AnyCPU + TRACE;RHINO6 + Debug;Release;Debug Mac;Release Mac + + + TRACE;RHINO6 + + + TRACE;RHINO6;MAC + + + TRACE;RHINO6 + + + TRACE;RHINO6;MAC + + @@ -38,11 +55,23 @@ + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + - + + + \ No newline at end of file diff --git a/ConnectorRevit/ConnectorRevit2019/Properties/AssemblyInfo.cs b/ConnectorGrasshopper/ConnectorGrasshopper6/Properties/AssemblyInfo.cs similarity index 70% rename from ConnectorRevit/ConnectorRevit2019/Properties/AssemblyInfo.cs rename to ConnectorGrasshopper/ConnectorGrasshopper6/Properties/AssemblyInfo.cs index 4467277122..c4565e95ef 100644 --- a/ConnectorRevit/ConnectorRevit2019/Properties/AssemblyInfo.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopper6/Properties/AssemblyInfo.cs @@ -1,37 +1,35 @@ -using System.Reflection; -using System.Runtime.CompilerServices; +using System.Reflection; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following +// General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("ConnectorRevit")] +[assembly: AssemblyTitle("ConnectorGrasshopper")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Speckle")] -[assembly: AssemblyProduct("ConnectorRevit")] -[assembly: AssemblyCopyright("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ConnectorGrasshopper")] +[assembly: AssemblyCopyright("Copyright © 2022")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("321044f7-b0b2-4b1c-af18-e71a19252be0")] +[assembly: Guid("86920221-416E-4A66-A601-3418207E2401")] // Version information for an assembly consists of the following four values: // // Major Version -// Minor Version +// Minor Version // Build Number // Revision // -// You can specify all the values or you can default the Build and Revision Numbers +// You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("2.0.0-beta")] diff --git a/ConnectorGrasshopper/ConnectorGrasshopper7/ConnectorGrasshopper7.csproj b/ConnectorGrasshopper/ConnectorGrasshopper7/ConnectorGrasshopper7.csproj new file mode 100644 index 0000000000..ca5d1a6b99 --- /dev/null +++ b/ConnectorGrasshopper/ConnectorGrasshopper7/ConnectorGrasshopper7.csproj @@ -0,0 +1,82 @@ + + + {109B3382-634B-408A-8A5C-4CD09CB92641} + Library + Properties + ConnectorGrasshopper + SpeckleConnectorGrasshopper + net48 + 8 + Program + C:\Program Files\Rhino 7\System\Rhino.exe + + /Applications/Rhino 7.app + .gha + false + false + x64 + AnyCPU + TRACE;RHINO7 + Debug;Release;Debug Mac;Release Mac + + + + TRACE;RHINO7 + + + TRACE;RHINO7;MAC + + + TRACE;RHINO7 + + + TRACE;RHINO7;MAC + + + + + + + + + + + TextTemplatingFileGenerator + SchemaBuilderGen.cs + + + + + + SchemaBuilderGen.tt + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + all + + + all + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/AllGeometryConversionTest.gh b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/AllGeometryConversionTest.gh similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/AllGeometryConversionTest.gh rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/AllGeometryConversionTest.gh diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/AsyncIntegrationTest.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/AsyncIntegrationTest.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/AsyncIntegrationTest.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/AsyncIntegrationTest.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/AsyncObjectManagementTests.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/AsyncObjectManagementTests.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/AsyncObjectManagementTests.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/AsyncObjectManagementTests.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/BrepSendReceiveTest.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/BrepSendReceiveTest.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/BrepSendReceiveTest.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/BrepSendReceiveTest.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/BrepTest.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/BrepTest.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/BrepTest.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/BrepTest.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/ComplexBrep.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/ComplexBrep.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/ComplexBrep.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/ComplexBrep.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/CreateSpeckleObjectTests-WithGeometry.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/CreateSpeckleObjectTests-WithGeometry.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/CreateSpeckleObjectTests-WithGeometry.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/CreateSpeckleObjectTests-WithGeometry.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/ExpandObjectTest.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/ExpandObjectTest.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/ExpandObjectTest.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/ExpandObjectTest.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/ExpandObjectTestCables.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/ExpandObjectTestCables.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/ExpandObjectTestCables.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/ExpandObjectTestCables.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/ExtendObjectTest.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/ExtendObjectTest.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/ExtendObjectTest.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/ExtendObjectTest.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/KeyValueTest.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/KeyValueTest.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/KeyValueTest.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/KeyValueTest.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/LocalSendReceiveTest.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/LocalSendReceiveTest.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/LocalSendReceiveTest.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/LocalSendReceiveTest.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/ReceiveCrash-A.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/ReceiveCrash-A.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/ReceiveCrash-A.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/ReceiveCrash-A.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/ReceiveCrash-B.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/ReceiveCrash-B.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/ReceiveCrash-B.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/ReceiveCrash-B.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/RecursiveConversionTests.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/RecursiveConversionTests.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/RecursiveConversionTests.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/RecursiveConversionTests.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/SenderReceiverConversionTests.gh b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/SenderReceiverConversionTests.gh similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/SenderReceiverConversionTests.gh rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/SenderReceiverConversionTests.gh diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/SerializationTest.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/SerializationTest.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/SerializationTest.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/SerializationTest.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/StreamsTest.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/StreamsTest.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/StreamsTest.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/StreamsTest.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/SurfaceTests.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/SurfaceTests.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/SurfaceTests.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/SurfaceTests.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/TaskCapableObjectManagement.ghx b/ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/TaskCapableObjectManagement.ghx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/InternalTestFiles/TaskCapableObjectManagement.ghx rename to ConnectorGrasshopper/ConnectorGrasshopper7/InternalTestFiles/TaskCapableObjectManagement.ghx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Properties/AssemblyInfo.cs b/ConnectorGrasshopper/ConnectorGrasshopper7/Properties/AssemblyInfo.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Properties/AssemblyInfo.cs rename to ConnectorGrasshopper/ConnectorGrasshopper7/Properties/AssemblyInfo.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Accounts/Accounts.AccountDetails.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Accounts/Accounts.AccountDetails.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Accounts/Accounts.AccountDetails.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Accounts/Accounts.AccountDetails.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Accounts/Accounts.ListAccounts.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Accounts/Accounts.ListAccounts.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Accounts/Accounts.ListAccounts.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Accounts/Accounts.ListAccounts.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/ComponentTracker.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/ComponentTracker.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/ComponentTracker.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/ComponentTracker.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/GH_SpeckleAsyncComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/GH_SpeckleAsyncComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/GH_SpeckleAsyncComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/GH_SpeckleAsyncComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/GH_SpeckleComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/GH_SpeckleComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/GH_SpeckleComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/GH_SpeckleComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/GH_SpeckleTaskCapableComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/GH_SpeckleTaskCapableComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/GH_SpeckleTaskCapableComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/GH_SpeckleTaskCapableComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/ISpeckleTrackingComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/ISpeckleTrackingComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/ISpeckleTrackingComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/ISpeckleTrackingComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/SelectKitAsyncComponentBase.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/SelectKitAsyncComponentBase.cs similarity index 97% rename from ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/SelectKitAsyncComponentBase.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/SelectKitAsyncComponentBase.cs index c2f70a455b..0df85491bd 100755 --- a/ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/SelectKitAsyncComponentBase.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/SelectKitAsyncComponentBase.cs @@ -114,7 +114,7 @@ public virtual void SetConverterFromKit(string kitName) Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); SpeckleGHSettings.OnMeshSettingsChanged += (sender, args) => Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); - Converter.SetContextDocument(Rhino.RhinoDoc.ActiveDoc); + Converter.SetContextDocument(Loader.GetCurrentDocument()); Message = $"Using the {Kit.Name} Converter"; } @@ -134,7 +134,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override void BeforeSolveInstance() { - Converter?.SetContextDocument(Rhino.RhinoDoc.ActiveDoc); + Converter?.SetContextDocument(Loader.GetCurrentDocument()); base.BeforeSolveInstance(); } diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/SelectKitComponentBase.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/SelectKitComponentBase.cs similarity index 96% rename from ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/SelectKitComponentBase.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/SelectKitComponentBase.cs index 7c308dad24..4a4455f1b2 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/SelectKitComponentBase.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/SelectKitComponentBase.cs @@ -59,7 +59,7 @@ public void SetConverterFromKit(string kitName) Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); SpeckleGHSettings.OnMeshSettingsChanged += (sender, args) => Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); - Converter.SetContextDocument(RhinoDoc.ActiveDoc); + Converter.SetContextDocument(Loader.GetCurrentDocument()); Message = $"Using the {Kit.Name} Converter"; ExpireSolution(true); } @@ -99,7 +99,7 @@ public override void AddedToDocument(GH_Document document) Kit = KitManager.GetKitsWithConvertersForApp(Extras.Utilities.GetVersionedAppName()) .FirstOrDefault(kit => kit.Name == SpeckleGHSettings.SelectedKitName); Converter = Kit.LoadConverter(Extras.Utilities.GetVersionedAppName()); - Converter.SetContextDocument(Rhino.RhinoDoc.ActiveDoc); + Converter.SetContextDocument(Loader.GetCurrentDocument()); Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); SpeckleGHSettings.OnMeshSettingsChanged += (sender, args) => Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/SelectKitTaskCapableComponentBase.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/SelectKitTaskCapableComponentBase.cs similarity index 97% rename from ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/SelectKitTaskCapableComponentBase.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/SelectKitTaskCapableComponentBase.cs index 6c58e883e9..f0b17c0470 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/BaseComponents/SelectKitTaskCapableComponentBase.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/BaseComponents/SelectKitTaskCapableComponentBase.cs @@ -120,7 +120,7 @@ public virtual void SetConverterFromKit(string kitName) Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); SpeckleGHSettings.OnMeshSettingsChanged += (sender, args) => Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); - Converter.SetContextDocument(Rhino.RhinoDoc.ActiveDoc); + Converter.SetContextDocument(Loader.GetCurrentDocument()); Message = $"Using the {Kit.Name} Converter"; } @@ -148,7 +148,7 @@ protected override void BeforeSolveInstance() try { - Converter?.SetContextDocument(Rhino.RhinoDoc.ActiveDoc); + Converter?.SetContextDocument(Loader.GetCurrentDocument()); } catch (Exception e) { diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/ComponentCategories.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/ComponentCategories.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/ComponentCategories.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/ComponentCategories.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/ConnectorGrasshopperInfo.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/ConnectorGrasshopperInfo.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/ConnectorGrasshopperInfo.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/ConnectorGrasshopperInfo.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopperShared/ConnectorGrasshopperShared.projitems b/ConnectorGrasshopper/ConnectorGrasshopperShared/ConnectorGrasshopperShared.projitems new file mode 100644 index 0000000000..1ae52d4fa4 --- /dev/null +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/ConnectorGrasshopperShared.projitems @@ -0,0 +1,84 @@ + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + true + DBB541D7-49ED-41FC-B94D-D5AFEAD29075 + + + ConnectorGrasshopperShared + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ConnectorGrasshopper/ConnectorGrasshopperShared/ConnectorGrasshopperShared.shproj b/ConnectorGrasshopper/ConnectorGrasshopperShared/ConnectorGrasshopperShared.shproj new file mode 100644 index 0000000000..ec5e8bcb0c --- /dev/null +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/ConnectorGrasshopperShared.shproj @@ -0,0 +1,11 @@ + + + + {0F1FD0C3-875F-4689-9C4A-C56E9AB31102} + + + + + + + diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Conversion/DeserialiseTaskCapableComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Conversion/DeserialiseTaskCapableComponent.cs similarity index 65% rename from ConnectorGrasshopper/ConnectorGrasshopper/Conversion/DeserialiseTaskCapableComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Conversion/DeserialiseTaskCapableComponent.cs index 8fca789329..bce9dadc72 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Conversion/DeserialiseTaskCapableComponent.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Conversion/DeserialiseTaskCapableComponent.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using System.Threading; using System.Threading.Tasks; using ConnectorGrasshopper.Extras; @@ -11,14 +12,31 @@ namespace ConnectorGrasshopper { public class DeserializeTaskCapableComponent: GH_SpeckleTaskCapableComponent { - public override Guid ComponentGuid => new Guid("0336F3D1-2FEE-4B66-980D-63DB624980C9"); + internal static Guid internalGuid => new Guid("0336F3D1-2FEE-4B66-980D-63DB624980C9"); + internal static GH_Exposure internalExposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.secondary : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + private CancellationTokenSource source; protected override System.Drawing.Bitmap Icon => Properties.Resources.Deserialize; - public override GH_Exposure Exposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.secondary : GH_Exposure.hidden; - - public DeserializeTaskCapableComponent(): base("Deserialize", "Deserialize", "Deserializes a JSON string to a Speckle Base object.", ComponentCategories.SECONDARY_RIBBON, ComponentCategories.CONVERSION) - {} + static DeserializeTaskCapableComponent() + { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (args.Key != SpeckleGHSettings.SHOW_DEV_COMPONENTS) return; + + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public DeserializeTaskCapableComponent() : base("Deserialize", "Deserialize", + "Deserializes a JSON string to a Speckle Base object.", ComponentCategories.SECONDARY_RIBBON, + ComponentCategories.CONVERSION) + { + } protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddTextParameter("Json", "J", "Serialized base objects in JSON format.", GH_ParamAccess.item); diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Conversion/SerialiseTaskCapableComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Conversion/SerialiseTaskCapableComponent.cs similarity index 76% rename from ConnectorGrasshopper/ConnectorGrasshopper/Conversion/SerialiseTaskCapableComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Conversion/SerialiseTaskCapableComponent.cs index b4beafd274..17fe97db10 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Conversion/SerialiseTaskCapableComponent.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Conversion/SerialiseTaskCapableComponent.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using System.Threading; using System.Threading.Tasks; using ConnectorGrasshopper.Extras; @@ -13,10 +14,24 @@ namespace ConnectorGrasshopper.Conversion public class SerializeTaskCapableComponent : GH_SpeckleTaskCapableComponent { private CancellationTokenSource source; - public override Guid ComponentGuid => new Guid("6F6A5347-8DE1-44FA-8D26-C73FD21650A9"); - public override GH_Exposure Exposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.secondary : GH_Exposure.hidden; + internal static Guid internalGuid => new Guid("6F6A5347-8DE1-44FA-8D26-C73FD21650A9"); + internal static GH_Exposure internalExposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.secondary : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; protected override System.Drawing.Bitmap Icon => Properties.Resources.Serialize; + static SerializeTaskCapableComponent() + { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (args.Key != SpeckleGHSettings.SHOW_DEV_COMPONENTS) return; + + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } public SerializeTaskCapableComponent() : base( "Serialize", "SRL", diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Conversion/ToNativeTaskCapableComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Conversion/ToNativeTaskCapableComponent.cs similarity index 81% rename from ConnectorGrasshopper/ConnectorGrasshopper/Conversion/ToNativeTaskCapableComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Conversion/ToNativeTaskCapableComponent.cs index 2811f3df18..145df4bfa4 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Conversion/ToNativeTaskCapableComponent.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Conversion/ToNativeTaskCapableComponent.cs @@ -1,5 +1,6 @@ using System; using System.Drawing; +using System.Linq; using System.Threading; using System.Threading.Tasks; using ConnectorGrasshopper.Extras; @@ -15,6 +16,18 @@ namespace ConnectorGrasshopper.Conversion { public class ToNativeTaskCapableComponent : SelectKitTaskCapableComponentBase { + static ToNativeTaskCapableComponent() + { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (args.Key != SpeckleGHSettings.SHOW_DEV_COMPONENTS) return; + + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = SpeckleGHSettings.ShowDevComponents ? GH_Exposure.primary : GH_Exposure.hidden; + }; + } + public ToNativeTaskCapableComponent() : base( "To Native", "To Native", @@ -22,13 +35,16 @@ public ToNativeTaskCapableComponent() : base( ComponentCategories.SECONDARY_RIBBON, ComponentCategories.CONVERSION) { + } public override GH_Exposure Exposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.primary : GH_Exposure.hidden; protected override Bitmap Icon => Properties.Resources.ToNative; + + internal static Guid internalGuid => new Guid("7F4BDA01-F9C8-42ED-ABC1-DA0443283219"); - public override Guid ComponentGuid => new Guid("7F4BDA01-F9C8-42ED-ABC1-DA0443283219"); + public override Guid ComponentGuid => internalGuid; public override bool CanDisableConversion => false; diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Conversion/ToSpeckleTaskCapableComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Conversion/ToSpeckleTaskCapableComponent.cs similarity index 81% rename from ConnectorGrasshopper/ConnectorGrasshopper/Conversion/ToSpeckleTaskCapableComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Conversion/ToSpeckleTaskCapableComponent.cs index c359ee521e..e9b2dae39e 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Conversion/ToSpeckleTaskCapableComponent.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Conversion/ToSpeckleTaskCapableComponent.cs @@ -1,5 +1,6 @@ using System; using System.Drawing; +using System.Linq; using System.Threading; using System.Threading.Tasks; using ConnectorGrasshopper.Extras; @@ -14,6 +15,17 @@ namespace ConnectorGrasshopper.Conversion { public class ToSpeckleTaskCapableComponent : SelectKitTaskCapableComponentBase { + static ToSpeckleTaskCapableComponent() + { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (args.Key != SpeckleGHSettings.SHOW_DEV_COMPONENTS) return; + + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } public ToSpeckleTaskCapableComponent() : base( "To Speckle", "To Speckle", @@ -25,12 +37,14 @@ public ToSpeckleTaskCapableComponent() : base( private CancellationTokenSource source; - public override Guid ComponentGuid => new Guid("FB88150A-1885-4A77-92EA-9B1378310FDD"); + internal static Guid internalGuid => new Guid("FB88150A-1885-4A77-92EA-9B1378310FDD"); + internal static GH_Exposure internalExposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.primary : GH_Exposure.hidden; + public override Guid ComponentGuid => internalGuid; protected override Bitmap Icon => Properties.Resources.ToNative; public override bool CanDisableConversion => false; - public override GH_Exposure Exposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.primary : GH_Exposure.hidden; + public override GH_Exposure Exposure => internalExposure; protected override void RegisterInputParams(GH_InputParamManager pManager) { diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Extras/DebounceDispatcher.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/DebounceDispatcher.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Extras/DebounceDispatcher.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/DebounceDispatcher.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Extras/GH_SpeckleGoo.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/GH_SpeckleGoo.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Extras/GH_SpeckleGoo.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/GH_SpeckleGoo.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Extras/GenericAccessParam.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/GenericAccessParam.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Extras/GenericAccessParam.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/GenericAccessParam.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Extras/SendReceiveDataParam.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/SendReceiveDataParam.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Extras/SendReceiveDataParam.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/SendReceiveDataParam.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Extras/Speckle.IGH_Goo.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/Speckle.IGH_Goo.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Extras/Speckle.IGH_Goo.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/Speckle.IGH_Goo.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Extras/SpeckleBaseParam.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/SpeckleBaseParam.cs similarity index 89% rename from ConnectorGrasshopper/ConnectorGrasshopper/Extras/SpeckleBaseParam.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/SpeckleBaseParam.cs index e795324eb9..e7515abaab 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Extras/SpeckleBaseParam.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/SpeckleBaseParam.cs @@ -8,14 +8,14 @@ public class SpeckleBaseParam: GH_Param { public override Guid ComponentGuid => new Guid("55F13720-45C1-4B43-892A-25AE4D95EFF2"); protected override Bitmap Icon => Properties.Resources.BaseParam; - public override GH_Exposure Exposure => GH_Exposure.hidden; + public override GH_Exposure Exposure => GH_Exposure.tertiary; public bool UseSchemaTag; public bool IsSchemaBuilderOutput; public SpeckleBaseParam(string name, string nickname, string description, GH_ParamAccess access, bool isSchemaBuilderOutput = false) : - this(name, nickname, description, ComponentCategories.PRIMARY_RIBBON, "Params", access) + this(name, nickname, description, "Params", "Primitive", access) { IsSchemaBuilderOutput = isSchemaBuilderOutput; } diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Extras/SpeckleStateTag.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/SpeckleStateTag.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Extras/SpeckleStateTag.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/SpeckleStateTag.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Extras/SpeckleStatefulParam.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/SpeckleStatefulParam.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Extras/SpeckleStatefulParam.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/SpeckleStatefulParam.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Extras/SpeckleStreamParam.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/SpeckleStreamParam.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Extras/SpeckleStreamParam.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/SpeckleStreamParam.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Extras/TreeBuilder.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/TreeBuilder.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Extras/TreeBuilder.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/TreeBuilder.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Extras/Utilities.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/Utilities.cs similarity index 99% rename from ConnectorGrasshopper/ConnectorGrasshopper/Extras/Utilities.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/Utilities.cs index e382aef106..c16c405228 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Extras/Utilities.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Extras/Utilities.cs @@ -42,7 +42,7 @@ public static ISpeckleConverter GetDefaultConverter() var defKit = KitManager.GetKitsWithConvertersForApp(Extras.Utilities.GetVersionedAppName()).FirstOrDefault(kit => kit != null && kit.Name == n); var converter = defKit.LoadConverter(Extras.Utilities.GetVersionedAppName()); converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); - converter.SetContextDocument(RhinoDoc.ActiveDoc); + converter.SetContextDocument(Loader.GetCurrentDocument()); return converter; } catch @@ -429,7 +429,7 @@ public static object TryConvertItemToSpeckle(object value, ISpeckleConverter con if (converter != null && converter.CanConvertToSpeckle(value)) { var result = converter.ConvertToSpeckle(value); - result.applicationId = refId; + if(result != null) result.applicationId = refId; return result; } diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Loader.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Loader.cs old mode 100755 new mode 100644 similarity index 54% rename from ConnectorGrasshopper/ConnectorGrasshopper/Loader.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Loader.cs index 995498804c..f10516f9fa --- a/ConnectorGrasshopper/ConnectorGrasshopper/Loader.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Loader.cs @@ -1,14 +1,22 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.IO; using System.Linq; using System.Reflection; +using System.Runtime.InteropServices; +using System.Threading.Tasks; using System.Timers; using System.Windows.Forms; +using ConnectorGrasshopper.Extras; +using Grasshopper; +using Grasshopper.GUI.Canvas; using Grasshopper.Kernel; using Rhino; +using Speckle.Core.Api; using Speckle.Core.Kits; using Speckle.Core.Logging; +using Speckle.Core.Models.Extensions; namespace ConnectorGrasshopper { @@ -25,8 +33,7 @@ public class Loader : GH_AssemblyPriority public ISpeckleKit selectedKit; private ToolStripMenuItem speckleMenu; private IEnumerable kitMenuItems; - - + public override GH_LoadingInstruction PriorityLoad() { var version = HostApplications.Grasshopper.GetVersion(HostAppVersion.v6); @@ -47,7 +54,17 @@ public override GH_LoadingInstruction PriorityLoad() Log.CaptureException(e); } - Grasshopper.Instances.DocumentServer.DocumentAdded += CanvasCreatedEvent; + Grasshopper.Instances.CanvasCreated += OnCanvasCreated; +#if RHINO7 + if(Grasshopper.Instances.RunningHeadless) + { + // If GH is running headless, we listen for document added/removed events. + Grasshopper.Instances.DocumentServer.DocumentAdded += OnDocumentAdded; + Grasshopper.Instances.DocumentServer.DocumentRemoved += OnDocumentRemoved; + } +#endif + + Grasshopper.Instances.ComponentServer.AddCategoryIcon(ComponentCategories.PRIMARY_RIBBON, Properties.Resources.speckle_logo); Grasshopper.Instances.ComponentServer.AddCategorySymbolName(ComponentCategories.PRIMARY_RIBBON, 'S'); @@ -57,45 +74,75 @@ public override GH_LoadingInstruction PriorityLoad() return GH_LoadingInstruction.Proceed; } - private static DialogResult ShowLoadErrorMessageBox() + private void OnDocumentAdded(GH_DocumentServer sender, GH_Document doc) { - return MessageBox.Show( - "There was a problem setting up Speckle\n" + - "This can be caused by \n\n" + - "- A corrupted install\n" + - "- Another Grasshopper plugin using an older version of Speckle\n" + - "- Having an older version of the Rhino connector installed\n" + - "Try reinstalling both Rhino and Grasshopper connectors.\n\n" + - "If the problem persists, please reach out to our Community Forum (https://speckle.community)", - "Speckle Error", - MessageBoxButtons.OK); + // Add events for solution start and end + doc.SolutionStart += DocumentOnSolutionStart; + doc.SolutionEnd += DocumentOnSolutionEnd; + } + + private void OnDocumentRemoved(GH_DocumentServer sender, GH_Document doc) + { + // Remove events for solution start and end + doc.SolutionStart -= DocumentOnSolutionStart; + doc.SolutionEnd -= DocumentOnSolutionEnd; + } + + private void DocumentOnSolutionStart(object sender, GH_SolutionEventArgs e) + { + SetupHeadlessDoc(); + } + + private void DocumentOnSolutionEnd(object sender, GH_SolutionEventArgs e) + { + DisposeHeadlessDoc(); + } + + private void OnCanvasCreated(GH_Canvas canvas) + { + Grasshopper.Instances.DocumentEditor.Load += OnDocumentEditorLoad; + + if (canvas == null) return; + + canvas.KeyDown += (s, e) => + { + if (e.KeyCode == Keys.Tab && !KeyWatcher.TabPressed) + KeyWatcher.TabPressed = true; + }; + + canvas.KeyUp += (s, e) => + { + if (KeyWatcher.TabPressed && e.KeyCode == Keys.Tab) + KeyWatcher.TabPressed = false; + }; } - private void CanvasCreatedEvent(GH_DocumentServer server, GH_Document doc) + private void OnDocumentEditorLoad(object sender, EventArgs e) { try { - AddSpeckleMenu(null, null); + var mainMenu = Grasshopper.Instances.DocumentEditor.MainMenuStrip; + AddSpeckleMenu(mainMenu); } - catch (Exception e) + catch (Exception ex) { ShowLoadErrorMessageBox(); } + } - if (Grasshopper.Instances.ActiveCanvas != null) - { - Grasshopper.Instances.ActiveCanvas.KeyDown += (s, e) => - { - if (e.KeyCode == Keys.Tab && !KeyWatcher.TabPressed) - KeyWatcher.TabPressed = true; - }; - Grasshopper.Instances.ActiveCanvas.KeyUp += (s, e) => - { - if (KeyWatcher.TabPressed && e.KeyCode == Keys.Tab) - KeyWatcher.TabPressed = false; - }; - } + private static DialogResult ShowLoadErrorMessageBox() + { + return MessageBox.Show( + "There was a problem setting up Speckle\n" + + "This can be caused by \n\n" + + "- A corrupted install\n" + + "- Another Grasshopper plugin using an older version of Speckle\n" + + "- Having an older version of the Rhino connector installed\n" + + "Try reinstalling both Rhino and Grasshopper connectors.\n\n" + + "If the problem persists, please reach out to our Community Forum (https://speckle.community)", + "Speckle Error", + MessageBoxButtons.OK); } private void HandleKitSelectedEvent(object sender, EventArgs args) @@ -117,44 +164,24 @@ private void HandleKitSelectedEvent(object sender, EventArgs args) } } - private void AddSpeckleMenu(object sender, ElapsedEventArgs e) + private void AddSpeckleMenu(MenuStrip mainMenu) { - if (Grasshopper.Instances.DocumentEditor == null || MenuHasBeenAdded) return; - var mainMenu = Grasshopper.Instances.DocumentEditor.MainMenuStrip; + if (MenuHasBeenAdded) return; + // Double check that the menu does not exist. + var menuName = "Speckle 2"; if (mainMenu.Items.ContainsKey(menuName)) mainMenu.Items.RemoveByKey(menuName); speckleMenu = new ToolStripMenuItem(menuName); - var kitHeader = speckleMenu.DropDown.Items.Add("Select the converter you want to use."); - kitHeader.Enabled = false; - - try - { - loadedKits = KitManager.GetKitsWithConvertersForApp(Extras.Utilities.GetVersionedAppName()); - - var kitItems = new List(); - loadedKits.ToList().ForEach(kit => - { - var item = speckleMenu.DropDown.Items.Add(" " + kit.Name); - - item.Click += HandleKitSelectedEvent; - kitItems.Add(item); - }); - kitMenuItems = kitItems; - } - catch (Exception exception) - { - Log.CaptureException(exception); - var errItem = speckleMenu.DropDown.Items.Add("An error occurred while fetching Kits"); - errItem.Enabled = false; - } - + CreateKitSelectionMenu(speckleMenu); speckleMenu.DropDown.Items.Add(new ToolStripSeparator()); CreateSchemaConversionMenu(); speckleMenu.DropDown.Items.Add(new ToolStripSeparator()); CreateMeshingSettingsMenu(); + // speckleMenu.DropDown.Items.Add(new ToolStripSeparator()); + // CreateHeadlessTemplateMenu(); speckleMenu.DropDown.Items.Add(new ToolStripSeparator()); CreateTabsMenu(); speckleMenu.DropDown.Items.Add(new ToolStripSeparator()); @@ -173,42 +200,129 @@ private void AddSpeckleMenu(object sender, ElapsedEventArgs e) // Manager button speckleMenu.DropDown.Items.Add("Open Speckle Manager", Properties.Resources.speckle_logo, - (o, args) => Process.Start("speckle://")); - - try - { - Grasshopper.Instances.DocumentEditor.Invoke(new Action(() => + (o, args) => { - if (!MenuHasBeenAdded) + try + { + string path = ""; + + Speckle.Core.Logging.Analytics.TrackEvent(Speckle.Core.Logging.Analytics.Events.DUIAction, new Dictionary() { { "name", "Launch Manager" } }); + +#if MAC + path = @"/Applications/Manager for Speckle.app"; + +#else + path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Speckle", "Manager", "Manager.exe"); +#endif + + if (File.Exists(path) || Directory.Exists(path)) + Process.Start(path); + else + { + Process.Start(new ProcessStartInfo($"https://speckle.systems/download") { UseShellExecute = true }); + } + } + catch (Exception ex) { - mainMenu.Items.Add(speckleMenu); - // Select the first kit by default. - if (speckleMenu.DropDown.Items.Count > 0) - HandleKitSelectedEvent(kitMenuItems.FirstOrDefault(k => k.Text.Trim() == "Objects"), null); + Log.CaptureException(ex, Sentry.SentryLevel.Error); } - })); - } - catch (Exception err) - { - Log.CaptureException(err); - var errItem = speckleMenu.DropDown.Items.Add("An error occurred while fetching Kits", null); - errItem.Enabled = false; - } + }); + + + if (!MenuHasBeenAdded) + mainMenu.Items.Add(speckleMenu); MenuHasBeenAdded = true; } + private DebounceDispatcher headlessTemplateNameDebounceDispatcher = new DebounceDispatcher(); + + private void CreateHeadlessTemplateMenu() + { + var main = speckleMenu.DropDown.Items.Add("Rhino.Compute") as ToolStripMenuItem; + var head = main.DropDown.Items.Add("Default 3dm filename"); + head.Enabled = false; + head.ToolTipText = + @"The file name of the default file to be used when running on Rhino.Compute. They should be placed in `%appdata%/Speckle/Templates/. If no file is found with that name, an empty file will be opened"; + var textbox = new ToolStripTextBox("Default file name"); + main.DropDown.Items.Add(textbox); + textbox.Text = SpeckleGHSettings.HeadlessTemplateFilename; + textbox.AutoSize = false; + textbox.Width = Global_Proc.UiAdjust(200); + textbox.TextChanged += (sender, text) => + headlessTemplateNameDebounceDispatcher.Debounce(400, o => SpeckleGHSettings.HeadlessTemplateFilename = textbox.Text); + main.DropDown.Items.Add(new ToolStripSeparator()); + main.DropDown.Items.Add("Open Templates folder", null, (sender, args) => + { + var path = Path.Combine(Helpers.InstallSpeckleFolderPath, "Templates"); + + if (!Directory.Exists(path)) + Directory.CreateDirectory(path); +#if MAC + Process.Start("file://" + path); +#else + Process.Start("explorer.exe", "/select, " + path ); +#endif + }); + } + + private void CreateKitSelectionMenu(ToolStripMenuItem menu) + { + var header = new ToolStripMenuItem("Select the converter you want to use.") { Enabled = false }; + var loading = new ToolStripMenuItem(" Loading Kits...") { Enabled = false }; + + menu.DropDown.Items.Add(header); + menu.DropDown.Items.Add(loading); + + Task.Run(() => + { + loadedKits = KitManager.GetKitsWithConvertersForApp(Extras.Utilities.GetVersionedAppName()); + + var kitItems = new List(); + + loadedKits.ToList().ForEach(kit => + { + var item = new ToolStripMenuItem(" " + kit.Name); + item.Click += HandleKitSelectedEvent; + kitItems.Add(item); + }); + kitMenuItems = kitItems; + }).ContinueWith(task => + { + if (task.Exception != null) + { + Log.CaptureException(task.Exception); + var errItem = new ToolStripMenuItem("An error occurred while fetching Kits"); + errItem.DropDown.Items.Add(task.Exception.ToFormattedString()); + + RhinoApp.InvokeOnUiThread((Action)delegate + { + menu.DropDown.Items.Remove(loading); + menu.DropDown.Items.Insert(1, errItem); + Grasshopper.Instances.DocumentEditor.Refresh(); + }); + return; + } + RhinoApp.InvokeOnUiThread((Action)delegate + { + var current = 1; + menu.DropDown.Items.Remove(loading); + foreach (var item in kitMenuItems) + menu.DropDown.Items.Insert(current++, item); + HandleKitSelectedEvent(kitMenuItems.FirstOrDefault(k => k.Text.Trim() == "Objects"), null); + Grasshopper.Instances.DocumentEditor.Refresh(); + }); + }); + } + private void CreateTabsMenu() { var tabsMenu = speckleMenu.DropDown.Items.Add("Show/Hide Components") as ToolStripMenuItem; - var warn = tabsMenu.DropDown.Items.Add("Changes require restarting Rhino to take effect."); - warn.Enabled = false; new List { "BIM", "Revit", "Structural", - "ETABS", "GSA", "Tekla", "CSI" @@ -309,7 +423,53 @@ public static void KeepOpenOnDropdownCheck(ToolStripMenuItem ctl) item.MouseEnter += (o, e) => ctl.DropDown.AutoClose = false; item.MouseLeave += (o, e) => ctl.DropDown.AutoClose = true; } + } + + private static RhinoDoc _headlessDoc; + + public static void DisposeHeadlessDoc() + { +#if RHINO7 + _headlessDoc?.Dispose(); +#endif + _headlessDoc = null; + } + + public static void SetupHeadlessDoc() + { +#if RHINO7 + // var templatePath = Path.Combine(Helpers.UserApplicationDataPath, "Speckle", "Templates", + // SpeckleGHSettings.HeadlessTemplateFilename); + // Console.WriteLine($"Setting up doc. Looking for '{templatePath}'"); + // _headlessDoc = File.Exists(templatePath) + // ? RhinoDoc.CreateHeadless(templatePath) + // : RhinoDoc.CreateHeadless(null); + + _headlessDoc = RhinoDoc.CreateHeadless(null); + Console.WriteLine( + $"Headless run with doc '{_headlessDoc.Name ?? "Untitled"}'\n with template: '{_headlessDoc.TemplateFileUsed ?? "No template"}'\n with units: {_headlessDoc.ModelUnitSystem}"); +#endif + } + + /// + /// Get the current document for this Grasshopper instance. + /// This will correspond to the `ActiveDoc` on normal Rhino usage, while in headless mode it will try to load + /// + /// + public static RhinoDoc GetCurrentDocument() + { +#if RHINO7 + if(Instances.RunningHeadless) + { + Console.WriteLine( + $"Fetching headless doc '{_headlessDoc.Name ?? "Untitled"}'\n with template: '{_headlessDoc.TemplateFileUsed ?? "No template"}'"); + Console.WriteLine(" Model units:" + _headlessDoc.ModelUnitSystem); + } + return Grasshopper.Instances.RunningHeadless ? _headlessDoc : RhinoDoc.ActiveDoc; +#else + return RhinoDoc.ActiveDoc; +#endif } } } diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Objects/CreateSpeckleObjectByKeyValueTaskComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/CreateSpeckleObjectByKeyValueTaskComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Objects/CreateSpeckleObjectByKeyValueTaskComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/CreateSpeckleObjectByKeyValueTaskComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Objects/CreateSpeckleObjectTaskComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/CreateSpeckleObjectTaskComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Objects/CreateSpeckleObjectTaskComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/CreateSpeckleObjectTaskComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Objects/DeconstructSpeckleObjectTaskComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/DeconstructSpeckleObjectTaskComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Objects/DeconstructSpeckleObjectTaskComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/DeconstructSpeckleObjectTaskComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Objects/Deprecated/ExpandSpeckleObjectTaskComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/Deprecated/ExpandSpeckleObjectTaskComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Objects/Deprecated/ExpandSpeckleObjectTaskComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/Deprecated/ExpandSpeckleObjectTaskComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Objects/ExtendSpeckleObjectByKeyValueTaskComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/ExtendSpeckleObjectByKeyValueTaskComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Objects/ExtendSpeckleObjectByKeyValueTaskComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/ExtendSpeckleObjectByKeyValueTaskComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Objects/ExtendSpeckleObjectTaskComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/ExtendSpeckleObjectTaskComponent.cs similarity index 98% rename from ConnectorGrasshopper/ConnectorGrasshopper/Objects/ExtendSpeckleObjectTaskComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/ExtendSpeckleObjectTaskComponent.cs index ace144a412..26629ba9b5 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Objects/ExtendSpeckleObjectTaskComponent.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/ExtendSpeckleObjectTaskComponent.cs @@ -52,7 +52,10 @@ protected override void SolveInstance(IGH_DataAccess DA) } else if(inputObj is IGH_Goo goo) { var value = goo.GetType().GetProperty("Value")?.GetValue(goo); - if(Converter.CanConvertToSpeckle(value)) + if (value is Base baseObj) { + @base = baseObj; + } + else if(Converter.CanConvertToSpeckle(value)) { @base = Converter.ConvertToSpeckle(value); AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, "Input object was not a Speckle object, but has been converted to one."); diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Objects/GetObjectKeysComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/GetObjectKeysComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Objects/GetObjectKeysComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/GetObjectKeysComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Objects/GetObjectValueByKeyTaskComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/GetObjectValueByKeyTaskComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Objects/GetObjectValueByKeyTaskComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Objects/GetObjectValueByKeyTaskComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.ReceiveComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.ReceiveComponent.cs similarity index 99% rename from ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.ReceiveComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.ReceiveComponent.cs index 40e7b10783..6575075243 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.ReceiveComponent.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.ReceiveComponent.cs @@ -669,7 +669,7 @@ public override void SetData(IGH_DataAccess DA) //the active document may have changed var converter = parent.Converter; - converter?.SetContextDocument(RhinoDoc.ActiveDoc); + converter?.SetContextDocument(Loader.GetCurrentDocument()); var tree = Utilities.ConvertToTree(converter, ReceivedObject, Parent.AddRuntimeMessage); var receiveComponent = (ReceiveComponent)this.Parent; diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.ReceiveComponentSync.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.ReceiveComponentSync.cs similarity index 99% rename from ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.ReceiveComponentSync.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.ReceiveComponentSync.cs index f95b468e21..ce129de65e 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.ReceiveComponentSync.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.ReceiveComponentSync.cs @@ -212,7 +212,7 @@ private void SetDefaultKitAndConverter() Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); SpeckleGHSettings.OnMeshSettingsChanged += (sender, args) => Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); - Converter.SetContextDocument(RhinoDoc.ActiveDoc); + Converter.SetContextDocument(Loader.GetCurrentDocument()); foundKit = true; } catch @@ -332,7 +332,7 @@ await client.CommitReceived(new CommitReceivedInput ReceivedObjectId = @base.id; //the active document may have changed - Converter?.SetContextDocument(RhinoDoc.ActiveDoc); + Converter?.SetContextDocument(Loader.GetCurrentDocument()); var data = Extras.Utilities.ConvertToTree(Converter, @base, AddRuntimeMessage); DA.SetDataTree(0, data); diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.SendComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.SendComponent.cs similarity index 99% rename from ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.SendComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.SendComponent.cs index 8fa8bb76cf..5f0856583c 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.SendComponent.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.SendComponent.cs @@ -286,7 +286,7 @@ public override void DoWork(Action ReportProgress, Action Done) } //the active document may have changed - sendComponent.Converter.SetContextDocument(RhinoDoc.ActiveDoc); + sendComponent.Converter.SetContextDocument(Loader.GetCurrentDocument()); // Note: this method actually converts the objects to speckle too try diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.SendComponentSync.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.SendComponentSync.cs similarity index 99% rename from ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.SendComponentSync.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.SendComponentSync.cs index 454da594b9..ba26fc4d64 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.SendComponentSync.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.SendComponentSync.cs @@ -176,7 +176,7 @@ private void SetDefaultKitAndConverter() Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); SpeckleGHSettings.OnMeshSettingsChanged += (sender, args) => Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); - Converter.SetContextDocument(Rhino.RhinoDoc.ActiveDoc); + Converter.SetContextDocument(Loader.GetCurrentDocument()); foundKit = true; } catch @@ -211,7 +211,7 @@ protected override void SolveInstance(IGH_DataAccess DA) DA.GetDataTree(0, out dataInput); //the active document may have changed - Converter.SetContextDocument(RhinoDoc.ActiveDoc); + Converter.SetContextDocument(Loader.GetCurrentDocument()); // Note: this method actually converts the objects to speckle too converted = Extras.Utilities.DataTreeToNestedLists(dataInput, Converter, source.Token, () => diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.UpgradeUtils.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.UpgradeUtils.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.UpgradeUtils.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.UpgradeUtils.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.VariableInputSendComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.VariableInputSendComponent.cs similarity index 99% rename from ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.VariableInputSendComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.VariableInputSendComponent.cs index 879b6c9f69..3e2f4fb9d8 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Deprecated/Operations.VariableInputSendComponent.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Deprecated/Operations.VariableInputSendComponent.cs @@ -350,7 +350,7 @@ public override void DoWork(Action ReportProgress, Action Done) } //the active document may have changed - sendComponent.Converter.SetContextDocument(RhinoDoc.ActiveDoc); + sendComponent.Converter.SetContextDocument(Loader.GetCurrentDocument()); // Note: this method actually converts the objects to speckle too ObjectToSend = new Base(); diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.ReceiveLocalComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.ReceiveLocalComponent.cs similarity index 98% rename from ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.ReceiveLocalComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.ReceiveLocalComponent.cs index 979a5ac618..0b1811dea9 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.ReceiveLocalComponent.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.ReceiveLocalComponent.cs @@ -87,7 +87,7 @@ private void SetDefaultKitAndConverter() Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); SpeckleGHSettings.OnMeshSettingsChanged += (sender, args) => Converter.SetConverterSettings(SpeckleGHSettings.MeshSettings); - Converter.SetContextDocument(Rhino.RhinoDoc.ActiveDoc); + Converter.SetContextDocument(Loader.GetCurrentDocument()); foundKit = true; } catch diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.SendLocalComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.SendLocalComponent.cs similarity index 97% rename from ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.SendLocalComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.SendLocalComponent.cs index 31e9920254..b37e5d7fae 100755 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.SendLocalComponent.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.SendLocalComponent.cs @@ -63,7 +63,7 @@ public override void DoWork(Action ReportProgress, Action Done) { Parent.Message = "Sending..."; var converter = (Parent as SendLocalComponent)?.Converter; - converter?.SetContextDocument(Rhino.RhinoDoc.ActiveDoc); + converter?.SetContextDocument(Loader.GetCurrentDocument()); var converted = Utilities.DataTreeToNestedLists(data, converter); var ObjectToSend = new Base(); ObjectToSend["@data"] = converted; diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.SyncReceiveComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.SyncReceiveComponent.cs similarity index 99% rename from ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.SyncReceiveComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.SyncReceiveComponent.cs index ceb1af1df8..7b2b27fd7f 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.SyncReceiveComponent.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.SyncReceiveComponent.cs @@ -249,7 +249,7 @@ await client.CommitReceived(new CommitReceivedInput ReceivedObjectId = @base.id; //the active document may have changed - Converter?.SetContextDocument(RhinoDoc.ActiveDoc); + Converter?.SetContextDocument(Loader.GetCurrentDocument()); var data = Extras.Utilities.ConvertToTree(Converter, @base, AddRuntimeMessage, true); diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.SyncSendComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.SyncSendComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.SyncSendComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.SyncSendComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.VariableInputReceiveComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.VariableInputReceiveComponent.cs similarity index 99% rename from ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.VariableInputReceiveComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.VariableInputReceiveComponent.cs index f9f1c25156..48e02ae15b 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.VariableInputReceiveComponent.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.VariableInputReceiveComponent.cs @@ -772,7 +772,7 @@ public override void SetData(IGH_DataAccess DA) //the active document may have changed var converter = parent.Converter; - converter?.SetContextDocument(RhinoDoc.ActiveDoc); + converter?.SetContextDocument(Loader.GetCurrentDocument()); parent.PrevReceivedData = new Dictionary>(); if (!parent.ExpandOutput || (converter != null && converter.CanConvertToNative(ReceivedObject))) diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.VariableInputSendComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.VariableInputSendComponent.cs similarity index 98% rename from ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.VariableInputSendComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.VariableInputSendComponent.cs index a6fe800718..8ea46ea8b7 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Ops/Operations.VariableInputSendComponent.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Ops/Operations.VariableInputSendComponent.cs @@ -368,7 +368,7 @@ public override void DoWork(Action ReportProgress, Action Done) } //the active document may have changed - sendComponent.Converter.SetContextDocument(RhinoDoc.ActiveDoc); + sendComponent.Converter.SetContextDocument(Loader.GetCurrentDocument()); if (!Helpers.UserHasInternet().Result) { @@ -388,6 +388,7 @@ public override void DoWork(Action ReportProgress, Action Done) { ReportProgress("Conversion", Math.Round(convertedCount++ / (double)d.Value.DataCount / DataInputs.Count, 2)); }); + convertedCount++; var param = Parent.Params.Input.Find(p => p.Name == d.Key || p.NickName == d.Key); var key = d.Key; @@ -407,6 +408,11 @@ public override void DoWork(Action ReportProgress, Action Done) } } + foreach (var error in sendComponent.Converter.Report.ConversionErrors) + { + RuntimeMessages.Add((GH_RuntimeMessageLevel.Warning, error.ToFormattedString())); + } + if (convertedCount == 0) { RuntimeMessages.Add((GH_RuntimeMessageLevel.Error, "Zero objects converted successfully. Send stopped.")); diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Properties/Resources.Designer.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Properties/Resources.Designer.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Properties/Resources.Designer.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Properties/Resources.Designer.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Properties/Resources.resx b/ConnectorGrasshopper/ConnectorGrasshopperShared/Properties/Resources.resx similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Properties/Resources.resx rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Properties/Resources.resx diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/AccountDetails.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/AccountDetails.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/AccountDetails.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/AccountDetails.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/Accounts.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/Accounts.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/Accounts.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/Accounts.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/BaseParam.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/BaseParam.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/BaseParam.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/BaseParam.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/CreateSpeckleObject.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/CreateSpeckleObject.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/CreateSpeckleObject.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/CreateSpeckleObject.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/CreateSpeckleObjectByKeyValue.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/CreateSpeckleObjectByKeyValue.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/CreateSpeckleObjectByKeyValue.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/CreateSpeckleObjectByKeyValue.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/CreateStream.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/CreateStream.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/CreateStream.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/CreateStream.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/Deserialize.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/Deserialize.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/Deserialize.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/Deserialize.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/DiskTransport.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/DiskTransport.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/DiskTransport.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/DiskTransport.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/ExpandSpeckleObject.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/ExpandSpeckleObject.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/ExpandSpeckleObject.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/ExpandSpeckleObject.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/ExtendSpeckleObject.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/ExtendSpeckleObject.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/ExtendSpeckleObject.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/ExtendSpeckleObject.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/ExtendSpeckleObjectByKeyValue.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/ExtendSpeckleObjectByKeyValue.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/ExtendSpeckleObjectByKeyValue.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/ExtendSpeckleObjectByKeyValue.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/GetObjectValueByKey.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/GetObjectValueByKey.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/GetObjectValueByKey.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/GetObjectValueByKey.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/LocalReceiver.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/LocalReceiver.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/LocalReceiver.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/LocalReceiver.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/LocalSender.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/LocalSender.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/LocalSender.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/LocalSender.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/MemoryTransport.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/MemoryTransport.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/MemoryTransport.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/MemoryTransport.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/Receiver.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/Receiver.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/Receiver.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/Receiver.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/SQLiteTransport.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/SQLiteTransport.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/SQLiteTransport.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/SQLiteTransport.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/SchemaBuilder.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/SchemaBuilder.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/SchemaBuilder.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/SchemaBuilder.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/Sender.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/Sender.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/Sender.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/Sender.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/Serialize.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/Serialize.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/Serialize.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/Serialize.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/ServerTransport.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/ServerTransport.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/ServerTransport.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/ServerTransport.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/SpeckleObjectKeysLogo.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/SpeckleObjectKeysLogo.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/SpeckleObjectKeysLogo.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/SpeckleObjectKeysLogo.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/SpeckleTag_Schema.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/SpeckleTag_Schema.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/SpeckleTag_Schema.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/SpeckleTag_Schema.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/StateTag_Detach.Large.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StateTag_Detach.Large.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/StateTag_Detach.Large.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StateTag_Detach.Large.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/StateTag_Detach.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StateTag_Detach.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/StateTag_Detach.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StateTag_Detach.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/StateTag_List.Large.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StateTag_List.Large.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/StateTag_List.Large.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StateTag_List.Large.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/StateTag_List.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StateTag_List.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/StateTag_List.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StateTag_List.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/StateTag_Optional.Large.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StateTag_Optional.Large.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/StateTag_Optional.Large.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StateTag_Optional.Large.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/StateTag_Optional.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StateTag_Optional.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/StateTag_Optional.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StateTag_Optional.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/StreamDetails.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StreamDetails.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/StreamDetails.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StreamDetails.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/StreamGet.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StreamGet.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/StreamGet.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StreamGet.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/StreamList.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StreamList.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/StreamList.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StreamList.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/StreamParam.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StreamParam.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/StreamParam.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StreamParam.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/StreamUpdate.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StreamUpdate.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/StreamUpdate.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/StreamUpdate.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/SynchronousReceiver.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/SynchronousReceiver.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/SynchronousReceiver.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/SynchronousReceiver.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/SynchronousSender.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/SynchronousSender.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/SynchronousSender.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/SynchronousSender.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/ToNative.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/ToNative.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/ToNative.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/ToNative.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/ToSpeckle.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/ToSpeckle.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/ToSpeckle.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/ToSpeckle.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/docs16.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/docs16.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/docs16.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/docs16.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/forum16.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/forum16.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/forum16.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/forum16.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/help16.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/help16.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/help16.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/help16.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/receiveFromTransport.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/receiveFromTransport.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/receiveFromTransport.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/receiveFromTransport.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/sendToTransport.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/sendToTransport.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/sendToTransport.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/sendToTransport.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/speckle-logo-bw.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/speckle-logo-bw.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/speckle-logo-bw.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/speckle-logo-bw.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/speckle-logo.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/speckle-logo.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/speckle-logo.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/speckle-logo.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Resources/tutorials16.png b/ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/tutorials16.png similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Resources/tutorials16.png rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Resources/tutorials16.png diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/CSOViewModel.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/CSOViewModel.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/CSOViewModel.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/CSOViewModel.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/CreateSchemaObject.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/CreateSchemaObject.cs similarity index 99% rename from ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/CreateSchemaObject.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/CreateSchemaObject.cs index 0ac6f3d348..48cb3067ec 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/CreateSchemaObject.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/CreateSchemaObject.cs @@ -357,7 +357,7 @@ protected override void SolveInstance(IGH_DataAccess DA) Tracker.TrackNodeRun("Create Schema Object", Name); - var units = Units.GetUnitsFromString(Rhino.RhinoDoc.ActiveDoc.ModelUnitSystem.ToString()); + var units = Units.GetUnitsFromString(Loader.GetCurrentDocument().ModelUnitSystem.ToString()); List cParamsValues = new List(); var cParams = SelectedConstructor.GetParameters(); @@ -621,7 +621,7 @@ public void VariableParameterMaintenance() protected override void BeforeSolveInstance() { - Converter?.SetContextDocument(Rhino.RhinoDoc.ActiveDoc); + Converter?.SetContextDocument(Loader.GetCurrentDocument()); base.BeforeSolveInstance(); } } diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/CreateSchemaObjectBase.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/CreateSchemaObjectBase.cs similarity index 99% rename from ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/CreateSchemaObjectBase.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/CreateSchemaObjectBase.cs index 8518f74d15..7af99b5f29 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/CreateSchemaObjectBase.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/CreateSchemaObjectBase.cs @@ -343,7 +343,7 @@ protected override void SolveInstance(IGH_DataAccess DA) Tracker.TrackNodeRun("Create Schema Object", Name); - var units = Units.GetUnitsFromString(Rhino.RhinoDoc.ActiveDoc.ModelUnitSystem.ToString()); + var units = Units.GetUnitsFromString(Loader.GetCurrentDocument().ModelUnitSystem.ToString()); List cParamsValues = new List(); var cParams = SelectedConstructor.GetParameters(); @@ -611,7 +611,7 @@ public void VariableParameterMaintenance() protected override void BeforeSolveInstance() { - Converter?.SetContextDocument(Rhino.RhinoDoc.ActiveDoc); + Converter?.SetContextDocument(Loader.GetCurrentDocument()); base.BeforeSolveInstance(); } } diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/CreateSchemaObjectDialog.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/CreateSchemaObjectDialog.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/CreateSchemaObjectDialog.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/CreateSchemaObjectDialog.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/SchemaBuilderGen.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/SchemaBuilderGen.cs new file mode 100644 index 0000000000..23d33eccd4 --- /dev/null +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/SchemaBuilderGen.cs @@ -0,0 +1,5838 @@ + + +using System; +using System.Linq; +using Grasshopper.Kernel; +using ConnectorGrasshopperUtils; + +namespace ConnectorGrasshopper { +// This is generated code: +public class AdaptiveComponentSchemaComponent: CreateSchemaObjectBase { + static AdaptiveComponentSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public AdaptiveComponentSchemaComponent(): base("AdaptiveComponent", "AdaptiveComponent", "Creates a Revit adaptive component by points", "Speckle 2 Revit", "Families") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("71420d27-62d1-f158-edab-a89e54604d76"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.AdaptiveComponent.ctor(System.String,System.String,System.Collections.Generic.List`1[Objects.Geometry.Point],System.Boolean,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.AdaptiveComponent"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class AngleSchemaComponent: CreateSchemaObjectBase { + static AngleSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public AngleSchemaComponent(): base("Angle", "Angle", "Creates a Speckle structural angle section profile", "Speckle 2 Structural", "Section Profile") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("91df837b-3162-a0de-724d-ea182e77e68c"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Angle.ctor(System.String,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.Profiles.Angle"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ArchicadBeamSchemaComponent: CreateSchemaObjectBase { + static ArchicadBeamSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ArchicadBeamSchemaComponent(): base("ArchicadBeam", "ArchicadBeam", "Creates an Archicad Structures beam by curve.", "Speckle 2 Archicad", "Structure") { } + + internal static string internalCategory { get; } = "Speckle 2 Archicad"; + + internal static Guid internalGuid => new Guid("73860182-c94b-d570-f568-1ab73eec8bfd"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Archicad.ArchicadBeam.ctor(Objects.Geometry.Point,Objects.Geometry.Point)","Objects.BuiltElements.Archicad.ArchicadBeam"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class AreaSchemaComponent: CreateSchemaObjectBase { + static AreaSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public AreaSchemaComponent(): base("Area", "Area", "Creates a Speckle area", "Speckle 2 BIM", "Other") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("b98bd134-1ebd-b805-821c-465f1a25fb4e"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Area.ctor(System.String,System.String,Objects.BuiltElements.Level,Objects.Geometry.Point)","Objects.BuiltElements.Area"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class AxisSchemaComponent: CreateSchemaObjectBase { + static AxisSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public AxisSchemaComponent(): base("Axis", "Axis", "Creates a Speckle structural axis (a user-defined axis)", "Speckle 2 Structural", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("38fdc896-0404-4961-120f-6e373d19edbc"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Axis.ctor(System.String,Objects.Structural.AxisType,Objects.Geometry.Plane)","Objects.Structural.Geometry.Axis"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class BeamSchemaComponent: CreateSchemaObjectBase { + static BeamSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public BeamSchemaComponent(): base("Beam", "Beam", "Creates a Speckle beam", "Speckle 2 BIM", "Structure") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("5c0a392e-bc1c-cf28-0048-a99ee090ffa1"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Beam.ctor(Objects.ICurve)","Objects.BuiltElements.Beam"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class BlockDefinitionSchemaComponent: CreateSchemaObjectBase { + static BlockDefinitionSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public BlockDefinitionSchemaComponent(): base("Block Definition", "Block Definition", "A Speckle Block definition", "Speckle 2 BIM", "Objects.Other") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("91f1164e-b519-d72f-d64b-e68bb14836e3"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Other.BlockDefinition.ctor(System.String,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Geometry.Point)","Objects.Other.BlockDefinition"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class BlockInstanceSchemaComponent: CreateSchemaObjectBase { + static BlockInstanceSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public BlockInstanceSchemaComponent(): base("Block Instance", "Block Instance", "A Speckle Block Instance", "Speckle 2 BIM", "Objects.Other") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("28238ece-f2e0-fe7d-e25f-e8f8cb35e629"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Other.BlockInstance.ctor(Objects.Other.BlockDefinition,Objects.Other.Transform)","Objects.Other.BlockInstance"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class BraceSchemaComponent: CreateSchemaObjectBase { + static BraceSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public BraceSchemaComponent(): base("Brace", "Brace", "Creates a Speckle brace", "Speckle 2 BIM", "Structure") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("cf5f1dad-80cd-d499-2ef7-6ae1f8d34a5c"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Brace.ctor(Objects.ICurve)","Objects.BuiltElements.Brace"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CatalogueSchemaComponent: CreateSchemaObjectBase { + static CatalogueSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CatalogueSchemaComponent(): base("Catalogue (by description)", "Catalogue (by description)", "Creates a Speckle structural section profile based on a catalogue section description", "Speckle 2 Structural", "Section Profile") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("7e0f97be-7297-64f8-fc85-f43623186129"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Catalogue.ctor(System.String)","Objects.Structural.Properties.Profiles.Catalogue"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Catalogue1SchemaComponent: CreateSchemaObjectBase { + static Catalogue1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Catalogue1SchemaComponent(): base("Catalogue", "Catalogue", "Creates a Speckle structural section profile", "Speckle 2 Structural", "Section Profile") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("1b5a50a5-4b3d-1018-8e3f-bb34ad0af7ff"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Catalogue.ctor(System.String,System.String,System.String,System.String)","Objects.Structural.Properties.Profiles.Catalogue"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CeilingSchemaComponent: CreateSchemaObjectBase { + static CeilingSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CeilingSchemaComponent(): base("Ceiling", "Ceiling", "Creates a Speckle ceiling", "Speckle 2 BIM", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("91b38d18-dd01-dfc7-f11d-e3d2c118ff0b"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Ceiling.ctor(Objects.ICurve,System.Collections.Generic.List`1[Objects.ICurve],System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.BuiltElements.Ceiling"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ChannelSchemaComponent: CreateSchemaObjectBase { + static ChannelSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ChannelSchemaComponent(): base("Channel", "Channel", "Creates a Speckle structural channel section profile", "Speckle 2 Structural", "Section Profile") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("40336db1-decb-2ad6-6680-01c457f0f31d"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Channel.ctor(System.String,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.Profiles.Channel"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CircularSchemaComponent: CreateSchemaObjectBase { + static CircularSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CircularSchemaComponent(): base("Circular", "Circular", "Creates a Speckle structural circular section profile", "Speckle 2 Structural", "Section Profile") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("fbf190e3-c085-dfc9-3b49-bcda58ab931f"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Circular.ctor(System.String,System.Double,System.Double)","Objects.Structural.Properties.Profiles.Circular"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ColumnSchemaComponent: CreateSchemaObjectBase { + static ColumnSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ColumnSchemaComponent(): base("Column", "Column", "Creates a Speckle column", "Speckle 2 BIM", "Structure") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("d92fc447-81b6-e595-1905-6239ea13a49b"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Column.ctor(Objects.ICurve)","Objects.BuiltElements.Column"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ConcreteSchemaComponent: CreateSchemaObjectBase { + static ConcreteSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ConcreteSchemaComponent(): base("Concrete", "Concrete", "Creates a Speckle structural material for concrete (to be used in structural analysis models)", "Speckle 2 Structural", "Materials") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("104f1e8d-a551-bb84-e671-3394bc6a4c2b"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Materials.Concrete.ctor(System.String,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Boolean,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Materials.Concrete"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CSIAreaSpringSchemaComponent: CreateSchemaObjectBase { + static CSIAreaSpringSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CSIAreaSpringSchemaComponent(): base("LinearSpring", "LinearSpring", "Create an CSI AreaSpring", "Speckle 2 CSI", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("f1b019ec-dac8-2669-a790-818aabd77c81"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIAreaSpring.ctor(System.String,System.Double,System.Double,System.Double,Objects.Structural.CSI.Properties.NonLinearOptions,System.String)","Objects.Structural.CSI.Properties.CSIAreaSpring"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CSIDiaphragmSchemaComponent: CreateSchemaObjectBase { + static CSIDiaphragmSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CSIDiaphragmSchemaComponent(): base("CSI Diaphragm", "CSI Diaphragm", "Create an CSI Diaphragm", "Speckle 2 CSI", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("97f96eaa-f4f3-ef29-0de3-63829f163dc1"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIDiaphragm.ctor(System.String,System.Boolean)","Objects.Structural.CSI.Properties.CSIDiaphragm"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CSIElement1DSchemaComponent: CreateSchemaObjectBase { + static CSIElement1DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CSIElement1DSchemaComponent(): base("Element1D (from local axis)", "Element1D (from local axis)", "Creates a Speckle CSI 1D element (from local axis)", "Speckle 2 CSI", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("b19522f8-4264-ce56-3cc7-ec2132ece2e1"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Geometry.CSIElement1D.ctor(Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,System.String,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Geometry.Plane,Objects.Structural.CSI.Properties.CSILinearSpring,System.Double[],Objects.Structural.CSI.Properties.DesignProcedure)","Objects.Structural.CSI.Geometry.CSIElement1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CSIElement1D1SchemaComponent: CreateSchemaObjectBase { + static CSIElement1D1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CSIElement1D1SchemaComponent(): base("Element1D (from orientation node and angle)", "Element1D (from orientation node and angle)", "Creates a Speckle CSI 1D element (from orientation node and angle)", "Speckle 2 CSI", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("95254c64-1e71-0902-06a1-206b2f17b844"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Geometry.CSIElement1D.ctor(Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,System.String,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Structural.Geometry.Node,System.Double,Objects.Structural.CSI.Properties.CSILinearSpring,System.Double[],Objects.Structural.CSI.Properties.DesignProcedure)","Objects.Structural.CSI.Geometry.CSIElement1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CSIElement2DSchemaComponent: CreateSchemaObjectBase { + static CSIElement2DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CSIElement2DSchemaComponent(): base("Element2D", "Element2D", "Creates a Speckle CSI 2D element (based on a list of edge ie. external, geometry defining nodes)", "Speckle 2 CSI", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("33c58e3c-d8cb-86ca-b494-ee5c69ec7b14"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Geometry.CSIElement2D.ctor(System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Properties.Property2D,System.Double,System.Double,System.Double[],Objects.Structural.CSI.Properties.CSIAreaSpring,Objects.Structural.CSI.Properties.CSIDiaphragm)","Objects.Structural.CSI.Geometry.CSIElement2D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CSILinearSpringSchemaComponent: CreateSchemaObjectBase { + static CSILinearSpringSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CSILinearSpringSchemaComponent(): base("LinearSpring", "LinearSpring", "Create an CSI LinearSpring", "Speckle 2 CSI", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("a81ebbcb-78a6-9f21-5212-09701d89fa5d"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSILinearSpring.ctor(System.String,System.Double,System.Double,System.Double,System.Double,Objects.Structural.CSI.Properties.NonLinearOptions,Objects.Structural.CSI.Properties.NonLinearOptions,System.String)","Objects.Structural.CSI.Properties.CSILinearSpring"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CSILinkPropertySchemaComponent: CreateSchemaObjectBase { + static CSILinkPropertySchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CSILinkPropertySchemaComponent(): base("CSILink", "CSILink", "Create an CSI Link Property", "Speckle 2 CSI", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("0d7960c0-ddc2-fa77-3b52-fd4d1587af32"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSILinkProperty.ctor(System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.CSI.Properties.CSILinkProperty"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CSINodeSchemaComponent: CreateSchemaObjectBase { + static CSINodeSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CSINodeSchemaComponent(): base("Node with properties", "Node with properties", "Creates a Speckle CSI node with spring, mass and/or damper properties", "Speckle 2 CSI", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("2c39977e-f47f-3202-c778-ac46b8462fea"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Geometry.CSINode.ctor(Objects.Geometry.Point,System.String,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Axis,Objects.Structural.CSI.Properties.CSISpringProperty,Objects.Structural.Properties.PropertyMass,Objects.Structural.Properties.PropertyDamper,Objects.Structural.CSI.Properties.CSIDiaphragm,Objects.Structural.CSI.Properties.DiaphragmOption)","Objects.Structural.CSI.Geometry.CSINode"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CSIOpeningSchemaComponent: CreateSchemaObjectBase { + static CSIOpeningSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CSIOpeningSchemaComponent(): base("Opening", "Opening", "Create an CSI Opening", "Speckle 2 CSI", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("e6405aac-40ff-97c5-66d7-be3586eebbdd"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIOpening.ctor(System.Boolean)","Objects.Structural.CSI.Properties.CSIOpening"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CSISpringPropertySchemaComponent: CreateSchemaObjectBase { + static CSISpringPropertySchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CSISpringPropertySchemaComponent(): base("PointSpring from Link", "PointSpring from Link", "Create an CSI PointSpring from Link", "Speckle 2 CSI", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("efa38436-affe-3ba9-2413-743fe26eb9f7"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSISpringProperty.ctor(System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.CSI.Properties.CSISpringProperty"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class CSISpringProperty1SchemaComponent: CreateSchemaObjectBase { + static CSISpringProperty1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public CSISpringProperty1SchemaComponent(): base("PointSpring from Soil Profile", "PointSpring from Soil Profile", "Create an CSI PointSpring from Soil Profile", "Speckle 2 CSI", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("9b2854b3-f8bc-b8e6-fd86-aa5c55051759"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSISpringProperty.ctor(System.String,System.String,System.String,System.Double)","Objects.Structural.CSI.Properties.CSISpringProperty"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class DeckFilledSchemaComponent: CreateSchemaObjectBase { + static DeckFilledSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public DeckFilledSchemaComponent(): base("DeckFilled", "DeckFilled", "Create an CSI Filled Deck", "Speckle 2 CSI", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("151a2166-f739-501f-d3bc-f1a24bdd4093"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIProperty2D+DeckFilled.ctor(System.String,Objects.Structural.CSI.Analysis.ShellType,Objects.Structural.Materials.StructuralMaterial,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.CSI.Properties.CSIProperty2D+DeckFilled"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class DeckSlabSchemaComponent: CreateSchemaObjectBase { + static DeckSlabSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public DeckSlabSchemaComponent(): base("DeckSlab", "DeckSlab", "Create an CSI Slab Deck", "Speckle 2 CSI", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("b8102cde-4ea3-0583-9580-4a9530154440"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIProperty2D+DeckSlab.ctor(System.String,Objects.Structural.CSI.Analysis.ShellType,Objects.Structural.Materials.StructuralMaterial,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.CSI.Properties.CSIProperty2D+DeckSlab"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class DeckUnFilledSchemaComponent: CreateSchemaObjectBase { + static DeckUnFilledSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public DeckUnFilledSchemaComponent(): base("DeckUnFilled", "DeckUnFilled", "Create an CSI UnFilled Deck", "Speckle 2 CSI", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("680e6f0c-d140-e8c4-27e1-28d353a87b8f"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIProperty2D+DeckUnFilled.ctor(System.String,Objects.Structural.CSI.Analysis.ShellType,Objects.Structural.Materials.StructuralMaterial,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.CSI.Properties.CSIProperty2D+DeckUnFilled"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class DetailCurveSchemaComponent: CreateSchemaObjectBase { + static DetailCurveSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public DetailCurveSchemaComponent(): base("DetailCurve", "DetailCurve", "Creates a Revit detail curve", "Speckle 2 Revit", "Curves") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("4752d321-22cc-2d9e-dc6d-e3cf8e70c612"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.Curve.DetailCurve.ctor(Objects.ICurve,System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.Curve.DetailCurve"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class DirectShapeSchemaComponent: CreateSchemaObjectBase { + static DirectShapeSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public DirectShapeSchemaComponent(): base("DirectShape by base geometries", "DirectShape by base geometries", "Creates a Revit DirectShape using a list of base geometry objects.", "Speckle 2 Revit", "Families") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("870d9670-cbf5-06d2-f371-e1e49212b063"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.DirectShape.ctor(System.String,Objects.BuiltElements.Revit.RevitCategory,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.DirectShape"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class DuctSchemaComponent: CreateSchemaObjectBase { + static DuctSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public DuctSchemaComponent(): base("Duct", "Duct", "Creates a Speckle duct", "Speckle 2 BIM", "MEP") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("51d40791-43ea-a8e7-ef13-e9bfdf9cd893"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override bool Obsolete => true; + public override GH_Exposure Exposure => GH_Exposure.hidden; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Duct.ctor(Objects.Geometry.Line,System.Double,System.Double,System.Double,System.Double)","Objects.BuiltElements.Duct"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Duct1SchemaComponent: CreateSchemaObjectBase { + static Duct1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Duct1SchemaComponent(): base("Duct", "Duct", "Creates a Speckle duct", "Speckle 2 BIM", "MEP") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("7e3a3fba-7d4f-d549-96c0-41693b512db0"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Duct.ctor(Objects.ICurve,System.Double,System.Double,System.Double,System.Double)","Objects.BuiltElements.Duct"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Element1DSchemaComponent: CreateSchemaObjectBase { + static Element1DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Element1DSchemaComponent(): base("Element1D (from local axis)", "Element1D (from local axis)", "Creates a Speckle structural 1D element (from local axis)", "Speckle 2 Structural", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("9fffb53b-3465-7a5b-4839-91cfdcb86f63"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Element1D.ctor(Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,System.String,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Geometry.Plane)","Objects.Structural.Geometry.Element1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Element1D1SchemaComponent: CreateSchemaObjectBase { + static Element1D1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Element1D1SchemaComponent(): base("Element1D (from orientation node and angle)", "Element1D (from orientation node and angle)", "Creates a Speckle structural 1D element (from orientation node and angle)", "Speckle 2 Structural", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("6cb2d683-3116-0246-18b0-1bd35ed8fcc6"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Element1D.ctor(Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,System.String,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Structural.Geometry.Node,System.Double)","Objects.Structural.Geometry.Element1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Element2DSchemaComponent: CreateSchemaObjectBase { + static Element2DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Element2DSchemaComponent(): base("Element2D", "Element2D", "Creates a Speckle structural 2D element (based on a list of edge ie. external, geometry defining nodes)", "Speckle 2 Structural", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("0927879c-d28c-1c35-0d3f-4ba8e324ec39"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Element2D.ctor(System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Properties.Property2D,System.Double,System.Double)","Objects.Structural.Geometry.Element2D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Element3DSchemaComponent: CreateSchemaObjectBase { + static Element3DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Element3DSchemaComponent(): base("Element3D", "Element3D", "Creates a Speckle structural 3D element", "Speckle 2 Structural", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("54b79bd6-7a50-2107-afd5-f9b18346f8ea"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Element3D.ctor(Objects.Geometry.Mesh,Objects.Structural.Properties.Property3D,Objects.Structural.Geometry.ElementType3D,System.String,System.Double)","Objects.Structural.Geometry.Element3D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ExplicitSchemaComponent: CreateSchemaObjectBase { + static ExplicitSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ExplicitSchemaComponent(): base("Explicit", "Explicit", "Creates a Speckle structural section profile based on explicitly defining geometric properties", "Speckle 2 Structural", "Section Profile") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("e15a7edd-4559-0bb6-3559-48b72c43da2e"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Explicit.ctor(System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.Profiles.Explicit"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class FamilyInstanceSchemaComponent: CreateSchemaObjectBase { + static FamilyInstanceSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public FamilyInstanceSchemaComponent(): base("FamilyInstance", "FamilyInstance", "Creates a Revit family instance", "Speckle 2 Revit", "Families") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("266c4d84-3f2a-9129-565b-0ddb1e5bdac4"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.FamilyInstance.ctor(Objects.Geometry.Point,System.String,System.String,Objects.BuiltElements.Level,System.Double,System.Boolean,System.Boolean,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.FamilyInstance"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class FloorSchemaComponent: CreateSchemaObjectBase { + static FloorSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public FloorSchemaComponent(): base("Floor", "Floor", "Creates a Speckle floor", "Speckle 2 BIM", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("74c5b6bf-257e-8d4e-d9cb-7dc2c7ae3f22"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Floor.ctor(Objects.ICurve,System.Collections.Generic.List`1[Objects.ICurve],System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.BuiltElements.Floor"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class FreeformElementSchemaComponent: CreateSchemaObjectBase { + static FreeformElementSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public FreeformElementSchemaComponent(): base("Freeform element", "Freeform element", "Creates a Revit Freeform element using a list of Brep or Meshes. Category defaults to Generic Models", "Speckle 2 Revit", "Families") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("b24dc861-1c3c-a509-bc8b-560e9f7d503e"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.FreeformElement.ctor(System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.FreeformElement"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class FreeformElement1SchemaComponent: CreateSchemaObjectBase { + static FreeformElement1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public FreeformElement1SchemaComponent(): base("Freeform element", "Freeform element", "Creates a Revit Freeform element using a list of Brep or Meshes.", "Speckle 2 Revit", "Families") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("d1bb3f50-6abc-9f34-acf3-297e82bbd8ac"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override bool Obsolete => true; + public override GH_Exposure Exposure => GH_Exposure.hidden; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.FreeformElement.ctor(Speckle.Core.Models.Base,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.FreeformElement"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class FreeformElement2SchemaComponent: CreateSchemaObjectBase { + static FreeformElement2SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public FreeformElement2SchemaComponent(): base("Freeform element", "Freeform element", "Creates a Revit Freeform element using a list of Brep or Meshes.", "Speckle 2 Revit", "Families") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("d1a2299d-b8b0-ce4a-6a52-8b8ad95acbfd"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override bool Obsolete => true; + public override GH_Exposure Exposure => GH_Exposure.hidden; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.FreeformElement.ctor(System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.FreeformElement"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GridLineSchemaComponent: CreateSchemaObjectBase { + static GridLineSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GridLineSchemaComponent(): base("GridLine", "GridLine", "Creates a Speckle grid line", "Speckle 2 BIM", "Other") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("b2d4bd71-86a7-c142-7220-d9ed2ee7b02e"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override bool Obsolete => true; + public override GH_Exposure Exposure => GH_Exposure.hidden; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.GridLine.ctor(Objects.ICurve)","Objects.BuiltElements.GridLine"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GridLine1SchemaComponent: CreateSchemaObjectBase { + static GridLine1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GridLine1SchemaComponent(): base("GridLine", "GridLine", "Creates a Speckle grid line with a label", "Speckle 2 BIM", "Other") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("436f3773-b3f9-1a35-684e-a75f25f6c3bd"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.GridLine.ctor(Objects.ICurve,System.String)","Objects.BuiltElements.GridLine"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAAlignmentSchemaComponent: CreateSchemaObjectBase { + static GSAAlignmentSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAAlignmentSchemaComponent(): base("GSAAlignment", "GSAAlignment", "Creates a Speckle structural alignment for GSA (as a setting out feature for bridge models)", "Speckle 2 GSA", "Bridge") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("fc274806-efb5-c3b2-9c1d-bc9a6aba1a34"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Bridge.GSAAlignment.ctor(System.Int32,System.String,Objects.Structural.GSA.Geometry.GSAGridSurface,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double])","Objects.Structural.GSA.Bridge.GSAAlignment"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAAnalysisCaseSchemaComponent: CreateSchemaObjectBase { + static GSAAnalysisCaseSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAAnalysisCaseSchemaComponent(): base("GSAAnalysisCase", "GSAAnalysisCase", "Creates a Speckle structural analysis case for GSA", "Speckle 2 GSA", "Analysis") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("4bfc261f-98eb-7b2a-5da6-f2ef3505b9b7"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Analysis.GSAAnalysisCase.ctor(System.Int32,System.String,Objects.Structural.GSA.Analysis.GSATask,System.Collections.Generic.List`1[Objects.Structural.Loading.LoadCase],System.Collections.Generic.List`1[System.Double])","Objects.Structural.GSA.Analysis.GSAAnalysisCase"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAAssemblySchemaComponent: CreateSchemaObjectBase { + static GSAAssemblySchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAAssemblySchemaComponent(): base("GSAAssembly", "GSAAssembly", "Creates a Speckle structural assembly (ie. a way to define an entity that is formed from a collection of elements or members) for GSA", "Speckle 2 GSA", "Bridge") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("9b2c7be3-5172-7660-659a-e39253688363"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAAssembly.ctor(System.Int32,System.String,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.GSA.Geometry.GSANode,Objects.Structural.GSA.Geometry.GSANode,Objects.Structural.GSA.Geometry.GSANode,System.Double,System.Double,System.String,System.Int32,System.String,System.Collections.Generic.List`1[System.Double])","Objects.Structural.GSA.Geometry.GSAAssembly"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAConcreteSchemaComponent: CreateSchemaObjectBase { + static GSAConcreteSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAConcreteSchemaComponent(): base("GSAConcrete", "GSAConcrete", "Creates a Speckle structural concrete material for GSA", "Speckle 2 GSA", "Materials") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("a86c1d31-6807-f465-c51c-24d5d7a5a728"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Materials.GSAConcrete.ctor(System.Int32,System.String,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Boolean,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.String)","Objects.Structural.GSA.Materials.GSAConcrete"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAElement1DSchemaComponent: CreateSchemaObjectBase { + static GSAElement1DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAElement1DSchemaComponent(): base("GSAElement1D (from local axis)", "GSAElement1D (from local axis)", "Creates a Speckle structural 1D element for GSA (from local axis)", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("8b41c9e5-f24b-f0bc-7b62-169f839883ec"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAElement1D.ctor(System.Int32,Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Geometry.Plane)","Objects.Structural.GSA.Geometry.GSAElement1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAElement1D1SchemaComponent: CreateSchemaObjectBase { + static GSAElement1D1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAElement1D1SchemaComponent(): base("GSAElement1D (from orientation node and angle)", "GSAElement1D (from orientation node and angle)", "Creates a Speckle structural 1D element for GSA (from orientation node and angle)", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("d3ff71ed-34b8-6f9b-7ebc-50ff8195d1b2"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAElement1D.ctor(System.Int32,Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Structural.Geometry.Node,System.Double)","Objects.Structural.GSA.Geometry.GSAElement1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAElement2DSchemaComponent: CreateSchemaObjectBase { + static GSAElement2DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAElement2DSchemaComponent(): base("GSAElement2D", "GSAElement2D", "Creates a Speckle structural 2D element for GSA", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("9a1c5132-a785-c389-fe5f-441820f07446"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAElement2D.ctor(System.Int32,System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Properties.Property2D,Objects.Structural.Geometry.ElementType2D,System.String,System.Double,System.Double,System.Int32,System.String,System.Boolean)","Objects.Structural.GSA.Geometry.GSAElement2D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAElement3DSchemaComponent: CreateSchemaObjectBase { + static GSAElement3DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAElement3DSchemaComponent(): base("GSAElement3D", "GSAElement3D", "Creates a Speckle structural 3D element for GSA", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("3fb3f410-62f0-f972-de47-4e55d8aee0b6"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAElement3D.ctor(System.Int32,Objects.Geometry.Mesh,Objects.Structural.Properties.Property3D,Objects.Structural.Geometry.ElementType3D,System.String,System.Double,System.Int32,System.String,System.Boolean)","Objects.Structural.GSA.Geometry.GSAElement3D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAGeneralisedRestraintSchemaComponent: CreateSchemaObjectBase { + static GSAGeneralisedRestraintSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAGeneralisedRestraintSchemaComponent(): base("GSAGeneralisedRestraint", "GSAGeneralisedRestraint", "Creates a Speckle structural generalised restraint (a set of restraint conditions to be applied to a list of nodes) for GSA", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("e3b018a2-2196-d3aa-a66a-3248343143aa"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAGeneralisedRestraint.ctor(System.Int32,System.String,Objects.Structural.Geometry.Restraint,System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],System.Collections.Generic.List`1[Objects.Structural.GSA.Analysis.GSAStage])","Objects.Structural.GSA.Geometry.GSAGeneralisedRestraint"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAGridLineSchemaComponent: CreateSchemaObjectBase { + static GSAGridLineSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAGridLineSchemaComponent(): base("GSAGridLine", "GSAGridLine", "Creates a Speckle structural grid line for GSA", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("1fdfd333-8214-4f28-1835-7609247412ac"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAGridLine.ctor(System.Int32,System.String,Objects.ICurve)","Objects.Structural.GSA.Geometry.GSAGridLine"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAGridPlaneSchemaComponent: CreateSchemaObjectBase { + static GSAGridPlaneSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAGridPlaneSchemaComponent(): base("GSAGridPlane", "GSAGridPlane", "Creates a Speckle structural grid plane for GSA", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("f7db7fc7-c05e-c257-c11c-7d3a3e7ecdfc"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAGridPlane.ctor(System.Int32,System.String,Objects.Structural.Geometry.Axis,System.Double)","Objects.Structural.GSA.Geometry.GSAGridPlane"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAGridSurfaceSchemaComponent: CreateSchemaObjectBase { + static GSAGridSurfaceSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAGridSurfaceSchemaComponent(): base("GSAGridSurface", "GSAGridSurface", "Creates a Speckle structural grid surface for GSA", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("868d0f73-da31-e362-f5c5-c2e5a98f0f46"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAGridSurface.ctor(System.String,System.Int32,Objects.Structural.GSA.Geometry.GSAGridPlane,System.Double,System.Double,Objects.Structural.GSA.Geometry.LoadExpansion,Objects.Structural.GSA.Geometry.GridSurfaceSpanType,System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.Structural.GSA.Geometry.GSAGridSurface"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAInfluenceBeamSchemaComponent: CreateSchemaObjectBase { + static GSAInfluenceBeamSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAInfluenceBeamSchemaComponent(): base("GSAInfluenceBeam", "GSAInfluenceBeam", "Creates a Speckle structural beam influence effect for GSA (for an influence analysis)", "Speckle 2 GSA", "Bridge") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("8844e443-368c-0b7d-89d8-fc563aa7a56d"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Bridge.GSAInfluenceBeam.ctor(System.Int32,System.String,System.Double,Objects.Structural.GSA.Bridge.InfluenceType,Objects.Structural.Loading.LoadDirection,Objects.Structural.GSA.Geometry.GSAElement1D,System.Double)","Objects.Structural.GSA.Bridge.GSAInfluenceBeam"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAInfluenceNodeSchemaComponent: CreateSchemaObjectBase { + static GSAInfluenceNodeSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAInfluenceNodeSchemaComponent(): base("GSAInfluenceBeam", "GSAInfluenceBeam", "Creates a Speckle structural node influence effect for GSA (for an influence analysis)", "Speckle 2 GSA", "Bridge") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("61efde90-bb48-abf4-e69a-87376cab33bd"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Bridge.GSAInfluenceNode.ctor(System.Int32,System.String,System.Double,Objects.Structural.GSA.Bridge.InfluenceType,Objects.Structural.Loading.LoadDirection,Objects.Structural.Geometry.Node,Objects.Structural.Geometry.Axis)","Objects.Structural.GSA.Bridge.GSAInfluenceNode"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSALoadBeamSchemaComponent: CreateSchemaObjectBase { + static GSALoadBeamSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSALoadBeamSchemaComponent(): base("GSALoadBeam", "GSALoadBeam", "Creates a Speckle structural beam (1D elem/member) load for GSA", "Speckle 2 GSA", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("eb5a5098-d189-58ab-d032-60dfdd6e5495"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadBeam.ctor(System.Int32,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.BeamLoadType,Objects.Structural.Loading.LoadDirection,Objects.Structural.LoadAxisType,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean)","Objects.Structural.GSA.Loading.GSALoadBeam"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSALoadBeam1SchemaComponent: CreateSchemaObjectBase { + static GSALoadBeam1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSALoadBeam1SchemaComponent(): base("GSALoadBeam (user-defined axis)", "GSALoadBeam (user-defined axis)", "Creates a Speckle structural beam (1D elem/member) load (specified for a user-defined axis) for GSA", "Speckle 2 GSA", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("29927efe-6612-a3f7-a0c7-49ef97bea3ae"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadBeam.ctor(System.Int32,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.BeamLoadType,Objects.Structural.Loading.LoadDirection,Objects.Structural.Geometry.Axis,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean)","Objects.Structural.GSA.Loading.GSALoadBeam"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSALoadCaseSchemaComponent: CreateSchemaObjectBase { + static GSALoadCaseSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSALoadCaseSchemaComponent(): base("GSALoadCase", "GSALoadCase", "Creates a Speckle structural load case for GSA", "Speckle 2 GSA", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("3d862f90-6804-d75c-a0e2-8e90c9b190db"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadCase.ctor(System.Int32,System.String,Objects.Structural.Loading.LoadType,Objects.Structural.Loading.LoadDirection2D,System.String,Objects.Structural.Loading.ActionType,System.String,System.String,System.Boolean)","Objects.Structural.GSA.Loading.GSALoadCase"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSALoadCombinationSchemaComponent: CreateSchemaObjectBase { + static GSALoadCombinationSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSALoadCombinationSchemaComponent(): base("GSALoadCombination", "GSALoadCombination", "Creates a Speckle load combination for GSA", "Speckle 2 GSA", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("a79c8825-221a-d44f-5faa-b257f3f6c98e"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadCombination.ctor(System.Int32,System.String,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[System.Double])","Objects.Structural.GSA.Loading.GSALoadCombination"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSALoadFaceSchemaComponent: CreateSchemaObjectBase { + static GSALoadFaceSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSALoadFaceSchemaComponent(): base("GSALoadFace", "GSALoadFace", "Creates a Speckle structural face (2D elem/member) load for GSA", "Speckle 2 GSA", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("abc889bd-7235-5b08-9f91-124a4dd94c7a"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadFace.ctor(System.Int32,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.FaceLoadType,Objects.Structural.Loading.LoadDirection2D,Objects.Structural.LoadAxisType,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean)","Objects.Structural.GSA.Loading.GSALoadFace"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSALoadGravitySchemaComponent: CreateSchemaObjectBase { + static GSALoadGravitySchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSALoadGravitySchemaComponent(): base("GSALoadGravity", "GSALoadGravity", "Creates a Speckle structural gravity load (applied to all nodes and elements) for GSA", "Speckle 2 GSA", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("a49dd14b-f073-b628-f175-030c5cee8d3b"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadGravity.ctor(System.Int32,System.String,Objects.Structural.Loading.LoadCase,Objects.Geometry.Vector)","Objects.Structural.GSA.Loading.GSALoadGravity"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSALoadGravity1SchemaComponent: CreateSchemaObjectBase { + static GSALoadGravity1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSALoadGravity1SchemaComponent(): base("GSALoadGravity (specified elements)", "GSALoadGravity (specified elements)", "Creates a Speckle structural gravity load (applied to specified elements) for GSA", "Speckle 2 GSA", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("6b27dc40-c384-1058-d7ab-eaf6bcd19587"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadGravity.ctor(System.Int32,System.String,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Geometry.Vector)","Objects.Structural.GSA.Loading.GSALoadGravity"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSALoadGravity2SchemaComponent: CreateSchemaObjectBase { + static GSALoadGravity2SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSALoadGravity2SchemaComponent(): base("GSALoadGravity (specified elements and nodes)", "GSALoadGravity (specified elements and nodes)", "Creates a Speckle structural gravity load (applied to specified nodes and elements) for GSA", "Speckle 2 GSA", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("05096aa4-f73a-01d0-5613-1184349cb0ea"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadGravity.ctor(System.Int32,System.String,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Geometry.Vector,System.String)","Objects.Structural.GSA.Loading.GSALoadGravity"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSALoadNodeSchemaComponent: CreateSchemaObjectBase { + static GSALoadNodeSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSALoadNodeSchemaComponent(): base("GSALoadNode", "GSALoadNode", "Creates a Speckle node load for GSA", "Speckle 2 GSA", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("8a591a6c-207c-f42a-d2f4-596594a536a7"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadNode.ctor(System.Int32,System.String,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Objects.Structural.GSA.Geometry.GSANode],Objects.Structural.Loading.LoadDirection,System.Double)","Objects.Structural.GSA.Loading.GSALoadNode"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSALoadNode1SchemaComponent: CreateSchemaObjectBase { + static GSALoadNode1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSALoadNode1SchemaComponent(): base("GSALoadNode (user-defined axis)", "GSALoadNode (user-defined axis)", "Creates a Speckle node load (user-defined axis) for GSA", "Speckle 2 GSA", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("d641ad56-fa70-fd1f-7066-412a8e15970e"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSALoadNode.ctor(System.Int32,System.String,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Geometry.Axis,Objects.Structural.Loading.LoadDirection,System.Double)","Objects.Structural.GSA.Loading.GSALoadNode"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAMaterialSchemaComponent: CreateSchemaObjectBase { + static GSAMaterialSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAMaterialSchemaComponent(): base("GSAMaterial", "GSAMaterial", "Creates a Speckle structural material for GSA", "Speckle 2 GSA", "Materials") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("6e7d020a-4a4b-9f9a-f573-222476220b2c"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Materials.GSAMaterial.ctor(System.Int32,System.String,Objects.Structural.MaterialType,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.String)","Objects.Structural.GSA.Materials.GSAMaterial"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAMember1DSchemaComponent: CreateSchemaObjectBase { + static GSAMember1DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAMember1DSchemaComponent(): base("GSAMember1D (from local axis)", "GSAMember1D (from local axis)", "Creates a Speckle structural 1D member for GSA (from local axis)", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("e86d92aa-cefd-5a09-138d-a1cd1fe36e7d"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAMember1D.ctor(System.Int32,Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Geometry.Plane)","Objects.Structural.GSA.Geometry.GSAMember1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAMember1D1SchemaComponent: CreateSchemaObjectBase { + static GSAMember1D1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAMember1D1SchemaComponent(): base("GSAMember1D (from orientation node and angle)", "GSAMember1D (from orientation node and angle)", "Creates a Speckle structural 1D member for GSA (from orientation node and angle)", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("7c4f3597-5d45-eb1e-c7e9-c3a4dfb9a240"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAMember1D.ctor(System.Int32,Objects.Geometry.Line,Objects.Structural.Properties.Property1D,Objects.Structural.Geometry.ElementType1D,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Restraint,Objects.Geometry.Vector,Objects.Geometry.Vector,Objects.Structural.GSA.Geometry.GSANode,System.Double)","Objects.Structural.GSA.Geometry.GSAMember1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAMember2DSchemaComponent: CreateSchemaObjectBase { + static GSAMember2DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAMember2DSchemaComponent(): base("GSAMember2D", "GSAMember2D", "Creates a Speckle structural 2D member for GSA", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("3b367574-1c20-77d0-c4e8-46979f8a3f42"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAMember2D.ctor(System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Properties.Property2D,Objects.Structural.Geometry.ElementType2D,System.Collections.Generic.List`1[System.Collections.Generic.List`1[Objects.Structural.Geometry.Node]],System.Double,System.Double)","Objects.Structural.GSA.Geometry.GSAMember2D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSANodeSchemaComponent: CreateSchemaObjectBase { + static GSANodeSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSANodeSchemaComponent(): base("GSANode", "GSANode", "Creates a Speckle structural node for GSA", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("3b6c01e9-4d99-90a8-357e-def8c043faa0"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSANode.ctor(System.Int32,Objects.Geometry.Point,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Axis,Objects.Structural.Properties.PropertySpring,Objects.Structural.Properties.PropertyMass,Objects.Structural.Properties.PropertyDamper,System.Double,System.String)","Objects.Structural.GSA.Geometry.GSANode"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAPathSchemaComponent: CreateSchemaObjectBase { + static GSAPathSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAPathSchemaComponent(): base("GSAPath", "GSAPath", "Creates a Speckle structural path for GSA (a path defines traffic lines along a bridge relative to an alignments, for influence analysis)", "Speckle 2 GSA", "Bridge") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("f6c0f7f0-b742-f8ca-ebc4-0872bfd0517c"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Bridge.GSAPath.ctor(System.Int32,System.String,Objects.Structural.GSA.Bridge.PathType,System.Int32,Objects.Structural.GSA.Bridge.GSAAlignment,System.Double,System.Double,System.Double,System.Int32)","Objects.Structural.GSA.Bridge.GSAPath"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAPolylineSchemaComponent: CreateSchemaObjectBase { + static GSAPolylineSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAPolylineSchemaComponent(): base("GSAPolyline", "GSAPolyline", "Creates a Speckle structural polyline for GSA", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("e1e8bcb7-7a12-79be-d15f-c2a2bc9ad6df"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Loading.GSAPolyline.ctor(System.String,System.Int32,System.Collections.Generic.IEnumerable`1[System.Double],System.String,Objects.Structural.GSA.Geometry.GSAGridPlane)","Objects.Structural.GSA.Loading.GSAPolyline"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAProperty1DSchemaComponent: CreateSchemaObjectBase { + static GSAProperty1DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAProperty1DSchemaComponent(): base("GSAProperty1D", "GSAProperty1D", "Creates a Speckle structural 1D element property for GSA", "Speckle 2 GSA", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("347df789-96b7-21f2-fc2f-5bfd26dfbe6f"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Properties.GSAProperty1D.ctor(System.Int32,System.String,Objects.Structural.Materials.StructuralMaterial,Objects.Structural.Properties.Profiles.SectionProfile,System.Double,System.Double)","Objects.Structural.GSA.Properties.GSAProperty1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAProperty2DSchemaComponent: CreateSchemaObjectBase { + static GSAProperty2DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAProperty2DSchemaComponent(): base("GSAProperty2D", "GSAProperty2D", "Creates a Speckle structural 2D element property for GSA", "Speckle 2 GSA", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("562e2664-bdf3-8b98-6e09-cc6584cf2146"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Properties.GSAProperty2D.ctor(System.Int32,System.String,Objects.Structural.Materials.StructuralMaterial,System.Double)","Objects.Structural.GSA.Properties.GSAProperty2D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSARigidConstraintSchemaComponent: CreateSchemaObjectBase { + static GSARigidConstraintSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSARigidConstraintSchemaComponent(): base("GSARigidConstraint", "GSARigidConstraint", "Creates a Speckle structural rigid restraint (a set of nodes constrained to move as a rigid body) for GSA", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("fd5845ec-2b73-db4d-8c8f-01d9c7c7d0bb"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSARigidConstraint.ctor(System.String,System.Int32,Objects.Structural.Geometry.Node,System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Speckle.Core.Models.Base,System.Collections.Generic.List`1[Objects.Structural.GSA.Analysis.GSAStage],Objects.Structural.GSA.Geometry.LinkageType,System.Collections.Generic.Dictionary`2[Objects.Structural.GSA.Geometry.AxisDirection6,System.Collections.Generic.List`1[Objects.Structural.GSA.Geometry.AxisDirection6]])","Objects.Structural.GSA.Geometry.GSARigidConstraint"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAStageSchemaComponent: CreateSchemaObjectBase { + static GSAStageSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAStageSchemaComponent(): base("GSAStage", "GSAStage", "Creates a Speckle structural analysis stage for GSA", "Speckle 2 GSA", "Analysis") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("0f7bf991-1225-1cea-5543-7dea926b1089"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Analysis.GSAStage.ctor(System.Int32,System.String,System.String,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Double,System.Int32,System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.Structural.GSA.Analysis.GSAStage"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSASteelSchemaComponent: CreateSchemaObjectBase { + static GSASteelSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSASteelSchemaComponent(): base("Steel", "Steel", "Creates a Speckle structural material for steel (to be used in structural analysis models)", "Speckle 2 Structural", "Materials") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("073f9f26-2cfb-9f2d-fbcd-67ce9904872e"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Materials.GSASteel.ctor(System.Int32,System.String,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.String)","Objects.Structural.GSA.Materials.GSASteel"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAStoreySchemaComponent: CreateSchemaObjectBase { + static GSAStoreySchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAStoreySchemaComponent(): base("GSAStorey", "GSAStorey", "Creates a Speckle structural storey (to describe floor levels/storeys in the structural model) for GSA", "Speckle 2 GSA", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("24bd70e1-024d-538c-8132-d02c4c101e5d"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Geometry.GSAStorey.ctor(System.Int32,System.String,Objects.Structural.Geometry.Axis,System.Double,System.Double,System.Double)","Objects.Structural.GSA.Geometry.GSAStorey"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSATaskSchemaComponent: CreateSchemaObjectBase { + static GSATaskSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSATaskSchemaComponent(): base("GSAAnalysisTask", "GSAAnalysisTask", "Creates a Speckle structural analysis task for GSA", "Speckle 2 GSA", "Analysis") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("958d20e6-b44e-1dbc-4df3-6dee9b9e13bb"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Analysis.GSATask.ctor(System.Int32,System.String)","Objects.Structural.GSA.Analysis.GSATask"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class GSAUserVehicleSchemaComponent: CreateSchemaObjectBase { + static GSAUserVehicleSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public GSAUserVehicleSchemaComponent(): base("GSAUserVehicle", "GSAUserVehicle", "Creates a Speckle structural user-defined vehicle (as a pattern of loading based on axle and wheel positions, for influence analysis) for GSA", "Speckle 2 GSA", "Bridge") { } + + internal static string internalCategory { get; } = "Speckle 2 GSA"; + + internal static Guid internalGuid => new Guid("891ecc6d-cf2a-a476-d94c-f31b51eff020"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.GSA.Bridge.GSAUserVehicle.ctor(System.Int32,System.String,System.Double,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double])","Objects.Structural.GSA.Bridge.GSAUserVehicle"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ISectionSchemaComponent: CreateSchemaObjectBase { + static ISectionSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ISectionSchemaComponent(): base("ISection", "ISection", "Creates a Speckle structural I section profile", "Speckle 2 Structural", "Section Profile") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("321c4075-d631-8957-9daf-244e6374d73e"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.ISection.ctor(System.String,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.Profiles.ISection"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class LevelSchemaComponent: CreateSchemaObjectBase { + static LevelSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public LevelSchemaComponent(): base("Level", "Level", "Creates a Speckle level", "Speckle 2 BIM", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("04fca79a-ae5b-6ac4-581d-79438351a4e8"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Level.ctor(System.String,System.Double)","Objects.BuiltElements.Level"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class LoadBeamSchemaComponent: CreateSchemaObjectBase { + static LoadBeamSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public LoadBeamSchemaComponent(): base("Beam Load", "Beam Load", "Creates a Speckle structural beam (1D elem/member) load", "Speckle 2 Structural", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("5aa7c096-d596-e901-49cd-94df21f0f4c9"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadBeam.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.BeamLoadType,Objects.Structural.Loading.LoadDirection,Objects.Structural.LoadAxisType,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean,System.String)","Objects.Structural.Loading.LoadBeam"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class LoadBeam1SchemaComponent: CreateSchemaObjectBase { + static LoadBeam1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public LoadBeam1SchemaComponent(): base("Beam Load (user-defined axis)", "Beam Load (user-defined axis)", "Creates a Speckle structural beam (1D elem/member) load (specified using a user-defined axis)", "Speckle 2 Structural", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("a84bb64f-5fdc-13b4-bd37-99fa6ee8260a"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadBeam.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.BeamLoadType,Objects.Structural.Loading.LoadDirection,Objects.Structural.Geometry.Axis,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean,System.String)","Objects.Structural.Loading.LoadBeam"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class LoadCaseSchemaComponent: CreateSchemaObjectBase { + static LoadCaseSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public LoadCaseSchemaComponent(): base("Load Case", "Load Case", "Creates a Speckle structural load case", "Speckle 2 Structural", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("6436c6fd-e4e3-b78a-75f5-d967dc2550fc"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadCase.ctor(System.String,Objects.Structural.Loading.LoadType,System.String,Objects.Structural.Loading.ActionType,System.String)","Objects.Structural.Loading.LoadCase"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class LoadCombinationSchemaComponent: CreateSchemaObjectBase { + static LoadCombinationSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public LoadCombinationSchemaComponent(): base("Load Combination", "Load Combination", "Creates a Speckle load combination", "Speckle 2 Structural", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("fdbef7a9-adba-eeed-cb4f-9d9799e16da7"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadCombination.ctor(System.String,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[System.Double],Objects.Structural.Loading.CombinationType)","Objects.Structural.Loading.LoadCombination"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class LoadFaceSchemaComponent: CreateSchemaObjectBase { + static LoadFaceSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public LoadFaceSchemaComponent(): base("Face Load", "Face Load", "Creates a Speckle structural face (2D elem/member) load", "Speckle 2 Structural", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("9bc9c37f-a304-15dc-76ce-17fced07fa46"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadFace.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.FaceLoadType,Objects.Structural.Loading.LoadDirection2D,Objects.Structural.LoadAxisType,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean,System.String)","Objects.Structural.Loading.LoadFace"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class LoadFace1SchemaComponent: CreateSchemaObjectBase { + static LoadFace1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public LoadFace1SchemaComponent(): base("Face Load (user-defined axis)", "Face Load (user-defined axis)", "Creates a Speckle structural face (2D elem/member) load (specified using a user-defined axis)", "Speckle 2 Structural", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("ad3f7cf4-8c06-10ce-39a2-895ab8a9a475"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadFace.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Structural.Loading.FaceLoadType,Objects.Structural.Loading.LoadDirection2D,Objects.Structural.Geometry.Axis,System.Collections.Generic.List`1[System.Double],System.Collections.Generic.List`1[System.Double],System.Boolean,System.String)","Objects.Structural.Loading.LoadFace"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class LoadGravitySchemaComponent: CreateSchemaObjectBase { + static LoadGravitySchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public LoadGravitySchemaComponent(): base("Gravity Load (all elements)", "Gravity Load (all elements)", "Creates a Speckle structural gravity load (applied to all nodes and elements)", "Speckle 2 Structural", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("f29ce365-1d94-af6d-cf2d-455043fba7a4"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadGravity.ctor(Objects.Structural.Loading.LoadCase,Objects.Geometry.Vector,System.String)","Objects.Structural.Loading.LoadGravity"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class LoadGravity1SchemaComponent: CreateSchemaObjectBase { + static LoadGravity1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public LoadGravity1SchemaComponent(): base("Gravity Load (specified elements)", "Gravity Load (specified elements)", "Creates a Speckle structural gravity load (applied to specified elements)", "Speckle 2 Structural", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("a916973a-2052-a4b5-9184-2e76e0059e65"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadGravity.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Geometry.Vector,System.String)","Objects.Structural.Loading.LoadGravity"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class LoadGravity2SchemaComponent: CreateSchemaObjectBase { + static LoadGravity2SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public LoadGravity2SchemaComponent(): base("Gravity Load (specified elements and nodes)", "Gravity Load (specified elements and nodes)", "Creates a Speckle structural gravity load (applied to specified nodes and elements)", "Speckle 2 Structural", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("0a4e16ba-52e5-38d9-dce6-630e15528828"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadGravity.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base],Objects.Geometry.Vector,System.String)","Objects.Structural.Loading.LoadGravity"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class LoadNodeSchemaComponent: CreateSchemaObjectBase { + static LoadNodeSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public LoadNodeSchemaComponent(): base("Node Load", "Node Load", "Creates a Speckle node load", "Speckle 2 Structural", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("3d5a37ee-3ce8-8dc6-0efb-7c81bb9d4588"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadNode.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Loading.LoadDirection,System.Double,System.String)","Objects.Structural.Loading.LoadNode"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class LoadNode1SchemaComponent: CreateSchemaObjectBase { + static LoadNode1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public LoadNode1SchemaComponent(): base("Node Load (user-defined axis)", "Node Load (user-defined axis)", "Creates a Speckle node load (specifed using a user-defined axis)", "Speckle 2 Structural", "Loading") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("cbbfa332-f0f7-0470-a9f7-7a81813075ad"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Loading.LoadNode.ctor(Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[Objects.Structural.Geometry.Node],Objects.Structural.Geometry.Axis,Objects.Structural.Loading.LoadDirection,System.Double,System.String)","Objects.Structural.Loading.LoadNode"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class MaterialSchemaComponent: CreateSchemaObjectBase { + static MaterialSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public MaterialSchemaComponent(): base("RevitMaterial", "RevitMaterial", "Creates a Speckle material", "Speckle 2 BIM", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("a2ec94ca-c50c-01bf-3d12-0c8feb41004b"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Other.Material.ctor(System.String)","Objects.Other.Material"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class MaterialQuantitySchemaComponent: CreateSchemaObjectBase { + static MaterialQuantitySchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public MaterialQuantitySchemaComponent(): base("MaterialQuantity", "MaterialQuantity", "Creates the quantity of a material", "Speckle 2 BIM", "Objects.Other") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("c94a9777-99bb-d501-281a-c10300309038"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Other.MaterialQuantity.ctor(Objects.Other.Material,System.Double,System.Double,System.String)","Objects.Other.MaterialQuantity"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ModelSchemaComponent: CreateSchemaObjectBase { + static ModelSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ModelSchemaComponent(): base("Model", "Model", "Creates a Speckle structural model object", "Speckle 2 Structural", "Analysis") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("af7f27db-7897-fcad-1839-3b5213188ef8"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Analysis.Model.ctor(Objects.Structural.Analysis.ModelInfo,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.Structural.Analysis.Model"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ModelCurveSchemaComponent: CreateSchemaObjectBase { + static ModelCurveSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ModelCurveSchemaComponent(): base("ModelCurve", "ModelCurve", "Creates a Revit model curve", "Speckle 2 Revit", "Curves") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("7aa6e073-6783-8e7b-eec2-7b7bb0420db2"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.Curve.ModelCurve.ctor(Objects.ICurve,System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.Curve.ModelCurve"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ModelInfoSchemaComponent: CreateSchemaObjectBase { + static ModelInfoSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ModelInfoSchemaComponent(): base("ModelInfo", "ModelInfo", "Creates a Speckle object which describes basic model and project information for a structural model", "Speckle 2 Structural", "Analysis") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("f9da0acf-e2ee-8d25-662f-f5b9928ff8aa"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Analysis.ModelInfo.ctor(System.String,System.String,System.String,System.String,Objects.Structural.Analysis.ModelSettings,System.String,System.String)","Objects.Structural.Analysis.ModelInfo"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ModelSettingsSchemaComponent: CreateSchemaObjectBase { + static ModelSettingsSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ModelSettingsSchemaComponent(): base("ModelSettings", "ModelSettings", "Creates a Speckle object which describes design and analysis settings for the structural model", "Speckle 2 Structural", "Analysis") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("2f8c73cc-0692-3fd9-a825-7e0677164975"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Analysis.ModelSettings.ctor(Objects.Structural.Analysis.ModelUnits,System.String,System.String,System.Double)","Objects.Structural.Analysis.ModelSettings"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ModelUnitsSchemaComponent: CreateSchemaObjectBase { + static ModelUnitsSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ModelUnitsSchemaComponent(): base("ModelUnits", "ModelUnits", "Creates a Speckle object which specifies the units associated with the model", "Speckle 2 Structural", "Analysis") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("6c3340f9-3493-5e35-7272-e6acd0eefa85"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Analysis.ModelUnits.ctor(Objects.Structural.Analysis.UnitsType)","Objects.Structural.Analysis.ModelUnits"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ModelUnits1SchemaComponent: CreateSchemaObjectBase { + static ModelUnits1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ModelUnits1SchemaComponent(): base("ModelUnits (custom)", "ModelUnits (custom)", "Creates a Speckle object which specifies the units associated with the model", "Speckle 2 Structural", "Analysis") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("162c2a99-e4c9-314f-1833-f0e4a5c7451d"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Analysis.ModelUnits.ctor(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)","Objects.Structural.Analysis.ModelUnits"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class NodeSchemaComponent: CreateSchemaObjectBase { + static NodeSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public NodeSchemaComponent(): base("Node with properties", "Node with properties", "Creates a Speckle structural node with spring, mass and/or damper properties", "Speckle 2 Structural", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("dacc1582-c084-4685-981a-6f8f8d8663c8"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Node.ctor(Objects.Geometry.Point,System.String,Objects.Structural.Geometry.Restraint,Objects.Structural.Geometry.Axis,Objects.Structural.Properties.PropertySpring,Objects.Structural.Properties.PropertyMass,Objects.Structural.Properties.PropertyDamper)","Objects.Structural.Geometry.Node"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class OpeningSchemaComponent: CreateSchemaObjectBase { + static OpeningSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public OpeningSchemaComponent(): base("Arch Opening", "Arch Opening", "Creates a Speckle opening", "Speckle 2 BIM", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("087f847f-6f51-3cc9-5b7d-2cce478b46f4"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Opening.ctor(Objects.ICurve)","Objects.BuiltElements.Opening"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ParameterSchemaComponent: CreateSchemaObjectBase { + static ParameterSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ParameterSchemaComponent(): base("Parameter", "Parameter", "A Revit instance parameter to set on an element", "Speckle 2 Revit", "Families") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("706f3fe9-f499-b07f-b682-febedbe38c9c"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.Parameter.ctor(System.String,System.Object,System.String)","Objects.BuiltElements.Revit.Parameter"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ParameterUpdaterSchemaComponent: CreateSchemaObjectBase { + static ParameterUpdaterSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ParameterUpdaterSchemaComponent(): base("ParameterUpdater", "ParameterUpdater", "Updates parameters on a Revit element by id", "Speckle 2 Revit", "Families") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("c4f5fc69-58e1-59f6-4dac-e31b738f7254"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.ParameterUpdater.ctor(System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.ParameterUpdater"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class PerimeterSchemaComponent: CreateSchemaObjectBase { + static PerimeterSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public PerimeterSchemaComponent(): base("Perimeter", "Perimeter", "Creates a Speckle structural section profile defined by a perimeter curve and, if applicable, a list of void curves", "Speckle 2 Structural", "Section Profile") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("63b41dcc-8f2e-b900-be8a-82a661e56f19"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Perimeter.ctor(System.String,Objects.ICurve,System.Collections.Generic.List`1[Objects.ICurve])","Objects.Structural.Properties.Profiles.Perimeter"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class PipeSchemaComponent: CreateSchemaObjectBase { + static PipeSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public PipeSchemaComponent(): base("Pipe", "Pipe", "Creates a Speckle pipe", "Speckle 2 BIM", "MEP") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("6892cf99-6913-7004-27ab-2cfb8435a644"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Pipe.ctor(Objects.ICurve,System.Double,System.Double,System.Double,System.Double)","Objects.BuiltElements.Pipe"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class PropertySchemaComponent: CreateSchemaObjectBase { + static PropertySchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public PropertySchemaComponent(): base("Property", "Property", "Creates a Speckle structural property", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("8f7a7ef0-dbe1-4085-a1e8-f602612698a5"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property.ctor(System.String)","Objects.Structural.Properties.Property"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Property1DSchemaComponent: CreateSchemaObjectBase { + static Property1DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Property1DSchemaComponent(): base("Property1D (by name)", "Property1D (by name)", "Creates a Speckle structural 1D element property", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("fa29bbb6-ab8f-a235-67da-c10fe9daa077"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property1D.ctor(System.String)","Objects.Structural.Properties.Property1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Property1D1SchemaComponent: CreateSchemaObjectBase { + static Property1D1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Property1D1SchemaComponent(): base("Property1D", "Property1D", "Creates a Speckle structural 1D element property", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("301fb47d-9a12-ed72-4dbf-55d23ac5c432"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property1D.ctor(System.String,Objects.Structural.Materials.StructuralMaterial,Objects.Structural.Properties.Profiles.SectionProfile)","Objects.Structural.Properties.Property1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Property2DSchemaComponent: CreateSchemaObjectBase { + static Property2DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Property2DSchemaComponent(): base("Property2D (by name)", "Property2D (by name)", "Creates a Speckle structural 2D element property", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("b637985b-c4b8-0bbd-109b-7caf9fea829f"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property2D.ctor(System.String)","Objects.Structural.Properties.Property2D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Property2D1SchemaComponent: CreateSchemaObjectBase { + static Property2D1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Property2D1SchemaComponent(): base("Property2D", "Property2D", "Creates a Speckle structural 2D element property", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("a1f72576-5106-26da-625e-6c5dfe798b4f"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property2D.ctor(System.String,Objects.Structural.Materials.StructuralMaterial,Objects.Structural.PropertyType2D,System.Double)","Objects.Structural.Properties.Property2D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Property3DSchemaComponent: CreateSchemaObjectBase { + static Property3DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Property3DSchemaComponent(): base("Property3D (by name)", "Property3D (by name)", "Creates a Speckle structural 3D element property", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("a1644434-1c43-113c-786e-c1942f56d205"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property3D.ctor(System.String)","Objects.Structural.Properties.Property3D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Property3D1SchemaComponent: CreateSchemaObjectBase { + static Property3D1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Property3D1SchemaComponent(): base("Property3D", "Property3D", "Creates a Speckle structural 3D element property", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("5cc8c1d0-c3a7-0c95-f2b6-f8f7b4afdc95"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Property3D.ctor(System.String,Objects.Structural.PropertyType3D,Objects.Structural.Materials.StructuralMaterial)","Objects.Structural.Properties.Property3D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class PropertyDamperSchemaComponent: CreateSchemaObjectBase { + static PropertyDamperSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public PropertyDamperSchemaComponent(): base("PropertyDamper", "PropertyDamper", "Creates a Speckle structural damper property", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("3d966901-7bcc-b5d0-c5c9-060ae5a2caff"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertyDamper.ctor(System.String)","Objects.Structural.Properties.PropertyDamper"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class PropertyDamper1SchemaComponent: CreateSchemaObjectBase { + static PropertyDamper1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public PropertyDamper1SchemaComponent(): base("PropertyDamper (general)", "PropertyDamper (general)", "Creates a Speckle structural damper property (for 6 degrees of freedom)", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("10534d96-587f-e36f-3a97-db6b3fae6b53"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertyDamper.ctor(System.String,Objects.Structural.PropertyTypeDamper,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.PropertyDamper"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class PropertyMassSchemaComponent: CreateSchemaObjectBase { + static PropertyMassSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public PropertyMassSchemaComponent(): base("PropertyMass", "PropertyMass", "Creates a Speckle structural mass property", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("2ab5d65b-d4d7-85fa-01bf-2384c5ce5666"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertyMass.ctor(System.String)","Objects.Structural.Properties.PropertyMass"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class PropertyMass1SchemaComponent: CreateSchemaObjectBase { + static PropertyMass1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public PropertyMass1SchemaComponent(): base("PropertyMass (general)", "PropertyMass (general)", "Creates a Speckle structural mass property", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("66fb8c7a-804c-06d2-a6e0-5da60241dc48"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertyMass.ctor(System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Boolean,System.Double,System.Double,System.Double)","Objects.Structural.Properties.PropertyMass"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class PropertySpringSchemaComponent: CreateSchemaObjectBase { + static PropertySpringSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public PropertySpringSchemaComponent(): base("PropertySpring", "PropertySpring", "Creates a Speckle structural spring property", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("c83d3807-3ee9-9eb6-d6d3-ae472e5fce01"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertySpring.ctor(System.String)","Objects.Structural.Properties.PropertySpring"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class PropertySpring1SchemaComponent: CreateSchemaObjectBase { + static PropertySpring1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public PropertySpring1SchemaComponent(): base("PropertySpring (linear/elastic)", "PropertySpring (linear/elastic)", "Creates a Speckle structural spring property (linear/elastic spring)", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("03b67483-b251-b9f3-900a-e70c331314bb"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertySpring.ctor(System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.PropertySpring"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class PropertySpring2SchemaComponent: CreateSchemaObjectBase { + static PropertySpring2SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public PropertySpring2SchemaComponent(): base("PropertySpring (non-linear)", "PropertySpring (non-linear)", "Creates a Speckle structural spring property (non-linear spring)", "Speckle 2 Structural", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("761c5a65-bec6-b6fb-1df5-c49cc427631b"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.PropertySpring.ctor(System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.PropertySpring"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RectangularSchemaComponent: CreateSchemaObjectBase { + static RectangularSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RectangularSchemaComponent(): base("Rectangular", "Rectangular", "Creates a Speckle structural rectangular section profile", "Speckle 2 Structural", "Section Profile") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("2f4dce06-42d9-fe1e-5096-24debfd2fd4b"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Rectangular.ctor(System.String,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.Profiles.Rectangular"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RenderMaterialSchemaComponent: CreateSchemaObjectBase { + static RenderMaterialSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RenderMaterialSchemaComponent(): base("RenderMaterial", "RenderMaterial", "Creates a render material.", "Speckle 2 BIM", "Other") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("03a49484-4eba-6e08-5e96-b3b78ed13f70"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Other.RenderMaterial.ctor(System.Double,System.Double,System.Double,System.Nullable`1[System.Drawing.Color],System.Nullable`1[System.Drawing.Color])","Objects.Other.RenderMaterial"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RestraintSchemaComponent: CreateSchemaObjectBase { + static RestraintSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RestraintSchemaComponent(): base("Restraint (by code)", "Restraint (by code)", "Creates a Speckle restraint object", "Speckle 2 Structural", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("4a117edf-50f0-9c11-6a80-e9692f15771b"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Restraint.ctor(System.String)","Objects.Structural.Geometry.Restraint"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Restraint1SchemaComponent: CreateSchemaObjectBase { + static Restraint1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Restraint1SchemaComponent(): base("Restraint (by code and stiffness)", "Restraint (by code and stiffness)", "Creates a Speckle restraint object (to describe support conditions with an explicit stiffness)", "Speckle 2 Structural", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("a57df1f7-6fbd-4c84-a9d6-bd2d84f73811"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Restraint.ctor(System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Geometry.Restraint"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Restraint2SchemaComponent: CreateSchemaObjectBase { + static Restraint2SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Restraint2SchemaComponent(): base("Restraint (by enum)", "Restraint (by enum)", "Creates a Speckle restraint object (for pinned condition or fixed condition)", "Speckle 2 Structural", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("f85b9d32-e383-56a2-e6fa-1da0d28febe9"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Restraint.ctor(Objects.Structural.Geometry.RestraintType)","Objects.Structural.Geometry.Restraint"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Result1DSchemaComponent: CreateSchemaObjectBase { + static Result1DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Result1DSchemaComponent(): base("Result1D (load case)", "Result1D (load case)", "Creates a Speckle 1D element result object (for load case)", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("62b6e9c3-13b6-9dbd-b222-a0b6a978750e"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.Result1D.ctor(Objects.Structural.Geometry.Element1D,Objects.Structural.Loading.LoadCase,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.Result1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Result1D1SchemaComponent: CreateSchemaObjectBase { + static Result1D1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Result1D1SchemaComponent(): base("Result1D (load combination)", "Result1D (load combination)", "Creates a Speckle 1D element result object (for load combination)", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("1151871b-42cc-e3f5-5e08-454f9733ef08"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.Result1D.ctor(Objects.Structural.Geometry.Element1D,Objects.Structural.Loading.LoadCombination,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.Result1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Result2DSchemaComponent: CreateSchemaObjectBase { + static Result2DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Result2DSchemaComponent(): base("Result2D (load case)", "Result2D (load case)", "Creates a Speckle 2D element result object (for load case)", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("4d551fc5-fc7b-b2b8-5bba-63e48aeee645"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.Result2D.ctor(Objects.Structural.Geometry.Element2D,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[System.Double],System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.Result2D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Result2D1SchemaComponent: CreateSchemaObjectBase { + static Result2D1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Result2D1SchemaComponent(): base("Result2D (load combination)", "Result2D (load combination)", "Creates a Speckle 2D element result object (for load combination)", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("29194017-21da-96ee-56c4-273cc84ff951"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.Result2D.ctor(Objects.Structural.Geometry.Element2D,Objects.Structural.Loading.LoadCombination,System.Collections.Generic.List`1[System.Double],System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.Result2D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Result3DSchemaComponent: CreateSchemaObjectBase { + static Result3DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Result3DSchemaComponent(): base("Result3D (load case)", "Result3D (load case)", "Creates a Speckle 3D element result object (for load case)", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("3a15c6fa-36cd-1da9-e410-928a62b940a8"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.Result3D.ctor(Objects.Structural.Geometry.Element3D,Objects.Structural.Loading.LoadCase,System.Collections.Generic.List`1[System.Double],System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.Result3D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Result3D1SchemaComponent: CreateSchemaObjectBase { + static Result3D1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Result3D1SchemaComponent(): base("Result3D (load combination)", "Result3D (load combination)", "Creates a Speckle 3D element result object (for load combination)", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("1aa4dd1e-d845-7760-0e58-a3744255f0a1"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.Result3D.ctor(Objects.Structural.Geometry.Element3D,Objects.Structural.Loading.LoadCombination,System.Collections.Generic.List`1[System.Double],System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.Result3D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ResultGlobalSchemaComponent: CreateSchemaObjectBase { + static ResultGlobalSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ResultGlobalSchemaComponent(): base("ResultGlobal (load case)", "ResultGlobal (load case)", "Creates a Speckle global result object (for load case)", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("6e742681-a159-d811-8d7c-4ac42682872f"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultGlobal.ctor(Objects.Structural.Loading.LoadCase,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.ResultGlobal"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ResultGlobal1SchemaComponent: CreateSchemaObjectBase { + static ResultGlobal1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ResultGlobal1SchemaComponent(): base("ResultGlobal (load combination)", "ResultGlobal (load combination)", "Creates a Speckle global result object (for load combination)", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("cd0af8ae-e8d9-b1d9-fce1-63d137a8f69c"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultGlobal.ctor(Objects.Structural.Loading.LoadCombination,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.ResultGlobal"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ResultNodeSchemaComponent: CreateSchemaObjectBase { + static ResultNodeSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ResultNodeSchemaComponent(): base("ResultNode (load case)", "ResultNode (load case)", "Creates a Speckle structural nodal result object", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("5bf05a45-f397-00ae-0cf5-d89191042d21"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultNode.ctor(Objects.Structural.Loading.LoadCase,Objects.Structural.Geometry.Node,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.ResultNode"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ResultNode1SchemaComponent: CreateSchemaObjectBase { + static ResultNode1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ResultNode1SchemaComponent(): base("ResultNode (load combination)", "ResultNode (load combination)", "Creates a Speckle structural nodal result object", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("c219b902-4ffd-8d03-7de0-2264c8ad6030"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultNode.ctor(Objects.Structural.Loading.LoadCombination,Objects.Structural.Geometry.Node,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)","Objects.Structural.Results.ResultNode"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ResultSet1DSchemaComponent: CreateSchemaObjectBase { + static ResultSet1DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ResultSet1DSchemaComponent(): base("ResultSet1D", "ResultSet1D", "Creates a Speckle 1D element result set object", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("7928905d-5fad-53c8-8d44-0eec0c5478ba"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultSet1D.ctor(System.Collections.Generic.List`1[Objects.Structural.Results.Result1D])","Objects.Structural.Results.ResultSet1D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ResultSet2DSchemaComponent: CreateSchemaObjectBase { + static ResultSet2DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ResultSet2DSchemaComponent(): base("ResultSet2D", "ResultSet2D", "Creates a Speckle 2D element result set object", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("ff5bdc35-b72a-a0be-066f-5ad08fbb047d"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultSet2D.ctor(System.Collections.Generic.List`1[Objects.Structural.Results.Result2D])","Objects.Structural.Results.ResultSet2D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ResultSet3DSchemaComponent: CreateSchemaObjectBase { + static ResultSet3DSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ResultSet3DSchemaComponent(): base("ResultSet3D", "ResultSet3D", "Creates a Speckle 3D element result set object", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("7cde5263-7dd0-a1f7-535b-e9856769bc39"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultSet3D.ctor(System.Collections.Generic.List`1[Objects.Structural.Results.Result3D])","Objects.Structural.Results.ResultSet3D"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ResultSetAllSchemaComponent: CreateSchemaObjectBase { + static ResultSetAllSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ResultSetAllSchemaComponent(): base("ResultSetAll", "ResultSetAll", "Creates a Speckle result set object for 1d element, 2d element, 3d element global and nodal results", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("440aefda-79ff-55f5-4571-1a7ef57239e8"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultSetAll.ctor(Objects.Structural.Results.ResultSet1D,Objects.Structural.Results.ResultSet2D,Objects.Structural.Results.ResultSet3D,Objects.Structural.Results.ResultGlobal,Objects.Structural.Results.ResultSetNode)","Objects.Structural.Results.ResultSetAll"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class ResultSetNodeSchemaComponent: CreateSchemaObjectBase { + static ResultSetNodeSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ResultSetNodeSchemaComponent(): base("ResultSetNode", "ResultSetNode", "Creates a Speckle node result set object", "Speckle 2 Structural", "Results") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("07d3aa5f-55e8-f0c6-96da-d9599a8da233"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Results.ResultSetNode.ctor(System.Collections.Generic.List`1[Objects.Structural.Results.ResultNode])","Objects.Structural.Results.ResultSetNode"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitBeamSchemaComponent: CreateSchemaObjectBase { + static RevitBeamSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitBeamSchemaComponent(): base("RevitBeam", "RevitBeam", "Creates a Revit beam by curve and base level.", "Speckle 2 Revit", "Structure") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("6aba19f5-1b1c-8e0c-f063-2a7c91816b1c"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitBeam.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitBeam"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitBraceSchemaComponent: CreateSchemaObjectBase { + static RevitBraceSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitBraceSchemaComponent(): base("RevitBrace", "RevitBrace", "Creates a Revit brace by curve and base level.", "Speckle 2 Revit", "Structure") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("a3a689dc-2ca5-d5be-a225-99a144768e7e"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitBrace.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitBrace"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitCeilingSchemaComponent: CreateSchemaObjectBase { + static RevitCeilingSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitCeilingSchemaComponent(): base("RevitCeiling", "RevitCeiling", "Creates a Revit ceiling", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("93e6568e-0dc2-ebd2-64b0-e202eabe49cb"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitCeiling.ctor(Objects.ICurve,System.String,System.String,Objects.BuiltElements.Level,System.Double,Objects.Geometry.Line,System.Double,System.Collections.Generic.List`1[Objects.ICurve],System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.BuiltElements.Revit.RevitCeiling"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitColumnSchemaComponent: CreateSchemaObjectBase { + static RevitColumnSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitColumnSchemaComponent(): base("RevitColumn Vertical", "RevitColumn Vertical", "Creates a vertical Revit Column by point and levels.", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("c243fe91-0103-bea1-34b7-3e8b39c8d0ec"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitColumn.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,Objects.BuiltElements.Level,System.Double,System.Double,System.Boolean,System.Double,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitColumn"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitColumn1SchemaComponent: CreateSchemaObjectBase { + static RevitColumn1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitColumn1SchemaComponent(): base("RevitColumn Slanted (old)", "RevitColumn Slanted (old)", "Creates a slanted Revit Column by curve.", "Speckle 2 Revit", "Structure") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("bd9936e6-c75f-c0de-feb0-b801eff0e0ea"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override bool Obsolete => true; + public override GH_Exposure Exposure => GH_Exposure.hidden; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitColumn.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,System.Boolean,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitColumn"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitColumn2SchemaComponent: CreateSchemaObjectBase { + static RevitColumn2SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitColumn2SchemaComponent(): base("RevitColumn Slanted", "RevitColumn Slanted", "Creates a slanted Revit Column by curve.", "Speckle 2 Revit", "Structure") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("1600415c-b327-870c-7cd4-bb9c1b1a82fc"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitColumn.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,Objects.BuiltElements.Level,System.Boolean,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitColumn"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitDuctSchemaComponent: CreateSchemaObjectBase { + static RevitDuctSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitDuctSchemaComponent(): base("RevitDuct", "RevitDuct", "Creates a Revit duct", "Speckle 2 Revit", "MEP") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("d7781536-e8a9-8aef-1b27-571584f8c4a3"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override bool Obsolete => true; + public override GH_Exposure Exposure => GH_Exposure.hidden; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitDuct.ctor(System.String,System.String,Objects.Geometry.Line,System.String,System.String,Objects.BuiltElements.Level,System.Double,System.Double,System.Double,System.Double,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitDuct"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitDuct1SchemaComponent: CreateSchemaObjectBase { + static RevitDuct1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitDuct1SchemaComponent(): base("RevitDuct", "RevitDuct", "Creates a Revit duct", "Speckle 2 Revit", "MEP") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("7bb86598-9cd2-8d29-a1dc-7500c4b4ed4b"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitDuct.ctor(System.String,System.String,Objects.ICurve,System.String,System.String,Objects.BuiltElements.Level,System.Double,System.Double,System.Double,System.Double,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitDuct"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitExtrusionRoofSchemaComponent: CreateSchemaObjectBase { + static RevitExtrusionRoofSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitExtrusionRoofSchemaComponent(): base("RevitExtrusionRoof", "RevitExtrusionRoof", "Creates a Revit roof by extruding a curve", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("707428ab-15b4-e7ec-a2cd-21154ff50c1b"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitRoof.RevitExtrusionRoof.ctor(System.String,System.String,System.Double,System.Double,Objects.Geometry.Line,Objects.BuiltElements.Level,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitRoof.RevitExtrusionRoof"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitFaceWallSchemaComponent: CreateSchemaObjectBase { + static RevitFaceWallSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitFaceWallSchemaComponent(): base("RevitWall by face", "RevitWall by face", "Creates a Revit wall from a surface.", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("fc3927a7-0877-8137-a34e-ecd19a6f688c"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitFaceWall.ctor(System.String,System.String,Objects.Geometry.Brep,Objects.BuiltElements.Level,Objects.BuiltElements.Revit.LocationLine,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitFaceWall"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitFlexDuctSchemaComponent: CreateSchemaObjectBase { + static RevitFlexDuctSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitFlexDuctSchemaComponent(): base("RevitFlexDuct", "RevitFlexDuct", "Creates a Revit flex duct", "Speckle 2 Revit", "MEP") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("f350f9a2-06ca-6118-a4e6-88e721bb7f52"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitFlexDuct.ctor(System.String,System.String,Objects.ICurve,System.String,System.String,Objects.BuiltElements.Level,System.Double,System.Double,System.Double,Objects.Geometry.Vector,Objects.Geometry.Vector,System.Double,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitFlexDuct"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitFlexPipeSchemaComponent: CreateSchemaObjectBase { + static RevitFlexPipeSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitFlexPipeSchemaComponent(): base("RevitFlexPipe", "RevitFlexPipe", "Creates a Revit flex pipe", "Speckle 2 Revit", "MEP") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("219bfacc-9c41-441a-210c-c2cfb877929b"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitFlexPipe.ctor(System.String,System.String,Objects.ICurve,System.Double,Objects.BuiltElements.Level,Objects.Geometry.Vector,Objects.Geometry.Vector,System.String,System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitFlexPipe"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitFloorSchemaComponent: CreateSchemaObjectBase { + static RevitFloorSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitFloorSchemaComponent(): base("RevitFloor", "RevitFloor", "Creates a Revit floor by outline and level", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("e6f17d4f-6c28-0d0f-2370-7b9c09a14fff"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitFloor.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,System.Boolean,System.Double,Objects.Geometry.Line,System.Collections.Generic.List`1[Objects.ICurve],System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitFloor"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitFootprintRoofSchemaComponent: CreateSchemaObjectBase { + static RevitFootprintRoofSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitFootprintRoofSchemaComponent(): base("RevitFootprintRoof", "RevitFootprintRoof", "Creates a Revit roof by outline", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("b2f55d9f-7242-ee7e-c44a-24e34d5f6e3e"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitRoof.RevitFootprintRoof.ctor(Objects.ICurve,System.String,System.String,Objects.BuiltElements.Level,Objects.BuiltElements.Revit.RevitLevel,System.Double,System.Collections.Generic.List`1[Objects.ICurve],System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitRoof.RevitFootprintRoof"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitLevelSchemaComponent: CreateSchemaObjectBase { + static RevitLevelSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitLevelSchemaComponent(): base("RevitLevel", "RevitLevel", "Creates a new Revit level unless one with the same elevation already exists", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("5ef6e45c-00bd-f3b9-1cbf-6e9a902da7ab"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitLevel.ctor(System.String,System.Double,System.Boolean,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitLevel"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitLevel1SchemaComponent: CreateSchemaObjectBase { + static RevitLevel1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitLevel1SchemaComponent(): base("RevitLevel by name", "RevitLevel by name", "Gets an existing Revit level by name", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("e075a88e-7867-3726-3bb7-15b73b2d17e6"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitLevel.ctor(System.String)","Objects.BuiltElements.Revit.RevitLevel"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitMaterialSchemaComponent: CreateSchemaObjectBase { + static RevitMaterialSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitMaterialSchemaComponent(): base("RevitMaterial", "RevitMaterial", "Creates a Speckle material", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("c291d027-7a6a-8950-a2aa-77e134675750"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Other.Revit.RevitMaterial.ctor(System.String,System.String,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.Other.Revit.RevitMaterial"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitPipeSchemaComponent: CreateSchemaObjectBase { + static RevitPipeSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitPipeSchemaComponent(): base("RevitPipe", "RevitPipe", "Creates a Revit pipe", "Speckle 2 Revit", "MEP") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("19700cd2-6310-c8b3-7ad5-954033702e52"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitPipe.ctor(System.String,System.String,Objects.ICurve,System.Double,Objects.BuiltElements.Level,System.String,System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitPipe"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitProfileWallSchemaComponent: CreateSchemaObjectBase { + static RevitProfileWallSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitProfileWallSchemaComponent(): base("RevitWall by profile", "RevitWall by profile", "Creates a Revit wall from a profile.", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("b3962fc0-69b0-e766-22b4-b08404650c8a"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitProfileWall.ctor(System.String,System.String,Objects.Geometry.Polycurve,Objects.BuiltElements.Level,Objects.BuiltElements.Revit.LocationLine,System.Boolean,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitProfileWall"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitRailingSchemaComponent: CreateSchemaObjectBase { + static RevitRailingSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitRailingSchemaComponent(): base("Railing", "Railing", "Creates a Revit railing by base curve.", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("a6c3be7a-9e6b-663b-2bc0-dd9fa2ee6552"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitRailing.ctor(System.String,Objects.Geometry.Polycurve,Objects.BuiltElements.Level,System.Boolean)","Objects.BuiltElements.Revit.RevitRailing"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitShaftSchemaComponent: CreateSchemaObjectBase { + static RevitShaftSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitShaftSchemaComponent(): base("RevitShaft", "RevitShaft", "Creates a Revit shaft from a bottom and top level", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("00cdb2fd-ef75-107e-822c-3490cd359380"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitShaft.ctor(Objects.ICurve,Objects.BuiltElements.Level,Objects.BuiltElements.Level,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitShaft"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitTopographySchemaComponent: CreateSchemaObjectBase { + static RevitTopographySchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitTopographySchemaComponent(): base("RevitTopography", "RevitTopography", "Creates a Revit topography", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("f0840908-039e-b6d4-98de-8ed003dfd357"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitTopography.ctor(Objects.Geometry.Mesh,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitTopography"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitWallSchemaComponent: CreateSchemaObjectBase { + static RevitWallSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitWallSchemaComponent(): base("RevitWall by curve and levels", "RevitWall by curve and levels", "Creates a Revit wall with a top and base level.", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("fa1aef22-ddd5-01f4-887e-145ce21da247"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitWall.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,Objects.BuiltElements.Level,System.Double,System.Double,System.Boolean,System.Boolean,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitWall"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitWall1SchemaComponent: CreateSchemaObjectBase { + static RevitWall1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitWall1SchemaComponent(): base("RevitWall by curve and height", "RevitWall by curve and height", "Creates an unconnected Revit wall.", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("bd2a0bb1-14f7-cd0a-76c4-2429412a5128"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitWall.ctor(System.String,System.String,Objects.ICurve,Objects.BuiltElements.Level,System.Double,System.Double,System.Double,System.Boolean,System.Boolean,System.Collections.Generic.List`1[Speckle.Core.Models.Base],System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitWall"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitWallOpeningSchemaComponent: CreateSchemaObjectBase { + static RevitWallOpeningSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitWallOpeningSchemaComponent(): base("Revit Wall Opening (Deprecated)", "Revit Wall Opening (Deprecated)", "Creates a Speckle Wall opening for revit", "Speckle 2 BIM", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("a1bd278d-fab5-0034-7aba-807b66122022"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override bool Obsolete => true; + public override GH_Exposure Exposure => GH_Exposure.hidden; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitWallOpening.ctor(Objects.ICurve,Objects.BuiltElements.Revit.RevitWall)","Objects.BuiltElements.Revit.RevitWallOpening"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitWallOpening1SchemaComponent: CreateSchemaObjectBase { + static RevitWallOpening1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitWallOpening1SchemaComponent(): base("Revit Wall Opening", "Revit Wall Opening", "Creates a Speckle Wall opening for revit", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("541bfed0-738d-e1bd-1130-de05ec4bbf9e"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitWallOpening.ctor(Objects.Geometry.Polyline,Objects.BuiltElements.Revit.RevitWall)","Objects.BuiltElements.Revit.RevitWallOpening"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RevitWireSchemaComponent: CreateSchemaObjectBase { + static RevitWireSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RevitWireSchemaComponent(): base("RevitWire", "RevitWire", "Creates a Revit wire from points and level", "Speckle 2 Revit", "MEP") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("4045436b-0804-f0e1-a9f2-6217f4d8a45b"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.RevitWire.ctor(System.Collections.Generic.List`1[System.Double],System.String,System.String,Objects.BuiltElements.Level,System.String,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.RevitWire"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RibbedSlabSchemaComponent: CreateSchemaObjectBase { + static RibbedSlabSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RibbedSlabSchemaComponent(): base("RibbedSlab", "RibbedSlab", "Create an CSI Ribbed Slab", "Speckle 2 CSI", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("e5db5889-0924-136f-be6d-39c7de9a3649"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIProperty2D+RibbedSlab.ctor(System.String,Objects.Structural.CSI.Analysis.ShellType,Objects.Structural.Materials.StructuralMaterial,System.Double,System.Double,System.Double,System.Double,System.Double,System.Int32)","Objects.Structural.CSI.Properties.CSIProperty2D+RibbedSlab"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RoofSchemaComponent: CreateSchemaObjectBase { + static RoofSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RoofSchemaComponent(): base("Roof", "Roof", "Creates a Speckle roof", "Speckle 2 BIM", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("c10c6dcd-e6a8-be88-32f3-45c935d0bae9"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override bool Obsolete => true; + public override GH_Exposure Exposure => GH_Exposure.hidden; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Roof.ctor(Objects.ICurve,System.Collections.Generic.List`1[Objects.ICurve],System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.BuiltElements.Roof"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RoomSchemaComponent: CreateSchemaObjectBase { + static RoomSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RoomSchemaComponent(): base("Room", "Room", "Creates a Speckle room", "Speckle 2 BIM", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("c62087b7-2a9d-743d-336d-e8ea2ab72a29"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Room.ctor(System.String,System.String,Objects.BuiltElements.Level,Objects.Geometry.Point)","Objects.BuiltElements.Room"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Room1SchemaComponent: CreateSchemaObjectBase { + static Room1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Room1SchemaComponent(): base("RevitRoom", "RevitRoom", "Creates a Revit room with parameters", "Speckle 2 Revit", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("9be891e2-aaf6-1d4e-3d6b-bd7ba1a06563"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Room.ctor(System.String,System.String,Objects.BuiltElements.Level,Objects.Geometry.Point,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Room"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class RoomBoundaryLineSchemaComponent: CreateSchemaObjectBase { + static RoomBoundaryLineSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public RoomBoundaryLineSchemaComponent(): base("RoomBoundaryLine", "RoomBoundaryLine", "Creates a Revit room boundary line", "Speckle 2 Revit", "Curves") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("2edade8a-5139-09be-4273-551f3ac476e2"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.Curve.RoomBoundaryLine.ctor(Objects.ICurve,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.Curve.RoomBoundaryLine"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class SlabSchemaComponent: CreateSchemaObjectBase { + static SlabSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public SlabSchemaComponent(): base("Slab", "Slab", "Create an CSI Slab", "Speckle 2 CSI", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("27930f28-6811-7f66-f432-07dd5585f6e0"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIProperty2D+Slab.ctor(System.String,Objects.Structural.CSI.Analysis.ShellType,Objects.Structural.Materials.StructuralMaterial,System.Double)","Objects.Structural.CSI.Properties.CSIProperty2D+Slab"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class SpaceSchemaComponent: CreateSchemaObjectBase { + static SpaceSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public SpaceSchemaComponent(): base("Space", "Space", "Creates a Speckle space", "Speckle 2 BIM", "MEP") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("c6907933-2792-eb6d-7c64-fb54835e9b44"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Space.ctor(System.String,System.String,Objects.Geometry.Point,Objects.BuiltElements.Level)","Objects.BuiltElements.Space"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class Space1SchemaComponent: CreateSchemaObjectBase { + static Space1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public Space1SchemaComponent(): base("Space with top level and offset parameters", "Space with top level and offset parameters", "Creates a Speckle space with the specified top level and offsets", "Speckle 2 BIM", "MEP") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("8f7b0323-3533-e7cd-ae43-0bdeb34f3570"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Space.ctor(System.String,System.String,Objects.Geometry.Point,Objects.BuiltElements.Level,Objects.BuiltElements.Level,System.Double,System.Double)","Objects.BuiltElements.Space"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class SpaceSeparationLineSchemaComponent: CreateSchemaObjectBase { + static SpaceSeparationLineSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public SpaceSeparationLineSchemaComponent(): base("SpaceSeparationLine", "SpaceSeparationLine", "Creates a Revit space separation line", "Speckle 2 Revit", "Curves") { } + + internal static string internalCategory { get; } = "Speckle 2 Revit"; + + internal static Guid internalGuid => new Guid("0bba13ce-5758-8513-42fd-9e0b3702a654"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Revit.Curve.SpaceSeparationLine.ctor(Objects.ICurve,System.Collections.Generic.List`1[Objects.BuiltElements.Revit.Parameter])","Objects.BuiltElements.Revit.Curve.SpaceSeparationLine"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class SteelSchemaComponent: CreateSchemaObjectBase { + static SteelSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public SteelSchemaComponent(): base("Steel", "Steel", "Creates a Speckle structural material for steel (to be used in structural analysis models)", "Speckle 2 Structural", "Materials") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("6756df31-1e5c-0c80-2047-f4b6557c2e3f"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Materials.Steel.ctor(System.String,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Materials.Steel"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class StoreySchemaComponent: CreateSchemaObjectBase { + static StoreySchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public StoreySchemaComponent(): base("Storey", "Storey", "Creates a Speckle structural storey (to describe floor levels/storeys in the structural model)", "Speckle 2 Structural", "Geometry") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("a3985ed4-fff8-47c1-bb0e-d63699e263e9"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Geometry.Storey.ctor(System.String,System.Double)","Objects.Structural.Geometry.Storey"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class StructuralMaterialSchemaComponent: CreateSchemaObjectBase { + static StructuralMaterialSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public StructuralMaterialSchemaComponent(): base("Structural Material", "Structural Material", "Creates a Speckle structural material", "Speckle 2 Structural", "Materials") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("3e877a75-b3fb-0111-2128-1432ab15c4cf"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Materials.StructuralMaterial.ctor(System.String,Objects.Structural.MaterialType,System.String,System.String,System.String)","Objects.Structural.Materials.StructuralMaterial"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class StructuralMaterial1SchemaComponent: CreateSchemaObjectBase { + static StructuralMaterial1SchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public StructuralMaterial1SchemaComponent(): base("Structural Material (with properties)", "Structural Material (with properties)", "Creates a Speckle structural material with (isotropic) properties", "Speckle 2 Structural", "Materials") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("ef78155b-0786-9846-38cd-41ce70911972"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Materials.StructuralMaterial.ctor(System.String,Objects.Structural.MaterialType,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Materials.StructuralMaterial"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class TeeSchemaComponent: CreateSchemaObjectBase { + static TeeSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public TeeSchemaComponent(): base("Tee", "Tee", "Creates a Speckle structural Tee section profile", "Speckle 2 Structural", "Section Profile") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("7832cac3-92e9-9083-df97-0d4296b457c3"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Properties.Profiles.Tee.ctor(System.String,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Properties.Profiles.Tee"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class TeklaBeamSchemaComponent: CreateSchemaObjectBase { + static TeklaBeamSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public TeklaBeamSchemaComponent(): base("TeklaBeam", "TeklaBeam", "Creates a Tekla Structures beam by curve.", "Speckle 2 Tekla", "Structure") { } + + internal static string internalCategory { get; } = "Speckle 2 Tekla"; + + internal static Guid internalGuid => new Guid("5a4187bc-05d8-2447-7238-cdbc4b2fae45"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.TeklaStructures.TeklaBeam.ctor(Objects.ICurve,Objects.Structural.Properties.Profiles.SectionProfile,Objects.Structural.Materials.StructuralMaterial)","Objects.BuiltElements.TeklaStructures.TeklaBeam"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class TeklaContourPlateSchemaComponent: CreateSchemaObjectBase { + static TeklaContourPlateSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public TeklaContourPlateSchemaComponent(): base("ContourPlate", "ContourPlate", "Creates a TeklaStructures contour plate.", "Speckle 2 Tekla", "Structure") { } + + internal static string internalCategory { get; } = "Speckle 2 Tekla"; + + internal static Guid internalGuid => new Guid("3b092935-3c2f-c084-eea5-077630507a49"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.TeklaStructures.TeklaContourPlate.ctor(Objects.Structural.Properties.Profiles.SectionProfile,Objects.Geometry.Polyline,System.String,System.String,System.String,Objects.Structural.Materials.StructuralMaterial,Objects.BuiltElements.TeklaStructures.TeklaPosition,Speckle.Core.Models.Base)","Objects.BuiltElements.TeklaStructures.TeklaContourPlate"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class TimberSchemaComponent: CreateSchemaObjectBase { + static TimberSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public TimberSchemaComponent(): base("Timber", "Timber", "Creates a Speckle structural material for timber (to be used in structural analysis models)", "Speckle 2 Structural", "Materials") { } + + internal static string internalCategory { get; } = "Speckle 2 Structural"; + + internal static Guid internalGuid => new Guid("f11d278f-6a36-fd7c-409d-fb39f52c73f5"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.Materials.Timber.ctor(System.String,System.String,System.String,System.String,System.String,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.Materials.Timber"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class TopographySchemaComponent: CreateSchemaObjectBase { + static TopographySchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public TopographySchemaComponent(): base("Topography", "Topography", "Creates a Speckle topography", "Speckle 2 BIM", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("b9207a45-eebc-72d6-a411-f496443d8b7f"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Topography.ctor(Objects.Geometry.Mesh)","Objects.BuiltElements.Topography"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class WaffleSlabSchemaComponent: CreateSchemaObjectBase { + static WaffleSlabSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public WaffleSlabSchemaComponent(): base("WaffleSlab", "WaffleSlab", "Create an CSI Waffle Slab", "Speckle 2 CSI", "Properties") { } + + internal static string internalCategory { get; } = "Speckle 2 CSI"; + + internal static Guid internalGuid => new Guid("b8956ee0-8372-db59-654a-c11c4af5e0f6"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.Structural.CSI.Properties.CSIProperty2D+WaffleSlab.ctor(System.String,Objects.Structural.CSI.Analysis.ShellType,Objects.Structural.Materials.StructuralMaterial,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)","Objects.Structural.CSI.Properties.CSIProperty2D+WaffleSlab"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class WallSchemaComponent: CreateSchemaObjectBase { + static WallSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public WallSchemaComponent(): base("Wall", "Wall", "Creates a Speckle wall", "Speckle 2 BIM", "Architecture") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("6878cc65-2628-d00d-e8c0-b130e828a6c7"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Wall.ctor(System.Double,Objects.ICurve,System.Collections.Generic.List`1[Speckle.Core.Models.Base])","Objects.BuiltElements.Wall"); + base.AddedToDocument(document); + } +} + +// This is generated code: +public class WireSchemaComponent: CreateSchemaObjectBase { + static WireSchemaComponent() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public WireSchemaComponent(): base("Wire", "Wire", "Creates a Speckle wire from curve segments and points", "Speckle 2 BIM", "MEP") { } + + internal static string internalCategory { get; } = "Speckle 2 BIM"; + + internal static Guid internalGuid => new Guid("c10c9c87-b93d-4e98-d2fb-942d182008dc"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; + public override GH_Exposure Exposure => internalExposure; + + public override void AddedToDocument(GH_Document document){ + SelectedConstructor = CSOUtils.FindConstructor("Objects.BuiltElements.Wire.ctor(System.Collections.Generic.List`1[Objects.ICurve])","Objects.BuiltElements.Wire"); + base.AddedToDocument(document); + } +} + + +} diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/SchemaBuilderGen.tt b/ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/SchemaBuilderGen.tt similarity index 75% rename from ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/SchemaBuilderGen.tt rename to ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/SchemaBuilderGen.tt index 9fa3b600d3..26b3dff7ad 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/SchemaBuilder/SchemaBuilderGen.tt +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/SchemaBuilder/SchemaBuilderGen.tt @@ -24,6 +24,7 @@ #> using System; +using System.Linq; using Grasshopper.Kernel; using ConnectorGrasshopperUtils; @@ -52,15 +53,35 @@ namespace ConnectorGrasshopper { #> // This is generated code: public class <#= compName #>: CreateSchemaObjectBase { - + static <#= compName #>() { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (!args.Key.StartsWith("Speckle2:tabs.")) return; + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } public <#= compName #>(): base("<#= name #>", "<#= name #>", "<#= description #>", "<#= cat #>", "<#= subcat #>") { } - public override Guid ComponentGuid => new Guid("<#= ToGuid("secretPhraseToKeepItRandom..." + compName) #>"); + internal static string internalCategory { get; } = "<#= cat #>"; + + internal static Guid internalGuid => new Guid("<#= ToGuid("secretPhraseToKeepItRandom..." + compName) #>"); + + internal static GH_Exposure internalExposure => SpeckleGHSettings.GetTabVisibility(internalCategory) + ? GH_Exposure.tertiary + : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; <# if (depr != null){ #> public override bool Obsolete => true; public override GH_Exposure Exposure => GH_Exposure.hidden; +<# + } else { +#> + public override GH_Exposure Exposure => internalExposure; <# } #> diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/SpeckleGHSettings.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/SpeckleGHSettings.cs similarity index 54% rename from ConnectorGrasshopper/ConnectorGrasshopper/SpeckleGHSettings.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/SpeckleGHSettings.cs index 5c3d22865f..ebd2a16ef0 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/SpeckleGHSettings.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/SpeckleGHSettings.cs @@ -1,13 +1,21 @@ using System; +using System.Reflection; +using Grasshopper.GUI; +using Grasshopper.GUI.Ribbon; namespace ConnectorGrasshopper { public static class SpeckleGHSettings { - private const string SELECTED_KIT_NAME = "Speckle2:kit.default.name"; - private const string MESH_SETTINGS = "Speckle2:kit.meshing.settings"; - private const string USE_SCHEMA_TAG_STRATEGY = "Speckle2:conversion.schema.tag"; - private const string SHOW_DEV_COMPONENTS = "Speckle2:dev.components.show"; + public const string SELECTED_KIT_NAME = "Speckle2:kit.default.name"; + public const string MESH_SETTINGS = "Speckle2:kit.meshing.settings"; + public const string USE_SCHEMA_TAG_STRATEGY = "Speckle2:conversion.schema.tag"; + public const string SHOW_DEV_COMPONENTS = "Speckle2:dev.components.show"; + public const string HEADLESS_TEMPLATE_FILENAME = "Speckle2:headless.template.name"; + + public static event EventHandler SettingsChanged; + public static event EventHandler OnMeshSettingsChanged; + /// /// Gets or sets the default selected kit name to be used in this Grasshopper instance. /// @@ -18,9 +26,10 @@ public static string SelectedKitName { Grasshopper.Instances.Settings.SetValue(SELECTED_KIT_NAME, value); Grasshopper.Instances.Settings.WritePersistentSettings(); + OnSettingsChanged(SELECTED_KIT_NAME); } } - public static event EventHandler OnMeshSettingsChanged; + public static SpeckleMeshSettings MeshSettings { get => (SpeckleMeshSettings)Grasshopper.Instances.Settings.GetValue(MESH_SETTINGS, (int)SpeckleMeshSettings.Default); @@ -29,8 +38,10 @@ public static SpeckleMeshSettings MeshSettings Grasshopper.Instances.Settings.SetValue(MESH_SETTINGS, (int)value); Grasshopper.Instances.Settings.WritePersistentSettings(); OnMeshSettingsChanged?.Invoke(null, EventArgs.Empty); + OnSettingsChanged(MESH_SETTINGS); } } + /// /// Gets or sets the output type of the Schema builder nodes: /// If true: Output will be the `main geometry` with the schema attached as a property. @@ -44,9 +55,11 @@ public static bool UseSchemaTag { Grasshopper.Instances.Settings.SetValue(USE_SCHEMA_TAG_STRATEGY, value); Grasshopper.Instances.Settings.WritePersistentSettings(); + OnSettingsChanged(USE_SCHEMA_TAG_STRATEGY); } } - + + public static bool ShowDevComponents { get => Grasshopper.Instances.Settings.GetValue(SHOW_DEV_COMPONENTS, false); @@ -54,6 +67,19 @@ public static bool ShowDevComponents { Grasshopper.Instances.Settings.SetValue(SHOW_DEV_COMPONENTS, value); Grasshopper.Instances.Settings.WritePersistentSettings(); + OnSettingsChanged(SHOW_DEV_COMPONENTS); + PopulateRibbon(); + } + } + + public static string HeadlessTemplateFilename + { + get => Grasshopper.Instances.Settings.GetValue(HEADLESS_TEMPLATE_FILENAME, "headless.3dm"); + set + { + Grasshopper.Instances.Settings.SetValue(HEADLESS_TEMPLATE_FILENAME, value); + Grasshopper.Instances.Settings.WritePersistentSettings(); + OnSettingsChanged(HEADLESS_TEMPLATE_FILENAME); } } @@ -65,8 +91,34 @@ public static bool GetTabVisibility(string name) public static void SetTabVisibility(string name, bool value) { - Grasshopper.Instances.Settings.SetValue($"Speckle2:tabs.{name}", value); + var key = $"Speckle2:tabs.{name}"; + Grasshopper.Instances.Settings.SetValue(key, value); Grasshopper.Instances.Settings.WritePersistentSettings(); + OnSettingsChanged(key); + PopulateRibbon(); + } + + private static void OnSettingsChanged(string key) + { + SettingsChanged?.Invoke(null, new SettingsChangedEventArgs(key)); + } + + private static void PopulateRibbon() + { + var ribbon = typeof(GH_DocumentEditor) + .GetProperty("Ribbon", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) + ?.GetValue(Grasshopper.Instances.DocumentEditor) as GH_Ribbon; + ribbon?.PopulateRibbon(); + } + } + + public class SettingsChangedEventArgs : EventArgs + { + public string Key; + + public SettingsChangedEventArgs(string key) + { + Key = key; } } diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Streams/StreamCreateComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Streams/StreamCreateComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Streams/StreamCreateComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Streams/StreamCreateComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Streams/StreamDetailsComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Streams/StreamDetailsComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Streams/StreamDetailsComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Streams/StreamDetailsComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Streams/StreamGetComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Streams/StreamGetComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Streams/StreamGetComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Streams/StreamGetComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Streams/StreamListComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Streams/StreamListComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Streams/StreamListComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Streams/StreamListComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Streams/StreamUpdateComponent.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Streams/StreamUpdateComponent.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/Streams/StreamUpdateComponent.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Streams/StreamUpdateComponent.cs diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Transports/SendReceiveTransport.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Transports/SendReceiveTransport.cs similarity index 66% rename from ConnectorGrasshopper/ConnectorGrasshopper/Transports/SendReceiveTransport.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Transports/SendReceiveTransport.cs index 536423fd9b..2b5b7aaff3 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Transports/SendReceiveTransport.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Transports/SendReceiveTransport.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Drawing; +using System.Linq; using System.Threading.Tasks; using ConnectorGrasshopper.Extras; using Grasshopper.Kernel; @@ -13,13 +14,32 @@ namespace ConnectorGrasshopper.Transports { public class SendReceiveTransport : GH_SpeckleComponent { - public override Guid ComponentGuid { get => new Guid("4229B8DC-9F81-49A3-9EF9-DF3DE0B8E4B6"); } + internal static Guid internalGuid => new Guid("4229B8DC-9F81-49A3-9EF9-DF3DE0B8E4B6"); + internal static GH_Exposure internalExposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.primary : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; protected override Bitmap Icon => Properties.Resources.sendToTransport; - public override GH_Exposure Exposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.primary : GH_Exposure.hidden; + public override GH_Exposure Exposure => internalExposure; - public SendReceiveTransport() : base("Send To Transports", "ST", "Sends an object to a list of given transports: the object will be stored in each of them. Please use this component with caution: it can freeze your defintion. It also does not perform any conversions, so ensure that the object input already has converted speckle objects inside.", ComponentCategories.SECONDARY_RIBBON, ComponentCategories.TRANSPORTS) { } + static SendReceiveTransport() + { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (args.Key != SpeckleGHSettings.SHOW_DEV_COMPONENTS) return; + + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + + public SendReceiveTransport() : base("Send To Transports", "ST", + "Sends an object to a list of given transports: the object will be stored in each of them. Please use this component with caution: it can freeze your defintion. It also does not perform any conversions, so ensure that the object input already has converted speckle objects inside.", + ComponentCategories.SECONDARY_RIBBON, ComponentCategories.TRANSPORTS) + { + } protected override void RegisterInputParams(GH_InputParamManager pManager) { @@ -69,13 +89,31 @@ protected override void SolveInstance(IGH_DataAccess DA) public class ReceiveFromTransport : GH_SpeckleComponent { - public override Guid ComponentGuid { get => new Guid("8C7C6CA5-1557-4216-810B-F64E710526D0"); } + internal static Guid internalGuid => new Guid("8C7C6CA5-1557-4216-810B-F64E710526D0"); + internal static GH_Exposure internalExposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.primary : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; protected override Bitmap Icon => Properties.Resources.receiveFromTransport; - public override GH_Exposure Exposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.primary : GH_Exposure.hidden; + public override GH_Exposure Exposure => internalExposure; - public ReceiveFromTransport() : base("Receive From Transports", "RT", "Receives a list of objects from a given transport. Please use this component with caution: it can freeze your defintion. It also does not perform any conversions on the output.", ComponentCategories.SECONDARY_RIBBON, ComponentCategories.TRANSPORTS) { } + static ReceiveFromTransport() + { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (args.Key != SpeckleGHSettings.SHOW_DEV_COMPONENTS) return; + + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public ReceiveFromTransport() : base("Receive From Transports", "RT", + "Receives a list of objects from a given transport. Please use this component with caution: it can freeze your defintion. It also does not perform any conversions on the output.", + ComponentCategories.SECONDARY_RIBBON, ComponentCategories.TRANSPORTS) + { + } protected override void RegisterInputParams(GH_InputParamManager pManager) { diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Transports/Transports.Disk.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Transports/Transports.Disk.cs similarity index 55% rename from ConnectorGrasshopper/ConnectorGrasshopper/Transports/Transports.Disk.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Transports/Transports.Disk.cs index 1e6e0bb792..d8c8294cf4 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Transports/Transports.Disk.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Transports/Transports.Disk.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Drawing; +using System.Linq; using Grasshopper.Kernel; using Logging = Speckle.Core.Logging; @@ -8,13 +9,32 @@ namespace ConnectorGrasshopper.Transports { public class DiskTransportComponent : GH_SpeckleComponent { - public override Guid ComponentGuid { get => new Guid("BA068B11-2BC0-4669-BC73-09CF16820659"); } + internal static Guid internalGuid => new Guid("BA068B11-2BC0-4669-BC73-09CF16820659"); + internal static GH_Exposure internalExposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.secondary : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; protected override Bitmap Icon => Properties.Resources.DiskTransport; - public override GH_Exposure Exposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.secondary : GH_Exposure.hidden; + public override GH_Exposure Exposure => internalExposure; - public DiskTransportComponent() : base("Disk Transport", "Disk", "Creates a Disk Transport. This transport will store objects in files in a folder that you can specify (including one on a network drive!). It's useful for understanding how Speckle's decomposition api works. It's not meant to be performant - it's useful for debugging purposes - e.g., when developing a new class/object model you can understand easily the relative sizes of the resulting objects.", ComponentCategories.SECONDARY_RIBBON, ComponentCategories.TRANSPORTS) { } + static DiskTransportComponent() + { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (args.Key != SpeckleGHSettings.SHOW_DEV_COMPONENTS) return; + + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + + public DiskTransportComponent() : base("Disk Transport", "Disk", + "Creates a Disk Transport. This transport will store objects in files in a folder that you can specify (including one on a network drive!). It's useful for understanding how Speckle's decomposition api works. It's not meant to be performant - it's useful for debugging purposes - e.g., when developing a new class/object model you can understand easily the relative sizes of the resulting objects.", + ComponentCategories.SECONDARY_RIBBON, ComponentCategories.TRANSPORTS) + { + } protected override void RegisterInputParams(GH_InputParamManager pManager) { diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Transports/Transports.Memory.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Transports/Transports.Memory.cs similarity index 60% rename from ConnectorGrasshopper/ConnectorGrasshopper/Transports/Transports.Memory.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Transports/Transports.Memory.cs index 7866e42e80..b76d170065 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Transports/Transports.Memory.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Transports/Transports.Memory.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Drawing; +using System.Linq; using Grasshopper.Kernel; using Speckle.Core.Transports; using Logging = Speckle.Core.Logging; @@ -9,13 +10,31 @@ namespace ConnectorGrasshopper.Transports { public class MemoryTransportComponent : GH_SpeckleComponent { - public override Guid ComponentGuid { get => new Guid("B3E7A1E0-FB96-45AE-9F47-54D1B495AAC9"); } + internal static Guid internalGuid => new Guid("B3E7A1E0-FB96-45AE-9F47-54D1B495AAC9"); + internal static GH_Exposure internalExposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.secondary : GH_Exposure.hidden; + + public override Guid ComponentGuid => internalGuid; protected override Bitmap Icon => Properties.Resources.MemoryTransport; - public override GH_Exposure Exposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.secondary : GH_Exposure.hidden; + public override GH_Exposure Exposure => internalExposure; - public MemoryTransportComponent() : base("Memory Transport", "Memory", "Creates a Memory Transport. This is useful for debugging, or just sending data around one grasshopper defintion. We don't recommend you use it!", ComponentCategories.SECONDARY_RIBBON, ComponentCategories.TRANSPORTS) { } + static MemoryTransportComponent() + { + SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (args.Key != SpeckleGHSettings.SHOW_DEV_COMPONENTS) return; + + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == internalGuid); + if (proxy == null) return; + proxy.Exposure = internalExposure; + }; + } + public MemoryTransportComponent() : base("Memory Transport", "Memory", + "Creates a Memory Transport. This is useful for debugging, or just sending data around one grasshopper defintion. We don't recommend you use it!", + ComponentCategories.SECONDARY_RIBBON, ComponentCategories.TRANSPORTS) + { + } protected override void RegisterInputParams(GH_InputParamManager pManager) { diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/Transports/Transports.Sqlite.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/Transports/Transports.Sqlite.cs similarity index 77% rename from ConnectorGrasshopper/ConnectorGrasshopper/Transports/Transports.Sqlite.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/Transports/Transports.Sqlite.cs index 10ad68993d..797f14e225 100644 --- a/ConnectorGrasshopper/ConnectorGrasshopper/Transports/Transports.Sqlite.cs +++ b/ConnectorGrasshopper/ConnectorGrasshopperShared/Transports/Transports.Sqlite.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Drawing; using System.IO; +using System.Linq; using Grasshopper.Kernel; using Speckle.Core.Api; using Speckle.Core.Transports; @@ -11,13 +12,26 @@ namespace ConnectorGrasshopper.Transports { public class SqliteTransportComponent : GH_SpeckleComponent { - public override Guid ComponentGuid { get => new Guid("DFFAF45E-06A8-4458-85D8-74FDA8DF3268"); } + internal static Guid internalGuid => new Guid("DFFAF45E-06A8-4458-85D8-74FDA8DF3268"); + internal static GH_Exposure internalExposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.primary : GH_Exposure.hidden; + + public override Guid ComponentGuid + { + get => internalGuid; + } protected override Bitmap Icon => Properties.Resources.SQLiteTransport; public override GH_Exposure Exposure => SpeckleGHSettings.ShowDevComponents ? GH_Exposure.secondary : GH_Exposure.hidden; - public SqliteTransportComponent() : base("Sqlite Transport", "Sqlite", "Creates a Sqlite Transport. This transport will store its objects in a sqlite database at the location you will specify (including a network drive!).", ComponentCategories.SECONDARY_RIBBON, ComponentCategories.TRANSPORTS) { } + public SqliteTransportComponent() : base("Sqlite Transport", "Sqlite", "Creates a Sqlite Transport. This transport will store its objects in a sqlite database at the location you will specify (including a network drive!).", ComponentCategories.SECONDARY_RIBBON, ComponentCategories.TRANSPORTS) { SpeckleGHSettings.SettingsChanged += (_, args) => + { + if (args.Key != SpeckleGHSettings.SHOW_DEV_COMPONENTS) return; + + var proxy = Grasshopper.Instances.ComponentServer.ObjectProxies.FirstOrDefault(p => p.Guid == ComponentGuid); + if (proxy == null) return; + proxy.Exposure = Exposure; + };} protected override void RegisterInputParams(GH_InputParamManager pManager) { diff --git a/ConnectorGrasshopper/ConnectorGrasshopper/UpgradeUtilities.cs b/ConnectorGrasshopper/ConnectorGrasshopperShared/UpgradeUtilities.cs similarity index 100% rename from ConnectorGrasshopper/ConnectorGrasshopper/UpgradeUtilities.cs rename to ConnectorGrasshopper/ConnectorGrasshopperShared/UpgradeUtilities.cs diff --git a/ConnectorRevit/ConnectorRevit.sln b/ConnectorRevit/ConnectorRevit.sln index effc6b5c40..b755788343 100644 --- a/ConnectorRevit/ConnectorRevit.sln +++ b/ConnectorRevit/ConnectorRevit.sln @@ -3,8 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.1.32210.238 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesktopUI", "..\DesktopUI\DesktopUI\DesktopUI.csproj", "{A97C3046-2D55-4C49-AB40-A3C2194B82FA}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core", "..\Core\Core\Core.csproj", "{521D4AEE-08CF-4913-BBE8-5511D176D126}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Objects", "..\Objects\Objects\Objects.csproj", "{BE852BE3-37B8-4B62-AC2C-0872C41A2542}" @@ -15,8 +13,6 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConverterRevitShared", "..\ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConverterRevit", "ConverterRevit", "{0FED0483-A54F-44EE-88FB-2FA6BAD13891}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2019", "..\Objects\Converters\ConverterRevit\ConverterRevit2019\ConverterRevit2019.csproj", "{DF6B36CF-38E7-4EE1-A319-0E6842A87B05}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2020", "..\Objects\Converters\ConverterRevit\ConverterRevit2020\ConverterRevit2020.csproj", "{240EAD7E-EF10-482A-B299-3B85B64B032F}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterRevit2021", "..\Objects\Converters\ConverterRevit\ConverterRevit2021\ConverterRevit2021.csproj", "{CFBD9A83-5AA2-4849-8735-28D4F73F4F56}" @@ -27,8 +23,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorRevit2021", "Conne EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorRevit2020", "ConnectorRevit2020\ConnectorRevit2020.csproj", "{8A53B084-20D8-48F6-9591-9D53CFA74130}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorRevit2019", "ConnectorRevit2019\ConnectorRevit2019.csproj", "{EF418256-8118-47B4-8386-A945946FB92D}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RevitVersionProjects", "RevitVersionProjects", "{89C98BAA-C2BC-4EAF-AB97-C513A5A2372D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConverterRevitTests", "..\Objects\Converters\ConverterRevit\ConverterRevitTests\ConverterRevitTests.csproj", "{D9C88135-B4B3-4C6C-A9D9-01A59A00BC0C}" @@ -47,7 +41,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorRevit2023", "Conne EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaHwndHost", "..\DesktopUI2\AvaloniaHwndHost\AvaloniaHwndHost.csproj", "{D8576AEE-6EF4-4BD7-B024-864653EC41E5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConverterDxf", "..\Objects\Converters\ConverterDxf\ConverterDxf\ConverterDxf.csproj", "{64A2BFC9-8711-4C9D-A1B4-BEE678C8E640}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterDxf", "..\Objects\Converters\ConverterDxf\ConverterDxf\ConverterDxf.csproj", "{64A2BFC9-8711-4C9D-A1B4-BEE678C8E640}" EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution @@ -60,9 +54,7 @@ Global ConnectorRevit\ConnectorRevit.projitems*{8a53b084-20d8-48f6-9591-9d53cfa74130}*SharedItemsImports = 4 ..\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\ConverterRevitShared\ConverterRevitShared.projitems*{df6b36cf-38e7-4ee1-a319-0e6842a87b05}*SharedItemsImports = 5 ConnectorRevit\ConnectorRevit.projitems*{dfdfdbb8-018b-4dcb-a012-54227abf53a7}*SharedItemsImports = 4 - ConnectorRevit\ConnectorRevit.projitems*{ef418256-8118-47b4-8386-a945946fb92d}*SharedItemsImports = 4 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -71,14 +63,6 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Debug|x64.ActiveCfg = Debug|x64 - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Debug|x64.Build.0 = Debug|x64 - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Release|Any CPU.Build.0 = Release|Any CPU - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Release|x64.ActiveCfg = Release|x64 - {A97C3046-2D55-4C49-AB40-A3C2194B82FA}.Release|x64.Build.0 = Release|x64 {521D4AEE-08CF-4913-BBE8-5511D176D126}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {521D4AEE-08CF-4913-BBE8-5511D176D126}.Debug|Any CPU.Build.0 = Debug|Any CPU {521D4AEE-08CF-4913-BBE8-5511D176D126}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -95,14 +79,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 - {DF6B36CF-38E7-4EE1-A319-0E6842A87B05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DF6B36CF-38E7-4EE1-A319-0E6842A87B05}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DF6B36CF-38E7-4EE1-A319-0E6842A87B05}.Debug|x64.ActiveCfg = Debug|Any CPU - {DF6B36CF-38E7-4EE1-A319-0E6842A87B05}.Debug|x64.Build.0 = Debug|Any CPU - {DF6B36CF-38E7-4EE1-A319-0E6842A87B05}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DF6B36CF-38E7-4EE1-A319-0E6842A87B05}.Release|Any CPU.Build.0 = Release|Any CPU - {DF6B36CF-38E7-4EE1-A319-0E6842A87B05}.Release|x64.ActiveCfg = Release|Any CPU - {DF6B36CF-38E7-4EE1-A319-0E6842A87B05}.Release|x64.Build.0 = 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 @@ -135,14 +111,6 @@ Global {8A53B084-20D8-48F6-9591-9D53CFA74130}.Release|Any CPU.Build.0 = Release|Any CPU {8A53B084-20D8-48F6-9591-9D53CFA74130}.Release|x64.ActiveCfg = Release|Any CPU {8A53B084-20D8-48F6-9591-9D53CFA74130}.Release|x64.Build.0 = Release|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Debug|x64.ActiveCfg = Debug|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Debug|x64.Build.0 = Debug|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Release|Any CPU.Build.0 = Release|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Release|x64.ActiveCfg = Release|Any CPU - {EF418256-8118-47B4-8386-A945946FB92D}.Release|x64.Build.0 = Release|Any CPU {D9C88135-B4B3-4C6C-A9D9-01A59A00BC0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D9C88135-B4B3-4C6C-A9D9-01A59A00BC0C}.Debug|Any CPU.Build.0 = Debug|Any CPU {D9C88135-B4B3-4C6C-A9D9-01A59A00BC0C}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -219,17 +187,14 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {A97C3046-2D55-4C49-AB40-A3C2194B82FA} = {39F07EF9-5867-4062-886D-2417C86305C2} {521D4AEE-08CF-4913-BBE8-5511D176D126} = {39F07EF9-5867-4062-886D-2417C86305C2} {BE852BE3-37B8-4B62-AC2C-0872C41A2542} = {39F07EF9-5867-4062-886D-2417C86305C2} {2DCD648D-DCA5-4D2A-8B14-AD2CB85D24B0} = {0FED0483-A54F-44EE-88FB-2FA6BAD13891} {0FED0483-A54F-44EE-88FB-2FA6BAD13891} = {39F07EF9-5867-4062-886D-2417C86305C2} - {DF6B36CF-38E7-4EE1-A319-0E6842A87B05} = {0FED0483-A54F-44EE-88FB-2FA6BAD13891} {240EAD7E-EF10-482A-B299-3B85B64B032F} = {0FED0483-A54F-44EE-88FB-2FA6BAD13891} {CFBD9A83-5AA2-4849-8735-28D4F73F4F56} = {0FED0483-A54F-44EE-88FB-2FA6BAD13891} {27A79ACA-7EA8-4406-8BB8-216578CC3AB7} = {89C98BAA-C2BC-4EAF-AB97-C513A5A2372D} {8A53B084-20D8-48F6-9591-9D53CFA74130} = {89C98BAA-C2BC-4EAF-AB97-C513A5A2372D} - {EF418256-8118-47B4-8386-A945946FB92D} = {89C98BAA-C2BC-4EAF-AB97-C513A5A2372D} {D9C88135-B4B3-4C6C-A9D9-01A59A00BC0C} = {39F07EF9-5867-4062-886D-2417C86305C2} {C74E4C61-CA68-47F9-825E-91B7A5C4546D} = {0FED0483-A54F-44EE-88FB-2FA6BAD13891} {DFDFDBB8-018B-4DCB-A012-54227ABF53A7} = {89C98BAA-C2BC-4EAF-AB97-C513A5A2372D} diff --git a/ConnectorRevit/ConnectorRevit/ConnectorRevit.projitems b/ConnectorRevit/ConnectorRevit/ConnectorRevit.projitems index 5b241da0da..39b7326204 100644 --- a/ConnectorRevit/ConnectorRevit/ConnectorRevit.projitems +++ b/ConnectorRevit/ConnectorRevit/ConnectorRevit.projitems @@ -33,30 +33,21 @@ - - - - - - - - - - - + + + + - - - - + + Panel.xaml diff --git a/ConnectorRevit/ConnectorRevit/ConnectorRevitUtils.cs b/ConnectorRevit/ConnectorRevit/ConnectorRevitUtils.cs index 73628e8eec..159a658e0d 100644 --- a/ConnectorRevit/ConnectorRevit/ConnectorRevitUtils.cs +++ b/ConnectorRevit/ConnectorRevit/ConnectorRevitUtils.cs @@ -313,7 +313,7 @@ public static string ObjectDescriptor(Element obj) BuiltInCategory.OST_Ramps, BuiltInCategory.OST_SpecialityEquipment, BuiltInCategory.OST_Rebar, -#if !REVIT2019 && !REVIT2020 && !REVIT2021 +#if !REVIT2020 && !REVIT2021 BuiltInCategory.OST_AudioVisualDevices, BuiltInCategory.OST_FireProtection, BuiltInCategory.OST_FoodServiceEquipment, @@ -323,7 +323,7 @@ public static string ObjectDescriptor(Element obj) BuiltInCategory.OST_TemporaryStructure, BuiltInCategory.OST_VerticalCirculation, #endif -#if !REVIT2019 && !REVIT2020 && !REVIT2021 && !REVIT2022 +#if !REVIT2020 && !REVIT2021 && !REVIT2022 BuiltInCategory.OST_MechanicalControlDevices, #endif }; diff --git a/ConnectorRevit/ConnectorRevit/Entry/App.cs b/ConnectorRevit/ConnectorRevit/Entry/App.cs index 5f0d8ae2ea..7971c4757b 100644 --- a/ConnectorRevit/ConnectorRevit/Entry/App.cs +++ b/ConnectorRevit/ConnectorRevit/Entry/App.cs @@ -37,22 +37,9 @@ public Result OnStartup(UIControlledApplication application) var specklePanel = application.CreateRibbonPanel(tabName, "Speckle 2"); string path = typeof(App).Assembly.Location; -#if REVIT2019 - //desctopui 1 - var speckleButton = specklePanel.AddItem(new PushButtonData("Speckle 2", "Revit Connector", typeof(App).Assembly.Location, typeof(SpeckleRevitCommand).FullName)) as PushButton; - - if (speckleButton != null) - { - speckleButton.Image = LoadPngImgSource("Speckle.ConnectorRevit.Assets.logo16_fade.png", path); - speckleButton.LargeImage = LoadPngImgSource("Speckle.ConnectorRevit.Assets.logo32_fade.png", path); - speckleButton.ToolTip = "Speckle Connector for Revit (old)"; - speckleButton.AvailabilityClassName = typeof(CmdAvailabilityViews).FullName; - speckleButton.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, "https://speckle.systems")); - } -#else //desktopui 2 - var speckleButton2 = specklePanel.AddItem(new PushButtonData("Speckle 2", "Revit Connector", typeof(App).Assembly.Location, typeof(SpeckleRevitCommand2).FullName)) as PushButton; + var speckleButton2 = specklePanel.AddItem(new PushButtonData("Speckle 2", "Revit Connector", typeof(App).Assembly.Location, typeof(SpeckleRevitCommand).FullName)) as PushButton; if (speckleButton2 != null) { @@ -76,34 +63,6 @@ public Result OnStartup(UIControlledApplication application) schedulerButton.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, "https://speckle.systems")); } - // one click send - var speckleButtonSend = specklePanel.AddItem(new PushButtonData("Send", "Send to Speckle", typeof(App).Assembly.Location, typeof(OneClickSendCommand).FullName)) as PushButton; - - if (speckleButtonSend != null) - { - speckleButtonSend.Image = LoadPngImgSource("Speckle.ConnectorRevit.Assets.oneclick16.png", path); - speckleButtonSend.LargeImage = LoadPngImgSource("Speckle.ConnectorRevit.Assets.oneclick32.png", path); - speckleButtonSend.ToolTipImage = LoadPngImgSource("Speckle.ConnectorRevit.Assets.oneclick32.png", path); - speckleButtonSend.ToolTip = "Sends your selected file objects to Speckle, or the entire model if nothing is selected."; - speckleButtonSend.AvailabilityClassName = typeof(CmdAvailabilityViews).FullName; - speckleButtonSend.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, "https://speckle.systems")); - } - - - // quick share - var speckleButtonShare = specklePanel.AddItem(new PushButtonData("Share", "Quick Share", typeof(App).Assembly.Location, typeof(QuickShareCommand).FullName)) as PushButton; - - if (speckleButtonShare != null) - { - speckleButtonShare.Image = LoadPngImgSource("Speckle.ConnectorRevit.Assets.share16.png", path); - speckleButtonShare.LargeImage = LoadPngImgSource("Speckle.ConnectorRevit.Assets.share32.png", path); - speckleButtonShare.ToolTipImage = LoadPngImgSource("Speckle.ConnectorRevit.Assets.share32.png", path); - speckleButtonShare.ToolTip = "Quickly share the selected evelemtns via Speckle, or the entire model if nothing is selected."; - speckleButtonShare.AvailabilityClassName = typeof(CmdAvailabilityViews).FullName; - speckleButtonShare.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, "https://speckle.systems")); - } -#endif - PulldownButton helpPulldown = specklePanel.AddItem(new PulldownButtonData("Help&Resources", "Help & Resources")) as PulldownButton; helpPulldown.Image = LoadPngImgSource("Speckle.ConnectorRevit.Assets.help16.png", path); helpPulldown.LargeImage = LoadPngImgSource("Speckle.ConnectorRevit.Assets.help32.png", path); @@ -141,29 +100,19 @@ private void ControlledApplication_ApplicationInitialized(object sender, Autodes AppInstance = new UIApplication(sender as Application); AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(OnAssemblyResolve); - -#if REVIT2019 - //DUI1 - Set up bindings now as they subscribe to some document events and it's better to do it now - SpeckleRevitCommand.Bindings = new ConnectorBindingsRevit(AppInstance); - var eventHandler = ExternalEvent.Create(new SpeckleExternalEventHandler(SpeckleRevitCommand.Bindings)); - SpeckleRevitCommand.Bindings.SetExecutorAndInit(eventHandler); -#else //DUI2 - pre build app, so that it's faster to open up - SpeckleRevitCommand2.InitAvalonia(); - var bindings = new ConnectorBindingsRevit2(AppInstance); + SpeckleRevitCommand.InitAvalonia(); + var bindings = new ConnectorBindingsRevit(AppInstance); bindings.RegisterAppEvents(); - SpeckleRevitCommand2.Bindings = bindings; + SpeckleRevitCommand.Bindings = bindings; SchedulerCommand.Bindings = bindings; - OneClickSendCommand.Bindings = bindings; - QuickShareCommand.Bindings = bindings; //This is also called in DUI, adding it here to know how often the connector is loaded and used Setup.Init(bindings.GetHostAppNameVersion(), bindings.GetHostAppName()); Analytics.TrackEvent(Analytics.Events.Registered, null, false); - SpeckleRevitCommand2.RegisterPane(); + SpeckleRevitCommand.RegisterPane(); -#endif //AppInstance.ViewActivated += new EventHandler(Application_ViewActivated); } catch (Exception ex) diff --git a/ConnectorRevit/ConnectorRevit/Entry/OneClickSendCommand.cs b/ConnectorRevit/ConnectorRevit/Entry/OneClickSendCommand.cs deleted file mode 100644 index c7194813fd..0000000000 --- a/ConnectorRevit/ConnectorRevit/Entry/OneClickSendCommand.cs +++ /dev/null @@ -1,109 +0,0 @@ -using System; -using System.Diagnostics; -using System.Runtime.InteropServices; -using System.Threading; -using Autodesk.Revit.Attributes; -using Autodesk.Revit.DB; -using Autodesk.Revit.UI; -using Avalonia.Controls; -using DesktopUI2.Models; -using DesktopUI2.ViewModels; -using DesktopUI2.Views; -using Speckle.ConnectorRevit.UI; -using Speckle.Core.Logging; - -namespace Speckle.ConnectorRevit.Entry -{ - [Transaction(TransactionMode.Manual)] - public class OneClickSendCommand : IExternalCommand - { - [DllImport("user32.dll", SetLastError = true)] - static extern IntPtr SetWindowLongPtr(IntPtr hWnd, int nIndex, IntPtr value); - const int GWL_HWNDPARENT = -8; - public static ConnectorBindingsRevit2 Bindings { get; set; } - public static StreamState FileStream { get; set; } - - public static Window MainWindow { get; private set; } - - private static Avalonia.Application AvaloniaApp { get; set; } - - internal static UIApplication uiapp; - - public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) - { - uiapp = commandData.Application; - - // intialize dui2 - CreateOrFocusSpeckle(false); - - // send - var oneClick = new OneClickViewModel(Bindings, FileStream); - oneClick.Send(); - FileStream = oneClick.FileStream; - - return Result.Succeeded; - } - - public static void CreateOrFocusSpeckle(bool showWindow = true) - { - - try - { - if (MainWindow == null) - { - var viewModel = new MainViewModel(Bindings); - MainWindow = new MainWindow - { - DataContext = viewModel - }; - - //massive hack: we start the avalonia main loop and stop it immediately (since it's thread blocking) - //to avoid an annoying error when closing revit - var cts = new CancellationTokenSource(); - cts.CancelAfter(100); - AvaloniaApp.Run(cts.Token); - } - - - if (showWindow) - { - MainWindow.Show(); - MainWindow.Activate(); - - //required to gracefully quit avalonia and the skia processes - //can also be used to manually do so - //https://github.com/AvaloniaUI/Avalonia/wiki/Application-lifetimes - - - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - var parentHwnd = uiapp.MainWindowHandle; - var hwnd = MainWindow.PlatformImpl.Handle.Handle; - SetWindowLongPtr(hwnd, GWL_HWNDPARENT, parentHwnd); - } - } - } - catch (Exception ex) - { - Log.CaptureException(ex, Sentry.SentryLevel.Error); - var td = new TaskDialog("Error"); - td.MainContent = $"Oh no! Something went wrong while loading Speckle, please report it on the forum:\n{ex.Message}"; - td.AddCommandLink(TaskDialogCommandLinkId.CommandLink1, "Report issue on our Community Forum"); - - TaskDialogResult tResult = td.Show(); - - if (TaskDialogResult.CommandLink1 == tResult) - { - Process.Start("https://speckle.community/"); - } - } - } - - private static void AppMain(Avalonia.Application app, string[] args) - { - AvaloniaApp = app; - } - - } - -} diff --git a/ConnectorRevit/ConnectorRevit/Entry/QuickShareCommand.cs b/ConnectorRevit/ConnectorRevit/Entry/QuickShareCommand.cs deleted file mode 100644 index cde12132b7..0000000000 --- a/ConnectorRevit/ConnectorRevit/Entry/QuickShareCommand.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using Autodesk.Revit.Attributes; -using Autodesk.Revit.DB; -using Autodesk.Revit.UI; -using DesktopUI2.ViewModels.Share; -using DesktopUI2.Views; -using Speckle.ConnectorRevit.UI; - -namespace Speckle.ConnectorRevit.Entry -{ - [Transaction(TransactionMode.Manual)] - public class QuickShareCommand : IExternalCommand - { - [DllImport("user32.dll", SetLastError = true)] - static extern IntPtr SetWindowLongPtr(IntPtr hWnd, int nIndex, IntPtr value); - const int GWL_HWNDPARENT = -8; - - internal static UIApplication uiapp; - - public static ConnectorBindingsRevit2 Bindings { get; set; } - - - public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) - { - uiapp = commandData.Application; - CreateOrFocusSpeckle(); - - return Result.Succeeded; - } - - public static void CreateOrFocusSpeckle() - { - - var scheduler = new Share - { - DataContext = new ShareViewModel(Bindings) - }; - - scheduler.Show(); - - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - var parentHwnd = uiapp.MainWindowHandle; - var hwnd = scheduler.PlatformImpl.Handle.Handle; - SetWindowLongPtr(hwnd, GWL_HWNDPARENT, parentHwnd); - } - - } - } - -} diff --git a/ConnectorRevit/ConnectorRevit/Entry/SchedulerCommand.cs b/ConnectorRevit/ConnectorRevit/Entry/SchedulerCommand.cs index 6c87a74689..b657989f02 100644 --- a/ConnectorRevit/ConnectorRevit/Entry/SchedulerCommand.cs +++ b/ConnectorRevit/ConnectorRevit/Entry/SchedulerCommand.cs @@ -18,7 +18,7 @@ public class SchedulerCommand : IExternalCommand internal static UIApplication uiapp; - public static ConnectorBindingsRevit2 Bindings { get; set; } + public static ConnectorBindingsRevit Bindings { get; set; } public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) diff --git a/ConnectorRevit/ConnectorRevit/Entry/SpeckleRevitCommand.cs b/ConnectorRevit/ConnectorRevit/Entry/SpeckleRevitCommand.cs index bf13f2698a..2be1b81517 100644 --- a/ConnectorRevit/ConnectorRevit/Entry/SpeckleRevitCommand.cs +++ b/ConnectorRevit/ConnectorRevit/Entry/SpeckleRevitCommand.cs @@ -1,69 +1,211 @@ -using System; -using System.IO; -using System.Reflection; -using System.Windows; +using System; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Threading; using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk.Revit.UI; +using Avalonia; +using Avalonia.Controls; +using Avalonia.ReactiveUI; +using DesktopUI2.ViewModels; +using DesktopUI2.Views; using Speckle.ConnectorRevit.UI; -using Speckle.DesktopUI; -using Stylet.Xaml; +using Speckle.Core.Logging; namespace Speckle.ConnectorRevit.Entry { [Transaction(TransactionMode.Manual)] public class SpeckleRevitCommand : IExternalCommand { - public static Bootstrapper Bootstrapper { get; set; } + + public static bool UseDockablePanel = true; + + //window stuff + [DllImport("user32.dll", SetLastError = true)] + static extern IntPtr SetWindowLongPtr(IntPtr hWnd, int nIndex, IntPtr value); + const int GWL_HWNDPARENT = -8; + public static Window MainWindow { get; private set; } + private static Avalonia.Application AvaloniaApp { get; set; } + //end window stuff + public static ConnectorBindingsRevit Bindings { get; set; } + private static Panel _panel { get; set; } + + + internal static DockablePaneId PanelId = new DockablePaneId(new Guid("{0A866FB8-8FD5-4DE8-B24B-56F4FA5B0836}")); + + + public static void InitAvalonia() + { + BuildAvaloniaApp().SetupWithoutStarting(); + } + + public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure() + .UsePlatformDetect() + .With(new SkiaOptions { MaxGpuResourceSizeBytes = 8096000 }) + .With(new Win32PlatformOptions { AllowEglInitialization = true, EnableMultitouch = false }) + .LogToTrace() + .UseReactiveUI(); + + + public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { - OpenOrFocusSpeckle(commandData.Application); + + if (UseDockablePanel) + { + try + { + RegisterPane(); + var panel = App.AppInstance.GetDockablePane(PanelId); + panel.Show(); + } + catch (Exception ex) + { + Log.CaptureException(ex, Sentry.SentryLevel.Error); + } + } + else + CreateOrFocusSpeckle(); + + + return Result.Succeeded; } - public static void OpenOrFocusSpeckle(UIApplication app) + internal static void RegisterPane() { try { - AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(OnAssemblyResolve); + if (!UseDockablePanel) + return; - if (Bootstrapper != null) + var registered = DockablePane.PaneIsRegistered(PanelId); + var created = DockablePane.PaneExists(PanelId); + + if (registered && created) { - Bootstrapper.ShowRootView(); + _panel.Init(); return; } - Bootstrapper = new Bootstrapper() { Bindings = Bindings }; + if (!registered) + { + //Register dockable panel + var viewModel = new MainViewModel(Bindings); + _panel = new Panel + { + DataContext = viewModel + }; + App.AppInstance.RegisterDockablePane(PanelId, "Speckle", _panel); + _panel.Init(); + } + created = DockablePane.PaneExists(PanelId); + + //if revit was launched double-clicking on a Revit file, we're screwed + //could maybe show the old window? + if (!created && App.AppInstance.Application.Documents.Size > 0) + { + TaskDialog mainDialog = new TaskDialog("Dockable Panel Issue"); + mainDialog.MainInstruction = "Dockable Panel Issue"; + mainDialog.MainContent = + "Revit cannot properly register Dockable Panels when launched by double-clicking a Revit file. " + + "Please close and re-open Revit without launching a file OR open/create a new project to trigger the Speckle panel registration."; + - if (Application.Current != null) - new StyletAppLoader() { Bootstrapper = Bootstrapper }; - else - new DesktopUI.App(Bootstrapper); + // Set footer text. Footer text is usually used to link to the help document. + mainDialog.FooterText = + "" + + "Click here for more info"; - Bootstrapper.Start(Application.Current); - Bootstrapper.SetParent(app.MainWindowHandle); + mainDialog.Show(); + + } } - catch (Exception e) + catch (Exception ex) { - Bootstrapper = null; + Log.CaptureException(ex, Sentry.SentryLevel.Error); + var td = new TaskDialog("Error"); + td.MainContent = $"Oh no! Something went wrong while loading Speckle, please report it on the forum:\n{ex.Message}"; + td.AddCommandLink(TaskDialogCommandLinkId.CommandLink1, "Report issue on our Community Forum"); + + TaskDialogResult tResult = td.Show(); + + if (TaskDialogResult.CommandLink1 == tResult) + { + Process.Start("https://speckle.community/"); + } } + } - static Assembly OnAssemblyResolve(object sender, ResolveEventArgs args) + public static void CreateOrFocusSpeckle(bool showWindow = true) { - Assembly a = null; - var name = args.Name.Split(',')[0]; - string path = Path.GetDirectoryName(typeof(App).Assembly.Location); + try + { + + if (MainWindow == null) + { + var viewModel = new MainViewModel(Bindings); + MainWindow = new MainWindow + { + DataContext = viewModel + }; + + //massive hack: we start the avalonia main loop and stop it immediately (since it's thread blocking) + //to avoid an annoying error when closing revit + var cts = new CancellationTokenSource(); + cts.CancelAfter(100); + AvaloniaApp.Run(cts.Token); + + } - string assemblyFile = Path.Combine(path, name + ".dll"); - if (File.Exists(assemblyFile)) - a = Assembly.LoadFrom(assemblyFile); + if (showWindow) + { + MainWindow.Show(); + MainWindow.Activate(); + + //required to gracefully quit avalonia and the skia processes + //can also be used to manually do so + //https://github.com/AvaloniaUI/Avalonia/wiki/Application-lifetimes - return a; + + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + var parentHwnd = App.AppInstance.MainWindowHandle; + var hwnd = MainWindow.PlatformImpl.Handle.Handle; + SetWindowLongPtr(hwnd, GWL_HWNDPARENT, parentHwnd); + } + } + } + catch (Exception ex) + { + Log.CaptureException(ex, Sentry.SentryLevel.Error); + var td = new TaskDialog("Error"); + td.MainContent = $"Oh no! Something went wrong while loading Speckle, please report it on the forum:\n{ex.Message}"; + td.AddCommandLink(TaskDialogCommandLinkId.CommandLink1, "Report issue on our Community Forum"); + + TaskDialogResult tResult = td.Show(); + + if (TaskDialogResult.CommandLink1 == tResult) + { + Process.Start("https://speckle.community/"); + } + } } + + private static void AppMain(Avalonia.Application app, string[] args) + { + AvaloniaApp = app; + } + + + + + } } diff --git a/ConnectorRevit/ConnectorRevit/Entry/SpeckleRevitCommand2.cs b/ConnectorRevit/ConnectorRevit/Entry/SpeckleRevitCommand2.cs deleted file mode 100644 index ba2307a8e0..0000000000 --- a/ConnectorRevit/ConnectorRevit/Entry/SpeckleRevitCommand2.cs +++ /dev/null @@ -1,211 +0,0 @@ -using System; -using System.Diagnostics; -using System.Runtime.InteropServices; -using System.Threading; -using Autodesk.Revit.Attributes; -using Autodesk.Revit.DB; -using Autodesk.Revit.UI; -using Avalonia; -using Avalonia.Controls; -using Avalonia.ReactiveUI; -using DesktopUI2.ViewModels; -using DesktopUI2.Views; -using Speckle.ConnectorRevit.UI; -using Speckle.Core.Logging; - -namespace Speckle.ConnectorRevit.Entry -{ - [Transaction(TransactionMode.Manual)] - public class SpeckleRevitCommand2 : IExternalCommand - { - - public static bool UseDockablePanel = true; - - //window stuff - [DllImport("user32.dll", SetLastError = true)] - static extern IntPtr SetWindowLongPtr(IntPtr hWnd, int nIndex, IntPtr value); - const int GWL_HWNDPARENT = -8; - public static Window MainWindow { get; private set; } - private static Avalonia.Application AvaloniaApp { get; set; } - //end window stuff - - public static ConnectorBindingsRevit2 Bindings { get; set; } - - private static Panel _panel { get; set; } - - - internal static DockablePaneId PanelId = new DockablePaneId(new Guid("{0A866FB8-8FD5-4DE8-B24B-56F4FA5B0836}")); - - - public static void InitAvalonia() - { - BuildAvaloniaApp().SetupWithoutStarting(); - } - - public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure() - .UsePlatformDetect() - .With(new SkiaOptions { MaxGpuResourceSizeBytes = 8096000 }) - .With(new Win32PlatformOptions { AllowEglInitialization = true, EnableMultitouch = false }) - .LogToTrace() - .UseReactiveUI(); - - - - public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) - { - - if (UseDockablePanel) - { - try - { - RegisterPane(); - var panel = App.AppInstance.GetDockablePane(PanelId); - panel.Show(); - } - catch (Exception ex) - { - Log.CaptureException(ex, Sentry.SentryLevel.Error); - } - } - else - CreateOrFocusSpeckle(); - - - - return Result.Succeeded; - } - - internal static void RegisterPane() - { - try - { - if (!UseDockablePanel) - return; - - var registered = DockablePane.PaneIsRegistered(PanelId); - var created = DockablePane.PaneExists(PanelId); - - if (registered && created) - { - _panel.Init(); - return; - } - - if (!registered) - { - //Register dockable panel - var viewModel = new MainViewModel(Bindings); - _panel = new Panel - { - DataContext = viewModel - }; - App.AppInstance.RegisterDockablePane(PanelId, "Speckle", _panel); - _panel.Init(); - } - created = DockablePane.PaneExists(PanelId); - - //if revit was launched double-clicking on a Revit file, we're screwed - //could maybe show the old window? - if (!created && App.AppInstance.Application.Documents.Size > 0) - { - TaskDialog mainDialog = new TaskDialog("Dockable Panel Issue"); - mainDialog.MainInstruction = "Dockable Panel Issue"; - mainDialog.MainContent = - "Revit cannot properly register Dockable Panels when launched by double-clicking a Revit file. " - + "Please close and re-open Revit without launching a file OR open/create a new project to trigger the Speckle panel registration."; - - - // Set footer text. Footer text is usually used to link to the help document. - mainDialog.FooterText = - "" - + "Click here for more info"; - - mainDialog.Show(); - - } - } - catch (Exception ex) - { - Log.CaptureException(ex, Sentry.SentryLevel.Error); - var td = new TaskDialog("Error"); - td.MainContent = $"Oh no! Something went wrong while loading Speckle, please report it on the forum:\n{ex.Message}"; - td.AddCommandLink(TaskDialogCommandLinkId.CommandLink1, "Report issue on our Community Forum"); - - TaskDialogResult tResult = td.Show(); - - if (TaskDialogResult.CommandLink1 == tResult) - { - Process.Start("https://speckle.community/"); - } - } - - } - - public static void CreateOrFocusSpeckle(bool showWindow = true) - { - try - { - - if (MainWindow == null) - { - var viewModel = new MainViewModel(Bindings); - MainWindow = new MainWindow - { - DataContext = viewModel - }; - - //massive hack: we start the avalonia main loop and stop it immediately (since it's thread blocking) - //to avoid an annoying error when closing revit - var cts = new CancellationTokenSource(); - cts.CancelAfter(100); - AvaloniaApp.Run(cts.Token); - - } - - - if (showWindow) - { - MainWindow.Show(); - MainWindow.Activate(); - - //required to gracefully quit avalonia and the skia processes - //can also be used to manually do so - //https://github.com/AvaloniaUI/Avalonia/wiki/Application-lifetimes - - - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - var parentHwnd = App.AppInstance.MainWindowHandle; - var hwnd = MainWindow.PlatformImpl.Handle.Handle; - SetWindowLongPtr(hwnd, GWL_HWNDPARENT, parentHwnd); - } - } - } - catch (Exception ex) - { - Log.CaptureException(ex, Sentry.SentryLevel.Error); - var td = new TaskDialog("Error"); - td.MainContent = $"Oh no! Something went wrong while loading Speckle, please report it on the forum:\n{ex.Message}"; - td.AddCommandLink(TaskDialogCommandLinkId.CommandLink1, "Report issue on our Community Forum"); - - TaskDialogResult tResult = td.Show(); - - if (TaskDialogResult.CommandLink1 == tResult) - { - Process.Start("https://speckle.community/"); - } - } - } - - private static void AppMain(Avalonia.Application app, string[] args) - { - AvaloniaApp = app; - } - - - - - - } - -} diff --git a/ConnectorRevit/ConnectorRevit/ExternalEventHandler.cs b/ConnectorRevit/ConnectorRevit/ExternalEventHandler.cs deleted file mode 100644 index abfdcfac6a..0000000000 --- a/ConnectorRevit/ConnectorRevit/ExternalEventHandler.cs +++ /dev/null @@ -1,57 +0,0 @@ -using Autodesk.Revit.UI; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Speckle.ConnectorRevit.UI; -using Speckle.Core.Logging; -using Speckle.DesktopUI; - -namespace Speckle.ConnectorRevit -{ - /// - /// Event invoker. Has a queue of actions that, in theory, this thing should iterate through. - /// Required to run transactions form a non modal window. - /// - public class SpeckleExternalEventHandler : IExternalEventHandler - { - public ConnectorBindingsRevit RevitBindings { get; set; } - public bool Running = false; - - public SpeckleExternalEventHandler(ConnectorBindingsRevit revitBindings) - { - RevitBindings = revitBindings; - } - - public void Execute(UIApplication app) - { - Debug.WriteLine("Current queue length is: " + RevitBindings.Queue.Count); - if (Running) return; // queue will run itself through - - Running = true; - - try - { - RevitBindings.Queue[0](); - } - catch (Exception e) - { - Log.CaptureException(e); - } - - RevitBindings.Queue.RemoveAt(0); - Running = false; - - if (RevitBindings.Queue.Count != 0) - RevitBindings.Executor.Raise(); - - } - - public string GetName() - { - return "ConnectorRevit"; - } - } -} diff --git a/ConnectorRevit/ConnectorRevit/Storage/StreamStateManager.cs b/ConnectorRevit/ConnectorRevit/Storage/StreamStateManager.cs index 5ae7a19c51..63b3253e0e 100644 --- a/ConnectorRevit/ConnectorRevit/Storage/StreamStateManager.cs +++ b/ConnectorRevit/ConnectorRevit/Storage/StreamStateManager.cs @@ -3,8 +3,8 @@ using Autodesk.Revit.DB; using Autodesk.Revit.DB.ExtensibleStorage; +using DesktopUI2.Models; using Speckle.Newtonsoft.Json; -using Speckle.DesktopUI.Utils; namespace Speckle.ConnectorRevit.Storage { @@ -14,7 +14,7 @@ namespace Speckle.ConnectorRevit.Storage /// public static class StreamStateManager { - readonly static Guid ID = new Guid("{5D453471-1F20-44CE-B1D0-BBD2BDE4616A}"); + readonly static Guid ID = new Guid("4EF264B9-5AA0-4B99-A6E7-C82ACEB26DE2"); /// /// Returns all the speckle stream states present in the current document. @@ -32,11 +32,6 @@ public static List ReadState(Document doc) var str = streamStatesEntity.Get("StreamStates"); var states = JsonConvert.DeserializeObject>(str); - if (states != null) - { - states.ForEach(x => x.Initialise(true)); - } - return states; } catch (Exception e) @@ -57,11 +52,11 @@ public static void WriteStreamStateList(Document doc, List streamSt if (ds == null) ds = DataStorage.Create(doc); - var streamStatesEntity = new Entity(StreamStateListSchema.GetSchema()); + var streamStatesEntity = new Entity(StreamStateListSchema2.GetSchema()); streamStatesEntity.Set("StreamStates", JsonConvert.SerializeObject(streamStates) as string); - var idEntity = new Entity(DSUniqueSchemaStreamStateStorage.GetSchema()); + var idEntity = new Entity(DSUniqueSchemaStreamStateStorage2.GetSchema()); idEntity.Set("Id", ID); ds.SetEntity(idEntity); @@ -78,7 +73,7 @@ private static DataStorage GetSettingsDataStorage(Document doc) // Find setting data storage foreach (DataStorage dataStorage in dataStorages) { - var settingIdEntity = dataStorage.GetEntity(DSUniqueSchemaStreamStateStorage.GetSchema()); + var settingIdEntity = dataStorage.GetEntity(DSUniqueSchemaStreamStateStorage2.GetSchema()); if (!settingIdEntity.IsValid()) continue; @@ -100,7 +95,7 @@ private static Entity GetSpeckleEntity(Document doc) var dataStorages = collector.OfClass(typeof(DataStorage)); foreach (DataStorage dataStorage in dataStorages) { - Entity settingEntity = dataStorage.GetEntity(StreamStateListSchema.GetSchema()); + Entity settingEntity = dataStorage.GetEntity(StreamStateListSchema2.GetSchema()); if (!settingEntity.IsValid()) continue; @@ -113,9 +108,9 @@ private static Entity GetSpeckleEntity(Document doc) /// /// Revit schema of the StreamStateWrapper class. /// - public static class StreamStateListSchema + public static class StreamStateListSchema2 { - static readonly Guid schemaGuid = new Guid("{F29ABD4E-C2DA-4F6A-A301-C70F1C32128D}"); + static readonly Guid schemaGuid = new Guid("C48D05AE-8068-4B9A-A790-B4B2F605126B"); public static Schema GetSchema() { @@ -135,9 +130,9 @@ public static Schema GetSchema() /// /// Unique schema for... something ¯\_(ツ)_/¯ /// - static class DSUniqueSchemaStreamStateStorage + static class DSUniqueSchemaStreamStateStorage2 { - static readonly Guid schemaGuid = new Guid("{174C7EEE-EC5E-4A3F-894A-C801871AEDB8}"); + static readonly Guid schemaGuid = new Guid("C0DA9F31-83A7-4775-807B-4430446E694F"); public static Schema GetSchema() { diff --git a/ConnectorRevit/ConnectorRevit/Storage/StreamStateManager2.cs b/ConnectorRevit/ConnectorRevit/Storage/StreamStateManager2.cs deleted file mode 100644 index 2aacafa0eb..0000000000 --- a/ConnectorRevit/ConnectorRevit/Storage/StreamStateManager2.cs +++ /dev/null @@ -1,153 +0,0 @@ -using System; -using System.Collections.Generic; - -using Autodesk.Revit.DB; -using Autodesk.Revit.DB.ExtensibleStorage; -using DesktopUI2.Models; -using Speckle.Newtonsoft.Json; - -namespace Speckle.ConnectorRevit.Storage -{ - /// - /// Manages the serialisation of speckle stream state - /// (stream info, account info, and filter type) in a revit document. - /// - public static class StreamStateManager2 - { - readonly static Guid ID = new Guid("4EF264B9-5AA0-4B99-A6E7-C82ACEB26DE2"); - - /// - /// Returns all the speckle stream states present in the current document. - /// - /// - /// - public static List ReadState(Document doc) - { - try - { - var streamStatesEntity = GetSpeckleEntity(doc); - if (streamStatesEntity == null || !streamStatesEntity.IsValid()) - return new List(); - - var str = streamStatesEntity.Get("StreamStates"); - var states = JsonConvert.DeserializeObject>(str); - - return states; - } - catch (Exception e) - { - return new List(); - } - } - - /// - /// Writes the stream states to the current document. - /// - /// - /// - public static void WriteStreamStateList(Document doc, List streamStates) - { - var ds = GetSettingsDataStorage(doc); - - if (ds == null) - ds = DataStorage.Create(doc); - - var streamStatesEntity = new Entity(StreamStateListSchema2.GetSchema()); - - streamStatesEntity.Set("StreamStates", JsonConvert.SerializeObject(streamStates) as string); - - var idEntity = new Entity(DSUniqueSchemaStreamStateStorage2.GetSchema()); - idEntity.Set("Id", ID); - - ds.SetEntity(idEntity); - ds.SetEntity(streamStatesEntity); - } - - private static DataStorage GetSettingsDataStorage(Document doc) - { - // Retrieve all data storages from project - var collector = new FilteredElementCollector(doc); - - var dataStorages = collector.OfClass(typeof(DataStorage)); - - // Find setting data storage - foreach (DataStorage dataStorage in dataStorages) - { - var settingIdEntity = dataStorage.GetEntity(DSUniqueSchemaStreamStateStorage2.GetSchema()); - - if (!settingIdEntity.IsValid()) - continue; - - var id = settingIdEntity.Get("Id"); - - if (!id.Equals(ID)) - continue; - - return dataStorage; - } - return null; - } - - private static Entity GetSpeckleEntity(Document doc) - { - FilteredElementCollector collector = new FilteredElementCollector(doc); - - var dataStorages = collector.OfClass(typeof(DataStorage)); - foreach (DataStorage dataStorage in dataStorages) - { - Entity settingEntity = dataStorage.GetEntity(StreamStateListSchema2.GetSchema()); - if (!settingEntity.IsValid()) - continue; - - return settingEntity; - } - return null; - } - } - - /// - /// Revit schema of the StreamStateWrapper class. - /// - public static class StreamStateListSchema2 - { - static readonly Guid schemaGuid = new Guid("C48D05AE-8068-4B9A-A790-B4B2F605126B"); - - public static Schema GetSchema() - { - var schema = Schema.Lookup(schemaGuid); - if (schema != null) - return schema; - - var builder = new SchemaBuilder(schemaGuid); - builder.SetSchemaName("StreamStateWrapper"); - builder.AddSimpleField("StreamStates", typeof(string)); - - return builder.Finish(); - } - } - - - /// - /// Unique schema for... something ¯\_(ツ)_/¯ - /// - static class DSUniqueSchemaStreamStateStorage2 - { - static readonly Guid schemaGuid = new Guid("C0DA9F31-83A7-4775-807B-4430446E694F"); - - public static Schema GetSchema() - { - Schema schema = Schema.Lookup(schemaGuid); - - if (schema != null) - return schema; - - SchemaBuilder schemaBuilder = new SchemaBuilder(schemaGuid); - - schemaBuilder.SetSchemaName("DataStorageUniqueId"); - - schemaBuilder.AddSimpleField("Id", typeof(Guid)); - - return schemaBuilder.Finish(); - } - } -} diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2 .Settings.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit .Settings.cs similarity index 98% rename from ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2 .Settings.cs rename to ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit .Settings.cs index 2770725f6e..aaa5049df5 100644 --- a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2 .Settings.cs +++ b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit .Settings.cs @@ -5,7 +5,7 @@ namespace Speckle.ConnectorRevit.UI { - public partial class ConnectorBindingsRevit2 + public partial class ConnectorBindingsRevit { // CAUTION: these strings need to have the same values as in the converter const string InternalOrigin = "Internal Origin (default)"; diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.ClientOperations.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.ClientOperations.cs deleted file mode 100644 index 8ada0c379f..0000000000 --- a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.ClientOperations.cs +++ /dev/null @@ -1,120 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Autodesk.Revit.DB; -using Speckle.ConnectorRevit.Storage; -using Speckle.Core.Api; -using Speckle.Core.Kits; -using Speckle.Core.Logging; -using Speckle.Core.Models; -using Speckle.Core.Transports; -using Speckle.DesktopUI.Utils; -using Stylet; -using RevitElement = Autodesk.Revit.DB.Element; - -namespace Speckle.ConnectorRevit.UI -{ - public partial class ConnectorBindingsRevit - { - - - public List DocumentStreams { get; set; } = new List(); - - [ObsoleteAttribute("This property is obsolete. Use the Report on the progress view model", false)] - public List ConversionErrors { get; set; } = new List(); - - /// - /// Keeps track of errors in the operations of send/receive. - /// - [ObsoleteAttribute("This property is obsolete. Use the Report on the progress view model", false)] - public List OperationErrors { get; set; } = new List(); - - public override List GetStreamsInFile() - { - if (CurrentDoc != null) - DocumentStreams = StreamStateManager.ReadState(CurrentDoc.Document); - - return DocumentStreams; - } - - #region Local file i/o - - /// - /// Adds a new stream to the file. - /// - /// StreamState passed by the UI - public override void AddNewStream(StreamState state) - { - var index = DocumentStreams.FindIndex(b => b.Stream.id == state.Stream.id); - if (index == -1) - { - DocumentStreams.Add(state); - WriteStateToFile(); - } - } - - /// - /// Removes a stream from the file. - /// - /// - public override void RemoveStreamFromFile(string streamId) - { - var streamState = DocumentStreams.FirstOrDefault(s => s.Stream.id == streamId); - if (streamState != null) - { - DocumentStreams.Remove(streamState); - WriteStateToFile(); - } - } - - /// - /// Update the stream state and adds adds the filtered objects - /// - /// - public override void PersistAndUpdateStreamInFile(StreamState state) - { - var index = DocumentStreams.FindIndex(b => b.Stream.id == state.Stream.id); - if (index != -1) - { - DocumentStreams[index] = state; - WriteStateToFile(); - } - } - - /// - /// Transaction wrapper around writing the local streams to the file. - /// - private void WriteStateToFile() - { - Queue.Add(new Action(() => - { - using (Transaction t = new Transaction(CurrentDoc.Document, "Speckle Write State")) - { - t.Start(); - StreamStateManager.WriteStreamStateList(CurrentDoc.Document, DocumentStreams); - t.Commit(); - } - })); - Executor.Raise(); - } - - #endregion - - private void UpdateProgress(ConcurrentDictionary dict, DesktopUI.Utils.ProgressReport progress) - { - if (progress == null) - { - return; - } - - Execute.PostToUIThread(() => - { - progress.ProgressDict = dict; - progress.Value = dict.Values.Last(); - }); - } - } -} diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Events.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Events.cs similarity index 66% rename from ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Events.cs rename to ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Events.cs index dd2832b8d2..993f736fb3 100644 --- a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Events.cs +++ b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Events.cs @@ -7,15 +7,18 @@ using Avalonia.Controls; using DesktopUI2.Models; using DesktopUI2.ViewModels; +using DesktopUI2.Views; using DesktopUI2.Views.Windows.Dialogs; using Revit.Async; using Speckle.ConnectorRevit.Entry; using Speckle.ConnectorRevit.Storage; +using Speckle.Core.Kits; using Speckle.Core.Logging; +using Speckle.Core.Models; namespace Speckle.ConnectorRevit.UI { - public partial class ConnectorBindingsRevit2 + public partial class ConnectorBindingsRevit { private string _lastSyncComment { get; set; } public override async void WriteStreamsToFile(List streams) @@ -28,7 +31,7 @@ await RevitTask.RunAsync( using (Transaction t = new Transaction(CurrentDoc.Document, "Speckle Write State")) { t.Start(); - StreamStateManager2.WriteStreamStateList(CurrentDoc.Document, streams); + StreamStateManager.WriteStreamStateList(CurrentDoc.Document, streams); t.Commit(); } @@ -88,8 +91,8 @@ private void ShowImportExportAlert() { try { - SpeckleRevitCommand2.RegisterPane(); - var panel = App.AppInstance.GetDockablePane(SpeckleRevitCommand2.PanelId); + SpeckleRevitCommand.RegisterPane(); + var panel = App.AppInstance.GetDockablePane(SpeckleRevitCommand.PanelId); panel.Show(); } catch (Exception ex) @@ -179,7 +182,7 @@ private void RevitApp_ViewActivated(object sender, Autodesk.Revit.UI.Events.View if (e.Document == null || e.PreviousActiveView == null || e.Document.GetHashCode() == e.PreviousActiveView.Document.GetHashCode()) return; - SpeckleRevitCommand2.RegisterPane(); + SpeckleRevitCommand.RegisterPane(); var streams = GetStreamsInFile(); UpdateSavedStreams(streams); @@ -223,7 +226,7 @@ private void Application_DocumentChanged(object sender, Autodesk.Revit.DB.Events { } private void Application_DocumentCreated(object sender, Autodesk.Revit.DB.Events.DocumentCreatedEventArgs e) { - SpeckleRevitCommand2.RegisterPane(); + SpeckleRevitCommand.RegisterPane(); //clear saved streams if opening a new doc if (UpdateSavedStreams != null) @@ -236,14 +239,14 @@ private void Application_DocumentOpened(object sender, Autodesk.Revit.DB.Events. var streams = GetStreamsInFile(); if (streams != null && streams.Count != 0) { - if (SpeckleRevitCommand2.UseDockablePanel) + if (SpeckleRevitCommand.UseDockablePanel) { - SpeckleRevitCommand2.RegisterPane(); - var panel = App.AppInstance.GetDockablePane(SpeckleRevitCommand2.PanelId); + SpeckleRevitCommand.RegisterPane(); + var panel = App.AppInstance.GetDockablePane(SpeckleRevitCommand.PanelId); panel.Show(); } else - SpeckleRevitCommand2.CreateOrFocusSpeckle(); + SpeckleRevitCommand.CreateOrFocusSpeckle(); } if (UpdateSavedStreams != null) UpdateSavedStreams(streams); @@ -253,5 +256,97 @@ private void Application_DocumentOpened(object sender, Autodesk.Revit.DB.Events. } + public override bool CanOpen3DView => true; + + public override async Task Open3DView(List viewCoordinates, string viewName = "") + { + try + { + var views = new FilteredElementCollector(CurrentDoc.Document).OfClass(typeof(View3D)).ToElements().Cast(); + var viewtypes = new FilteredElementCollector(CurrentDoc.Document).OfClass(typeof(ViewFamilyType)) + .ToElements() + .Cast() + .Where(x => x.ViewFamily == ViewFamily.ThreeDimensional); + + //hacky but the current comments camera is not a Base object + //so it cannot be passed automatically to the converter + //making a dummy one here + var speckleCamera = new Base(); + speckleCamera["isHackySpeckleCamera"] = true; + speckleCamera["coordinates"] = viewCoordinates; + + + //when in a perspective view, it's not possible to open any transaction (txs adsk) + //so we're switching to any other non perspective view here + if (CurrentDoc.ActiveView.ViewType == ViewType.ThreeD) + { + var activeView = CurrentDoc.ActiveView as View3D; + if (activeView.IsPerspective) + { + var nonPerspectiveView = views.FirstOrDefault(x => !x.IsPerspective); + if (nonPerspectiveView != null) + CurrentDoc.ActiveView = nonPerspectiveView; + } + + } + + var perspView = views.FirstOrDefault(o => o.Name == "SpeckleCommentView"); + + await RevitTask.RunAsync(app => + { + + using (var t = new Transaction(CurrentDoc.Document, $"Open Comment View")) + { + t.Start(); + + var converter = (ISpeckleConverter)Activator.CreateInstance(Converter.GetType()); + converter.SetContextDocument(CurrentDoc.Document); + var viewOrientation3D = converter.ConvertToNative(speckleCamera) as ViewOrientation3D; + + //txs bcfier + if (perspView == null) + { + perspView = View3D.CreatePerspective(CurrentDoc.Document, viewtypes.First().Id); + perspView.Name = "SpeckleCommentView"; + } + perspView.SetOrientation(viewOrientation3D); + perspView.CropBoxActive = false; + perspView.CropBoxVisible = false; + perspView.DisplayStyle = DisplayStyle.Shading; + + // the default phase was not looking good, picking the one of the View3D + if (views.Any()) + { + var viewPhase = views.First().get_Parameter(BuiltInParameter.VIEW_PHASE); + if (viewPhase != null) + { + perspView.get_Parameter(BuiltInParameter.VIEW_PHASE).Set(viewPhase.AsElementId()); + } + } + + t.Commit(); + } + // needs to be outside the transaction + CurrentDoc.ActiveView = perspView; + // "refresh" the active view, txs Connor + var uiView = CurrentDoc.GetOpenUIViews().FirstOrDefault(uv => uv.ViewId.Equals(perspView.Id)); + uiView.Zoom(1); + }); + + //needed to force refresh the active view + + + } + catch (Exception ex) + { + Log.CaptureException(ex, Sentry.SentryLevel.Error); + MainUserControl.NotificationManager.Show(new PopUpNotificationViewModel() + { + Title = "📷 Open View Error", + Message = $"Could not open the view: {ex.Message}", + Type = Avalonia.Controls.Notifications.NotificationType.Error + }); + } + } } } diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Mappings.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Mappings.cs similarity index 99% rename from ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Mappings.cs rename to ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Mappings.cs index 3e8c3e62b8..7a093e6ea2 100644 --- a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Mappings.cs +++ b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Mappings.cs @@ -20,7 +20,7 @@ namespace Speckle.ConnectorRevit.UI { - public partial class ConnectorBindingsRevit2 + public partial class ConnectorBindingsRevit { /// diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Previews.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Previews.cs new file mode 100644 index 0000000000..78a6c0dddf --- /dev/null +++ b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Previews.cs @@ -0,0 +1,213 @@ +using Autodesk.Revit.DB; +using Autodesk.Revit.DB.ExternalService; +using Autodesk.Revit.UI; +using Autodesk.Revit.UI.Selection; +using DesktopUI2; +using DesktopUI2.Models; +using DesktopUI2.ViewModels; +using Speckle.Core.Api; +using Speckle.Core.Kits; +using Speckle.Core.Logging; +using Speckle.Core.Models; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +using System.Collections; +using System.Collections.Concurrent; +using System.Drawing; +using System.Linq; +using System.Text.RegularExpressions; +using System.Threading; +using DesktopUI2.Models.Filters; +using DesktopUI2.Models.Settings; +using Speckle.Core.Transports; +using Speckle.Newtonsoft.Json; +using static DesktopUI2.ViewModels.MappingViewModel; +using ApplicationObject = Speckle.Core.Models.ApplicationObject; +using Avalonia.Threading; +using Autodesk.Revit.DB.DirectContext3D; +using Revit.Async; +using DynamicData; + +namespace Speckle.ConnectorRevit.UI +{ + public partial class ConnectorBindingsRevit + { + public override bool CanPreviewReceive => true; + private string SelectedReceiveCommit { get; set; } + List m_servers = new List(); + + public override async Task PreviewReceive(StreamState state, ProgressViewModel progress) + { + // first check if commit is the same and preview objects have already been generated + Commit commit = await GetCommitFromState(state, progress); + progress.Report = new ProgressReport(); + + if (commit.id != SelectedReceiveCommit) + { + // check for converter + var converter = KitManager.GetDefaultKit().LoadConverter(ConnectorRevitUtils.RevitAppName); + if (converter == null) + { + progress.Report.LogOperationError(new SpeckleException("Could not find any Kit!")); + return null; + } + converter.SetContextDocument(CurrentDoc.Document); + + var settings = new Dictionary(); + CurrentSettings = state.Settings; + foreach (var setting in state.Settings) + settings.Add(setting.Slug, setting.Selection); + + settings["preview"] = "true"; + converter.SetConverterSettings(settings); + + var commitObject = await GetCommit(commit, state, progress); + if (commitObject == null) + { + progress.Report.LogOperationError(new Exception($"Could not retrieve commit {commit.id} from server")); + progress.CancellationTokenSource.Cancel(); + } + + Preview.Clear(); + StoredObjects.Clear(); + + Preview = FlattenCommitObject(commitObject, converter); + foreach (var previewObj in Preview) + progress.Report.Log(previewObj); + + List applicationObjects = null; + await RevitTask.RunAsync(app => + { + using (var t = new Transaction(CurrentDoc.Document, $"Baking stream {state.StreamId}")) + { + t.Start(); + applicationObjects = ConvertReceivedObjects(converter, progress); + t.Commit(); + } + + AddMultipleRevitElementServers(applicationObjects); + }); + } + else // just generate the log + { + foreach (var previewObj in Preview) + progress.Report.Log(previewObj); + } + return null; + } + + public override void ResetDocument() + { + UnregisterServers(); + } + + #region move these? + // gets the state commit + private async Task GetCommitFromState(StreamState state, ProgressViewModel progress) + { + Commit commit = null; + if (state.CommitId == "latest") //if "latest", always make sure we get the latest commit + { + var res = await state.Client.BranchGet(progress.CancellationTokenSource.Token, state.StreamId, state.BranchName, 1); + commit = res.commits.items.FirstOrDefault(); + } + else + { + var res = await state.Client.CommitGet(progress.CancellationTokenSource.Token, state.StreamId, state.CommitId); + commit = res; + } + if (progress.CancellationTokenSource.Token.IsCancellationRequested) + return null; + return commit; + } + private async Task GetCommit(Commit commit, StreamState state, ProgressViewModel progress) + { + var transport = new ServerTransport(state.Client.Account, state.StreamId); + + var commitObject = await Operations.Receive( + commit.referencedObject, + progress.CancellationTokenSource.Token, + transport, + onProgressAction: dict => progress.Update(dict), + onErrorAction: (s, e) => + { + progress.Report.LogOperationError(e); + progress.CancellationTokenSource.Cancel(); + }, + onTotalChildrenCountKnown: (c) => progress.Max = c, + disposeTransports: true + ); + + if (progress.Report.OperationErrorsCount != 0) + return null; + + return commitObject; + } + #endregion + public void AddMultipleRevitElementServers(List applicationObjects) + { + ExternalService directContext3DService = ExternalServiceRegistry.GetService(ExternalServices.BuiltInExternalServices.DirectContext3DService); + MultiServerService msDirectContext3DService = directContext3DService as MultiServerService; + IList serverIds = msDirectContext3DService.GetActiveServerIds(); + + foreach (var appObj in applicationObjects) + { + if (!(appObj.Converted.FirstOrDefault() is IDirectContext3DServer server)) + continue; + + directContext3DService.AddServer(server); + m_servers.Add(server); + serverIds.Add(server.GetServerId()); + //RefreshView(); + } + + msDirectContext3DService.SetActiveServers(serverIds); + + //m_documents.Add(uidoc.Document); + CurrentDoc.UpdateAllOpenViews(); + } + + public void UnregisterServers() + { + ExternalServiceId externalDrawerServiceId = ExternalServices.BuiltInExternalServices.DirectContext3DService; + var externalDrawerService = ExternalServiceRegistry.GetService(externalDrawerServiceId) as MultiServerService; + if (externalDrawerService == null) + return; + + foreach (var registeredServerId in externalDrawerService.GetRegisteredServerIds()) + { + var externalDrawServer = externalDrawerService.GetServer(registeredServerId) as IDirectContext3DServer; + if (externalDrawServer == null) + continue; + //if (document != null && !document.Equals(externalDrawServer.Document)) + // continue; + externalDrawerService.RemoveServer(registeredServerId); + } + + m_servers.Clear(); + CurrentDoc.UpdateAllOpenViews(); + } + + public override bool CanPreviewSend => true; + + public override void PreviewSend(StreamState state, ProgressViewModel progress) + { + var filterObjs = GetSelectionFilterObjects(state.Filter); + foreach (var filterObj in filterObjs) + { + var converter = (ISpeckleConverter)Activator.CreateInstance(Converter.GetType()); + var descriptor = ConnectorRevitUtils.ObjectDescriptor(filterObj); + var reportObj = new ApplicationObject(filterObj.UniqueId, descriptor); + if (!converter.CanConvertToSpeckle(filterObj)) + reportObj.Update(status: ApplicationObject.State.Skipped, logItem: $"Sending this object type is not supported in Revit"); + else + reportObj.Update(status: ApplicationObject.State.Created); + progress.Report.Log(reportObj); + } + SelectClientObjects(filterObjs.Select(o => o.UniqueId).ToList()); + } + } +} diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Receive.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Receive.cs index 1c77d1e7f4..d1c2ecc63b 100644 --- a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Receive.cs +++ b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Receive.cs @@ -3,146 +3,160 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; +using System.Threading; using System.Threading.Tasks; using Autodesk.Revit.DB; -using ConnectorRevit; +using Avalonia.Threading; using ConnectorRevit.Revit; -using Speckle.ConnectorRevit.Entry; -using Speckle.ConnectorRevit.Storage; +using DesktopUI2.Models; +using DesktopUI2.Models.Settings; +using DesktopUI2.ViewModels; +using Revit.Async; using Speckle.Core.Api; using Speckle.Core.Kits; -using Speckle.Core.Logging; using Speckle.Core.Models; using Speckle.Core.Transports; -using Speckle.DesktopUI.Utils; -using Stylet; -using RevitElement = Autodesk.Revit.DB.Element; namespace Speckle.ConnectorRevit.UI { + public partial class ConnectorBindingsRevit { + public List Preview { get; set; } = new List(); + public Dictionary StoredObjects = new Dictionary(); /// /// Receives a stream and bakes into the existing revit file. /// /// /// - public override async Task ReceiveStream(StreamState state) + /// + public override async Task ReceiveStream(StreamState state, ProgressViewModel progress) { - ConversionErrors.Clear(); - OperationErrors.Clear(); - - var kit = KitManager.GetDefaultKit(); - var converter = kit.LoadConverter(ConnectorRevitUtils.RevitAppName); + //make sure to instance a new copy so all values are reset correctly + var converter = (ISpeckleConverter)Activator.CreateInstance(Converter.GetType()); converter.SetContextDocument(CurrentDoc.Document); var previouslyReceiveObjects = state.ReceivedObjects; - var transport = new ServerTransport(state.Client.Account, state.Stream.id); + // set converter settings as tuples (setting slug, setting selection) + var settings = new Dictionary(); + CurrentSettings = state.Settings; + foreach (var setting in state.Settings) + settings.Add(setting.Slug, setting.Selection); + converter.SetConverterSettings(settings); - string referencedObject = state.Commit.referencedObject; + var transport = new ServerTransport(state.Client.Account, state.StreamId); - if (state.CancellationTokenSource.Token.IsCancellationRequested) - { + var stream = await state.Client.StreamGet(state.StreamId); + + if (progress.CancellationTokenSource.Token.IsCancellationRequested) return null; - } + Commit myCommit = null; //if "latest", always make sure we get the latest commit when the user clicks "receive" - if (state.Commit.id == "latest") + if (state.CommitId == "latest") { - var res = await state.Client.BranchGet(state.CancellationTokenSource.Token, state.Stream.id, state.Branch.name, 1); - referencedObject = res.commits.items.FirstOrDefault().referencedObject; + var res = await state.Client.BranchGet(progress.CancellationTokenSource.Token, state.StreamId, state.BranchName, 1); + myCommit = res.commits.items.FirstOrDefault(); } + else + { + myCommit = await state.Client.CommitGet(progress.CancellationTokenSource.Token, state.StreamId, state.CommitId); + } + + state.LastSourceApp = myCommit.sourceApplication; - var commit = state.Commit; + string referencedObject = myCommit.referencedObject; var commitObject = await Operations.Receive( referencedObject, - state.CancellationTokenSource.Token, + progress.CancellationTokenSource.Token, transport, - onProgressAction: dict => UpdateProgress(dict, state.Progress), + onProgressAction: dict => progress.Update(dict), onErrorAction: (s, e) => { - OperationErrors.Add(e); - state.Errors.Add(e); - state.CancellationTokenSource.Cancel(); + progress.Report.LogOperationError(e); + progress.CancellationTokenSource.Cancel(); }, - onTotalChildrenCountKnown: count => Execute.PostToUIThread(() => state.Progress.Maximum = count), + onTotalChildrenCountKnown: count => { progress.Max = count; }, disposeTransports: true ); - if (OperationErrors.Count != 0) + try { - Globals.Notify("Failed to get commit."); - return state; + await state.Client.CommitReceived(new CommitReceivedInput + { + streamId = stream?.id, + commitId = myCommit?.id, + message = myCommit?.message, + sourceApplication = ConnectorRevitUtils.RevitAppName + }); } - - if (state.CancellationTokenSource.Token.IsCancellationRequested) + catch { + // Do nothing! + } + + if (progress.Report.OperationErrorsCount != 0) + return state; + + if (progress.CancellationTokenSource.Token.IsCancellationRequested) return null; + + Preview.Clear(); + StoredObjects.Clear(); + + + Preview = FlattenCommitObject(commitObject, converter); + foreach (var previewObj in Preview) + progress.Report.Log(previewObj); + + converter.ReceiveMode = state.ReceiveMode; + // needs to be set for editing to work + converter.SetPreviousContextObjects(previouslyReceiveObjects); + // needs to be set for openings in floors and roofs to work + converter.SetContextObjects(Preview); + + try + { + await RevitTask.RunAsync(() => UpdateForCustomMapping(state, progress, myCommit.sourceApplication)); + } + catch (Exception ex) + { + progress.Report.LogOperationError(new Exception("Could not update receive object with user types. Using default mapping.")); } - // Bake the new ones. - Queue.Add(() => + await RevitTask.RunAsync(app => { - using (var t = new Transaction(CurrentDoc.Document, $"Baking stream {state.Stream.name}")) + using (var t = new Transaction(CurrentDoc.Document, $"Baking stream {state.StreamId}")) { var failOpts = t.GetFailureHandlingOptions(); failOpts.SetFailuresPreprocessor(new ErrorEater(converter)); failOpts.SetClearAfterRollback(true); t.SetFailureHandlingOptions(failOpts); - t.Start(); - var flattenedObjects = FlattenCommitObject(commitObject, converter); - // needs to be set for editing to work - converter.SetPreviousContextObjects(previouslyReceiveObjects); - // needs to be set for openings in floors and roofs to work - converter.SetContextObjects(flattenedObjects.Select(x => new ApplicationObject(x.id, ConnectorRevitUtils.SimplifySpeckleType(x.speckle_type)) { applicationId = x.applicationId }).ToList()); - var newPlaceholderObjects = ConvertReceivedObjects(flattenedObjects, converter, state); + + var newPlaceholderObjects = ConvertReceivedObjects(converter, progress); // receive was cancelled by user if (newPlaceholderObjects == null) { - converter.Report.LogConversionError(new Exception("fatal error: receive cancelled by user")); + progress.Report.LogOperationError(new Exception("fatal error: receive cancelled by user")); t.RollBack(); return; } - DeleteObjects(previouslyReceiveObjects, newPlaceholderObjects); + if (state.ReceiveMode == ReceiveMode.Update) + DeleteObjects(previouslyReceiveObjects, newPlaceholderObjects); state.ReceivedObjects = newPlaceholderObjects; t.Commit(); - - state.Errors.AddRange(converter.Report.ConversionErrors); } }); - Executor.Raise(); - - while (Queue.Count > 0) - { - //wait to let queue finish - } - - if (converter.Report.ConversionErrorsString.Contains("fatal error")) - { - // the commit is being rolled back - return null; - } - - try - { - await state.RefreshStream(); - - WriteStateToFile(); - } - catch (Exception e) - { - WriteStateToFile(); - state.Errors.Add(e); - Globals.Notify($"Receiving done, but failed to update stream from server.\n{e.Message}"); - } + if (converter.Report.OperationErrors.Any(x => x.Message.Contains("fatal error"))) + return null; // the commit is being rolled back return state; } @@ -152,7 +166,7 @@ private void DeleteObjects(List previouslyReceiveObjects, Lis { foreach (var obj in previouslyReceiveObjects) { - if (newPlaceholderObjects.Any(x => x.applicationId == obj.applicationId)) + if (obj.CreatedIds.Count == 0 || newPlaceholderObjects.Any(x => x.applicationId == obj.applicationId)) continue; var element = CurrentDoc.Document.GetElement(obj.CreatedIds.FirstOrDefault()); @@ -161,15 +175,20 @@ private void DeleteObjects(List previouslyReceiveObjects, Lis } } - private List ConvertReceivedObjects(List objects, ISpeckleConverter converter, StreamState state) + private List ConvertReceivedObjects(ISpeckleConverter converter, ProgressViewModel progress) { var placeholders = new List(); var conversionProgressDict = new ConcurrentDictionary(); conversionProgressDict["Conversion"] = 1; - foreach (var @base in objects) + // Get setting to skip linked model elements if necessary + var receiveLinkedModelsSetting = CurrentSettings.FirstOrDefault(x => x.Slug == "linkedmodels-receive") as CheckBoxSetting; + var receiveLinkedModels = receiveLinkedModelsSetting != null ? receiveLinkedModelsSetting.IsChecked : false; + + foreach (var obj in Preview) { - if (state.CancellationTokenSource.Token.IsCancellationRequested) + var @base = StoredObjects[obj.OriginalId]; + if (progress.CancellationTokenSource.Token.IsCancellationRequested) { placeholders = null; break; @@ -178,51 +197,78 @@ private List ConvertReceivedObjects(List objects, ISpec try { conversionProgressDict["Conversion"]++; - // wrapped in a dispatcher not to block the ui - SpeckleRevitCommand.Bootstrapper.RootWindow.Dispatcher.Invoke(() => - { - UpdateProgress(conversionProgressDict, state.Progress); - }, System.Windows.Threading.DispatcherPriority.Background); + progress.Update(conversionProgressDict); + + var s = new CancellationTokenSource(); + DispatcherTimer.RunOnce(() => s.Cancel(), TimeSpan.FromMilliseconds(10)); + Dispatcher.UIThread.MainLoop(s.Token); + + //skip element if is from a linked file and setting is off + if (!receiveLinkedModels && @base["isRevitLinkedModel"] != null && bool.Parse(@base["isRevitLinkedModel"].ToString())) + continue; var convRes = converter.ConvertToNative(@base); - if (convRes is ApplicationObject placeholder) - placeholders.Add(placeholder); - else if (convRes is List placeholderList) - placeholders.AddRange(placeholderList); + RefreshView(); + + switch (convRes) + { + case ApplicationObject o: + placeholders.Add(o); + obj.Update(status: o.Status, createdIds: o.CreatedIds, converted: o.Converted, log: o.Log); + progress.Report.UpdateReportObject(obj); + break; + default: + break; + } } catch (Exception e) { - state.Errors.Add(e); + obj.Update(status: ApplicationObject.State.Failed, logItem: e.Message); + progress.Report.UpdateReportObject(obj); } } return placeholders; } + private void RefreshView() + { + //regenerate the document and then implement a hack to "refresh" the view + CurrentDoc.Document.Regenerate(); + + // get the active ui view + var view = CurrentDoc.ActiveGraphicalView ?? CurrentDoc.Document.ActiveView; + var uiView = CurrentDoc.GetOpenUIViews().FirstOrDefault(uv => uv.ViewId.Equals(view.Id)); + + // "refresh" the active view + uiView.Zoom(1); + } + /// /// Recurses through the commit object and flattens it. /// /// /// /// - private List FlattenCommitObject(object obj, ISpeckleConverter converter) + private List FlattenCommitObject(object obj, ISpeckleConverter converter) { - List objects = new List(); + var objects = new List(); if (obj is Base @base) { + var appObj = new ApplicationObject(@base.id, ConnectorRevitUtils.SimplifySpeckleType(@base.speckle_type)) { applicationId = @base.applicationId, Status = ApplicationObject.State.Unknown }; + if (converter.CanConvertToNative(@base)) { - objects.Add(@base); - + appObj.Convertible = true; + objects.Add(appObj); + StoredObjects.Add(@base.id, @base); return objects; } else { foreach (var prop in @base.GetDynamicMembers()) - { objects.AddRange(FlattenCommitObject(@base[prop], converter)); - } return objects; } } @@ -230,21 +276,27 @@ private List FlattenCommitObject(object obj, ISpeckleConverter converter) if (obj is List list) { foreach (var listObj in list) - { objects.AddRange(FlattenCommitObject(listObj, converter)); - } return objects; } if (obj is IDictionary dict) { foreach (DictionaryEntry kvp in dict) - { objects.AddRange(FlattenCommitObject(kvp.Value, converter)); - } return objects; } + else + { + if (obj != null && !obj.GetType().IsPrimitive && !(obj is string)) + { + var appObj = new ApplicationObject(obj.GetHashCode().ToString(), obj.GetType().ToString()); + appObj.Update(status: ApplicationObject.State.Skipped, logItem: $"Receiving this object type is not supported in Revit"); + objects.Add(appObj); + } + } + return objects; } } diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Selection.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Selection.cs index 409d9cab2b..619ae58c01 100644 --- a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Selection.cs +++ b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Selection.cs @@ -1,33 +1,22 @@ using System; -using System.Collections; -using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; using Autodesk.Revit.DB; using ConnectorRevit; -using Speckle.ConnectorRevit.Storage; -using Speckle.Core.Api; -using Speckle.Core.Kits; +using DesktopUI2.Models.Filters; +using DesktopUI2.Models.Settings; using Speckle.Core.Logging; -using Speckle.Core.Models; -using Speckle.Core.Transports; -using Speckle.DesktopUI.Utils; -using Stylet; -using RevitElement = Autodesk.Revit.DB.Element; namespace Speckle.ConnectorRevit.UI { public partial class ConnectorBindingsRevit { - - - //TODO: store these string values in something more solid to avoid typos? public override List GetSelectionFilters() { var categories = new List(); var parameters = new List(); var views = new List(); + var worksets = new List(); var projectInfo = new List { "Project Info", "Levels", "Views 2D", "Views 3D", "Families & Types" }; if (CurrentDoc != null) @@ -36,25 +25,32 @@ public override List GetSelectionFilters() categories = ConnectorRevitUtils.GetCategoryNames(CurrentDoc.Document); parameters = ConnectorRevitUtils.GetParameterNames(CurrentDoc.Document); views = ConnectorRevitUtils.GetViewNames(CurrentDoc.Document); + worksets = ConnectorRevitUtils.GetWorksets(CurrentDoc.Document); } - return new List + var filters = new List { - new ListSelectionFilter {Slug="category", Name = "Cat", Icon = "Category", Values = categories, Description="Adds all objects belonging to the selected categories"}, + new AllSelectionFilter {Slug="all", Name = "Everything", Icon = "CubeScan", Description = "Sends all supported elements and project information." }, + new ManualSelectionFilter(), + new ListSelectionFilter {Slug="category", Name = "Category", Icon = "Category", Values = categories, Description="Adds all elements belonging to the selected categories"}, new ListSelectionFilter {Slug="view", Name = "View", Icon = "RemoveRedEye", Values = views, Description="Adds all objects visible in the selected views" }, - new ListSelectionFilter {Slug="project-info", Name = "P. Info", Icon = "Information", Values = projectInfo, Description="Adds the selected project information such as levels, views and family names to the stream"}, - new PropertySelectionFilter + new ListSelectionFilter {Slug="project-info", Name = "Project Information", Icon = "Information", Values = projectInfo, Description="Adds the selected project information such as levels, views and family names to the stream"}, + new PropertySelectionFilter { Slug="param", - Name = "Param", - Description="Adds all objects satisfying the selected parameter", + Name = "Parameter", + Description="Adds all objects satisfying the selected parameter", Icon = "FilterList", - HasCustomProperty = false, Values = parameters, Operators = new List {"equals", "contains", "is greater than", "is less than"} - }, - new AllSelectionFilter {Slug="all", Name = "All", Icon = "CubeScan", Description = "Selects all document objects and project information." } + } + }; + if (worksets.Any()) + filters.Insert(4, new ListSelectionFilter { Slug = "workset", Name = "Workset", Icon = "Group", Values = worksets, Description = "Adds all elements belonging to the selected workset" }); + + + return filters; } public override List GetSelectedObjects() @@ -81,133 +77,237 @@ public override List GetObjectsInView() return elementIds; } + public override void SelectClientObjects(List args, bool deselect = false) + { + var selection = args.Select(x => CurrentDoc.Document.GetElement(x))?.Where(x => x != null)?.Select(x => x.Id)?.ToList(); + if (selection != null) + { + if (!deselect) + { + var currentSelection = CurrentDoc.Selection.GetElementIds().ToList(); + if (currentSelection != null) currentSelection.AddRange(selection); + else currentSelection = selection; + try + { + CurrentDoc.Selection.SetElementIds(currentSelection); + CurrentDoc.ShowElements(currentSelection); + } + catch (Exception e) { } + } + else + { + var updatedSelection = CurrentDoc.Selection.GetElementIds().Where(x => !selection.Contains(x)).ToList(); + CurrentDoc.Selection.SetElementIds(updatedSelection); + if (updatedSelection.Any()) CurrentDoc.ShowElements(updatedSelection); + } + } + } + + private List GetLinkedDocuments() + { + var docs = new List(); + + // Get settings and return empty list if we should not send linked models + var sendLinkedModels = CurrentSettings?.FirstOrDefault(x => x.Slug == "linkedmodels-send") as CheckBoxSetting; + if (sendLinkedModels == null || !sendLinkedModels.IsChecked) + return docs; + + + //TODO: is the name the most safe way to look for it? + var linkedRVTs = new FilteredElementCollector(CurrentDoc.Document).OfCategory(BuiltInCategory.OST_RvtLinks).OfClass(typeof(RevitLinkType)).ToElements().Cast().Select(x => x.Name.Replace(".rvt", "")); + foreach (Document revitDoc in RevitApp.Application.Documents) + { + if (revitDoc.IsLinked && linkedRVTs.Contains(revitDoc.Title)) + { + docs.Add(revitDoc); + } + } + + return docs; + } + /// /// Given the filter in use by a stream returns the document elements that match it. /// /// /// - private List GetSelectionFilterObjects(ISelectionFilter filter, ISpeckleConverter converter) + private List GetSelectionFilterObjects(ISelectionFilter filter) { - var doc = CurrentDoc.Document; + var currentDoc = CurrentDoc.Document; + var allDocs = GetLinkedDocuments(); + allDocs.Add(currentDoc); var selection = new List(); - - switch (filter.Slug) + try { - case "all": - selection.AddRange(doc.SupportedElements()); // includes levels - selection.Add(doc.ProjectInformation); - selection.AddRange(doc.Views2D()); - selection.AddRange(doc.Views3D()); - selection.AddRange(doc.SupportedTypes()); - return selection; - - case "category": - var catFilter = filter as ListSelectionFilter; - var bics = new List(); - var categories = ConnectorRevitUtils.GetCategories(doc); - IList elementFilters = new List(); - - foreach (var cat in catFilter.Selection) - { - elementFilters.Add(new ElementCategoryFilter(categories[cat].Id)); - } - var categoryFilter = new LogicalOrFilter(elementFilters); + switch (filter.Slug) + { + + case "manual": + selection = filter.Selection.Select(x => CurrentDoc.Document.GetElement(x)).Where(x => x != null).ToList(); + var linkedFiles = selection.Where(x => x is RevitLinkInstance).Cast().ToList(); + + foreach (var linkedFile in linkedFiles) + { + var match = allDocs.FirstOrDefault(x => x.Title == linkedFile.Name.Split(new string[] { ".rvt" }, StringSplitOptions.None)[0]); + if (match != null) + selection.AddRange(match.SupportedElements()); + } + + return selection; + + case "all": + //add these only for the current doc + selection.Add(currentDoc.ProjectInformation); + selection.AddRange(currentDoc.Views2D()); + selection.AddRange(currentDoc.Views3D()); - selection = new FilteredElementCollector(doc) - .WhereElementIsNotElementType() - .WhereElementIsViewIndependent() - .WherePasses(categoryFilter).ToList(); - return selection; + //and these for every linked doc + foreach (var doc in allDocs) + { + selection.AddRange(doc.SupportedElements()); // includes levels + selection.AddRange(doc.SupportedTypes()); + } - case "view": - var viewFilter = filter as ListSelectionFilter; + return selection; - var views = new FilteredElementCollector(doc) - .WhereElementIsNotElementType() - .OfClass(typeof(View)) - .Where(x => viewFilter.Selection.Contains(x.Name)); + case "category": + var catFilter = filter as ListSelectionFilter; + var bics = new List(); + var categories = ConnectorRevitUtils.GetCategories(currentDoc); + IList elementFilters = new List(); - foreach (var view in views) - { - var ids = selection.Select(x => x.UniqueId); + foreach (var cat in catFilter.Selection) + { + elementFilters.Add(new ElementCategoryFilter(categories[cat].Id)); + } + + var categoryFilter = new LogicalOrFilter(elementFilters); + foreach (var doc in allDocs) + { + selection.AddRange(new FilteredElementCollector(doc) + .WhereElementIsNotElementType() + .WhereElementIsViewIndependent() + .WherePasses(categoryFilter).ToList()); + } - var viewElements = new FilteredElementCollector(doc, view.Id) + return selection; + + case "view": + var viewFilter = filter as ListSelectionFilter; + + var views = new FilteredElementCollector(currentDoc) .WhereElementIsNotElementType() - .WhereElementIsViewIndependent() - .Where(x => x.IsPhysicalElement()) - .Where(x => !ids.Contains(x.UniqueId)) //exclude elements already added from other views - .ToList(); + .OfClass(typeof(View)) + .Where(x => viewFilter.Selection.Contains(x.Name)); - selection.AddRange(viewElements); - } - return selection; + foreach (var view in views) + { + var ids = selection.Select(x => x.UniqueId); + + foreach (var doc in allDocs) + { + selection.AddRange(new FilteredElementCollector(doc, view.Id) + .WhereElementIsNotElementType() + .WhereElementIsViewIndependent() + //.Where(x => x.IsPhysicalElement()) + .Where(x => !ids.Contains(x.UniqueId)) //exclude elements already added from other views + .ToList()); + } + } + return selection; - case "project-info": - var projectInfoFilter = filter as ListSelectionFilter; + case "project-info": + var projectInfoFilter = filter as ListSelectionFilter; - if (projectInfoFilter.Selection.Contains("Project Info")) - selection.Add(doc.ProjectInformation); + if (projectInfoFilter.Selection.Contains("Project Info")) + selection.Add(currentDoc.ProjectInformation); - if (projectInfoFilter.Selection.Contains("Views 2D")) - selection.AddRange(doc.Views2D()); + if (projectInfoFilter.Selection.Contains("Views 2D")) + selection.AddRange(currentDoc.Views2D()); - if (projectInfoFilter.Selection.Contains("Views 3D")) - selection.AddRange(doc.Views3D()); + if (projectInfoFilter.Selection.Contains("Views 3D")) + selection.AddRange(currentDoc.Views3D()); - if (projectInfoFilter.Selection.Contains("Levels")) - selection.AddRange(doc.Levels()); + if (projectInfoFilter.Selection.Contains("Levels")) + selection.AddRange(currentDoc.Levels()); - if (projectInfoFilter.Selection.Contains("Families & Types")) - selection.AddRange(doc.SupportedTypes()); + if (projectInfoFilter.Selection.Contains("Families & Types")) + selection.AddRange(currentDoc.SupportedTypes()); - return selection; + return selection; - case "param": - try - { - var propFilter = filter as PropertySelectionFilter; - var query = new FilteredElementCollector(doc) - .WhereElementIsNotElementType() - .WhereElementIsNotElementType() - .WhereElementIsViewIndependent() - .Where(x => x.IsPhysicalElement()) - .Where(fi => fi.LookupParameter(propFilter.PropertyName) != null); + case "workset": + var worksetFilter = filter as ListSelectionFilter; + var worksets = new FilteredWorksetCollector(currentDoc).Where(x => worksetFilter.Selection.Contains(x.Name)).Select(x => x.Id).ToList(); + foreach (var doc in allDocs) + { + var collector = new FilteredElementCollector(doc); + var elementWorksetFilters = new List(); - propFilter.PropertyValue = propFilter.PropertyValue.ToLowerInvariant(); + foreach (var w in worksets) + { + elementWorksetFilters.Add(new ElementWorksetFilter(w)); + } + + var worksetLogicalFilter = new LogicalOrFilter(elementWorksetFilters); + selection.AddRange(collector.WherePasses(worksetLogicalFilter).ToElements().ToList()); + } + return selection; - switch (propFilter.PropertyOperator) + case "param": + try { - case "equals": - query = query.Where(fi => - GetStringValue(fi.LookupParameter(propFilter.PropertyName)) == propFilter.PropertyValue); - break; - case "contains": - query = query.Where(fi => - GetStringValue(fi.LookupParameter(propFilter.PropertyName)).Contains(propFilter.PropertyValue)); - break; - case "is greater than": - query = query.Where(fi => RevitVersionHelper.ConvertFromInternalUnits( - fi.LookupParameter(propFilter.PropertyName).AsDouble(), - fi.LookupParameter(propFilter.PropertyName)) > - double.Parse(propFilter.PropertyValue)); - break; - case "is less than": - query = query.Where(fi => RevitVersionHelper.ConvertFromInternalUnits( - fi.LookupParameter(propFilter.PropertyName).AsDouble(), - fi.LookupParameter(propFilter.PropertyName)) < - double.Parse(propFilter.PropertyValue)); - break; + foreach (var doc in allDocs) + { + var propFilter = filter as PropertySelectionFilter; + var query = new FilteredElementCollector(doc) + .WhereElementIsNotElementType() + .WhereElementIsNotElementType() + .WhereElementIsViewIndependent() + .Where(x => x.IsPhysicalElement()) + .Where(fi => fi.LookupParameter(propFilter.PropertyName) != null); + + propFilter.PropertyValue = propFilter.PropertyValue.ToLowerInvariant(); + + switch (propFilter.PropertyOperator) + { + case "equals": + query = query.Where(fi => + GetStringValue(fi.LookupParameter(propFilter.PropertyName)) == propFilter.PropertyValue); + break; + case "contains": + query = query.Where(fi => + GetStringValue(fi.LookupParameter(propFilter.PropertyName)).Contains(propFilter.PropertyValue)); + break; + case "is greater than": + query = query.Where(fi => RevitVersionHelper.ConvertFromInternalUnits( + fi.LookupParameter(propFilter.PropertyName).AsDouble(), + fi.LookupParameter(propFilter.PropertyName)) > + double.Parse(propFilter.PropertyValue)); + break; + case "is less than": + query = query.Where(fi => RevitVersionHelper.ConvertFromInternalUnits( + fi.LookupParameter(propFilter.PropertyName).AsDouble(), + fi.LookupParameter(propFilter.PropertyName)) < + double.Parse(propFilter.PropertyValue)); + break; + } + + selection.AddRange(query.ToList()); + } } + catch (Exception e) + { + Log.CaptureException(e); + } + return selection; + } + } + catch (Exception e) + { - selection = query.ToList(); - } - catch (Exception e) - { - Log.CaptureException(e); - } - return selection; } return selection; diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Send.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Send.cs index 57a16df910..c1aeaf5bfd 100644 --- a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Send.cs +++ b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.Send.cs @@ -1,180 +1,257 @@ using System; -using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; +using System.Threading; using System.Threading.Tasks; using Autodesk.Revit.DB; -using Speckle.ConnectorRevit.Storage; +using Avalonia.Threading; +using DesktopUI2.Models; +using DesktopUI2.Models.Settings; +using DesktopUI2.ViewModels; +using Revit.Async; using Speckle.Core.Api; using Speckle.Core.Kits; -using Speckle.Core.Logging; using Speckle.Core.Models; using Speckle.Core.Transports; -using Speckle.DesktopUI.Utils; -using Stylet; namespace Speckle.ConnectorRevit.UI { public partial class ConnectorBindingsRevit { + // used to store the Stream State settings when sending/receiving + private List CurrentSettings { get; set; } + /// /// Converts the Revit elements that have been added to the stream by the user, sends them to /// the Server and the local DB, and creates a commit with the objects. /// /// StreamState passed by the UI - public override async Task SendStream(StreamState state) + public override async Task SendStream(StreamState state, ProgressViewModel progress) { - ConversionErrors.Clear(); - OperationErrors.Clear(); - - var kit = KitManager.GetDefaultKit(); - var converter = kit.LoadConverter(ConnectorRevitUtils.RevitAppName); + //make sure to instance a new copy so all values are reset correctly + var converter = (ISpeckleConverter)Activator.CreateInstance(Converter.GetType()); converter.SetContextDocument(CurrentDoc.Document); + converter.Report.ReportObjects.Clear(); + + // set converter settings as tuples (setting slug, setting selection) + var settings = new Dictionary(); + CurrentSettings = state.Settings; + foreach (var setting in state.Settings) + settings.Add(setting.Slug, setting.Selection); + converter.SetConverterSettings(settings); - var streamId = state.Stream.id; + var streamId = state.StreamId; var client = state.Client; - var selectedObjects = new List(); - - if (state.Filter != null) - { - selectedObjects = GetSelectionFilterObjects(state.Filter, converter); - state.SelectedObjectIds = selectedObjects.Select(x => x.UniqueId).ToList(); - } - else //selection was by cursor - { - // TODO: update state by removing any deleted or null object ids - selectedObjects = state.SelectedObjectIds.Select(x => CurrentDoc.Document.GetElement(x)).Where(x => x != null).ToList(); - } + var selectedObjects = GetSelectionFilterObjects(state.Filter); + state.SelectedObjectIds = selectedObjects.Select(x => x.UniqueId).ToList(); if (!selectedObjects.Any()) { - state.Errors.Add(new Exception("There are zero objects to send. Please use a filter, or set some via selection.")); - return state; + progress.Report.LogOperationError(new Exception("There are zero objects to send. Please use a filter, or set some via selection.")); + return null; } converter.SetContextObjects(selectedObjects.Select(x => new ApplicationObject(x.UniqueId, x.GetType().ToString()) { applicationId = x.UniqueId }).ToList()); - - var commitObject = new Base(); + var commitObject = converter.ConvertToSpeckle(CurrentDoc.Document) ?? new Base(); var conversionProgressDict = new ConcurrentDictionary(); conversionProgressDict["Conversion"] = 0; - Execute.PostToUIThread(() => state.Progress.Maximum = selectedObjects.Count()); + + progress.Max = selectedObjects.Count(); var convertedCount = 0; - var placeholders = new List(); - foreach (var revitElement in selectedObjects) + var cancelSend = await RevitTask.RunAsync(app => { - try + foreach (var revitElement in selectedObjects) { - if (revitElement == null) - continue; - - if (!converter.CanConvertToSpeckle(revitElement)) + var descriptor = ConnectorRevitUtils.ObjectDescriptor(revitElement); + // get the report object + // for hosted elements, they may have already been converted and added to the converter report + bool alreadyConverted = converter.Report.GetReportObject(revitElement.UniqueId, out int index); + var reportObj = alreadyConverted ? + converter.Report.ReportObjects[index] : + new ApplicationObject(revitElement.UniqueId, descriptor) { applicationId = revitElement.UniqueId }; + if (alreadyConverted) { - state.Errors.Add(new Exception($"Skipping not supported type: {revitElement.GetType()}, name {revitElement.Name}")); + progress.Report.Log(reportObj); continue; } - - var conversionResult = converter.ConvertToSpeckle(revitElement); - - conversionProgressDict["Conversion"]++; - UpdateProgress(conversionProgressDict, state.Progress); - - placeholders.Add(new ApplicationObject(revitElement.UniqueId, revitElement.GetType().ToString()) { applicationId = revitElement.UniqueId }); - - convertedCount++; - - //hosted elements will be returned as `null` by the ConvertToSpeckle method - //since they are handled when converting their parents - if (conversionResult != null) + try { - var category = $"@{revitElement.Category.Name}"; - if (commitObject[category] == null) - commitObject[category] = new List(); - - ((List)commitObject[category]).Add(conversionResult); + if (revitElement == null) + continue; + + if (!converter.CanConvertToSpeckle(revitElement)) + { + reportObj.Update(status: ApplicationObject.State.Skipped, logItem: $"Sending this object type is not supported in Revit"); + progress.Report.Log(reportObj); + continue; + } + + if (progress.CancellationTokenSource.Token.IsCancellationRequested) + return true; + + converter.Report.Log(reportObj); // Log object so converter can access + + var conversionResult = converter.ConvertToSpeckle(revitElement); + + conversionProgressDict["Conversion"]++; + progress.Update(conversionProgressDict); + + var s = new CancellationTokenSource(); + DispatcherTimer.RunOnce(() => s.Cancel(), TimeSpan.FromMilliseconds(1)); + Dispatcher.UIThread.MainLoop(s.Token); + + convertedCount++; + + if (conversionResult == null) + { + reportObj.Update(status: ApplicationObject.State.Failed, logItem: $"Conversion returned null"); + progress.Report.Log(reportObj); + continue; + } + + // here we are checking to see if we're receiving an object that has a host + // but the host doesn't know that it is a host + if (conversionResult["speckleHost"] is Base host && host["category"] is string catName) + { + commitObject[$"@{catName}"] ??= new List(); + if (commitObject[$"@{catName}"] is List objs) + { + var hostIndex = objs.FindIndex(obj => obj.applicationId == host.applicationId); + // if the "host" is present, then it has already been converted and we need to + // attach the current, dependent, elements as a hosted element + if (hostIndex != -1) + { + objs[hostIndex]["elements"] ??= new List(); + ((List)objs[hostIndex]["elements"]).Add(conversionResult); + } + // if host is not present, then it hasn't been converted yet + // create a placeholder that will be overridden later, but that will contain the hosted element + else + { + var newBase = new Base() { applicationId = host.applicationId }; + newBase["elements"] = new List() { conversionResult }; + objs.Add(newBase); + } + + // remove the speckleHost element that we added + conversionResult["speckleHost"] = null; + + reportObj.Update(status: ApplicationObject.State.Created, logItem: $"Attached as hosted element to {host.applicationId}"); + } + } + //is an element type, nest it under Types instead + else if (typeof(ElementType).IsAssignableFrom(revitElement.GetType())) + { + var category = $"@{revitElement.Category.Name}"; + + if (commitObject["Types"] == null) + commitObject["Types"] = new Base(); + + if ((commitObject["Types"] as Base)[category] == null) + (commitObject["Types"] as Base)[category] = new List(); + + ((List)((commitObject["Types"] as Base)[category])).Add(conversionResult); + } + else + { + var category = conversionResult.GetType().Name == "Network" ? + "@Networks" : + $"@{revitElement.Category.Name}"; + + commitObject[category] ??= new List(); + + if (commitObject[category] is List objs) + { + var hostIndex = objs.FindIndex(obj => obj.applicationId == conversionResult.applicationId); + + // here we are checking to see if we're converting a host that doesn't know it is a host + // and if dependent elements of that host have already been converted + if (hostIndex != -1 && objs[hostIndex]["elements"] is List elements) + { + objs.RemoveAt(hostIndex); + if (conversionResult["elements"] is List els) + els.AddRange(elements); + else + conversionResult["elements"] = elements; + } + objs.Add(conversionResult); + } + } + + reportObj.Update(status: ApplicationObject.State.Created, logItem: $"Sent as {ConnectorRevitUtils.SimplifySpeckleType(conversionResult.speckle_type)}"); } + catch (Exception e) + { + reportObj.Update(status: ApplicationObject.State.Failed, logItem: $"{e.Message}"); + } + progress.Report.Log(reportObj); } - catch (Exception e) - { - state.Errors.Add(e); - } - } + return false; + }); - if (converter.Report.ConversionErrorsCount != 0) - { - // TODO: Get rid of the custom Error class. It's not needed. - ConversionErrors.AddRange(converter.Report.ConversionErrors); - state.Errors.AddRange(converter.Report.ConversionErrors); - } + if (cancelSend) + return null; + + progress.Report.Merge(converter.Report); if (convertedCount == 0) { - Globals.Notify("Zero objects converted successfully. Send stopped."); - return state; + progress.Report.LogOperationError(new Exception("Zero objects converted successfully. Send stopped.")); + return null; } - Execute.PostToUIThread(() => state.Progress.Maximum = (int)commitObject.GetTotalChildrenCount()); - - if (state.CancellationTokenSource.Token.IsCancellationRequested) - return state; + if (progress.CancellationTokenSource.Token.IsCancellationRequested) + return null; var transports = new List() { new ServerTransport(client.Account, streamId) }; var objectId = await Operations.Send( @object: commitObject, - cancellationToken: state.CancellationTokenSource.Token, + cancellationToken: progress.CancellationTokenSource.Token, transports: transports, - onProgressAction: dict => UpdateProgress(dict, state.Progress), + onProgressAction: dict => progress.Update(dict), onErrorAction: (s, e) => { - OperationErrors.Add(e); // TODO! - state.Errors.Add(e); - state.CancellationTokenSource.Cancel(); + progress.Report.LogOperationError(e); + progress.CancellationTokenSource.Cancel(); }, disposeTransports: true ); - if (OperationErrors.Count != 0) - { - Globals.Notify("Failed to send."); - state.Errors.AddRange(OperationErrors); - return state; - } + if (progress.Report.OperationErrorsCount != 0) + return null; - if (state.CancellationTokenSource.Token.IsCancellationRequested) + if (progress.CancellationTokenSource.Token.IsCancellationRequested) return null; var actualCommit = new CommitCreateInput() { streamId = streamId, objectId = objectId, - branchName = state.Branch.name, + branchName = state.BranchName, message = state.CommitMessage != null ? state.CommitMessage : $"Sent {convertedCount} objects from {ConnectorRevitUtils.RevitAppName}.", sourceApplication = ConnectorRevitUtils.RevitAppName, }; if (state.PreviousCommitId != null) { actualCommit.parents = new List() { state.PreviousCommitId }; } - + string commitId = null; try { - var commitId = await client.CommitCreate(actualCommit); + commitId = await client.CommitCreate(actualCommit); - await state.RefreshStream(); + //await state.RefreshStream(); state.PreviousCommitId = commitId; - - WriteStateToFile(); - RaiseNotification($"{convertedCount} objects sent to Speckle 🚀"); } catch (Exception e) { - state.Errors.Add(e); - Globals.Notify($"Failed to create commit.\n{e.Message}"); + progress.Report.LogOperationError(e); } - return state; + return commitId; } } diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.cs index 8b7d9cc0b7..7555dd4207 100644 --- a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.cs +++ b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit.cs @@ -1,13 +1,15 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Timers; using Autodesk.Revit.DB; using Autodesk.Revit.UI; -using Speckle.ConnectorRevit.Entry; +using DesktopUI2; +using DesktopUI2.Models; using Speckle.ConnectorRevit.Storage; +using Speckle.Core.Kits; using Speckle.Core.Models; -using Speckle.DesktopUI; -using Speckle.DesktopUI.Utils; +using Timer = System.Timers.Timer; namespace Speckle.ConnectorRevit.UI { @@ -17,57 +19,38 @@ public partial class ConnectorBindingsRevit : ConnectorBindings public static UIDocument CurrentDoc => RevitApp.ActiveUIDocument; - /// - /// Stores the actions for the ExternalEvent handler - /// - public List Queue; - - public ExternalEvent Executor; - public Timer SelectionTimer; - public ConnectorBindingsRevit(UIApplication revitApp) : base() - { - RevitApp = revitApp; - Queue = new List(); - } + //Only use an instance of the converter as a local variable to avoid conflicts if multiple sending/receiving + //operations are happening at the same time + public ISpeckleConverter Converter { get; set; } = KitManager.GetDefaultKit().LoadConverter(ConnectorRevitUtils.RevitAppName); + + public List ConversionErrors { get; set; } = new List(); /// - /// Sets the revit external event handler and initialises the rocket engines. + /// Keeps track of errors in the operations of send/receive. /// - /// - public void SetExecutorAndInit(ExternalEvent eventHandler) - { - Executor = eventHandler; - - // LOCAL STATE - // GetStreamsInFile(); + public List OperationErrors { get; set; } = new List(); - //// GLOBAL EVENT HANDLERS - RevitApp.ViewActivated += RevitApp_ViewActivated; - RevitApp.Application.DocumentChanged += Application_DocumentChanged; - RevitApp.Application.DocumentOpened += Application_DocumentOpened; - RevitApp.Application.DocumentClosed += Application_DocumentClosed; - - SelectionTimer = new Timer(1400) { AutoReset = true, Enabled = true }; - SelectionTimer.Elapsed += SelectionTimer_Elapsed; - // TODO: Find a way to handle when document is closed via middle mouse click - // thus triggering the focus on a new project + public ConnectorBindingsRevit(UIApplication revitApp) : base() + { + RevitApp = revitApp; } private void SelectionTimer_Elapsed(object sender, ElapsedEventArgs e) { var selectedObjects = GetSelectedObjects(); - NotifyUi(new UpdateSelectionCountEvent() { SelectionCount = selectedObjects.Count }); - NotifyUi(new UpdateSelectionEvent() { ObjectIds = selectedObjects }); - } + //TODO - public override string GetHostAppName() => ConnectorRevitUtils.RevitAppName.Replace("Revit", "Revit "); //hack for ADSK store + //NotifyUi(new UpdateSelectionCountEvent() { SelectionCount = selectedObjects.Count }); + //NotifyUi(new UpdateSelectionEvent() { ObjectIds = selectedObjects }); + } - public override string GetDocumentId() => GetDocHash(CurrentDoc?.Document); + public override string GetHostAppNameVersion() => ConnectorRevitUtils.RevitAppName.Replace("Revit", "Revit "); //hack for ADSK store + public override string GetHostAppName() => HostApplications.Revit.Slug; - private string GetDocHash(Document doc) => Utilities.hashString(doc.PathName + doc.Title, Utilities.HashingFuctions.MD5); + public override string GetDocumentId() => CurrentDoc?.Document?.GetHashCode().ToString(); public override string GetDocumentLocation() => CurrentDoc.Document.PathName; @@ -75,65 +58,62 @@ private void SelectionTimer_Elapsed(object sender, ElapsedEventArgs e) public override string GetFileName() => CurrentDoc.Document.Title; - public override void SelectClientObjects(string args) + public override List GetStreamsInFile() { - // TODO! - } + var streams = new List(); + if (CurrentDoc != null) + streams = StreamStateManager.ReadState(CurrentDoc.Document); - #region app events + return streams; + } - //checks whether to refresh the stream list in case the user changes active view and selects a different document - private void RevitApp_ViewActivated(object sender, Autodesk.Revit.UI.Events.ViewActivatedEventArgs e) + public override List GetReceiveModes() { - - if (e.Document == null || e.Document.IsFamilyDocument || e.PreviousActiveView == null || GetDocHash(e.Document) == GetDocHash(e.PreviousActiveView.Document)) - return; - - var appEvent = new ApplicationEvent() - { - Type = ApplicationEvent.EventType.ViewActivated, - DynamicInfo = GetStreamsInFile() - }; - NotifyUi(appEvent); + return new List { ReceiveMode.Update, ReceiveMode.Create, ReceiveMode.Ignore }; } - private void Application_DocumentClosed(object sender, Autodesk.Revit.DB.Events.DocumentClosedEventArgs e) + //TODO + public override List GetCustomStreamMenuItems() { - // the DocumentClosed event is triggered AFTER ViewActivated - // is both doc A and B are open and B is closed, this would result in wiping the list of streams retrieved for A - // only proceed if it's the last document open (the current is null) - if (CurrentDoc != null) - return; - - if (SpeckleRevitCommand.Bootstrapper != null && SpeckleRevitCommand.Bootstrapper.Application != null) - SpeckleRevitCommand.Bootstrapper.Application.MainWindow.Hide(); - - var appEvent = new ApplicationEvent() { Type = ApplicationEvent.EventType.DocumentClosed }; - NotifyUi(appEvent); + return new List(); } - // this method is triggered when there are changes in the active document - private void Application_DocumentChanged(object sender, Autodesk.Revit.DB.Events.DocumentChangedEventArgs e) - { } + // WARNING: Everything in the 'interop' section must match a corrosponding element in the converter + // which can be found in the namespace commented above the element + #region interop - private void Application_DocumentOpened(object sender, Autodesk.Revit.DB.Events.DocumentOpenedEventArgs e) + // Objects.Structural.Geometry + public enum ElementType1D { - var streams = GetStreamsInFile(); - if (streams != null && streams.Count != 0) - { - SpeckleRevitCommand.OpenOrFocusSpeckle(RevitApp); - } - - var appEvent = new ApplicationEvent() - { - Type = ApplicationEvent.EventType.DocumentOpened, - DynamicInfo = streams - }; - - NotifyUi(appEvent); + Beam, + Brace, + Bar, + Column, + Rod, + Spring, + Tie, + Strut, + Link, + Damper, + Cable, + Spacer, + Other, + Null } + // Objects.Structural + public enum PropertyType2D + { + Stress, + Fabric, + Plate, + Shell, + Curved, + Wall, + Strain, + Axi, + Load + } #endregion - } } diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Receive.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Receive.cs deleted file mode 100644 index 5948b681e2..0000000000 --- a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Receive.cs +++ /dev/null @@ -1,307 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using Autodesk.Revit.DB; -using Avalonia.Threading; -using ConnectorRevit.Revit; -using DesktopUI2.Models; -using DesktopUI2.Models.Settings; -using DesktopUI2.ViewModels; -using Revit.Async; -using Speckle.Core.Api; -using Speckle.Core.Kits; -using Speckle.Core.Models; -using Speckle.Core.Transports; - -namespace Speckle.ConnectorRevit.UI -{ - - public partial class ConnectorBindingsRevit2 - { - public List Preview { get; set; } = new List(); - public Dictionary StoredObjects = new Dictionary(); - - public override bool CanPreviewReceive => false; - - public override Task PreviewReceive(StreamState state, ProgressViewModel progress) - { - return null; - // TODO! - } - - /// - /// Receives a stream and bakes into the existing revit file. - /// - /// - /// - /// - public override async Task ReceiveStream(StreamState state, ProgressViewModel progress) - { - //make sure to instance a new copy so all values are reset correctly - var converter = (ISpeckleConverter)Activator.CreateInstance(Converter.GetType()); - converter.SetContextDocument(CurrentDoc.Document); - var previouslyReceiveObjects = state.ReceivedObjects; - - // set converter settings as tuples (setting slug, setting selection) - var settings = new Dictionary(); - CurrentSettings = state.Settings; - foreach (var setting in state.Settings) - settings.Add(setting.Slug, setting.Selection); - converter.SetConverterSettings(settings); - - var transport = new ServerTransport(state.Client.Account, state.StreamId); - - var stream = await state.Client.StreamGet(state.StreamId); - - if (progress.CancellationTokenSource.Token.IsCancellationRequested) - return null; - - Commit myCommit = null; - //if "latest", always make sure we get the latest commit when the user clicks "receive" - if (state.CommitId == "latest") - { - var res = await state.Client.BranchGet(progress.CancellationTokenSource.Token, state.StreamId, state.BranchName, 1); - myCommit = res.commits.items.FirstOrDefault(); - } - else - { - myCommit = await state.Client.CommitGet(progress.CancellationTokenSource.Token, state.StreamId, state.CommitId); - } - - state.LastSourceApp = myCommit.sourceApplication; - - string referencedObject = myCommit.referencedObject; - - var commitObject = await Operations.Receive( - referencedObject, - progress.CancellationTokenSource.Token, - transport, - onProgressAction: dict => progress.Update(dict), - onErrorAction: (s, e) => - { - progress.Report.LogOperationError(e); - progress.CancellationTokenSource.Cancel(); - }, - onTotalChildrenCountKnown: count => { progress.Max = count; }, - disposeTransports: true - ); - - try - { - await state.Client.CommitReceived(new CommitReceivedInput - { - streamId = stream?.id, - commitId = myCommit?.id, - message = myCommit?.message, - sourceApplication = ConnectorRevitUtils.RevitAppName - }); - } - catch - { - // Do nothing! - } - - if (progress.Report.OperationErrorsCount != 0) - return state; - - if (progress.CancellationTokenSource.Token.IsCancellationRequested) - return null; - - Preview.Clear(); - StoredObjects.Clear(); - - - Preview = FlattenCommitObject(commitObject, converter); - foreach (var previewObj in Preview) - progress.Report.Log(previewObj); - - converter.ReceiveMode = state.ReceiveMode; - // needs to be set for editing to work - converter.SetPreviousContextObjects(previouslyReceiveObjects); - // needs to be set for openings in floors and roofs to work - converter.SetContextObjects(Preview); - - try - { - await RevitTask.RunAsync(() => UpdateForCustomMapping(state, progress, myCommit.sourceApplication)); - } - catch (Exception ex) - { - progress.Report.LogOperationError(new Exception("Could not update receive object with user types. Using default mapping.")); - } - - await RevitTask.RunAsync(app => - { - using (var t = new Transaction(CurrentDoc.Document, $"Baking stream {state.StreamId}")) - { - var failOpts = t.GetFailureHandlingOptions(); - failOpts.SetFailuresPreprocessor(new ErrorEater(converter)); - failOpts.SetClearAfterRollback(true); - t.SetFailureHandlingOptions(failOpts); - t.Start(); - - var newPlaceholderObjects = ConvertReceivedObjects(converter, progress); - // receive was cancelled by user - if (newPlaceholderObjects == null) - { - progress.Report.LogOperationError(new Exception("fatal error: receive cancelled by user")); - t.RollBack(); - return; - } - - if (state.ReceiveMode == ReceiveMode.Update) - DeleteObjects(previouslyReceiveObjects, newPlaceholderObjects); - - state.ReceivedObjects = newPlaceholderObjects; - - t.Commit(); - } - - }); - - if (converter.Report.OperationErrors.Any(x => x.Message.Contains("fatal error"))) - return null; // the commit is being rolled back - - return state; - } - - //delete previously sent object that are no more in this stream - private void DeleteObjects(List previouslyReceiveObjects, List newPlaceholderObjects) - { - foreach (var obj in previouslyReceiveObjects) - { - if (obj.CreatedIds.Count == 0 || newPlaceholderObjects.Any(x => x.applicationId == obj.applicationId)) - continue; - - var element = CurrentDoc.Document.GetElement(obj.CreatedIds.FirstOrDefault()); - if (element != null) - CurrentDoc.Document.Delete(element.Id); - } - } - - private List ConvertReceivedObjects(ISpeckleConverter converter, ProgressViewModel progress) - { - var placeholders = new List(); - var conversionProgressDict = new ConcurrentDictionary(); - conversionProgressDict["Conversion"] = 1; - - // Get setting to skip linked model elements if necessary - var receiveLinkedModelsSetting = CurrentSettings.FirstOrDefault(x => x.Slug == "linkedmodels-receive") as CheckBoxSetting; - var receiveLinkedModels = receiveLinkedModelsSetting != null ? receiveLinkedModelsSetting.IsChecked : false; - - foreach (var obj in Preview) - { - var @base = StoredObjects[obj.OriginalId]; - if (progress.CancellationTokenSource.Token.IsCancellationRequested) - { - placeholders = null; - break; - } - - try - { - conversionProgressDict["Conversion"]++; - progress.Update(conversionProgressDict); - - var s = new CancellationTokenSource(); - DispatcherTimer.RunOnce(() => s.Cancel(), TimeSpan.FromMilliseconds(10)); - Dispatcher.UIThread.MainLoop(s.Token); - - //skip element if is from a linked file and setting is off - if (!receiveLinkedModels && @base["isRevitLinkedModel"] != null && bool.Parse(@base["isRevitLinkedModel"].ToString())) - continue; - - var convRes = converter.ConvertToNative(@base); - - //regenerate the document and then implement a hack to "refresh" the view - CurrentDoc.Document.Regenerate(); - - // get the active ui view - var view = CurrentDoc.ActiveGraphicalView ?? CurrentDoc.Document.ActiveView; - var uiView = CurrentDoc.GetOpenUIViews().FirstOrDefault(uv => uv.ViewId.Equals(view.Id)); - - // "refresh" the active view - uiView.Zoom(1); - - switch (convRes) - { - case ApplicationObject o: - placeholders.Add(o); - obj.Update(status: o.Status, createdIds: o.CreatedIds, converted: o.Converted, log: o.Log); - progress.Report.UpdateReportObject(obj); - break; - default: - break; - } - } - catch (Exception e) - { - obj.Update(status: ApplicationObject.State.Failed, logItem: e.Message); - progress.Report.UpdateReportObject(obj); - } - } - - return placeholders; - } - - /// - /// Recurses through the commit object and flattens it. - /// - /// - /// - /// - private List FlattenCommitObject(object obj, ISpeckleConverter converter) - { - var objects = new List(); - - if (obj is Base @base) - { - var appObj = new ApplicationObject(@base.id, ConnectorRevitUtils.SimplifySpeckleType(@base.speckle_type)) { applicationId = @base.applicationId, Status = ApplicationObject.State.Unknown }; - - if (converter.CanConvertToNative(@base)) - { - appObj.Convertible = true; - objects.Add(appObj); - StoredObjects.Add(@base.id, @base); - return objects; - } - else - { - foreach (var prop in @base.GetDynamicMembers()) - objects.AddRange(FlattenCommitObject(@base[prop], converter)); - return objects; - } - } - - if (obj is List list) - { - foreach (var listObj in list) - objects.AddRange(FlattenCommitObject(listObj, converter)); - return objects; - } - - if (obj is IDictionary dict) - { - foreach (DictionaryEntry kvp in dict) - objects.AddRange(FlattenCommitObject(kvp.Value, converter)); - return objects; - } - - else - { - if (obj != null && !obj.GetType().IsPrimitive && !(obj is string)) - { - var appObj = new ApplicationObject(obj.GetHashCode().ToString(), obj.GetType().ToString()); - appObj.Update(status: ApplicationObject.State.Skipped, logItem: $"Receiving this object type is not supported in Revit"); - objects.Add(appObj); - } - } - - return objects; - } - } -} diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Selection.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Selection.cs deleted file mode 100644 index bdecf0d020..0000000000 --- a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Selection.cs +++ /dev/null @@ -1,340 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Autodesk.Revit.DB; -using ConnectorRevit; -using DesktopUI2.Models.Filters; -using DesktopUI2.Models.Settings; -using Speckle.Core.Logging; - -namespace Speckle.ConnectorRevit.UI -{ - public partial class ConnectorBindingsRevit2 - { - public override List GetSelectionFilters() - { - var categories = new List(); - var parameters = new List(); - var views = new List(); - var worksets = new List(); - var projectInfo = new List { "Project Info", "Levels", "Views 2D", "Views 3D", "Families & Types" }; - - if (CurrentDoc != null) - { - //selectionCount = CurrentDoc.Selection.GetElementIds().Count(); - categories = ConnectorRevitUtils.GetCategoryNames(CurrentDoc.Document); - parameters = ConnectorRevitUtils.GetParameterNames(CurrentDoc.Document); - views = ConnectorRevitUtils.GetViewNames(CurrentDoc.Document); - worksets = ConnectorRevitUtils.GetWorksets(CurrentDoc.Document); - } - - var filters = new List - { - new AllSelectionFilter {Slug="all", Name = "Everything", Icon = "CubeScan", Description = "Sends all supported elements and project information." }, - new ManualSelectionFilter(), - new ListSelectionFilter {Slug="category", Name = "Category", Icon = "Category", Values = categories, Description="Adds all elements belonging to the selected categories"}, - new ListSelectionFilter {Slug="view", Name = "View", Icon = "RemoveRedEye", Values = views, Description="Adds all objects visible in the selected views" }, - new ListSelectionFilter {Slug="project-info", Name = "Project Information", Icon = "Information", Values = projectInfo, Description="Adds the selected project information such as levels, views and family names to the stream"}, - new PropertySelectionFilter - { - Slug="param", - Name = "Parameter", - Description="Adds all objects satisfying the selected parameter", - Icon = "FilterList", - Values = parameters, - Operators = new List {"equals", "contains", "is greater than", "is less than"} - } - - }; - if (worksets.Any()) - filters.Insert(4, new ListSelectionFilter { Slug = "workset", Name = "Workset", Icon = "Group", Values = worksets, Description = "Adds all elements belonging to the selected workset" }); - - - return filters; - } - - public override List GetSelectedObjects() - { - if (CurrentDoc == null) - { - return new List(); - } - - var selectedObjects = CurrentDoc.Selection.GetElementIds().Select(id => CurrentDoc.Document.GetElement(id).UniqueId).ToList(); - return selectedObjects; - } - - public override List GetObjectsInView() - { - if (CurrentDoc == null) - { - return new List(); - } - - var collector = new FilteredElementCollector(CurrentDoc.Document, CurrentDoc.Document.ActiveView.Id).WhereElementIsNotElementType(); - var elementIds = collector.ToElements().Select(el => el.UniqueId).ToList(); ; - - return elementIds; - } - - public override void SelectClientObjects(List args, bool deselect = false) - { - var selection = args.Select(x => CurrentDoc.Document.GetElement(x))?.Where(x => x != null)?.Select(x => x.Id)?.ToList(); - if (selection != null) - { - if (!deselect) - { - var currentSelection = CurrentDoc.Selection.GetElementIds().ToList(); - if (currentSelection != null) currentSelection.AddRange(selection); - else currentSelection = selection; - try - { - CurrentDoc.Selection.SetElementIds(currentSelection); - CurrentDoc.ShowElements(currentSelection); - } - catch (Exception e) { } - } - else - { - var updatedSelection = CurrentDoc.Selection.GetElementIds().Where(x => !selection.Contains(x)).ToList(); - CurrentDoc.Selection.SetElementIds(updatedSelection); - if (updatedSelection.Any()) CurrentDoc.ShowElements(updatedSelection); - } - } - } - - private List GetLinkedDocuments() - { - var docs = new List(); - - // Get settings and return empty list if we should not send linked models - var sendLinkedModels = CurrentSettings?.FirstOrDefault(x => x.Slug == "linkedmodels-send") as CheckBoxSetting; - if (sendLinkedModels == null || !sendLinkedModels.IsChecked) - return docs; - - - //TODO: is the name the most safe way to look for it? - var linkedRVTs = new FilteredElementCollector(CurrentDoc.Document).OfCategory(BuiltInCategory.OST_RvtLinks).OfClass(typeof(RevitLinkType)).ToElements().Cast().Select(x => x.Name.Replace(".rvt", "")); - foreach (Document revitDoc in RevitApp.Application.Documents) - { - if (revitDoc.IsLinked && linkedRVTs.Contains(revitDoc.Title)) - { - docs.Add(revitDoc); - } - } - - return docs; - } - - /// - /// Given the filter in use by a stream returns the document elements that match it. - /// - /// - /// - private List GetSelectionFilterObjects(ISelectionFilter filter) - { - var currentDoc = CurrentDoc.Document; - var allDocs = GetLinkedDocuments(); - allDocs.Add(currentDoc); - - var selection = new List(); - try - { - - switch (filter.Slug) - { - - case "manual": - selection = filter.Selection.Select(x => CurrentDoc.Document.GetElement(x)).Where(x => x != null).ToList(); - var linkedFiles = selection.Where(x => x is RevitLinkInstance).Cast().ToList(); - - foreach (var linkedFile in linkedFiles) - { - var match = allDocs.FirstOrDefault(x => x.Title == linkedFile.Name.Split(new string[] { ".rvt" }, StringSplitOptions.None)[0]); - if (match != null) - selection.AddRange(match.SupportedElements()); - } - - return selection; - - case "all": - //add these only for the current doc - selection.Add(currentDoc.ProjectInformation); - selection.AddRange(currentDoc.Views2D()); - selection.AddRange(currentDoc.Views3D()); - - //and these for every linked doc - foreach (var doc in allDocs) - { - selection.AddRange(doc.SupportedElements()); // includes levels - selection.AddRange(doc.SupportedTypes()); - } - - return selection; - - case "category": - var catFilter = filter as ListSelectionFilter; - var bics = new List(); - var categories = ConnectorRevitUtils.GetCategories(currentDoc); - IList elementFilters = new List(); - - foreach (var cat in catFilter.Selection) - { - elementFilters.Add(new ElementCategoryFilter(categories[cat].Id)); - } - - var categoryFilter = new LogicalOrFilter(elementFilters); - foreach (var doc in allDocs) - { - selection.AddRange(new FilteredElementCollector(doc) - .WhereElementIsNotElementType() - .WhereElementIsViewIndependent() - .WherePasses(categoryFilter).ToList()); - } - - return selection; - - case "view": - var viewFilter = filter as ListSelectionFilter; - - var views = new FilteredElementCollector(currentDoc) - .WhereElementIsNotElementType() - .OfClass(typeof(View)) - .Where(x => viewFilter.Selection.Contains(x.Name)); - - foreach (var view in views) - { - var ids = selection.Select(x => x.UniqueId); - - foreach (var doc in allDocs) - { - selection.AddRange(new FilteredElementCollector(doc, view.Id) - .WhereElementIsNotElementType() - .WhereElementIsViewIndependent() - //.Where(x => x.IsPhysicalElement()) - .Where(x => !ids.Contains(x.UniqueId)) //exclude elements already added from other views - .ToList()); - } - } - return selection; - - case "project-info": - var projectInfoFilter = filter as ListSelectionFilter; - - if (projectInfoFilter.Selection.Contains("Project Info")) - selection.Add(currentDoc.ProjectInformation); - - if (projectInfoFilter.Selection.Contains("Views 2D")) - selection.AddRange(currentDoc.Views2D()); - - if (projectInfoFilter.Selection.Contains("Views 3D")) - selection.AddRange(currentDoc.Views3D()); - - if (projectInfoFilter.Selection.Contains("Levels")) - selection.AddRange(currentDoc.Levels()); - - if (projectInfoFilter.Selection.Contains("Families & Types")) - selection.AddRange(currentDoc.SupportedTypes()); - - return selection; - - case "workset": - var worksetFilter = filter as ListSelectionFilter; - var worksets = new FilteredWorksetCollector(currentDoc).Where(x => worksetFilter.Selection.Contains(x.Name)).Select(x => x.Id).ToList(); - foreach (var doc in allDocs) - { - var collector = new FilteredElementCollector(doc); - var elementWorksetFilters = new List(); - - foreach (var w in worksets) - { - elementWorksetFilters.Add(new ElementWorksetFilter(w)); - } - - var worksetLogicalFilter = new LogicalOrFilter(elementWorksetFilters); - selection.AddRange(collector.WherePasses(worksetLogicalFilter).ToElements().ToList()); - } - return selection; - - case "param": - try - { - foreach (var doc in allDocs) - { - var propFilter = filter as PropertySelectionFilter; - var query = new FilteredElementCollector(doc) - .WhereElementIsNotElementType() - .WhereElementIsNotElementType() - .WhereElementIsViewIndependent() - .Where(x => x.IsPhysicalElement()) - .Where(fi => fi.LookupParameter(propFilter.PropertyName) != null); - - propFilter.PropertyValue = propFilter.PropertyValue.ToLowerInvariant(); - - switch (propFilter.PropertyOperator) - { - case "equals": - query = query.Where(fi => - GetStringValue(fi.LookupParameter(propFilter.PropertyName)) == propFilter.PropertyValue); - break; - case "contains": - query = query.Where(fi => - GetStringValue(fi.LookupParameter(propFilter.PropertyName)).Contains(propFilter.PropertyValue)); - break; - case "is greater than": - query = query.Where(fi => RevitVersionHelper.ConvertFromInternalUnits( - fi.LookupParameter(propFilter.PropertyName).AsDouble(), - fi.LookupParameter(propFilter.PropertyName)) > - double.Parse(propFilter.PropertyValue)); - break; - case "is less than": - query = query.Where(fi => RevitVersionHelper.ConvertFromInternalUnits( - fi.LookupParameter(propFilter.PropertyName).AsDouble(), - fi.LookupParameter(propFilter.PropertyName)) < - double.Parse(propFilter.PropertyValue)); - break; - } - - selection.AddRange(query.ToList()); - } - } - catch (Exception e) - { - Log.CaptureException(e); - } - return selection; - } - } - catch (Exception e) - { - - } - - return selection; - - } - - private string GetStringValue(Parameter p) - { - string value = ""; - if (!p.HasValue) - { - return value; - } - - if (string.IsNullOrEmpty(p.AsValueString()) && string.IsNullOrEmpty(p.AsString())) - { - return value; - } - - if (!string.IsNullOrEmpty(p.AsValueString())) - { - return p.AsValueString().ToLowerInvariant(); - } - else - { - return p.AsString().ToLowerInvariant(); - } - } - } -} diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Send.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Send.cs deleted file mode 100644 index ad65bb1fbd..0000000000 --- a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.Send.cs +++ /dev/null @@ -1,214 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Autodesk.Revit.DB; -using DesktopUI2.Models; -using DesktopUI2.Models.Settings; -using DesktopUI2.ViewModels; -using Speckle.Core.Api; -using Speckle.Core.Kits; -using Speckle.Core.Models; -using Speckle.Core.Transports; - -namespace Speckle.ConnectorRevit.UI -{ - public partial class ConnectorBindingsRevit2 - { - // used to store the Stream State settings when sending/receiving - private List CurrentSettings { get; set; } - public override bool CanPreviewSend => true; - - public override void PreviewSend(StreamState state, ProgressViewModel progress) - { - var filterObjs = GetSelectionFilterObjects(state.Filter); - foreach (var filterObj in filterObjs) - { - var converter = (ISpeckleConverter)Activator.CreateInstance(Converter.GetType()); - var descriptor = ConnectorRevitUtils.ObjectDescriptor(filterObj); - var reportObj = new ApplicationObject(filterObj.UniqueId, descriptor); - if (!converter.CanConvertToSpeckle(filterObj)) - reportObj.Update(status: ApplicationObject.State.Skipped, logItem: $"Sending this object type is not supported in Revit"); - else - reportObj.Update(status: ApplicationObject.State.Created); - progress.Report.Log(reportObj); - } - SelectClientObjects(filterObjs.Select(o => o.UniqueId).ToList()); - } - - /// - /// Converts the Revit elements that have been added to the stream by the user, sends them to - /// the Server and the local DB, and creates a commit with the objects. - /// - /// StreamState passed by the UI - public override async Task SendStream(StreamState state, ProgressViewModel progress) - { - //make sure to instance a new copy so all values are reset correctly - var converter = (ISpeckleConverter)Activator.CreateInstance(Converter.GetType()); - converter.SetContextDocument(CurrentDoc.Document); - converter.Report.ReportObjects.Clear(); - - // set converter settings as tuples (setting slug, setting selection) - var settings = new Dictionary(); - CurrentSettings = state.Settings; - foreach (var setting in state.Settings) - settings.Add(setting.Slug, setting.Selection); - converter.SetConverterSettings(settings); - - var streamId = state.StreamId; - var client = state.Client; - - var selectedObjects = GetSelectionFilterObjects(state.Filter); - state.SelectedObjectIds = selectedObjects.Select(x => x.UniqueId).ToList(); - - if (!selectedObjects.Any()) - { - progress.Report.LogOperationError(new Exception("There are zero objects to send. Please use a filter, or set some via selection.")); - return null; - } - - converter.SetContextObjects(selectedObjects.Select(x => new ApplicationObject(x.UniqueId, x.GetType().ToString()) { applicationId = x.UniqueId }).ToList()); - var commitObject = converter.ConvertToSpeckle(CurrentDoc.Document) ?? new Base(); - - var conversionProgressDict = new ConcurrentDictionary(); - conversionProgressDict["Conversion"] = 0; - - progress.Max = selectedObjects.Count(); - var convertedCount = 0; - foreach (var revitElement in selectedObjects) - { - var descriptor = ConnectorRevitUtils.ObjectDescriptor(revitElement); - // get the report object - // for hosted elements, they may have already been converted and added to the converter report - bool alreadyConverted = converter.Report.GetReportObject(revitElement.UniqueId, out int index); - var reportObj = alreadyConverted ? - converter.Report.ReportObjects[index] : - new ApplicationObject(revitElement.UniqueId, descriptor) { applicationId = revitElement.UniqueId }; - if (alreadyConverted) - { - progress.Report.Log(reportObj); - continue; - } - try - { - if (revitElement == null) - continue; - - if (!converter.CanConvertToSpeckle(revitElement)) - { - reportObj.Update(status: ApplicationObject.State.Skipped, logItem: $"Sending this object type is not supported in Revit"); - progress.Report.Log(reportObj); - continue; - } - - if (progress.CancellationTokenSource.Token.IsCancellationRequested) - return null; - - converter.Report.Log(reportObj); // Log object so converter can access - var conversionResult = converter.ConvertToSpeckle(revitElement); - - conversionProgressDict["Conversion"]++; - progress.Update(conversionProgressDict); - - convertedCount++; - - if (conversionResult == null) - { - reportObj.Update(status: ApplicationObject.State.Failed, logItem: $"Conversion returned null"); - progress.Report.Log(reportObj); - continue; - } - - //is an element type, nest it under Types instead - if (typeof(ElementType).IsAssignableFrom(revitElement.GetType())) - { - var category = $"@{revitElement.Category.Name}"; - - if (commitObject["Types"] == null) - commitObject["Types"] = new Base(); - - if ((commitObject["Types"] as Base)[category] == null) - (commitObject["Types"] as Base)[category] = new List(); - - ((List)((commitObject["Types"] as Base)[category])).Add(conversionResult); - } - else - { - var category = $"@{revitElement.Category.Name}"; - if (commitObject[category] == null) - commitObject[category] = new List(); - - ((List)commitObject[category]).Add(conversionResult); - } - - - reportObj.Update(status: ApplicationObject.State.Created, logItem: $"Sent as {ConnectorRevitUtils.SimplifySpeckleType(conversionResult.speckle_type)}"); - } - catch (Exception e) - { - reportObj.Update(status: ApplicationObject.State.Failed, logItem: $"{e.Message}"); - } - progress.Report.Log(reportObj); - } - - progress.Report.Merge(converter.Report); - - if (convertedCount == 0) - { - progress.Report.LogOperationError(new Exception("Zero objects converted successfully. Send stopped.")); - return null; - } - - if (progress.CancellationTokenSource.Token.IsCancellationRequested) - return null; - - var transports = new List() { new ServerTransport(client.Account, streamId) }; - - var objectId = await Operations.Send( - @object: commitObject, - cancellationToken: progress.CancellationTokenSource.Token, - transports: transports, - onProgressAction: dict => progress.Update(dict), - onErrorAction: (s, e) => - { - progress.Report.LogOperationError(e); - progress.CancellationTokenSource.Cancel(); - }, - disposeTransports: true - ); - - if (progress.Report.OperationErrorsCount != 0) - return null; - - if (progress.CancellationTokenSource.Token.IsCancellationRequested) - return null; - - var actualCommit = new CommitCreateInput() - { - streamId = streamId, - objectId = objectId, - branchName = state.BranchName, - message = state.CommitMessage != null ? state.CommitMessage : $"Sent {convertedCount} objects from {ConnectorRevitUtils.RevitAppName}.", - sourceApplication = ConnectorRevitUtils.RevitAppName, - }; - - if (state.PreviousCommitId != null) { actualCommit.parents = new List() { state.PreviousCommitId }; } - string commitId = null; - try - { - commitId = await client.CommitCreate(actualCommit); - - //await state.RefreshStream(); - state.PreviousCommitId = commitId; - } - catch (Exception e) - { - progress.Report.LogOperationError(e); - } - - return commitId; - } - - } -} diff --git a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.cs b/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.cs deleted file mode 100644 index c6552fc029..0000000000 --- a/ConnectorRevit/ConnectorRevit/UI/ConnectorBindingsRevit2/ConnectorBindingsRevit2.cs +++ /dev/null @@ -1,124 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Timers; -using Autodesk.Revit.DB; -using Autodesk.Revit.UI; -using DesktopUI2; -using DesktopUI2.Models; -using Speckle.ConnectorRevit.Storage; -using Speckle.Core.Kits; -using Speckle.Core.Models; -using Timer = System.Timers.Timer; - -namespace Speckle.ConnectorRevit.UI -{ - public partial class ConnectorBindingsRevit2 : ConnectorBindings - { - public static UIApplication RevitApp; - - public static UIDocument CurrentDoc => RevitApp.ActiveUIDocument; - - public Timer SelectionTimer; - - //Only use an instance of the converter as a local variable to avoid conflicts if multiple sending/receiving - //operations are happening at the same time - public ISpeckleConverter Converter { get; set; } = KitManager.GetDefaultKit().LoadConverter(ConnectorRevitUtils.RevitAppName); - - public List ConversionErrors { get; set; } = new List(); - - /// - /// Keeps track of errors in the operations of send/receive. - /// - public List OperationErrors { get; set; } = new List(); - - public ConnectorBindingsRevit2(UIApplication revitApp) : base() - { - RevitApp = revitApp; - } - - private void SelectionTimer_Elapsed(object sender, ElapsedEventArgs e) - { - var selectedObjects = GetSelectedObjects(); - - //TODO - - //NotifyUi(new UpdateSelectionCountEvent() { SelectionCount = selectedObjects.Count }); - //NotifyUi(new UpdateSelectionEvent() { ObjectIds = selectedObjects }); - } - - public override string GetHostAppNameVersion() => ConnectorRevitUtils.RevitAppName.Replace("Revit", "Revit "); //hack for ADSK store - public override string GetHostAppName() => HostApplications.Revit.Slug; - - public override string GetDocumentId() => CurrentDoc?.Document?.GetHashCode().ToString(); - - public override string GetDocumentLocation() => CurrentDoc.Document.PathName; - - public override string GetActiveViewName() => CurrentDoc.Document.ActiveView.Title; - - public override string GetFileName() => CurrentDoc.Document.Title; - - public override List GetStreamsInFile() - { - var streams = new List(); - if (CurrentDoc != null) - streams = StreamStateManager2.ReadState(CurrentDoc.Document); - - return streams; - } - - public override List GetReceiveModes() - { - return new List { ReceiveMode.Update, ReceiveMode.Create, ReceiveMode.Ignore }; - } - - //TODO - public override List GetCustomStreamMenuItems() - { - return new List(); - } - - public override void ResetDocument() - { - // TODO! - } - - // WARNING: Everything in the 'interop' section must match a corrosponding element in the converter - // which can be found in the namespace commented above the element - #region interop - - // Objects.Structural.Geometry - public enum ElementType1D - { - Beam, - Brace, - Bar, - Column, - Rod, - Spring, - Tie, - Strut, - Link, - Damper, - Cable, - Spacer, - Other, - Null - } - - // Objects.Structural - public enum PropertyType2D - { - Stress, - Fabric, - Plate, - Shell, - Curved, - Wall, - Strain, - Axi, - Load - } - #endregion - } -} diff --git a/ConnectorRevit/ConnectorRevit2019/ConnectorRevit2019.csproj b/ConnectorRevit/ConnectorRevit2019/ConnectorRevit2019.csproj deleted file mode 100644 index 9ee0437965..0000000000 --- a/ConnectorRevit/ConnectorRevit2019/ConnectorRevit2019.csproj +++ /dev/null @@ -1,135 +0,0 @@ - - - - - Debug - AnyCPU - {EF418256-8118-47B4-8386-A945946FB92D} - Library - Properties - Speckle.ConnectorRevit - SpeckleConnectorRevit - v4.7.1 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true - true - - - PackageReference - 8 - $(ProgramW6432)\Autodesk\Revit 2019\Revit.exe - SpeckleRevit2 - 2019 - x64 - - - true - false - false - false - - - true - full - false - bin\Debug\ - DEBUG;TRACE;REVIT2019 - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE;REVIT2019 - prompt - 4 - - - - - - - - - - - - - - - 0.10.18 - - - 0.10.18 - - - 0.10.18 - - - 1.0.0 - runtime - - - 1.3.0 - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - 2.0.1 - - - - - {521d4aee-08cf-4913-bbe8-5511d176d126} - Core - - - {d8576aee-6ef4-4bd7-b024-864653ec41e5} - AvaloniaHwndHost - - - {aab81f89-c71c-4f8a-b256-6a23d19134a7} - DesktopUI2 - - - {a97c3046-2d55-4c49-ab40-a3c2194b82fa} - DesktopUI - False - - - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ConnectorRevit/ConnectorRevit2020/ConnectorRevit2020.csproj b/ConnectorRevit/ConnectorRevit2020/ConnectorRevit2020.csproj index f2b6ae2464..ccb4d30798 100644 --- a/ConnectorRevit/ConnectorRevit2020/ConnectorRevit2020.csproj +++ b/ConnectorRevit/ConnectorRevit2020/ConnectorRevit2020.csproj @@ -52,6 +52,8 @@ + + @@ -93,11 +95,6 @@ {aab81f89-c71c-4f8a-b256-6a23d19134a7} DesktopUI2 - - {a97c3046-2d55-4c49-ab40-a3c2194b82fa} - DesktopUI - False - diff --git a/ConnectorRevit/ConnectorRevit2020/Properties/AssemblyInfo.cs b/ConnectorRevit/ConnectorRevit2020/Properties/AssemblyInfo.cs index 4a66aa619b..8bc8096eaf 100644 --- a/ConnectorRevit/ConnectorRevit2020/Properties/AssemblyInfo.cs +++ b/ConnectorRevit/ConnectorRevit2020/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -32,6 +32,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.0.0")] -[assembly: AssemblyFileVersion("2.0.0.0")] -[assembly: AssemblyInformationalVersion("2.0.0-beta")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("1.0.0.0")] diff --git a/ConnectorRevit/ConnectorRevit2021/ConnectorRevit2021.csproj b/ConnectorRevit/ConnectorRevit2021/ConnectorRevit2021.csproj index ee9d7e88ef..30f0b4d6b8 100644 --- a/ConnectorRevit/ConnectorRevit2021/ConnectorRevit2021.csproj +++ b/ConnectorRevit/ConnectorRevit2021/ConnectorRevit2021.csproj @@ -52,6 +52,8 @@ + + @@ -93,11 +95,6 @@ {aab81f89-c71c-4f8a-b256-6a23d19134a7} DesktopUI2 - - {a97c3046-2d55-4c49-ab40-a3c2194b82fa} - DesktopUI - False - diff --git a/ConnectorRevit/ConnectorRevit2021/Properties/AssemblyInfo.cs b/ConnectorRevit/ConnectorRevit2021/Properties/AssemblyInfo.cs index 4a66aa619b..8bc8096eaf 100644 --- a/ConnectorRevit/ConnectorRevit2021/Properties/AssemblyInfo.cs +++ b/ConnectorRevit/ConnectorRevit2021/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -32,6 +32,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.0.0")] -[assembly: AssemblyFileVersion("2.0.0.0")] -[assembly: AssemblyInformationalVersion("2.0.0-beta")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("1.0.0.0")] diff --git a/ConnectorRevit/ConnectorRevit2022/ConnectorRevit2022.csproj b/ConnectorRevit/ConnectorRevit2022/ConnectorRevit2022.csproj index 9ed3f1def6..ca70a76e0c 100644 --- a/ConnectorRevit/ConnectorRevit2022/ConnectorRevit2022.csproj +++ b/ConnectorRevit/ConnectorRevit2022/ConnectorRevit2022.csproj @@ -52,6 +52,8 @@ + + @@ -70,15 +72,6 @@ {aab81f89-c71c-4f8a-b256-6a23d19134a7} DesktopUI2 - - {a97c3046-2d55-4c49-ab40-a3c2194b82fa} - DesktopUI - False - - - {c74e4c61-ca68-47f9-825e-91b7a5c4546d} - ConverterRevit2022 - diff --git a/ConnectorRevit/ConnectorRevit2022/Properties/AssemblyInfo.cs b/ConnectorRevit/ConnectorRevit2022/Properties/AssemblyInfo.cs index 6bd84fb7d2..7f76ae24cb 100644 --- a/ConnectorRevit/ConnectorRevit2022/Properties/AssemblyInfo.cs +++ b/ConnectorRevit/ConnectorRevit2022/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -32,7 +32,7 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.0.0")] -[assembly: AssemblyFileVersion("2.0.0.0")] -[assembly: AssemblyInformationalVersion("2.0.0-beta")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("1.0.0.0")] diff --git a/ConnectorRevit/ConnectorRevit2023/ConnectorRevit2023.csproj b/ConnectorRevit/ConnectorRevit2023/ConnectorRevit2023.csproj index 8515eaf9a7..871931bc0c 100644 --- a/ConnectorRevit/ConnectorRevit2023/ConnectorRevit2023.csproj +++ b/ConnectorRevit/ConnectorRevit2023/ConnectorRevit2023.csproj @@ -52,6 +52,8 @@ + + @@ -70,15 +72,6 @@ {aab81f89-c71c-4f8a-b256-6a23d19134a7} DesktopUI2 - - {a97c3046-2d55-4c49-ab40-a3c2194b82fa} - DesktopUI - False - - - {c74e4c61-ca68-47f9-825e-91b7a5c4546d} - ConverterRevit2023 - diff --git a/ConnectorRhino/ConnectorRhino.sln b/ConnectorRhino/ConnectorRhino.sln index afa22279ea..d6c629c746 100644 --- a/ConnectorRhino/ConnectorRhino.sln +++ b/ConnectorRhino/ConnectorRhino.sln @@ -29,244 +29,172 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorRhino7", "Connecto {6C851417-514B-4E45-9553-408377535B68} = {6C851417-514B-4E45-9553-408377535B68} {EAA8D25F-A118-4B16-BC6C-A71463B3C53D} = {EAA8D25F-A118-4B16-BC6C-A71463B3C53D} {B74CB8C1-187B-46A6-B20B-92B8C129F3EE} = {B74CB8C1-187B-46A6-B20B-92B8C129F3EE} + {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E} = {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E} + {0F1FD0C3-875F-4689-9C4A-C56E9AB31102} = {0F1FD0C3-875F-4689-9C4A-C56E9AB31102} EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopUI2", "..\DesktopUI2\DesktopUI2\DesktopUI2.csproj", "{F7D586E0-5452-428D-B704-3FF142DE248B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorRhino6", "ConnectorRhino6\ConnectorRhino6.csproj", "{D648BB69-B992-4D34-906E-7A547374B86C}" + ProjectSection(ProjectDependencies) = postProject + {9454D346-A629-40E0-9EE2-7C6933ED1530} = {9454D346-A629-40E0-9EE2-7C6933ED1530} + {F1703D03-3EDB-4389-ADD9-39C52C6AEA19} = {F1703D03-3EDB-4389-ADD9-39C52C6AEA19} + {EAA8D25F-A118-4B16-BC6C-A71463B3C53D} = {EAA8D25F-A118-4B16-BC6C-A71463B3C53D} + EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaHwndHost", "..\DesktopUI2\AvaloniaHwndHost\AvaloniaHwndHost.csproj", "{D484DB4F-FB51-478F-B8F9-8FE3370AB392}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterGrasshopper6", "..\Objects\Converters\ConverterRhinoGh\ConverterGrasshopper6\ConverterGrasshopper6.csproj", "{9454D346-A629-40E0-9EE2-7C6933ED1530}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConverterGrasshopper7", "..\Objects\Converters\ConverterRhinoGh\ConverterGrasshopper7\ConverterGrasshopper7.csproj", "{CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConverterGrasshopper7", "..\Objects\Converters\ConverterRhinoGh\ConverterGrasshopper7\ConverterGrasshopper7.csproj", "{CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorGrasshopper", "..\ConnectorGrasshopper\ConnectorGrasshopper\ConnectorGrasshopper.csproj", "{109B3382-634B-408A-8A5C-4CD09CB92641}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorGrasshopper7", "..\ConnectorGrasshopper\ConnectorGrasshopper7\ConnectorGrasshopper7.csproj", "{109B3382-634B-408A-8A5C-4CD09CB92641}" ProjectSection(ProjectDependencies) = postProject - {9454D346-A629-40E0-9EE2-7C6933ED1530} = {9454D346-A629-40E0-9EE2-7C6933ED1530} {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E} = {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E} {EAA8D25F-A118-4B16-BC6C-A71463B3C53D} = {EAA8D25F-A118-4B16-BC6C-A71463B3C53D} EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorGrasshopperUtils", "..\ConnectorGrasshopper\ConnectorGrasshopperUtils\ConnectorGrasshopperUtils.csproj", "{E2A8E961-6DB6-4474-9E31-0C00FEB4A067}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DiskTransport", "..\Core\Transports\DiskTransport\DiskTransport.csproj", "{E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}" EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ConnectorGrasshopperShared", "..\ConnectorGrasshopper\ConnectorGrasshopperShared\ConnectorGrasshopperShared.shproj", "{0F1FD0C3-875F-4689-9C4A-C56E9AB31102}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectorGrasshopper6", "..\ConnectorGrasshopper\ConnectorGrasshopper6\ConnectorGrasshopper6.csproj", "{86920221-416E-4A66-A601-3418207E2401}" + ProjectSection(ProjectDependencies) = postProject + {9454D346-A629-40E0-9EE2-7C6933ED1530} = {9454D346-A629-40E0-9EE2-7C6933ED1530} + {EAA8D25F-A118-4B16-BC6C-A71463B3C53D} = {EAA8D25F-A118-4B16-BC6C-A71463B3C53D} + {B74CB8C1-187B-46A6-B20B-92B8C129F3EE} = {B74CB8C1-187B-46A6-B20B-92B8C129F3EE} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConnectorGrasshopperUtils", "..\ConnectorGrasshopper\ConnectorGrasshopperUtils\ConnectorGrasshopperUtils.csproj", "{E2A8E961-6DB6-4474-9E31-0C00FEB4A067}" +EndProject Global + GlobalSection(SharedMSBuildProjectFiles) = preSolution + ..\ConnectorGrasshopper\ConnectorGrasshopperShared\ConnectorGrasshopperShared.projitems*{0f1fd0c3-875f-4689-9c4a-c56e9ab31102}*SharedItemsImports = 13 + ..\ConnectorGrasshopper\ConnectorGrasshopperShared\ConnectorGrasshopperShared.projitems*{109b3382-634b-408a-8a5c-4cd09cb92641}*SharedItemsImports = 5 + ..\Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{6c851417-514b-4e45-9553-408377535b68}*SharedItemsImports = 5 + ..\ConnectorGrasshopper\ConnectorGrasshopperShared\ConnectorGrasshopperShared.projitems*{86920221-416e-4a66-a601-3418207e2401}*SharedItemsImports = 5 + ..\Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{9454d346-a629-40e0-9ee2-7c6933ed1530}*SharedItemsImports = 5 + ConnectorRhino\ConnectorRhinoShared\ConnectorRhinoShared.projitems*{a64acbf9-db82-4839-af99-57ed2e7989f4}*SharedItemsImports = 5 + ConnectorRhino\ConnectorRhinoShared\ConnectorRhinoShared.projitems*{b7376ec8-5d3e-47d2-96a7-748552f14c39}*SharedItemsImports = 13 + ..\Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{b74cb8c1-187b-46a6-b20b-92b8c129f3ee}*SharedItemsImports = 13 + ..\Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{cae61ac4-e81a-4e69-8dd0-07b7cdf77e2e}*SharedItemsImports = 5 + ConnectorRhino\ConnectorRhinoShared\ConnectorRhinoShared.projitems*{d648bb69-b992-4d34-906e-7a547374b86c}*SharedItemsImports = 5 + ..\Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{f1703d03-3edb-4389-add9-39c52c6aea19}*SharedItemsImports = 5 + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug Mac|Any CPU = Debug Mac|Any CPU - Debug Mac|x64 = Debug Mac|x64 Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 Release Mac|Any CPU = Release Mac|Any CPU - Release Mac|x64 = Release Mac|x64 Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {6321CA2D-5275-42A3-A034-170A0040E19E}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU {6321CA2D-5275-42A3-A034-170A0040E19E}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU - {6321CA2D-5275-42A3-A034-170A0040E19E}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {6321CA2D-5275-42A3-A034-170A0040E19E}.Debug Mac|x64.Build.0 = Debug|Any CPU {6321CA2D-5275-42A3-A034-170A0040E19E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6321CA2D-5275-42A3-A034-170A0040E19E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6321CA2D-5275-42A3-A034-170A0040E19E}.Debug|x64.ActiveCfg = Debug|Any CPU - {6321CA2D-5275-42A3-A034-170A0040E19E}.Debug|x64.Build.0 = Debug|Any CPU {6321CA2D-5275-42A3-A034-170A0040E19E}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU {6321CA2D-5275-42A3-A034-170A0040E19E}.Release Mac|Any CPU.Build.0 = Release|Any CPU - {6321CA2D-5275-42A3-A034-170A0040E19E}.Release Mac|x64.ActiveCfg = Release|Any CPU - {6321CA2D-5275-42A3-A034-170A0040E19E}.Release Mac|x64.Build.0 = Release|Any CPU {6321CA2D-5275-42A3-A034-170A0040E19E}.Release|Any CPU.ActiveCfg = Release|Any CPU {6321CA2D-5275-42A3-A034-170A0040E19E}.Release|Any CPU.Build.0 = Release|Any CPU - {6321CA2D-5275-42A3-A034-170A0040E19E}.Release|x64.ActiveCfg = Release|Any CPU - {6321CA2D-5275-42A3-A034-170A0040E19E}.Release|x64.Build.0 = Release|Any CPU {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU - {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Debug Mac|x64.Build.0 = Debug|Any CPU {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Debug|x64.ActiveCfg = Debug|Any CPU - {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Debug|x64.Build.0 = Debug|Any CPU {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Release Mac|Any CPU.Build.0 = Release|Any CPU - {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Release Mac|x64.ActiveCfg = Release|Any CPU - {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Release Mac|x64.Build.0 = Release|Any CPU {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Release|Any CPU.ActiveCfg = Release|Any CPU {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Release|Any CPU.Build.0 = Release|Any CPU - {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Release|x64.ActiveCfg = Release|Any CPU - {EAA8D25F-A118-4B16-BC6C-A71463B3C53D}.Release|x64.Build.0 = Release|Any CPU {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU - {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Debug Mac|x64.Build.0 = Debug|Any CPU {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Debug|x64.ActiveCfg = Debug|Any CPU - {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Debug|x64.Build.0 = Debug|Any CPU {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Release Mac|Any CPU.Build.0 = Release|Any CPU - {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Release Mac|x64.ActiveCfg = Release|Any CPU - {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Release Mac|x64.Build.0 = Release|Any CPU {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Release|Any CPU.ActiveCfg = Release|Any CPU {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Release|Any CPU.Build.0 = Release|Any CPU - {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Release|x64.ActiveCfg = Release|Any CPU - {F1703D03-3EDB-4389-ADD9-39C52C6AEA19}.Release|x64.Build.0 = Release|Any CPU {6C851417-514B-4E45-9553-408377535B68}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU {6C851417-514B-4E45-9553-408377535B68}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU - {6C851417-514B-4E45-9553-408377535B68}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {6C851417-514B-4E45-9553-408377535B68}.Debug Mac|x64.Build.0 = Debug|Any CPU {6C851417-514B-4E45-9553-408377535B68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6C851417-514B-4E45-9553-408377535B68}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C851417-514B-4E45-9553-408377535B68}.Debug|x64.ActiveCfg = Debug|Any CPU - {6C851417-514B-4E45-9553-408377535B68}.Debug|x64.Build.0 = Debug|Any CPU {6C851417-514B-4E45-9553-408377535B68}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU {6C851417-514B-4E45-9553-408377535B68}.Release Mac|Any CPU.Build.0 = Release|Any CPU - {6C851417-514B-4E45-9553-408377535B68}.Release Mac|x64.ActiveCfg = Release|Any CPU - {6C851417-514B-4E45-9553-408377535B68}.Release Mac|x64.Build.0 = Release|Any CPU {6C851417-514B-4E45-9553-408377535B68}.Release|Any CPU.ActiveCfg = Release|Any CPU {6C851417-514B-4E45-9553-408377535B68}.Release|Any CPU.Build.0 = Release|Any CPU - {6C851417-514B-4E45-9553-408377535B68}.Release|x64.ActiveCfg = Release|Any CPU - {6C851417-514B-4E45-9553-408377535B68}.Release|x64.Build.0 = Release|Any CPU {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug Mac|Any CPU.ActiveCfg = Debug Mac|Any CPU {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug Mac|Any CPU.Build.0 = Debug Mac|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug Mac|x64.Build.0 = Debug|Any CPU {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug|x64.ActiveCfg = Debug|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Debug|x64.Build.0 = Debug|Any CPU {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release Mac|Any CPU.ActiveCfg = Release Mac|Any CPU {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release Mac|Any CPU.Build.0 = Release Mac|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release Mac|x64.ActiveCfg = Release|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release Mac|x64.Build.0 = Release|Any CPU {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release|Any CPU.ActiveCfg = Release|Any CPU {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release|Any CPU.Build.0 = Release|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release|x64.ActiveCfg = Release|Any CPU - {A64ACBF9-DB82-4839-AF99-57ED2E7989F4}.Release|x64.Build.0 = Release|Any CPU {F7D586E0-5452-428D-B704-3FF142DE248B}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU {F7D586E0-5452-428D-B704-3FF142DE248B}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU - {F7D586E0-5452-428D-B704-3FF142DE248B}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {F7D586E0-5452-428D-B704-3FF142DE248B}.Debug Mac|x64.Build.0 = Debug|Any CPU {F7D586E0-5452-428D-B704-3FF142DE248B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F7D586E0-5452-428D-B704-3FF142DE248B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F7D586E0-5452-428D-B704-3FF142DE248B}.Debug|x64.ActiveCfg = Debug|Any CPU - {F7D586E0-5452-428D-B704-3FF142DE248B}.Debug|x64.Build.0 = Debug|Any CPU {F7D586E0-5452-428D-B704-3FF142DE248B}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU {F7D586E0-5452-428D-B704-3FF142DE248B}.Release Mac|Any CPU.Build.0 = Release|Any CPU - {F7D586E0-5452-428D-B704-3FF142DE248B}.Release Mac|x64.ActiveCfg = Release|Any CPU - {F7D586E0-5452-428D-B704-3FF142DE248B}.Release Mac|x64.Build.0 = Release|Any CPU {F7D586E0-5452-428D-B704-3FF142DE248B}.Release|Any CPU.ActiveCfg = Release|Any CPU {F7D586E0-5452-428D-B704-3FF142DE248B}.Release|Any CPU.Build.0 = Release|Any CPU - {F7D586E0-5452-428D-B704-3FF142DE248B}.Release|x64.ActiveCfg = Release|Any CPU - {F7D586E0-5452-428D-B704-3FF142DE248B}.Release|x64.Build.0 = Release|Any CPU {D648BB69-B992-4D34-906E-7A547374B86C}.Debug Mac|Any CPU.ActiveCfg = Debug Mac|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Debug Mac|x64.Build.0 = Debug|Any CPU {D648BB69-B992-4D34-906E-7A547374B86C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D648BB69-B992-4D34-906E-7A547374B86C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Debug|x64.ActiveCfg = Debug|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Debug|x64.Build.0 = Debug|Any CPU {D648BB69-B992-4D34-906E-7A547374B86C}.Release Mac|Any CPU.ActiveCfg = Release Mac|Any CPU {D648BB69-B992-4D34-906E-7A547374B86C}.Release Mac|Any CPU.Build.0 = Release Mac|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Release Mac|x64.ActiveCfg = Release|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Release Mac|x64.Build.0 = Release|Any CPU {D648BB69-B992-4D34-906E-7A547374B86C}.Release|Any CPU.ActiveCfg = Release|Any CPU {D648BB69-B992-4D34-906E-7A547374B86C}.Release|Any CPU.Build.0 = Release|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Release|x64.ActiveCfg = Release|Any CPU - {D648BB69-B992-4D34-906E-7A547374B86C}.Release|x64.Build.0 = Release|Any CPU {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU - {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Debug Mac|x64.Build.0 = Debug|Any CPU {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Debug|x64.ActiveCfg = Debug|Any CPU - {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Debug|x64.Build.0 = Debug|Any CPU {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU - {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Release Mac|x64.ActiveCfg = Release|Any CPU - {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Release Mac|x64.Build.0 = Release|Any CPU {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Release|Any CPU.ActiveCfg = Release|Any CPU {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Release|Any CPU.Build.0 = Release|Any CPU - {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Release|x64.ActiveCfg = Release|Any CPU - {D484DB4F-FB51-478F-B8F9-8FE3370AB392}.Release|x64.Build.0 = Release|Any CPU {9454D346-A629-40E0-9EE2-7C6933ED1530}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU - {9454D346-A629-40E0-9EE2-7C6933ED1530}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {9454D346-A629-40E0-9EE2-7C6933ED1530}.Debug Mac|x64.Build.0 = Debug|Any CPU {9454D346-A629-40E0-9EE2-7C6933ED1530}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9454D346-A629-40E0-9EE2-7C6933ED1530}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9454D346-A629-40E0-9EE2-7C6933ED1530}.Debug|x64.ActiveCfg = Debug|Any CPU - {9454D346-A629-40E0-9EE2-7C6933ED1530}.Debug|x64.Build.0 = Debug|Any CPU {9454D346-A629-40E0-9EE2-7C6933ED1530}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU {9454D346-A629-40E0-9EE2-7C6933ED1530}.Release Mac|Any CPU.Build.0 = Release|Any CPU - {9454D346-A629-40E0-9EE2-7C6933ED1530}.Release Mac|x64.ActiveCfg = Debug|Any CPU - {9454D346-A629-40E0-9EE2-7C6933ED1530}.Release Mac|x64.Build.0 = Debug|Any CPU {9454D346-A629-40E0-9EE2-7C6933ED1530}.Release|Any CPU.ActiveCfg = Release|Any CPU {9454D346-A629-40E0-9EE2-7C6933ED1530}.Release|Any CPU.Build.0 = Release|Any CPU - {9454D346-A629-40E0-9EE2-7C6933ED1530}.Release|x64.ActiveCfg = Release|Any CPU - {9454D346-A629-40E0-9EE2-7C6933ED1530}.Release|x64.Build.0 = Release|Any CPU {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU - {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Debug Mac|x64.Build.0 = Debug|Any CPU {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Debug|x64.ActiveCfg = Debug|Any CPU - {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Debug|x64.Build.0 = Debug|Any CPU {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Release Mac|Any CPU.Build.0 = Release|Any CPU - {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Release Mac|x64.ActiveCfg = Debug|Any CPU - {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Release Mac|x64.Build.0 = Debug|Any CPU {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Release|Any CPU.ActiveCfg = Release|Any CPU {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Release|Any CPU.Build.0 = Release|Any CPU - {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Release|x64.ActiveCfg = Release|Any CPU - {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E}.Release|x64.Build.0 = Release|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug Mac|x64.Build.0 = Debug|Any CPU + {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug Mac|Any CPU.ActiveCfg = Debug Mac|Any CPU + {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug Mac|Any CPU.Build.0 = Debug Mac|Any CPU {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug|Any CPU.Build.0 = Debug|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug|x64.ActiveCfg = Debug|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Debug|x64.Build.0 = Debug|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Release Mac|Any CPU.Build.0 = Release|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Release Mac|x64.ActiveCfg = Debug|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Release Mac|x64.Build.0 = Debug|Any CPU + {109B3382-634B-408A-8A5C-4CD09CB92641}.Release Mac|Any CPU.ActiveCfg = Release Mac|Any CPU + {109B3382-634B-408A-8A5C-4CD09CB92641}.Release Mac|Any CPU.Build.0 = Release Mac|Any CPU {109B3382-634B-408A-8A5C-4CD09CB92641}.Release|Any CPU.ActiveCfg = Release|Any CPU {109B3382-634B-408A-8A5C-4CD09CB92641}.Release|Any CPU.Build.0 = Release|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Release|x64.ActiveCfg = Release|Any CPU - {109B3382-634B-408A-8A5C-4CD09CB92641}.Release|x64.Build.0 = Release|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug Mac|x64.Build.0 = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|x64.ActiveCfg = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|x64.Build.0 = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release Mac|Any CPU.Build.0 = Release|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release Mac|x64.ActiveCfg = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release Mac|x64.Build.0 = Debug|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|Any CPU.Build.0 = Release|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|x64.ActiveCfg = Release|Any CPU - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|x64.Build.0 = Release|Any CPU {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU - {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Debug Mac|x64.ActiveCfg = Debug|Any CPU - {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Debug Mac|x64.Build.0 = Debug|Any CPU {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Debug|x64.ActiveCfg = Debug|Any CPU - {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Debug|x64.Build.0 = Debug|Any CPU {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Release Mac|Any CPU.Build.0 = Release|Any CPU - {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Release Mac|x64.ActiveCfg = Debug|Any CPU - {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Release Mac|x64.Build.0 = Debug|Any CPU {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Release|Any CPU.ActiveCfg = Release|Any CPU {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Release|Any CPU.Build.0 = Release|Any CPU - {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Release|x64.ActiveCfg = Release|Any CPU - {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB}.Release|x64.Build.0 = Release|Any CPU + {86920221-416E-4A66-A601-3418207E2401}.Debug Mac|Any CPU.ActiveCfg = Debug Mac|Any CPU + {86920221-416E-4A66-A601-3418207E2401}.Debug Mac|Any CPU.Build.0 = Debug Mac|Any CPU + {86920221-416E-4A66-A601-3418207E2401}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86920221-416E-4A66-A601-3418207E2401}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86920221-416E-4A66-A601-3418207E2401}.Release Mac|Any CPU.ActiveCfg = Release Mac|Any CPU + {86920221-416E-4A66-A601-3418207E2401}.Release Mac|Any CPU.Build.0 = Release Mac|Any CPU + {86920221-416E-4A66-A601-3418207E2401}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86920221-416E-4A66-A601-3418207E2401}.Release|Any CPU.Build.0 = Release|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug Mac|Any CPU.ActiveCfg = Debug|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug Mac|Any CPU.Build.0 = Debug|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release Mac|Any CPU.ActiveCfg = Release|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release Mac|Any CPU.Build.0 = Release|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2A8E961-6DB6-4474-9E31-0C00FEB4A067}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -285,20 +213,10 @@ Global {9454D346-A629-40E0-9EE2-7C6933ED1530} = {F415936B-1E0C-4218-B8A8-E54F15549BBB} {CAE61AC4-E81A-4E69-8DD0-07B7CDF77E2E} = {F415936B-1E0C-4218-B8A8-E54F15549BBB} {109B3382-634B-408A-8A5C-4CD09CB92641} = {E591AEAC-C9ED-4DB3-9188-0B74FFAF7F39} - {E2A8E961-6DB6-4474-9E31-0C00FEB4A067} = {1E404CB8-22F1-439D-B58E-C23B14A45158} {E20D7D1E-0FF7-49A5-9AA9-9430901F92BB} = {1E404CB8-22F1-439D-B58E-C23B14A45158} + {86920221-416E-4A66-A601-3418207E2401} = {E591AEAC-C9ED-4DB3-9188-0B74FFAF7F39} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {1BFED19F-741B-4E11-95C0-753E2058B3D2} EndGlobalSection - GlobalSection(SharedMSBuildProjectFiles) = preSolution - ..\Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{6c851417-514b-4e45-9553-408377535b68}*SharedItemsImports = 5 - ..\Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{9454d346-a629-40e0-9ee2-7c6933ed1530}*SharedItemsImports = 5 - ConnectorRhino\ConnectorRhinoShared\ConnectorRhinoShared.projitems*{a64acbf9-db82-4839-af99-57ed2e7989f4}*SharedItemsImports = 5 - ConnectorRhino\ConnectorRhinoShared\ConnectorRhinoShared.projitems*{b7376ec8-5d3e-47d2-96a7-748552f14c39}*SharedItemsImports = 13 - ..\Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{b74cb8c1-187b-46a6-b20b-92b8c129f3ee}*SharedItemsImports = 13 - ..\Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{cae61ac4-e81a-4e69-8dd0-07b7cdf77e2e}*SharedItemsImports = 5 - ConnectorRhino\ConnectorRhinoShared\ConnectorRhinoShared.projitems*{d648bb69-b992-4d34-906e-7a547374b86c}*SharedItemsImports = 5 - ..\Objects\Converters\ConverterRhinoGh\ConverterRhinoGhShared\ConverterRhinoGhShared.projitems*{f1703d03-3edb-4389-add9-39c52c6aea19}*SharedItemsImports = 5 - EndGlobalSection EndGlobal diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/BIMElements/BIMElementCommands.cs b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/BIMElements/BIMElementCommands.cs index 7550cfcf34..74ba7d4c9e 100644 --- a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/BIMElements/BIMElementCommands.cs +++ b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/BIMElements/BIMElementCommands.cs @@ -20,8 +20,7 @@ public class SpeckleBIM // TODO: address consistency weak point, since this string needs to match exactly in ConverterRhinoGH.Geometry.cs! static string SpeckleSchemaKey = "SpeckleSchema"; static string DirectShapeKey = "DirectShape"; - public RhinoDoc ActiveDoc = null; - + public class AutomaticBIM : Command { public override string EnglishName => "CreateAutomatic"; diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/ConnectorRhinoShared.projitems b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/ConnectorRhinoShared.projitems index e359561606..a926a2aa38 100644 --- a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/ConnectorRhinoShared.projitems +++ b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/ConnectorRhinoShared.projitems @@ -11,26 +11,37 @@ - + + Resources.resx True True + - + + - + + + MSBuild:Compile + Designer + + + DuiPanel.xaml + + MSBuild:Compile Designer - - Panel.xaml + + MappingsPanel.xaml Resources.Designer.cs @@ -38,7 +49,9 @@ Designer - + + + \ No newline at end of file diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/Plugin.cs b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/Plugin.cs index 62facd225e..0914c288e7 100644 --- a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/Plugin.cs +++ b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/Plugin.cs @@ -7,6 +7,8 @@ using Avalonia; using Avalonia.ReactiveUI; using ConnectorRhinoShared; +using DesktopUI2.ViewModels.MappingTool; +using DesktopUI2.Views; using Rhino; using Rhino.PlugIns; using Rhino.Runtime; @@ -26,6 +28,10 @@ public class SpeckleRhinoConnectorPlugin : PlugIn private static string SpeckleKey = "speckle2"; public ConnectorBindingsRhino Bindings { get; private set; } + public MappingBindingsRhino MappingBindings { get; private set; } + + private bool SelectionExpired = false; + internal bool ExistingSchemaLogExpired = false; public static AppBuilder appBuilder; @@ -50,9 +56,18 @@ public void Init() Bindings = new ConnectorBindingsRhino(); + MappingBindings = new MappingBindingsRhino(); RhinoDoc.BeginOpenDocument += RhinoDoc_BeginOpenDocument; RhinoDoc.EndOpenDocument += RhinoDoc_EndOpenDocument; + + //Mapping tool selection + RhinoDoc.ActiveDocumentChanged += RhinoDoc_ActiveDocumentChanged; + RhinoDoc.SelectObjects += (sender, e) => SelectionExpired = true; + RhinoDoc.DeselectObjects += (sender, e) => SelectionExpired = true; + RhinoDoc.DeselectAllObjects += (sender, e) => SelectionExpired = true; + RhinoDoc.DeleteRhinoObject += (sender, e) => ExistingSchemaLogExpired = true; + RhinoApp.Idle += RhinoApp_Idle; } catch (Exception ex) { @@ -118,7 +133,8 @@ private void RhinoDoc_EndOpenDocument(object sender, DocumentOpenEventArgs e) RhinoApp.CommandLineOut.WriteLine($"Speckle error - {ex.ToFormattedString()}"); } #else - Rhino.UI.Panels.OpenPanel(typeof(Panel).GUID); + Rhino.UI.Panels.OpenPanel(typeof(DuiPanel).GUID); + Rhino.UI.Panels.OpenPanel(typeof(MappingsPanel).GUID); #endif } @@ -156,8 +172,11 @@ protected override LoadReturnCode OnLoad(ref string errorMessage) Init(); #if !MAC - System.Type panelType = typeof(Panel); + System.Type panelType = typeof(DuiPanel); Rhino.UI.Panels.RegisterPanel(this, panelType, "Speckle", Resources.icon); + + System.Type mappingsPanelType = typeof(MappingsPanel); + Rhino.UI.Panels.RegisterPanel(this, mappingsPanelType, "Speckle Mapping Tool", Resources.icon); #endif // Get the version number of our plugin, that was last used, from our settings file. var plugin_version = Settings.GetString("PlugInVersion", null); @@ -198,5 +217,58 @@ protected override LoadReturnCode OnLoad(ref string errorMessage) return LoadReturnCode.Success; } public override PlugInLoadTime LoadTime => PlugInLoadTime.AtStartup; + + + private void RhinoApp_Idle(object sender, EventArgs e) + { + + //do not hog rhino, to be refractored a bit + if (MappingsViewModel.Instance == null) + return; + +#if !MAC + if (!Rhino.UI.Panels.GetOpenPanelIds().Contains(typeof(MappingsPanel).GUID)) + return; +#else + if (SpeckleMappingsCommandMac.MainWindow == null || !SpeckleMappingsCommandMac.MainWindow.IsVisible) + return; +#endif + + try + { + if (SelectionExpired && MappingBindings.UpdateSelection != null) + { + SelectionExpired = false; + MappingBindings.UpdateSelection(MappingBindings.GetSelectionInfo()); + } + + if (ExistingSchemaLogExpired && MappingBindings.UpdateExistingSchemaElements != null) + { + ExistingSchemaLogExpired = false; + MappingBindings.UpdateExistingSchemaElements(MappingBindings.GetExistingSchemaElements()); + } + } + catch (Exception ex) + { + + } + + + } + private void RhinoDoc_DeselectObjects(object sender, Rhino.DocObjects.RhinoObjectSelectionEventArgs e) + { + SelectionExpired = true; + } + + private void RhinoDoc_SelectObjects(object sender, Rhino.DocObjects.RhinoObjectSelectionEventArgs e) + { + SelectionExpired = true; + } + + private void RhinoDoc_ActiveDocumentChanged(object sender, DocumentEventArgs e) + { + SelectionExpired = true; + // TODO: Parse new doc for existing stuff + } } } diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/ConnectorRhinoCommandMac.cs b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/SpeckleCommandMac.cs similarity index 100% rename from ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/ConnectorRhinoCommandMac.cs rename to ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/SpeckleCommandMac.cs diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/ConnectorRhinoCommandWin.cs b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/SpeckleCommandWin.cs similarity index 90% rename from ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/ConnectorRhinoCommandWin.cs rename to ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/SpeckleCommandWin.cs index b28f043991..9466f6f8ee 100644 --- a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/ConnectorRhinoCommandWin.cs +++ b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/SpeckleCommandWin.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Runtime.InteropServices; using System.Threading; using Avalonia; @@ -12,7 +12,7 @@ namespace SpeckleRhino { - #if !MAC +#if !MAC public class SpeckleCommandWin : Command { @@ -31,7 +31,7 @@ protected override Result RunCommand(RhinoDoc doc, RunMode mode) try { - Rhino.UI.Panels.OpenPanel(typeof(Panel).GUID); + Rhino.UI.Panels.OpenPanel(typeof(DuiPanel).GUID); return Result.Success; } catch (Exception e) diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/SpeckleMappingsCommandMac.cs b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/SpeckleMappingsCommandMac.cs new file mode 100644 index 0000000000..55071ae085 --- /dev/null +++ b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/SpeckleMappingsCommandMac.cs @@ -0,0 +1,59 @@ +using System; +using System.Runtime.InteropServices; +using System.Threading; +using Avalonia; +using Avalonia.Controls; +using Avalonia.ReactiveUI; +using DesktopUI2.ViewModels; +using DesktopUI2.ViewModels.MappingTool; +using DesktopUI2.Views; +using Rhino; +using Rhino.Commands; +using Speckle.Core.Models.Extensions; + +namespace SpeckleRhino +{ +#if MAC + public class SpeckleMappingsCommandMac : Command + { + + public static SpeckleMappingsCommandMac Instance { get; private set; } + + public override string EnglishName => "SpeckleMappings"; + public static Window MainWindow { get; private set; } + + public SpeckleMappingsCommandMac() + { + Instance = this; + } + + protected override Result RunCommand(RhinoDoc doc, RunMode mode) + { + + try + { + if (MainWindow == null) + { + var viewModel = new MappingsViewModel(SpeckleRhinoConnectorPlugin.Instance.MappingBindings); + MainWindow = new MappingsWindow + { + DataContext = viewModel + }; + } + + MainWindow.Show(); + MainWindow.Activate(); + return Result.Success; + } + catch (Exception e) + { + RhinoApp.CommandLineOut.WriteLine($"Speckle Error - {e.ToFormattedString()}"); + return Result.Failure; + } + } + + + + } +#endif +} diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/SpeckleMappingsCommandWin.cs b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/SpeckleMappingsCommandWin.cs new file mode 100644 index 0000000000..97a3dceb21 --- /dev/null +++ b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Entry/SpeckleMappingsCommandWin.cs @@ -0,0 +1,46 @@ +using System; +using System.Runtime.InteropServices; +using System.Threading; +using Avalonia; +using Avalonia.Controls; +using Avalonia.ReactiveUI; +using DesktopUI2.ViewModels; +using DesktopUI2.Views; +using Rhino; +using Rhino.Commands; +using Speckle.Core.Models.Extensions; + +namespace SpeckleRhino +{ +#if !MAC + public class SpeckleMappingsCommandWin : Command + { + + public static SpeckleMappingsCommandWin Instance { get; private set; } + + public override string EnglishName => "SpeckleMappings"; + + public SpeckleMappingsCommandWin() + { + Instance = this; + } + + protected override Result RunCommand(RhinoDoc doc, RunMode mode) + { + + try + { + + Rhino.UI.Panels.OpenPanel(typeof(MappingsPanel).GUID); + return Result.Success; + } + catch (Exception e) + { + RhinoApp.CommandLineOut.WriteLine($"Speckle Error - { e.ToFormattedString() }"); + return Result.Failure; + } + } + + } +#endif +} diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/ConnectorBindingsRhino.cs b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/ConnectorBindingsRhino.cs index 888846e344..79012eb3ed 100644 --- a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/ConnectorBindingsRhino.cs +++ b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/ConnectorBindingsRhino.cs @@ -238,6 +238,9 @@ public override async Task>> ImportFamilyC #region receiving public override bool CanPreviewReceive => true; + + private static bool IsPreviewIgnore(Base @object) => @object.speckle_type.Contains("Block") || @object.speckle_type.Contains("View"); + public override async Task PreviewReceive(StreamState state, ProgressViewModel progress) { // first check if commit is the same and preview objects have already been generated @@ -277,7 +280,7 @@ public override async Task PreviewReceive(StreamState state, Progre previewObj.CreatedIds = new List() { previewObj.OriginalId }; // temporary store speckle id as created id for Preview report selection to work var storedObj = StoredObjects[previewObj.OriginalId]; - if (storedObj.speckle_type.Contains("Block") || storedObj.speckle_type.Contains("View")) + if(IsPreviewIgnore(storedObj)) { var status = previewObj.Convertible ? ApplicationObject.State.Created : ApplicationObject.State.Skipped; previewObj.Update(status: status, logItem: "No preview available"); @@ -286,12 +289,12 @@ public override async Task PreviewReceive(StreamState state, Progre } if (previewObj.Convertible) - previewObj.Converted = ConvertObject(previewObj, converter); + previewObj.Converted = ConvertObject(storedObj, converter); else foreach (var fallback in previewObj.Fallback) { - fallback.Converted = ConvertObject(fallback, converter); - previewObj.Log.AddRange(fallback.Log); + var storedFallback = StoredObjects[fallback.OriginalId]; + fallback.Converted = ConvertObject(storedFallback, converter); } if (previewObj.Converted == null || previewObj.Converted.Count == 0) @@ -382,8 +385,6 @@ public override async Task ReceiveStream(StreamState state, Progres if (progress.Report.OperationErrorsCount != 0) return null; - - RhinoApp.InvokeOnUiThread((Action)delegate { RhinoDoc.ActiveDoc.Notes += "%%%" + commitLayerName; // give converter a way to access commit layer info @@ -399,13 +400,28 @@ public override async Task ReceiveStream(StreamState state, Progres foreach (var previewObj in Preview) { if (previewObj.Convertible) - previewObj.Converted = ConvertObject(previewObj, converter); + { + var storedObj = StoredObjects[previewObj.OriginalId]; + if (storedObj == null) + { + previewObj.Update(status: ApplicationObject.State.Failed, + logItem: $"Couldn't retrieve stored object from bindings"); + continue; + } + + if (!IsPreviewIgnore(storedObj)) + { + previewObj.Converted = ConvertObject(storedObj, converter); + } + } else + { foreach (var fallback in previewObj.Fallback) { - fallback.Converted = ConvertObject(fallback, converter); - previewObj.Log.AddRange(fallback.Log); + var storedFallback = StoredObjects[ fallback.OriginalId ]; + fallback.Converted = ConvertObject(storedFallback, converter); } + } if (previewObj.Converted == null || previewObj.Converted.Count == 0) { @@ -432,10 +448,13 @@ public override async Task ReceiveStream(StreamState state, Progres // check receive mode & if objects need to be removed from the document after bake (or received objs need to be moved layers) var toRemove = new List(); + var layer = previewObj.Container; switch (state.ReceiveMode) { case ReceiveMode.Update: // existing objs will be removed if it exists in the received commit toRemove = GetObjectsByApplicationId(previewObj.applicationId); + if (toRemove.Any()) + layer = Doc.Layers[toRemove.First().Attributes.LayerIndex].FullPath; toRemove.ForEach(o => Doc.Objects.Delete(o)); break; default: @@ -448,11 +467,16 @@ public override async Task ReceiveStream(StreamState state, Progres previewObj.CreatedIds.Clear(); // clear created ids before bake because these may be speckle ids from the preview if (previewObj.Convertible) - BakeObject(previewObj, converter); + { + BakeObject(previewObj, converter, layer); + previewObj.Status = !previewObj.CreatedIds.Any() ? ApplicationObject.State.Failed : + isUpdate ? ApplicationObject.State.Updated : + ApplicationObject.State.Created; + } else { foreach (var fallback in previewObj.Fallback) - BakeObject(fallback, converter, previewObj); + BakeObject(fallback, converter, layer, previewObj); previewObj.Status = previewObj.Fallback.Where(o => o.Status == ApplicationObject.State.Failed).Count() == previewObj.Fallback.Count ? ApplicationObject.State.Failed : isUpdate ? ApplicationObject.State.Updated : ApplicationObject.State.Created; @@ -477,7 +501,7 @@ public override async Task ReceiveStream(StreamState state, Progres return state; } - // gets objects by id directly or by applicaiton id user string + // gets objects by id directly or by application id user string private List GetObjectsByApplicationId(string applicationId) { if (string.IsNullOrEmpty(applicationId)) @@ -638,9 +662,8 @@ private List FlattenCommitObject(object obj, ISpeckleConverte } // conversion and bake - private List ConvertObject(ApplicationObject appObj, ISpeckleConverter converter) + private List ConvertObject(Base obj, ISpeckleConverter converter) { - var obj = StoredObjects[appObj.OriginalId]; var convertedList = new List(); var converted = converter.ConvertToNative(obj); @@ -660,21 +683,20 @@ void FlattenConvertedObject(object item) return convertedList; } - private void BakeObject(ApplicationObject appObj, ISpeckleConverter converter, ApplicationObject parent = null) + private void BakeObject(ApplicationObject appObj, ISpeckleConverter converter, string layer, ApplicationObject parent = null) { var obj = StoredObjects[appObj.OriginalId]; int bakedCount = 0; // check if this is a view or block - convert instead of bake if so (since these are "baked" during conversion) - if (!appObj.Converted.Any() && (obj.speckle_type.Contains("Block") || obj.speckle_type.Contains("View"))) + if (!appObj.Converted.Any() && IsPreviewIgnore(obj)) { - appObj.Converted = ConvertObject(appObj, converter); + appObj.Converted = ConvertObject(obj, converter); } foreach (var convertedItem in appObj.Converted) { switch (convertedItem) { case GeometryBase o: - string layerPath = appObj.Container; if (!o.IsValidWithLog(out string log)) { var invalidMessage = $"{log.Replace("\n", "").Replace("\r", "")}"; @@ -684,10 +706,10 @@ private void BakeObject(ApplicationObject appObj, ISpeckleConverter converter, A appObj.Update(logItem: invalidMessage); continue; } - Layer bakeLayer = Doc.GetLayer(layerPath, true); + Layer bakeLayer = Doc.GetLayer(layer, true); if (bakeLayer == null) { - var layerMessage = $"Could not create layer {layerPath}."; + var layerMessage = $"Could not create layer {layer}."; if (parent != null) parent.Update(logItem: $"fallback {appObj.id}: {layerMessage}"); else @@ -910,7 +932,7 @@ public override async Task SendStream(StreamState state, ProgressViewMod viewIndex = Doc.NamedViews.FindByName(guid); // try get view } var descriptor = obj != null ? Formatting.ObjectDescriptor(obj) : "Named View"; - var applicationId = obj.Attributes.GetUserString(ApplicationIdKey) ?? guid; + var applicationId = obj?.Attributes.GetUserString(ApplicationIdKey) ?? guid; ApplicationObject reportObj = new ApplicationObject(guid, descriptor) { applicationId = applicationId }; if (obj != null) @@ -1150,5 +1172,58 @@ public override List GetCustomStreamMenuItems() #endregion + public override bool CanOpen3DView => true; + + public override async Task Open3DView(List viewCoordinates, string viewName = "") + { + // Create positional objects for camera + Point3d cameraLocation = new Point3d(viewCoordinates[0], viewCoordinates[1], viewCoordinates[2]); + Point3d target = new Point3d(viewCoordinates[3], viewCoordinates[4], viewCoordinates[5]); + Vector3d direction = target - cameraLocation; + + if (!Doc.Views.Any(v => v.ActiveViewport.Name == "SpeckleCommentView")) + { + // Get bounds from active view + Rectangle bounds = Doc.Views.ActiveView.ScreenRectangle; + // Reset margins + bounds.X = 0; + bounds.Y = 0; + Doc.Views.Add("SpeckleCommentView", DefinedViewportProjection.Perspective, bounds, false); + } + + await Task.Run(() => + { + IEnumerable views = Doc.Views.Where(v => v.ActiveViewport.Name == "SpeckleCommentView"); + if (views.Any()) + { + RhinoView speckleCommentView = views.First(); + speckleCommentView.ActiveViewport.SetCameraDirection(direction, false); + speckleCommentView.ActiveViewport.SetCameraLocation(cameraLocation, true); + + DisplayModeDescription shaded = DisplayModeDescription.FindByName("Shaded"); + if (shaded!= null) + { + speckleCommentView.ActiveViewport.DisplayMode = shaded; + } + + // Minimized all maximized views. + IEnumerable maximizedViews = Doc.Views.Where(v => v.Maximized); + foreach (RhinoView view in maximizedViews) + { + view.Maximized = false; + } + + // Maximized speckle comment view. + speckleCommentView.Maximized = true; + + if (Doc.Views.ActiveView.ActiveViewport.Name != "SpeckleCommentView") + { + Doc.Views.ActiveView = speckleCommentView; + } + } + + Doc.Views.Redraw(); + }); + } } } diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/Panel.xaml b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/DuiPanel.xaml similarity index 93% rename from ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/Panel.xaml rename to ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/DuiPanel.xaml index 3400dd92ce..27fc4cd059 100644 --- a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/Panel.xaml +++ b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/DuiPanel.xaml @@ -1,9 +1,9 @@  diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/Panel.xaml.cs b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/DuiPanel.xaml.cs similarity index 92% rename from ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/Panel.xaml.cs rename to ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/DuiPanel.xaml.cs index 54fc691737..83dfcc03c8 100644 --- a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/Panel.xaml.cs +++ b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/DuiPanel.xaml.cs @@ -10,9 +10,9 @@ namespace SpeckleRhino /// Interaction logic for Page1.xaml /// [System.Runtime.InteropServices.Guid("3EA3FEE1-216D-4076-9A06-949DE4C0E8AF")] - public partial class Panel : UserControl + public partial class DuiPanel : UserControl { - public Panel() + public DuiPanel() { try { diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/MappingBindingsRhino.cs b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/MappingBindingsRhino.cs new file mode 100644 index 0000000000..4f300f3ca1 --- /dev/null +++ b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/MappingBindingsRhino.cs @@ -0,0 +1,239 @@ +using System; +using System.Collections; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text.RegularExpressions; +using System.Threading; +using System.Threading.Tasks; +using DesktopUI2; +using DesktopUI2.Models; +using DesktopUI2.Models.Filters; +using DesktopUI2.Models.Settings; +using DesktopUI2.ViewModels; +using DesktopUI2.ViewModels.MappingTool; +using Rhino; +using Rhino.Display; +using Rhino.DocObjects; +using Rhino.Geometry; +using Rhino.Render; +using Speckle.Core.Api; +using Speckle.Core.Kits; +using Speckle.Core.Logging; +using Speckle.Core.Models; +using Speckle.Core.Transports; +using Speckle.Newtonsoft.Json; +using static DesktopUI2.ViewModels.MappingViewModel; +using ApplicationObject = Speckle.Core.Models.ApplicationObject; +using Point = Rhino.Geometry.Point; + +namespace SpeckleRhino +{ + + public partial class MappingBindingsRhino : MappingsBindings + { + static string SpeckleMappingKey = "SpeckleMapping"; + static string SpeckleMappingViewKey = "SpeckleMappingView"; + + private MappingsDisplayConduit Display; + + public MappingBindingsRhino() + { + Display = new MappingsDisplayConduit(); + Display.Enabled = true; + } + + public override MappingSelectionInfo GetSelectionInfo() + { + try + { + var selection = RhinoDoc.ActiveDoc.Objects.GetSelectedObjects(false, false).ToList(); + var result = new List(); + + foreach (var obj in selection) + { + var schemas = GetObjectSchemas(obj); + + if (!result.Any()) + result = schemas; + else + //intersect lists + //TODO: if some elements already have a schema and values are different + //we should default to an empty schema, instead of potentially restoring the one with values + result = result.Where(x => schemas.Any(y => y.Name == x.Name)).ToList(); + + //incompatible selection + if (!result.Any()) + return new MappingSelectionInfo(new List(), selection.Count); + } + + return new MappingSelectionInfo(result, selection.Count); + + } + catch (Exception ex) + { + return new MappingSelectionInfo(new List(), 0); + } + } + + /// + /// For a give Rhino Object find all applicable schemas and retrive any existing one already applied + /// + /// + /// + private List GetObjectSchemas(RhinoObject obj) + { + var result = new List(); + + var existingSchema = GetExistingObjectSchema(obj); + if (existingSchema != null) + result.Add(existingSchema); + + if (obj is InstanceObject) + { + result.Add(new RevitFamilyInstanceViewModel()); + } + else + { + switch (obj.Geometry) + { + case Mesh m: + if (!result.Any(x => typeof(DirectShapeFreeformViewModel) == x.GetType())) + result.Add(new DirectShapeFreeformViewModel()); + break; + + case Brep b: + if (!result.Any(x => typeof(DirectShapeFreeformViewModel) == x.GetType())) + result.Add(new DirectShapeFreeformViewModel()); + break; + case Extrusion e: + if (e.ProfileCount > 1) break; + var crv = e.Profile3d(new ComponentIndex(ComponentIndexType.ExtrusionBottomProfile, 0)); + if (!(crv.IsLinear() || crv.IsArc())) break; + if (crv.PointAtStart.Z != crv.PointAtEnd.Z) break; + + if (!result.Any(x => typeof(RevitWallViewModel) == x.GetType())) + result.Add(new RevitWallViewModel()); + break; + + case Curve c: + if (c.IsLinear()) + { + result.Add(new RevitBeamViewModel()); + result.Add(new RevitBraceViewModel()); + } + + //if (c.IsLinear() && c.PointAtEnd.Z == c.PointAtStart.Z) cats.Add(Gridline); + //if (c.IsLinear() && c.PointAtEnd.X == c.PointAtStart.X && c.PointAtEnd.Y == c.PointAtStart.Y) cats.Add(Column); + //if (c.IsArc() && !c.IsCircle() && c.PointAtEnd.Z == c.PointAtStart.Z) cats.Add(Gridline); + break; + + case Point p: + result.Add(new RevitFamilyInstanceViewModel()); + break; + } + } + + return result; + } + + private Schema GetExistingObjectSchema(RhinoObject obj) + { + var viewModel = obj.Attributes.GetUserString(SpeckleMappingViewKey); + + if (string.IsNullOrEmpty(viewModel)) + return null; + + try + { + var settings = new JsonSerializerSettings() + { + TypeNameHandling = TypeNameHandling.All + }; + + return JsonConvert.DeserializeObject(viewModel, settings); + + } + catch + { + return null; + } + } + + public override void SetMappings(string schema, string viewModel) + { + var selection = RhinoDoc.ActiveDoc.Objects.GetSelectedObjects(false, false).ToList(); + foreach (var obj in selection) + { + obj.Attributes.SetUserString(SpeckleMappingKey, schema); + obj.Attributes.SetUserString(SpeckleMappingViewKey, viewModel); + } + + SpeckleRhinoConnectorPlugin.Instance.ExistingSchemaLogExpired = true; + + } + + public override void ClearMappings() + { + var selection = RhinoDoc.ActiveDoc.Objects.GetSelectedObjects(false, false).ToList(); + + foreach (var obj in selection) + { + try + { + obj.Attributes.DeleteUserString(SpeckleMappingKey); + obj.Attributes.DeleteUserString(SpeckleMappingViewKey); + } + catch { } + } + SpeckleRhinoConnectorPlugin.Instance.ExistingSchemaLogExpired = true; + } + + public override List GetExistingSchemaElements() + { + var settings = new JsonSerializerSettings() + { + TypeNameHandling = TypeNameHandling.All + }; + + var objects = RhinoDoc.ActiveDoc.Objects.FindByUserString(SpeckleMappingViewKey, "*", true); + var schemas = objects.Select(obj => JsonConvert.DeserializeObject(obj.Attributes.GetUserString(SpeckleMappingViewKey), settings)).ToList(); + + + //add the object id to the schema so we can easily highlight/clear them + for (var i = 0; i < schemas.Count; i++) + { + schemas[i].ApplicationId = objects[i].Id.ToString(); + } + + + return schemas; + } + + public override void HighlightElements(List ids) + { + try + { + Display.ObjectIds = ids; + RhinoDoc.ActiveDoc?.Views.Redraw(); + } + catch (Exception ex) + { + //fail silently + } + } + + public override void SelectElements(List ids) + { + try + { + RhinoDoc.ActiveDoc.Objects.Select(ids.Select(x => Guid.Parse(x))); + } + catch (Exception ex) + { + //fail silently + } + } + } +} diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/MappingsPanel.xaml b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/MappingsPanel.xaml new file mode 100644 index 0000000000..2548502045 --- /dev/null +++ b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/MappingsPanel.xaml @@ -0,0 +1,13 @@ + + + + + + diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/MappingsPanel.xaml.cs b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/MappingsPanel.xaml.cs new file mode 100644 index 0000000000..0d036dba45 --- /dev/null +++ b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/UI/MappingsPanel.xaml.cs @@ -0,0 +1,40 @@ +using System; +using System.Windows; +using System.Windows.Controls; +using DesktopUI2.ViewModels.MappingTool; +using DesktopUI2.Views; + +namespace SpeckleRhino +{ + /// + /// Interaction logic for Page1.xaml + /// + [System.Runtime.InteropServices.Guid("0EB2F55E-CEB2-4112-8248-EED17ED66CD3")] + public partial class MappingsPanel : UserControl + { + public MappingsPanel() + { + try + { + InitializeComponent(); + //set here otherwise we get errors about re-used visual parents when closing and re-opening the panel + //there might be other solutions too. If changing this behaviour make sure to refresh the view model + //when opening a new file as well + var viewModel = new MappingsViewModel(SpeckleRhinoConnectorPlugin.Instance.MappingBindings); + this.DataContext = viewModel; + AvaloniaHost.Content = new MappingsControl(); + } + catch (Exception ex) + { + + } + + + + } + + + + + } +} diff --git a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Utils.cs b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Utils.cs index a0edd725bc..dc51be7536 100644 --- a/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Utils.cs +++ b/ConnectorRhino/ConnectorRhino/ConnectorRhinoShared/Utils.cs @@ -37,7 +37,7 @@ public static class Utils public static string RemoveInvalidRhinoChars(string str) { // using this to handle grasshopper branch syntax - string cleanStr = str.Replace("{", "").Replace("}",""); + string cleanStr = str.Replace("{", "").Replace("}", ""); return cleanStr; } #region extension methods @@ -210,6 +210,46 @@ protected override void PreDrawObjects(Rhino.Display.DrawEventArgs e) #endregion + public class MappingsDisplayConduit : Rhino.Display.DisplayConduit + { + public List ObjectIds { get; set; } = new List(); + + public Color Color { get; set; } = Color.RoyalBlue; + + protected override void DrawOverlay(DrawEventArgs e) + { + base.DrawOverlay(e); + if (!Enabled) return; + + //e.Display.ZBiasMode = ZBiasMode.TowardsCamera; + + foreach (var id in ObjectIds) + { + if (id == null) continue; + var obj = Rhino.RhinoDoc.ActiveDoc.Objects.FindId(new Guid(id)); + switch (obj.ObjectType) + { + case ObjectType.Curve: + e.Display.DrawCurve((Curve)obj.Geometry, Color); + break; + case ObjectType.Mesh: + DisplayMaterial mMaterial = new DisplayMaterial(Color, 0.5); + e.Display.DrawMeshShaded(obj.Geometry as Mesh, mMaterial); + break; + case ObjectType.Extrusion: + DisplayMaterial eMaterial = new DisplayMaterial(Color, 0.5); + e.Display.DrawBrepShaded(((Extrusion)obj.Geometry).ToBrep(), eMaterial); + break; + case ObjectType.Brep: + DisplayMaterial bMaterial = new DisplayMaterial(Color, 0.5); + e.Display.DrawBrepShaded((Brep)obj.Geometry, bMaterial); + break; + } + } + + } + } + public static class Formatting { public static string ObjectDescriptor(RhinoObject obj) diff --git a/ConnectorRhino/ConnectorRhino6/ConnectorRhino6.csproj b/ConnectorRhino/ConnectorRhino6/ConnectorRhino6.csproj index 85032f033b..5104cd36fa 100644 --- a/ConnectorRhino/ConnectorRhino6/ConnectorRhino6.csproj +++ b/ConnectorRhino/ConnectorRhino6/ConnectorRhino6.csproj @@ -1,8 +1,7 @@ - + net462 - 1.0 SpeckleRhino Description of SpeckleRhino .rhp @@ -21,10 +20,6 @@ - - - - @@ -37,7 +32,7 @@ - + diff --git a/ConnectorRhino/ConnectorRhino7/ConnectorRhino7.csproj b/ConnectorRhino/ConnectorRhino7/ConnectorRhino7.csproj index 5116070d8f..dcf5138d8c 100644 --- a/ConnectorRhino/ConnectorRhino7/ConnectorRhino7.csproj +++ b/ConnectorRhino/ConnectorRhino7/ConnectorRhino7.csproj @@ -2,17 +2,17 @@ net48 - 1.0 + 2.0.0-dev SpeckleRhino Description of SpeckleRhino .rhp - ConnectorRhino7 /Applications/Rhino 7.app false SpeckleConnectorRhino Debug;Release;Debug Mac;Release Mac SpeckleRhino - 2.0.0-dev + ConnectorRhino7 + + False + False + False + False + True + all + diff --git a/DesktopUI2/DesktopUI2/DummyBindings.cs b/DesktopUI2/DesktopUI2/DummyBindings.cs index f49dc6b4ed..80040b970f 100644 --- a/DesktopUI2/DesktopUI2/DummyBindings.cs +++ b/DesktopUI2/DesktopUI2/DummyBindings.cs @@ -438,7 +438,7 @@ public override async Task SendStream(StreamState state, ProgressViewMod var r = new Random(i); var status = (ApplicationObject.State)r.Next(5); - var appObj = new ApplicationObject(i.ToString(), "Some Object") { Status = status, Log = new List() { "Some description"} }; + var appObj = new ApplicationObject(i.ToString(), "Some Object") { Status = status, Log = new List() { "Some description" } }; progress.Report.Log(appObj); await Task.Delay(TimeSpan.FromMilliseconds(rnd.Next(200, 1000))); @@ -480,5 +480,10 @@ public override async Task>> ImportFamilyC await Task.Delay(TimeSpan.FromMilliseconds(rnd.Next(200, 1000))); return new Dictionary>(); } + + public override Task Open3DView(List viewCoordinates, string viewName = "") + { + throw new NotImplementedException(); + } } } diff --git a/DesktopUI2/DesktopUI2/DummyMappingsBindings.cs b/DesktopUI2/DesktopUI2/DummyMappingsBindings.cs new file mode 100644 index 0000000000..05ad12d646 --- /dev/null +++ b/DesktopUI2/DesktopUI2/DummyMappingsBindings.cs @@ -0,0 +1,53 @@ +using DesktopUI2.ViewModels.MappingTool; +using Objects.Geometry; +using Speckle.Core.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace DesktopUI2 +{ + public class DummyMappingsBindings : MappingsBindings + { + public override void SetMappings(string schema, string viewModel) + { + + } + + public override MappingSelectionInfo GetSelectionInfo() + { + var type = typeof(Schema); + var schemas = Assembly.GetExecutingAssembly().GetTypes().Where(p => type.IsAssignableFrom(p) && type != p).Select(x => (Schema)Activator.CreateInstance(x)).ToList(); + + return new MappingSelectionInfo(schemas, 13); + + } + + public override List GetExistingSchemaElements() + { + return new List { + new RevitWallViewModel { SelectedFamily = new RevitFamily { Name = "Yolo Family" }, SelectedType = "Simplex Ultra 500x500" }, + new RevitWallViewModel{ SelectedFamily = new RevitFamily { Name = "Basic Wall" }, SelectedType = "Partitioning Extra Fine 2mm" }, + new DirectShapeFreeformViewModel{ ShapeName="Curvy BREP", SelectedCategory = "GenericModels" } }; + } + + public override void HighlightElements(List ids) + { + } + + public override void SelectElements(List ids) + { + } + + public override void ClearMappings() + { + } + + public DummyMappingsBindings() + { + + } + } +} diff --git a/DesktopUI2/DesktopUI2/MappingsBindings.cs b/DesktopUI2/DesktopUI2/MappingsBindings.cs new file mode 100644 index 0000000000..ba9aeb9946 --- /dev/null +++ b/DesktopUI2/DesktopUI2/MappingsBindings.cs @@ -0,0 +1,78 @@ +using DesktopUI2.ViewModels.MappingTool; +using Speckle.Core.Models; +using System; +using System.Collections.Generic; + +namespace DesktopUI2 +{ + /// + /// Notifies that the selection has changed + /// + /// + public delegate void UpdateSelection(MappingSelectionInfo info); + + /// + /// Notifies that the existing elements with a schema in the Doc have changed + /// + /// + public delegate void UpdateExistingSchemaElements(List schemas); + + public class MappingSelectionInfo + { + public List Schemas { get; set; } + public int Count { get; set; } + + public MappingSelectionInfo(List schemas, int count) + { + Schemas = schemas; + Count = count; + } + } + public abstract class MappingsBindings + { + + #region delegates + + public UpdateSelection UpdateSelection; + public UpdateExistingSchemaElements UpdateExistingSchemaElements; + + #endregion + /// + /// Gets the selected objects in the host application + /// + /// + public abstract MappingSelectionInfo GetSelectionInfo(); + + /// + /// Gets all the objects with a schema in the host application + /// + /// + public abstract List GetExistingSchemaElements(); + + /// + /// Sets the mappings on the current selection + /// + /// The schema to be applied, has to be an Objects class and have appropriate converter + /// An ISchema View Model to easily restore the mappings in the Mapping Tool + public abstract void SetMappings(string schema, string viewModel); + + + /// + /// Clears the mappings on the current selection + /// + public abstract void ClearMappings(); + + /// + /// Highlights a list of elements given their IDs + /// + /// + public abstract void HighlightElements(List ids); + + + /// + /// Selects a list of elements given their IDs + /// + /// + public abstract void SelectElements(List ids); + } +} diff --git a/DesktopUI2/DesktopUI2/Models/ConfigManager.cs b/DesktopUI2/DesktopUI2/Models/ConfigManager.cs index faa14fc269..ffe269c697 100644 --- a/DesktopUI2/DesktopUI2/Models/ConfigManager.cs +++ b/DesktopUI2/DesktopUI2/Models/ConfigManager.cs @@ -1,5 +1,6 @@ using Speckle.Core.Transports; using Speckle.Newtonsoft.Json; +using System; namespace DesktopUI2.Models { @@ -13,16 +14,29 @@ public static class ConfigManager public static void Save(Config config) { - ConfigStorage.UpdateObject("config", JsonConvert.SerializeObject(config)); + ConfigStorage.UpdateObject("configDUI", JsonConvert.SerializeObject(config)); } public static Config Load() { try { - return JsonConvert.DeserializeObject(ConfigStorage.GetObject("config")); + //dui and manager were sharing the same config! + //splitting them to avoid overwriting settings + var oldConfig = ConfigStorage.GetObject("config"); + var newConfig = ConfigStorage.GetObject("configDUI"); + + if (!string.IsNullOrEmpty(newConfig)) + { + return JsonConvert.DeserializeObject(newConfig); + } + + return JsonConvert.DeserializeObject(oldConfig); + } + catch (Exception e) + { + } - catch { } return new Config(); } } @@ -33,6 +47,7 @@ public static Config Load() public class Config { public bool DarkTheme { set; get; } + public bool OneClickMode { set; get; } = true; public bool ShowImportExportAlert { set; get; } = true; } diff --git a/DesktopUI2/DesktopUI2/Models/Filters/FilterUtils.cs b/DesktopUI2/DesktopUI2/Models/Filters/SelectionFilterConverter.cs similarity index 95% rename from DesktopUI2/DesktopUI2/Models/Filters/FilterUtils.cs rename to DesktopUI2/DesktopUI2/Models/Filters/SelectionFilterConverter.cs index be86ebdfde..173e4717ee 100644 --- a/DesktopUI2/DesktopUI2/Models/Filters/FilterUtils.cs +++ b/DesktopUI2/DesktopUI2/Models/Filters/SelectionFilterConverter.cs @@ -47,7 +47,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist } else { - throw new SpeckleException($"Unknown filter type: {type}. Please add a case in DesktopUI2.Models.Filters.FilerUtils.cs"); + throw new SpeckleException($"Unknown filter type: {type}. Please add a case in DesktopUI2.Models.Filters.SelectionFilterConverter.cs"); } serializer.Populate(jsonObject.CreateReader(), filter); diff --git a/DesktopUI2/DesktopUI2/Models/NotificationManager.cs b/DesktopUI2/DesktopUI2/Models/NotificationManager.cs new file mode 100644 index 0000000000..d7c3fcfb2f --- /dev/null +++ b/DesktopUI2/DesktopUI2/Models/NotificationManager.cs @@ -0,0 +1,158 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Controls.Metadata; +using Avalonia.Controls.Notifications; +using Avalonia.Controls.Primitives; +using Avalonia.Data; +using Avalonia.Rendering; +using Avalonia.VisualTree; +using System; +using System.Collections; +using System.Linq; +using System.Reactive.Linq; +using System.Threading.Tasks; + +namespace DesktopUI2.Models +{ + + /// + /// An that displays notifications in a . + /// Adapted from https://github.com/AvaloniaUI/Avalonia/blob/0.10.18/src/Avalonia.Controls/Notifications/WindowNotificationManager.cs + /// To support User Controls + /// + [TemplatePart("PART_Items", typeof(Panel))] + [PseudoClasses(":topleft", ":topright", ":bottomleft", ":bottomright")] + public class NotificationManager : TemplatedControl, IManagedNotificationManager, ICustomSimpleHitTest + { + private IList _items; + + /// + /// Defines the property. + /// + public static readonly StyledProperty PositionProperty = + AvaloniaProperty.Register(nameof(Position), NotificationPosition.TopRight); + + /// + /// Defines which corner of the screen notifications can be displayed in. + /// + /// + public NotificationPosition Position + { + get { return GetValue(PositionProperty); } + set { SetValue(PositionProperty, value); } + } + + /// + /// Defines the property. + /// + public static readonly StyledProperty MaxItemsProperty = + AvaloniaProperty.Register(nameof(MaxItems), 5); + + /// + /// Defines the maximum number of notifications visible at once. + /// + public int MaxItems + { + get { return GetValue(MaxItemsProperty); } + set { SetValue(MaxItemsProperty, value); } + } + + /// + /// Initializes a new instance of the class. + /// + /// The window that will host the control. + public NotificationManager() + { + UpdatePseudoClasses(Position); + } + + static NotificationManager() + { + HorizontalAlignmentProperty.OverrideDefaultValue(Avalonia.Layout.HorizontalAlignment.Stretch); + VerticalAlignmentProperty.OverrideDefaultValue(Avalonia.Layout.VerticalAlignment.Stretch); + } + /// + protected override void OnApplyTemplate(TemplateAppliedEventArgs e) + { + var itemsControl = e.NameScope.Find("PART_Items"); + _items = itemsControl?.Children; + } + + /// + public void Show(INotification content) + { + Show(content as object); + } + + /// + public async void Show(object content) + { + if (_items == null) + return; + + var notification = content as INotification; + + var notificationControl = new NotificationCard + { + Content = content, + Classes = new Classes(notification?.Type.ToString()) + }; + + if (notification != null) + { + notificationControl.NotificationClosed += (sender, args) => + { + notification.OnClose?.Invoke(); + + _items.Remove(sender); + }; + } + + notificationControl.PointerPressed += (sender, args) => + { + if (notification != null && notification.OnClick != null) + { + notification.OnClick.Invoke(); + } + + (sender as NotificationCard)?.Close(); + }; + + _items.Add(notificationControl); + + if (_items.OfType().Count(i => !i.IsClosing) > MaxItems) + { + _items.OfType().First(i => !i.IsClosing).Close(); + } + + if (notification != null && notification.Expiration == TimeSpan.Zero) + { + return; + } + + await Task.Delay(notification?.Expiration ?? TimeSpan.FromSeconds(7)); + + notificationControl.Close(); + } + + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + { + base.OnPropertyChanged(change); + + if (change.Property == PositionProperty) + { + UpdatePseudoClasses(change.NewValue.GetValueOrDefault()); + } + } + + private void UpdatePseudoClasses(NotificationPosition position) + { + PseudoClasses.Set(":topleft", position == NotificationPosition.TopLeft); + PseudoClasses.Set(":topright", position == NotificationPosition.TopRight); + PseudoClasses.Set(":bottomleft", position == NotificationPosition.BottomLeft); + PseudoClasses.Set(":bottomright", position == NotificationPosition.BottomRight); + } + + public bool HitTest(Point point) => VisualChildren.HitTestCustom(point); + } +} \ No newline at end of file diff --git a/DesktopUI2/DesktopUI2/Models/Settings/MultiSelectBoxSetting.cs b/DesktopUI2/DesktopUI2/Models/Settings/MultiSelectBoxSetting.cs index 9ba7b68ff3..9524f23eb9 100644 --- a/DesktopUI2/DesktopUI2/Models/Settings/MultiSelectBoxSetting.cs +++ b/DesktopUI2/DesktopUI2/Models/Settings/MultiSelectBoxSetting.cs @@ -2,6 +2,7 @@ using Avalonia.Controls.Selection; using DesktopUI2.Views.Settings; using ReactiveUI; +using Speckle.Newtonsoft.Json; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -11,49 +12,41 @@ namespace DesktopUI2.Models.Settings { + [JsonObject(MemberSerialization.OptIn)] public class MultiSelectBoxSetting : ReactiveObject, ISetting { + [JsonProperty] public string Type => typeof(MultiSelectBoxSetting).ToString(); + [JsonProperty] public string Name { get; set; } + [JsonProperty] public string Slug { get; set; } + [JsonProperty] public string Icon { get; set; } + [JsonProperty] public string Description { get; set; } - public string DefaultValue = "None"; + + [JsonProperty] public List Values { get; set; } - private string _selection; - public string Selection - { - get - { - if (Selections.Count == 0) - return DefaultValue; - return string.Join(", ", Selections); - } - set => this.RaiseAndSetIfChanged(ref _selection, value); - } + + [JsonProperty] + public string Selection { get; set; } + + + //note this selection is not restored but it does not affect the functionality public SelectionModel SelectionModel { get; } public void SelectionChanged(object sender, SelectionModelSelectionChangedEventArgs e) { - try - { - foreach (var sel in e.SelectedItems) - if (!Selections.Contains(sel)) - Selections.Add(sel as string); - foreach (var unsel in e.DeselectedItems) - Selections.Remove(unsel as string); - - this.RaisePropertyChanged("Selection"); - } - catch (Exception ex) - { - - } + Selection = string.Join(", ", SelectionModel.SelectedItems); + this.RaisePropertyChanged("Selection"); } - public ObservableCollection Selections { get; set; } = new ObservableCollection(); + public Type ViewType { get; } = typeof(MultiSelectBoxSettingView); + [JsonProperty] public string Summary { get; set; } + public MultiSelectBoxSetting() { SelectionModel = new SelectionModel(); @@ -61,5 +54,6 @@ public MultiSelectBoxSetting() SelectionModel.SelectionChanged += SelectionChanged; } + } } diff --git a/DesktopUI2/DesktopUI2/Models/Settings/SettingsConverter.cs b/DesktopUI2/DesktopUI2/Models/Settings/SettingsConverter.cs new file mode 100644 index 0000000000..2c195c768c --- /dev/null +++ b/DesktopUI2/DesktopUI2/Models/Settings/SettingsConverter.cs @@ -0,0 +1,73 @@ +using DesktopUI2.Models.Settings; +using Speckle.Core.Logging; +using Speckle.Newtonsoft.Json; +using Speckle.Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; + +namespace DesktopUI2.Models.Filters +{ + public class SettingsConverter : JsonConverter + { + public override bool CanConvert(Type objectType) + { + return objectType == typeof(ISetting); + } + + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + + + var settings = new List(); + JArray jsonArray = null; + + try + { + jsonArray = JArray.Load(reader); + } + catch (Exception ex) + { + return settings; + } + + foreach (JObject jsonObject in jsonArray) + { + ISetting setting = default(ISetting); + var type = jsonObject.Value("Type"); + + if (type == typeof(CheckBoxSetting).ToString()) + { + setting = new CheckBoxSetting(); + } + else if (type == typeof(ListBoxSetting).ToString()) + { + setting = new ListBoxSetting(); + } + else if (type == typeof(MappingSeting).ToString()) + { + setting = new MappingSeting(); + } + else if (type == typeof(MultiSelectBoxSetting).ToString()) + { + setting = new MultiSelectBoxSetting(); + } + else + { + continue; + } + + serializer.Populate(jsonObject.CreateReader(), setting); + + settings.Add(setting); + } + + return settings; + + } + + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + serializer.Serialize(writer, value); + } + } +} diff --git a/DesktopUI2/DesktopUI2/Models/StreamState.cs b/DesktopUI2/DesktopUI2/Models/StreamState.cs index 57e275b21d..772953002a 100644 --- a/DesktopUI2/DesktopUI2/Models/StreamState.cs +++ b/DesktopUI2/DesktopUI2/Models/StreamState.cs @@ -138,6 +138,8 @@ public Stream CachedStream [JsonConverter(typeof(SelectionFilterConverter))] public ISelectionFilter Filter { get; set; } + [JsonProperty] + [JsonConverter(typeof(SettingsConverter))] public List Settings { get; set; } = new List(); //List of uniqueids of the currently selected objects diff --git a/DesktopUI2/DesktopUI2/Styles/Button.xaml b/DesktopUI2/DesktopUI2/Styles/Button.xaml index eeb7b378c2..3d31a88390 100644 --- a/DesktopUI2/DesktopUI2/Styles/Button.xaml +++ b/DesktopUI2/DesktopUI2/Styles/Button.xaml @@ -1,7 +1,9 @@  + xmlns:assists="clr-namespace:Material.Styles.Assists;assembly=Material.Styles" + xmlns:icons="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia" + xmlns:m="clr-namespace:Material.Styles;assembly=Material.Styles"> + +