diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 40f1c30ec..55ebab01e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -49,6 +49,7 @@ jobs: needs: build env: IS_TAG_BUILD: ${{ github.ref_type == 'tag' }} + IS_RELEASE_BRANCH: ${{ startsWith(github.ref_name, 'release/') || github.ref_name == 'main'}} steps: - name: 🔫 Trigger Build Installers uses: ALEEF02/workflow-dispatch@v3.0.0 @@ -57,7 +58,7 @@ jobs: workflow: Build Installers repo: specklesystems/connector-installers token: ${{ secrets.CONNECTORS_GH_TOKEN }} - inputs: '{ "run_id": "${{ github.run_id }}", "version": "${{ needs.build.outputs.version }}", "public_release": ${{ env.IS_TAG_BUILD }} }' + inputs: '{ "run_id": "${{ github.run_id }}", "version": "${{ needs.build.outputs.version }}", "public_release": ${{ env.IS_TAG_BUILD }}, "store_artifacts": ${{ env.IS_RELEASE_BRANCH }} }' ref: main wait-for-completion: true wait-for-completion-interval: 10s diff --git a/Connectors/ArcGIS/Speckle.Connectors.ArcGIS3/packages.lock.json b/Connectors/ArcGIS/Speckle.Connectors.ArcGIS3/packages.lock.json index f10da576a..3d43e5fd2 100644 --- a/Connectors/ArcGIS/Speckle.Connectors.ArcGIS3/packages.lock.json +++ b/Connectors/ArcGIS/Speckle.Connectors.ArcGIS3/packages.lock.json @@ -244,8 +244,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -253,7 +253,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -278,7 +278,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -310,18 +310,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Autocad/Speckle.Connectors.Autocad2022/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Autocad2022/packages.lock.json index 3a7493dbd..1cd4a4adc 100644 --- a/Connectors/Autocad/Speckle.Connectors.Autocad2022/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Autocad2022/packages.lock.json @@ -274,8 +274,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -283,7 +283,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -308,7 +308,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -346,18 +346,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Autocad/Speckle.Connectors.Autocad2023/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Autocad2023/packages.lock.json index 5f6a88c71..c760a6a8c 100644 --- a/Connectors/Autocad/Speckle.Connectors.Autocad2023/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Autocad2023/packages.lock.json @@ -274,8 +274,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -283,7 +283,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -308,7 +308,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -346,18 +346,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Autocad/Speckle.Connectors.Autocad2024/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Autocad2024/packages.lock.json index 67aa1d9db..49a789a5b 100644 --- a/Connectors/Autocad/Speckle.Connectors.Autocad2024/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Autocad2024/packages.lock.json @@ -274,8 +274,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -283,7 +283,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -309,7 +309,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -347,18 +347,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Autocad/Speckle.Connectors.Autocad2025/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Autocad2025/packages.lock.json index e485efe76..4a022d9e4 100644 --- a/Connectors/Autocad/Speckle.Connectors.Autocad2025/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Autocad2025/packages.lock.json @@ -238,8 +238,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -247,7 +247,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -311,18 +311,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Autocad/Speckle.Connectors.AutocadShared/Operations/Send/AutocadRootObjectBaseBuilder.cs b/Connectors/Autocad/Speckle.Connectors.AutocadShared/Operations/Send/AutocadRootObjectBaseBuilder.cs index 5c2a4fd3d..9c8c77e15 100644 --- a/Connectors/Autocad/Speckle.Connectors.AutocadShared/Operations/Send/AutocadRootObjectBaseBuilder.cs +++ b/Connectors/Autocad/Speckle.Connectors.AutocadShared/Operations/Send/AutocadRootObjectBaseBuilder.cs @@ -137,6 +137,9 @@ private RootObjectBuilderResult BuildSync( // 5 - Unpack the color proxies root[ProxyKeys.COLOR] = _colorUnpacker.UnpackColors(atomicObjects, usedAcadLayers); + // add any additional properties (most likely from verticals) + AddAdditionalProxiesToRoot(root); + return new RootObjectBuilderResult(root, results); } } @@ -146,6 +149,11 @@ public virtual (Collection, LayerTableRecord?) CreateObjectCollection(Entity ent return (new(), null); } + public virtual void AddAdditionalProxiesToRoot(Collection rootCollection) + { + return; + } + private SendConversionResult ConvertAutocadEntity( Entity entity, string applicationId, diff --git a/Connectors/Autocad/Speckle.Connectors.AutocadShared/Plugin/AutocadCommand.cs b/Connectors/Autocad/Speckle.Connectors.AutocadShared/Plugin/AutocadCommand.cs index 94111eb41..f3c177540 100644 --- a/Connectors/Autocad/Speckle.Connectors.AutocadShared/Plugin/AutocadCommand.cs +++ b/Connectors/Autocad/Speckle.Connectors.AutocadShared/Plugin/AutocadCommand.cs @@ -9,8 +9,8 @@ using Speckle.Connectors.Autocad.DependencyInjection; using Speckle.Converters.Autocad; #elif CIVIL3D -using Speckle.Converters.Civil3d; -using Speckle.Connectors.Civil3d.DependencyInjection; +using Speckle.Converters.Civil3dShared; +using Speckle.Connectors.Civil3dShared.DependencyInjection; #endif namespace Speckle.Connectors.Autocad.Plugin; @@ -31,7 +31,7 @@ public void Command() return; } - PaletteSet = new PaletteSet($"Speckle (Beta) for {AppUtils.App}", s_id) + PaletteSet = new PaletteSet($"Speckle (Beta) for {AppUtils.App.Name}", s_id) { Size = new Size(400, 500), DockEnabled = (DockSides)((int)DockSides.Left + (int)DockSides.Right) @@ -52,7 +52,7 @@ public void Command() var panelWebView = Container.GetRequiredService(); - PaletteSet.AddVisual($"Speckle (Beta) for {AppUtils.App} WebView", panelWebView); + PaletteSet.AddVisual($"Speckle (Beta) for {AppUtils.App.Name} WebView", panelWebView); FocusPalette(); } diff --git a/Connectors/Autocad/Speckle.Connectors.Civil3d2024/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Civil3d2024/packages.lock.json index 691417e09..8e875b34f 100644 --- a/Connectors/Autocad/Speckle.Connectors.Civil3d2024/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Civil3d2024/packages.lock.json @@ -283,8 +283,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -292,7 +292,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -318,7 +318,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -356,18 +356,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Autocad/Speckle.Connectors.Civil3dShared/Bindings/Civil3dSendBinding.cs b/Connectors/Autocad/Speckle.Connectors.Civil3dShared/Bindings/Civil3dSendBinding.cs index d697acf20..a1aa571b0 100644 --- a/Connectors/Autocad/Speckle.Connectors.Civil3dShared/Bindings/Civil3dSendBinding.cs +++ b/Connectors/Autocad/Speckle.Connectors.Civil3dShared/Bindings/Civil3dSendBinding.cs @@ -9,11 +9,11 @@ using Speckle.Connectors.DUI.Models; using Speckle.Connectors.DUI.Models.Card.SendFilter; using Speckle.Converters.Autocad; -using Speckle.Converters.Civil3d; +using Speckle.Converters.Civil3dShared; using Speckle.Converters.Common; using Speckle.Sdk; -namespace Speckle.Connectors.Civil3d.Bindings; +namespace Speckle.Connectors.Civil3dShared.Bindings; public sealed class Civil3dSendBinding : AutocadSendBaseBinding { diff --git a/Connectors/Autocad/Speckle.Connectors.Civil3dShared/DependencyInjection/Civil3dConnectorModule.cs b/Connectors/Autocad/Speckle.Connectors.Civil3dShared/DependencyInjection/Civil3dConnectorModule.cs index 7c141f18a..7dcb841d2 100644 --- a/Connectors/Autocad/Speckle.Connectors.Civil3dShared/DependencyInjection/Civil3dConnectorModule.cs +++ b/Connectors/Autocad/Speckle.Connectors.Civil3dShared/DependencyInjection/Civil3dConnectorModule.cs @@ -2,13 +2,15 @@ using Microsoft.Extensions.DependencyInjection; using Speckle.Connectors.Autocad.DependencyInjection; using Speckle.Connectors.Autocad.Operations.Send; -using Speckle.Connectors.Civil3d.Bindings; -using Speckle.Connectors.Civil3d.Operations.Send; +using Speckle.Connectors.Civil3dShared.Bindings; +using Speckle.Connectors.Civil3dShared.Operations.Send; using Speckle.Connectors.Common.Builders; using Speckle.Connectors.DUI.Bindings; +using Speckle.Converters.Civil3dShared.Helpers; +using Speckle.Converters.Civil3dShared.ToSpeckle; using Speckle.Sdk; -namespace Speckle.Connectors.Civil3d.DependencyInjection; +namespace Speckle.Connectors.Civil3dShared.DependencyInjection; public static class Civil3dConnectorModule { @@ -23,5 +25,10 @@ public static void AddCivil3d(this IServiceCollection serviceCollection) // automatically detects the Class:IClass interface pattern to register all generated interfaces serviceCollection.AddMatchingInterfacesAsTransient(Assembly.GetExecutingAssembly()); + + // additional classes + serviceCollection.AddScoped(); + serviceCollection.AddScoped(); + serviceCollection.AddScoped(); } } diff --git a/Connectors/Autocad/Speckle.Connectors.Civil3dShared/Operations/Send/Civil3dRootObjectBuilder.cs b/Connectors/Autocad/Speckle.Connectors.Civil3dShared/Operations/Send/Civil3dRootObjectBuilder.cs index 679ae8e40..db9850f07 100644 --- a/Connectors/Autocad/Speckle.Connectors.Civil3dShared/Operations/Send/Civil3dRootObjectBuilder.cs +++ b/Connectors/Autocad/Speckle.Connectors.Civil3dShared/Operations/Send/Civil3dRootObjectBuilder.cs @@ -3,18 +3,27 @@ using Speckle.Connectors.Autocad.HostApp; using Speckle.Connectors.Autocad.Operations.Send; using Speckle.Connectors.Common.Caching; +using Speckle.Connectors.Common.Operations; +using Speckle.Converters.Civil3dShared.Helpers; +using Speckle.Converters.Civil3dShared.ToSpeckle; using Speckle.Converters.Common; using Speckle.Sdk.Logging; using Speckle.Sdk.Models.Collections; -namespace Speckle.Connectors.Civil3d.Operations.Send; +namespace Speckle.Connectors.Civil3dShared.Operations.Send; public sealed class Civil3dRootObjectBuilder : AutocadRootObjectBaseBuilder { private readonly AutocadLayerUnpacker _layerUnpacker; + private readonly PropertySetDefinitionHandler _propertySetDefinitionHandler; + private readonly CatchmentGroupHandler _catchmentGroupHandler; + private readonly PipeNetworkHandler _pipeNetworkHandler; public Civil3dRootObjectBuilder( AutocadLayerUnpacker layerUnpacker, + PropertySetDefinitionHandler propertySetDefinitionHandler, + CatchmentGroupHandler catchmentGroupHandler, + PipeNetworkHandler pipeNetworkHandler, IRootToSpeckleConverter converter, ISendConversionCache sendConversionCache, AutocadInstanceUnpacker instanceObjectManager, @@ -36,6 +45,9 @@ ISdkActivityFactory activityFactory ) { _layerUnpacker = layerUnpacker; + _propertySetDefinitionHandler = propertySetDefinitionHandler; + _catchmentGroupHandler = catchmentGroupHandler; + _pipeNetworkHandler = pipeNetworkHandler; } public override (Collection, LayerTableRecord?) CreateObjectCollection(Entity entity, Transaction tr) @@ -44,4 +56,12 @@ public override (Collection, LayerTableRecord?) CreateObjectCollection(Entity en return (layer, autocadLayer); } + + // POC: probably will need to add Network proxies as well + public override void AddAdditionalProxiesToRoot(Collection rootObject) + { + rootObject[ProxyKeys.PROPERTYSET_DEFINITIONS] = _propertySetDefinitionHandler.Definitions; + rootObject["catchmentGroupProxies"] = _catchmentGroupHandler.CatchmentGroupProxiesCache.Values.ToList(); + rootObject["pipeNetworkProxies"] = _pipeNetworkHandler.PipeNetworkProxiesCache.Values.ToList(); + } } diff --git a/Connectors/Revit/Speckle.Connectors.Revit2022/packages.lock.json b/Connectors/Revit/Speckle.Connectors.Revit2022/packages.lock.json index b8308f14f..8e56f9e6b 100644 --- a/Connectors/Revit/Speckle.Connectors.Revit2022/packages.lock.json +++ b/Connectors/Revit/Speckle.Connectors.Revit2022/packages.lock.json @@ -302,8 +302,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -311,7 +311,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -322,7 +322,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.converters.revit2022": { @@ -361,11 +361,11 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Revit.API": { @@ -376,9 +376,9 @@ }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Revit/Speckle.Connectors.Revit2023/packages.lock.json b/Connectors/Revit/Speckle.Connectors.Revit2023/packages.lock.json index 87711270e..ccab26bf5 100644 --- a/Connectors/Revit/Speckle.Connectors.Revit2023/packages.lock.json +++ b/Connectors/Revit/Speckle.Connectors.Revit2023/packages.lock.json @@ -302,8 +302,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -311,7 +311,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -322,7 +322,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.converters.revit2023": { @@ -361,11 +361,11 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Revit.API": { @@ -376,9 +376,9 @@ }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Revit/Speckle.Connectors.Revit2024/packages.lock.json b/Connectors/Revit/Speckle.Connectors.Revit2024/packages.lock.json index 091755b2f..12629c3d1 100644 --- a/Connectors/Revit/Speckle.Connectors.Revit2024/packages.lock.json +++ b/Connectors/Revit/Speckle.Connectors.Revit2024/packages.lock.json @@ -302,8 +302,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -311,7 +311,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -322,7 +322,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.converters.revit2024": { @@ -361,11 +361,11 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Revit.API": { @@ -376,9 +376,9 @@ }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Revit/Speckle.Connectors.Revit2025/packages.lock.json b/Connectors/Revit/Speckle.Connectors.Revit2025/packages.lock.json index 5553a5172..bef844ca0 100644 --- a/Connectors/Revit/Speckle.Connectors.Revit2025/packages.lock.json +++ b/Connectors/Revit/Speckle.Connectors.Revit2025/packages.lock.json @@ -260,8 +260,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -269,7 +269,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -287,7 +287,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.converters.revit2025": { @@ -332,11 +332,11 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Revit.API": { @@ -347,9 +347,9 @@ }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Revit/Speckle.Connectors.RevitShared/HostApp/RevitGroupBaker.cs b/Connectors/Revit/Speckle.Connectors.RevitShared/HostApp/RevitGroupBaker.cs index 81c2a8e4f..714ca742e 100644 --- a/Connectors/Revit/Speckle.Connectors.RevitShared/HostApp/RevitGroupBaker.cs +++ b/Connectors/Revit/Speckle.Connectors.RevitShared/HostApp/RevitGroupBaker.cs @@ -2,13 +2,11 @@ using Speckle.Connectors.Common.Operations.Receive; using Speckle.Converters.Common; using Speckle.Converters.RevitShared.Settings; -using Speckle.Sdk.Models.GraphTraversal; namespace Speckle.Connectors.Revit.HostApp; /// -/// On receive, this class will help structure atomic objects into nested revit groups based on the hierarchy that they're coming from. Expects to be a scoped dependency per receive operation. -/// How to use: during atomic object conversion, on each succesful conversion call . Afterward, at the end of the recieve operation, call to actually create the groups in the revit document. +/// Bakes all objects into a single top level group and pins it. /// public class RevitGroupBaker : TraversalContextUnpacker { @@ -21,62 +19,15 @@ public RevitGroupBaker(IConverterSettingsStore converte _revitUtils = revitUtils; } - /// - /// Adds the object to the correct group in preparation for at the end of the receive operation. - /// - /// - /// - public void AddToGroupMapping(TraversalContext traversalContext, Element revitElement) - { - var collectionPath = GetCollectionPath(traversalContext); - var currentLayerName = string.Empty; - FakeGroup? previousGroup = null; - var currentDepth = 0; - - foreach (var collection in collectionPath) - { - currentLayerName += collection.name + "-"; - if (_groupCache.TryGetValue(currentLayerName, out var g)) - { - previousGroup = g; - currentDepth++; - continue; - } - - var group = new FakeGroup() - { - // POC group names should be unique - Name = _revitUtils.RemoveInvalidChars(currentLayerName[..^1]), - Depth = currentDepth++, - Parent = previousGroup! - }; - _groupCache[currentLayerName] = group; - previousGroup = group; - } - - previousGroup!.Ids.Add(revitElement.Id); - } + private readonly List _elementIdsForTopLevelGroup = new(); - private readonly Dictionary _groupCache = new(); + public void AddToTopLevelGroup(Element revitElement) => _elementIdsForTopLevelGroup.Add(revitElement.Id); - /// - /// Bakes the accumulated groups in Revit, with their objects. - /// - /// - public void BakeGroups(string baseGroupName) + public void BakeGroupForTopLevel(string baseGroupName) { - var orderedGroups = _groupCache.Values.OrderByDescending(group => group.Depth); - Group? lastGroup = null; - - foreach (var group in orderedGroups) - { - var docGroup = _converterSettings.Current.Document.Create.NewGroup(group.Ids); - group.Parent?.Ids.Add(docGroup.Id); - docGroup.GroupType.Name = group.Name; - lastGroup = docGroup; - } - - lastGroup!.GroupType.Name = _revitUtils.RemoveInvalidChars(baseGroupName); + var docGroup = _converterSettings.Current.Document.Create.NewGroup(_elementIdsForTopLevelGroup); + docGroup.GroupType.Name = _revitUtils.RemoveInvalidChars(baseGroupName); + docGroup.Pinned = true; } public void PurgeGroups(string baseGroupName) @@ -86,25 +37,23 @@ public void PurgeGroups(string baseGroupName) foreach (var group in groups) { - List subgroupTypeIds = new List(); + var subgroupTypeIds = new List() { group.GroupType.Id }; CollectSubGroupTypeIds(document, group, subgroupTypeIds); document.Delete(subgroupTypeIds); } } - private List GetGroupsByName(Autodesk.Revit.DB.Document doc, string groupName) + private List GetGroupsByName(Document doc, string groupName) { var validGroupName = _revitUtils.RemoveInvalidChars(groupName); - using (var collector = new FilteredElementCollector(doc)) - { - ICollection groupElements = collector.OfClass(typeof(Group)).ToElements(); - List groups = groupElements.Cast().Where(g => g.GroupType.Name == validGroupName).ToList(); - return groups; - } + using var collector = new FilteredElementCollector(doc); + ICollection groupElements = collector.OfClass(typeof(Group)).ToElements(); + List groups = groupElements.Cast().Where(g => g.GroupType.Name == validGroupName).ToList(); + return groups; } - private void CollectSubGroupTypeIds(Autodesk.Revit.DB.Document document, Group group, List subGroupTypeIds) + private void CollectSubGroupTypeIds(Document document, Group group, List subGroupTypeIds) { ICollection groupMemberIds = group.GetMemberIds(); @@ -119,15 +68,4 @@ private void CollectSubGroupTypeIds(Autodesk.Revit.DB.Document document, Group g } } } - - /// - /// Little intermediate data structure that helps with the operations above. - /// - private sealed class FakeGroup - { - public List Ids { get; set; } = new(); - public int Depth { get; set; } - public string Name { get; set; } - public FakeGroup Parent { get; set; } - } } diff --git a/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/ITransactionManager.cs b/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/ITransactionManager.cs index 76bf66776..5fef78e9a 100644 --- a/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/ITransactionManager.cs +++ b/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/ITransactionManager.cs @@ -11,5 +11,5 @@ public interface ITransactionManager : IDisposable void StartSubtransaction(); // POC improve how the error handling behaviour is selected - void StartTransaction(bool enableFailurePreprocessor = false); + void StartTransaction(bool enableFailurePreprocessor = false, string name = "Speckle Transaction"); } diff --git a/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/RevitHostObjectBuilder.cs b/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/RevitHostObjectBuilder.cs index f3938c870..d49a5ff20 100644 --- a/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/RevitHostObjectBuilder.cs +++ b/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/RevitHostObjectBuilder.cs @@ -8,11 +8,17 @@ using Speckle.Connectors.Common.Operations.Receive; using Speckle.Connectors.Revit.HostApp; using Speckle.Converters.Common; +using Speckle.Converters.Common.Objects; +using Speckle.Converters.RevitShared; using Speckle.Converters.RevitShared.Helpers; using Speckle.Converters.RevitShared.Settings; +using Speckle.DoubleNumerics; +using Speckle.Objects; +using Speckle.Objects.Geometry; using Speckle.Sdk; using Speckle.Sdk.Logging; using Speckle.Sdk.Models; +using Transform = Speckle.Objects.Other.Transform; namespace Speckle.Connectors.Revit.Operations.Receive; @@ -23,10 +29,13 @@ internal sealed class RevitHostObjectBuilder : IHostObjectBuilder, IDisposable private readonly RevitToHostCacheSingleton _revitToHostCacheSingleton; private readonly ITransactionManager _transactionManager; private readonly ILocalToGlobalUnpacker _localToGlobalUnpacker; - private readonly LocalToGlobalConverterUtils _localToGlobalConverterUtils; private readonly RevitGroupBaker _groupBaker; private readonly RevitMaterialBaker _materialBaker; private readonly ILogger _logger; + private readonly ITypedConverter< + (Base atomicObject, List matrix), + DirectShape + > _localToGlobalDirectShapeConverter; private readonly RootObjectUnpacker _rootObjectUnpacker; private readonly ISdkActivityFactory _activityFactory; @@ -37,24 +46,24 @@ public RevitHostObjectBuilder( ITransactionManager transactionManager, ISdkActivityFactory activityFactory, ILocalToGlobalUnpacker localToGlobalUnpacker, - LocalToGlobalConverterUtils localToGlobalConverterUtils, RevitGroupBaker groupManager, RevitMaterialBaker materialBaker, RootObjectUnpacker rootObjectUnpacker, ILogger logger, - RevitToHostCacheSingleton revitToHostCacheSingleton + RevitToHostCacheSingleton revitToHostCacheSingleton, + ITypedConverter<(Base atomicObject, List matrix), DirectShape> localToGlobalDirectShapeConverter ) { _converter = converter; _converterSettings = converterSettings; _transactionManager = transactionManager; _localToGlobalUnpacker = localToGlobalUnpacker; - _localToGlobalConverterUtils = localToGlobalConverterUtils; _groupBaker = groupManager; _materialBaker = materialBaker; _rootObjectUnpacker = rootObjectUnpacker; _logger = logger; _revitToHostCacheSingleton = revitToHostCacheSingleton; + _localToGlobalDirectShapeConverter = localToGlobalDirectShapeConverter; _activityFactory = activityFactory; } @@ -81,23 +90,19 @@ CancellationToken cancellationToken using var activity = _activityFactory.Start("Build"); // 0 - Clean then Rock n Roll! 🎸 - using TransactionGroup preReceiveCleanTransaction = new(_converterSettings.Current.Document, "Pre-receive clean"); - preReceiveCleanTransaction.Start(); - _transactionManager.StartTransaction(true); - - try - { - PreReceiveDeepClean(baseGroupName); - } - catch (Exception ex) when (!ex.IsFatal()) { - _logger.LogError(ex, "Failed to clean up before receive in Revit"); - } + _activityFactory.Start("Pre receive clean"); + _transactionManager.StartTransaction(true, "Pre receive clean"); + try + { + PreReceiveDeepClean(baseGroupName); + } + catch (Exception ex) when (!ex.IsFatal()) + { + _logger.LogError(ex, "Failed to clean up before receive in Revit"); + } - using (var _ = _activityFactory.Start("Commit")) - { _transactionManager.CommitTransaction(); - preReceiveCleanTransaction.Assimilate(); } // 1 - Unpack objects and proxies from root commit object @@ -107,55 +112,54 @@ CancellationToken cancellationToken unpackedRoot.ObjectsToConvert.ToList() ); - using TransactionGroup transactionGroup = - new(_converterSettings.Current.Document, $"Received data from {projectName}"); - transactionGroup.Start(); - _transactionManager.StartTransaction(); - + // 2 - Bake materials if (unpackedRoot.RenderMaterialProxies != null) { + _transactionManager.StartTransaction(true, "Baking materials"); _materialBaker.MapLayersRenderMaterials(unpackedRoot); - // NOTE: do not set _contextStack.RenderMaterialProxyCache directly, things stop working. Ogu/Dim do not know why :) not a problem as we hopefully will refactor some of these hacks out. var map = _materialBaker.BakeMaterials(unpackedRoot.RenderMaterialProxies, baseGroupName); foreach (var kvp in map) { _revitToHostCacheSingleton.MaterialsByObjectId.Add(kvp.Key, kvp.Value); } + _transactionManager.CommitTransaction(); } - var conversionResults = BakeObjects(localToGlobalMaps, onOperationProgressed, cancellationToken); - - using (var _ = _activityFactory.Start("Commit")) + // 3 - Bake objects + ( + HostObjectBuilderResult builderResult, + List<(DirectShape res, string applicationId)> postBakePaintTargets + ) conversionResults; { + using var _ = _activityFactory.Start("Baking objects"); + _transactionManager.StartTransaction(true, "Baking objects"); + conversionResults = BakeObjects(localToGlobalMaps, onOperationProgressed, cancellationToken); _transactionManager.CommitTransaction(); - transactionGroup.Assimilate(); } - using TransactionGroup createGroupTransaction = new(_converterSettings.Current.Document, "Creating group"); - createGroupTransaction.Start(); - _transactionManager.StartTransaction(true); - - try + // 4 - Paint solids { - _groupBaker.BakeGroups(baseGroupName); - } - catch (Exception ex) when (!ex.IsFatal()) - { - _logger.LogError(ex, "Failed to create group after receiving elements in Revit"); + using var _ = _activityFactory.Start("Painting solids"); + _transactionManager.StartTransaction(true, "Painting solids"); + PostBakePaint(conversionResults.postBakePaintTargets); + _transactionManager.CommitTransaction(); } - using (var _ = _activityFactory.Start("Commit")) + // 5 - Create group { + using var _ = _activityFactory.Start("Grouping"); + _transactionManager.StartTransaction(true, "Grouping"); + _groupBaker.BakeGroupForTopLevel(baseGroupName); _transactionManager.CommitTransaction(); - createGroupTransaction.Assimilate(); } - _revitToHostCacheSingleton.MaterialsByObjectId.Clear(); // Massive hack! - - return conversionResults; + return conversionResults.builderResult; } - private HostObjectBuilderResult BakeObjects( + private ( + HostObjectBuilderResult builderResult, + List<(DirectShape res, string applicationId)> postBakePaintTargets + ) BakeObjects( List localToGlobalMaps, IProgress onOperationProgressed, CancellationToken cancellationToken @@ -166,48 +170,113 @@ CancellationToken cancellationToken var bakedObjectIds = new List(); int count = 0; + var postBakePaintTargets = new List<(DirectShape res, string applicationId)>(); + foreach (LocalToGlobalMap localToGlobalMap in localToGlobalMaps) { cancellationToken.ThrowIfCancellationRequested(); try { using var activity = _activityFactory.Start("BakeObject"); - var atomicObject = _localToGlobalConverterUtils.TransformObjects( - localToGlobalMap.AtomicObject, - localToGlobalMap.Matrix - ); - var result = _converter.Convert(atomicObject); - onOperationProgressed.Report(new("Converting", (double)++count / localToGlobalMaps.Count)); - // Note: our current converter always returns a DS for now - if (result is DirectShape ds) + // POC hack of the ages: try to pre transform curves before baking + // we need to bypass the local to global converter as there we don't have access to what we want. that service will/should stop existing. + if ( + localToGlobalMap.AtomicObject is ITransformable transformable and ICurve + && localToGlobalMap.Matrix.Count > 0 + && localToGlobalMap.AtomicObject["units"] is string units + ) + { + ITransformable? newTransformable = null; + foreach (var mat in localToGlobalMap.Matrix) + { + transformable.TransformTo(new Transform(mat, units), out newTransformable); + } + + localToGlobalMap.AtomicObject = (newTransformable as Base)!; + localToGlobalMap.Matrix = new(); // flush out the list, as we've applied the transforms already + } + + // actual conversion happens here! + var result = _converter.Convert(localToGlobalMap.AtomicObject); + onOperationProgressed.Report(new("Converting", (double)++count / localToGlobalMaps.Count)); + if (result is DirectShapeDefinitionWrapper) { - bakedObjectIds.Add(ds.UniqueId.ToString()); - _groupBaker.AddToGroupMapping(localToGlobalMap.TraversalContext, ds); + // direct shape creation happens here + DirectShape directShapes = _localToGlobalDirectShapeConverter.Convert( + (localToGlobalMap.AtomicObject, localToGlobalMap.Matrix) + ); + + bakedObjectIds.Add(directShapes.UniqueId); + _groupBaker.AddToTopLevelGroup(directShapes); + + if (localToGlobalMap.AtomicObject is IRawEncodedObject and Base myBase) + { + postBakePaintTargets.Add((directShapes, myBase.applicationId ?? myBase.id)); + } + + conversionResults.Add( + new(Status.SUCCESS, localToGlobalMap.AtomicObject, directShapes.UniqueId, "Direct Shape") + ); } else { - throw new SpeckleException($"Failed to cast {result.GetType()} to Direct Shape."); + throw new SpeckleConversionException( + $"Failed to cast {result.GetType()} to direct shape definition wrapper." + ); } - conversionResults.Add(new(Status.SUCCESS, atomicObject, ds.UniqueId, "Direct Shape")); } catch (Exception ex) when (!ex.IsFatal()) { conversionResults.Add(new(Status.ERROR, localToGlobalMap.AtomicObject, null, null, ex)); + _logger.LogError(ex, $"Failed to convert object of type {localToGlobalMap.AtomicObject.speckle_type}"); } } + return (new(bakedObjectIds, conversionResults), postBakePaintTargets); + } + + /// + /// We're using this to assign materials to solids coming via the shape importer. + /// + /// + private void PostBakePaint(List<(DirectShape res, string applicationId)> paintTargets) + { + foreach (var (res, applicationId) in paintTargets) + { + var elGeometry = res.get_Geometry(new Options() { DetailLevel = ViewDetailLevel.Undefined }); + var materialId = ElementId.InvalidElementId; + if (_revitToHostCacheSingleton.MaterialsByObjectId.TryGetValue(applicationId, out var mappedElementId)) + { + materialId = mappedElementId; + } - return new(bakedObjectIds, conversionResults); + if (materialId == ElementId.InvalidElementId) + { + continue; + } + + // NOTE: some geometries fail to convert as solids, and the api defaults back to meshes (from the shape importer). These cannot be painted, so don't bother. + foreach (var geo in elGeometry) + { + if (geo is Solid s) + { + foreach (Face face in s.Faces) + { + _converterSettings.Current.Document.Paint(res.Id, face, materialId); + } + } + } + } } private void PreReceiveDeepClean(string baseGroupName) { + DirectShapeLibrary.GetDirectShapeLibrary(_converterSettings.Current.Document).Reset(); // Note: this needs to be cleared, as it is being used in the converter + + _revitToHostCacheSingleton.MaterialsByObjectId.Clear(); // Massive hack! _groupBaker.PurgeGroups(baseGroupName); _materialBaker.PurgeMaterials(baseGroupName); } - public void Dispose() - { - _transactionManager?.Dispose(); - } + public void Dispose() => _transactionManager?.Dispose(); } diff --git a/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/TransactionManager.cs b/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/TransactionManager.cs index 2ed7f7ab5..71fcb7590 100644 --- a/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/TransactionManager.cs +++ b/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/TransactionManager.cs @@ -30,11 +30,11 @@ IFailuresPreprocessor errorPreprocessingService #pragma warning restore CA2213 // Disposable fields should be disposed // POC find a better way to use IFailuresPreprocessor - public void StartTransaction(bool enableFailurePreprocessor = false) + public void StartTransaction(bool enableFailurePreprocessor = false, string name = "Speckle Transaction") { if (_transaction == null || !_transaction.IsValidObject || _transaction.GetStatus() != TransactionStatus.Started) { - _transaction = new Transaction(Document, "Speckle Transaction"); + _transaction = new Transaction(Document, name); if (enableFailurePreprocessor) { diff --git a/Connectors/Rhino/Speckle.Connectors.Rhino7/packages.lock.json b/Connectors/Rhino/Speckle.Connectors.Rhino7/packages.lock.json index 0f0f0b253..8964caa3e 100644 --- a/Connectors/Rhino/Speckle.Connectors.Rhino7/packages.lock.json +++ b/Connectors/Rhino/Speckle.Connectors.Rhino7/packages.lock.json @@ -283,8 +283,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -292,7 +292,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -310,7 +310,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.converters.rhino7": { @@ -355,18 +355,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Rhino/Speckle.Connectors.Rhino8/packages.lock.json b/Connectors/Rhino/Speckle.Connectors.Rhino8/packages.lock.json index 2fc49a5cd..e46e36d3e 100644 --- a/Connectors/Rhino/Speckle.Connectors.Rhino8/packages.lock.json +++ b/Connectors/Rhino/Speckle.Connectors.Rhino8/packages.lock.json @@ -283,8 +283,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -292,7 +292,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -310,7 +310,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.converters.rhino8": { @@ -355,18 +355,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Rhino/Speckle.Connectors.RhinoShared/Bindings/RhinoSendBinding.cs b/Connectors/Rhino/Speckle.Connectors.RhinoShared/Bindings/RhinoSendBinding.cs index f225e2924..0670789a2 100644 --- a/Connectors/Rhino/Speckle.Connectors.RhinoShared/Bindings/RhinoSendBinding.cs +++ b/Connectors/Rhino/Speckle.Connectors.RhinoShared/Bindings/RhinoSendBinding.cs @@ -19,6 +19,7 @@ using Speckle.Converters.Rhino; using Speckle.Sdk; using Speckle.Sdk.Common; +using Speckle.Sdk.Logging; namespace Speckle.Connectors.Rhino.Bindings; @@ -39,6 +40,7 @@ public sealed class RhinoSendBinding : ISendBinding private readonly ITopLevelExceptionHandler _topLevelExceptionHandler; private readonly IRhinoConversionSettingsFactory _rhinoConversionSettingsFactory; private readonly ISpeckleApplication _speckleApplication; + private readonly ISdkActivityFactory _activityFactory; /// /// Used internally to aggregate the changed objects' id. Note we're using a concurrent dictionary here as the expiry check method is not thread safe, and this was causing problems. See: @@ -59,7 +61,8 @@ public RhinoSendBinding( IOperationProgressManager operationProgressManager, ILogger logger, IRhinoConversionSettingsFactory rhinoConversionSettingsFactory, - ISpeckleApplication speckleApplication + ISpeckleApplication speckleApplication, + ISdkActivityFactory activityFactory ) { _store = store; @@ -75,6 +78,7 @@ ISpeckleApplication speckleApplication _topLevelExceptionHandler = parent.TopLevelExceptionHandler.Parent.TopLevelExceptionHandler; Parent = parent; Commands = new SendBindingUICommands(parent); // POC: Commands are tightly coupled with their bindings, at least for now, saves us injecting a factory. + _activityFactory = activityFactory; SubscribeToRhinoEvents(); } @@ -153,6 +157,7 @@ private void SubscribeToRhinoEvents() public async Task Send(string modelCardId) { + using var activity = _activityFactory.Start(); using var scope = _serviceProvider.CreateScope(); scope .ServiceProvider.GetRequiredService>() diff --git a/Connectors/Rhino/Speckle.Connectors.RhinoShared/Operations/Receive/RhinoHostObjectBuilder.cs b/Connectors/Rhino/Speckle.Connectors.RhinoShared/Operations/Receive/RhinoHostObjectBuilder.cs index 7770f2fa9..e1bf9336b 100644 --- a/Connectors/Rhino/Speckle.Connectors.RhinoShared/Operations/Receive/RhinoHostObjectBuilder.cs +++ b/Connectors/Rhino/Speckle.Connectors.RhinoShared/Operations/Receive/RhinoHostObjectBuilder.cs @@ -142,7 +142,19 @@ CancellationToken cancellationToken var guid = BakeObject(geometryBase, obj, layerIndex); conversionIds.Add(guid.ToString()); } - else if (result is IEnumerable<(object, Base)> fallbackConversionResult) + else if (result is List geometryBases) // one to many raw encoding case + { + // NOTE: I'm unhappy about this case (dim). It's needed as the raw encoder approach can hypothetically return + // multiple "geometry bases" - but this is not a fallback conversion. + // EXTRA NOTE: Oguzhan says i shouldn't be unhappy about this - it's a legitimate case + // EXTRA EXTRA NOTE: TY Ogu, i am no longer than unhappy about it. It's legit "mess". + foreach (var gb in geometryBases) + { + var guid = BakeObject(gb, obj, layerIndex); + conversionIds.Add(guid.ToString()); + } + } + else if (result is IEnumerable<(object, Base)> fallbackConversionResult) // one to many fallback conversion { var guids = BakeObjectsAsGroup(fallbackConversionResult, obj, layerIndex, baseLayerName); conversionIds.AddRange(guids.Select(id => id.ToString())); diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json b/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json index 8564bdc58..a827a4946 100644 --- a/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json +++ b/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json @@ -399,8 +399,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -408,7 +408,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -457,18 +457,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/ArcGIS/Speckle.Converters.ArcGIS3.DependencyInjection/packages.lock.json b/Converters/ArcGIS/Speckle.Converters.ArcGIS3.DependencyInjection/packages.lock.json deleted file mode 100644 index da9e832fe..000000000 --- a/Converters/ArcGIS/Speckle.Converters.ArcGIS3.DependencyInjection/packages.lock.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "version": 2, - "dependencies": { - "net6.0-windows7.0": { - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "PolySharp": { - "type": "Direct", - "requested": "[1.14.1, )", - "resolved": "1.14.1", - "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" - }, - "Speckle.InterfaceGenerator": { - "type": "Direct", - "requested": "[0.9.6, )", - "resolved": "0.9.6", - "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" - }, - "GraphQL.Client": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0", - "GraphQL.Client.Abstractions.Websocket": "6.0.0", - "System.Reactive": "5.0.0" - } - }, - "GraphQL.Client.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", - "dependencies": { - "GraphQL.Primitives": "6.0.0" - } - }, - "GraphQL.Client.Abstractions.Websocket": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0" - } - }, - "GraphQL.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Data.Sqlite": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "tiNmV1oPy+Z2R7Wd0bPB/FxCr8B+/5q11OpDMG751GA/YuOL7MZrBFfzv5oFRlFe08K6sjrnbrauzzGIeNrzLQ==", - "dependencies": { - "Microsoft.Data.Sqlite.Core": "7.0.7", - "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" - } - }, - "Microsoft.Data.Sqlite.Core": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "21FRzcJhaTrlv7kTrqr/ltFcSQM2TyuTTPhUcjO8H73od7Bb3QraNW90c7lUucNI/245XPkKZG4fp7/7OsKCSg==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==" - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.3", - "contentHash": "DeCY0OFbNdNxsjntr1gTXHJ5pKUwYzp04Er2LLeN3g6pWhffsGuKVfMBLe1lw7x76HrPkLxKEFxBlpRxS2nDEQ==" - }, - "Polly.Contrib.WaitAndRetry": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, - "Speckle.DoubleNumerics": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" - }, - "Speckle.Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" - }, - "SQLitePCLRaw.bundle_e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", - "dependencies": { - "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", - "SQLitePCLRaw.provider.e_sqlite3": "2.1.4" - } - }, - "SQLitePCLRaw.core": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", - "dependencies": { - "System.Memory": "4.5.3" - } - }, - "SQLitePCLRaw.lib.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" - }, - "SQLitePCLRaw.provider.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "CSlb5dUp1FMIkez9Iv5EXzpeq7rHryVNqwJMWnpq87j9zWZexaEMdisDktMsnnrzKM6ahNrsTkjqNodTBPBxtQ==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.3", - "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==" - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "5.0.2", - "contentHash": "I47dVIGiV6SfAyppphxqupertT/5oZkYLDCX6vC3HpOI4ZLjyoKAreUoem2ie6G0RbRuFrlqz/PcTQjfb2DOfQ==" - }, - "speckle.autofac": { - "type": "Project", - "dependencies": { - "Autofac": "[5.2.0, )" - } - }, - "speckle.converters.arcgis3": { - "type": "Project", - "dependencies": { - "Esri.ArcGISPro.Extensions30": "[3.2.0.49743, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "speckle.converters.common": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.common.dependencyinjection": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "Autofac": { - "type": "CentralTransitive", - "requested": "[5.2.0, )", - "resolved": "5.2.0", - "contentHash": "V8dBH0dsv75uDzl7Sw+HkhKDPUw2eXnlMjcSVMH+tLo2s67MpTKGyDj1pDcpR+IF2u4YRs0s3/x7R88YJzIWvg==" - }, - "Esri.ArcGISPro.Extensions30": { - "type": "CentralTransitive", - "requested": "[3.2.0.49743, )", - "resolved": "3.2.0.49743", - "contentHash": "fmnYm+mD14Cz0Uqh1ij37SfLJerkyFHK5581y5tXT/l3H2ZvUmVuuxjYquXzyzj9p7IexQzMW4xCpxe+mD922g==" - }, - "Microsoft.Extensions.Logging": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "3.1.0", - "Microsoft.Extensions.DependencyInjection": "3.1.0", - "Microsoft.Extensions.Logging.Abstractions": "3.1.0", - "Microsoft.Extensions.Options": "3.1.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==" - }, - "Speckle.Objects": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "zKOwln3evlRcasL9AHHLbkTHsKK+sxUDia3VaafhKNx/fJjqoyhiIPgPjW7xVLfU31pZR2OfTmYBFFcfgH1i/A==", - "dependencies": { - "Speckle.Sdk": "3.1.0-dev.142" - } - }, - "Speckle.Sdk": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "xtPyLVnufvipfT5jIuH9cetqkVn2e+rrJSX9fLObCkbxMCF27fioJPcJ9aOd2ErzrCKXapOVRnlHTaPdfFAdEQ==", - "dependencies": { - "GraphQL.Client": "6.0.0", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Data.Sqlite": "7.0.7", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Logging": "3.1.0", - "Polly": "7.2.3", - "Polly.Contrib.WaitAndRetry": "1.1.1", - "Polly.Extensions.Http": "3.0.0", - "Speckle.DoubleNumerics": "4.0.1", - "Speckle.Newtonsoft.Json": "13.0.2", - "System.Text.Json": "5.0.2" - } - } - } - } -} \ No newline at end of file diff --git a/Converters/ArcGIS/Speckle.Converters.ArcGIS3/packages.lock.json b/Converters/ArcGIS/Speckle.Converters.ArcGIS3/packages.lock.json index f20ada366..ce5d5d0a4 100644 --- a/Converters/ArcGIS/Speckle.Converters.ArcGIS3/packages.lock.json +++ b/Converters/ArcGIS/Speckle.Converters.ArcGIS3/packages.lock.json @@ -237,7 +237,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -260,18 +260,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Autocad/Speckle.Converters.Autocad2022.DependencyInjection/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2022.DependencyInjection/packages.lock.json deleted file mode 100644 index 0e0c8f5aa..000000000 --- a/Converters/Autocad/Speckle.Converters.Autocad2022.DependencyInjection/packages.lock.json +++ /dev/null @@ -1,403 +0,0 @@ -{ - "version": 2, - "dependencies": { - ".NETFramework,Version=v4.8": { - "Autofac": { - "type": "Direct", - "requested": "[5.2.0, )", - "resolved": "5.2.0", - "contentHash": "V8dBH0dsv75uDzl7Sw+HkhKDPUw2eXnlMjcSVMH+tLo2s67MpTKGyDj1pDcpR+IF2u4YRs0s3/x7R88YJzIWvg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies": { - "type": "Direct", - "requested": "[1.0.3, )", - "resolved": "1.0.3", - "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", - "dependencies": { - "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3" - } - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "PolySharp": { - "type": "Direct", - "requested": "[1.14.1, )", - "resolved": "1.14.1", - "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" - }, - "Speckle.InterfaceGenerator": { - "type": "Direct", - "requested": "[0.9.6, )", - "resolved": "0.9.6", - "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" - }, - "GraphQL.Client": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0", - "GraphQL.Client.Abstractions.Websocket": "6.0.0", - "System.Net.WebSockets.Client.Managed": "1.0.22", - "System.Reactive": "5.0.0" - } - }, - "GraphQL.Client.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", - "dependencies": { - "GraphQL.Primitives": "6.0.0" - } - }, - "GraphQL.Client.Abstractions.Websocket": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0" - } - }, - "GraphQL.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Data.Sqlite": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "tiNmV1oPy+Z2R7Wd0bPB/FxCr8B+/5q11OpDMG751GA/YuOL7MZrBFfzv5oFRlFe08K6sjrnbrauzzGIeNrzLQ==", - "dependencies": { - "Microsoft.Data.Sqlite.Core": "7.0.7", - "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" - } - }, - "Microsoft.Data.Sqlite.Core": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "21FRzcJhaTrlv7kTrqr/ltFcSQM2TyuTTPhUcjO8H73od7Bb3QraNW90c7lUucNI/245XPkKZG4fp7/7OsKCSg==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==" - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Primitives": "3.1.0", - "System.ComponentModel.Annotations": "4.7.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==", - "dependencies": { - "System.Memory": "4.5.2", - "System.Runtime.CompilerServices.Unsafe": "4.7.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies.net48": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.3", - "contentHash": "DeCY0OFbNdNxsjntr1gTXHJ5pKUwYzp04Er2LLeN3g6pWhffsGuKVfMBLe1lw7x76HrPkLxKEFxBlpRxS2nDEQ==" - }, - "Polly.Contrib.WaitAndRetry": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, - "Speckle.DoubleNumerics": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" - }, - "Speckle.Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" - }, - "SQLitePCLRaw.bundle_e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", - "dependencies": { - "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", - "SQLitePCLRaw.provider.dynamic_cdecl": "2.1.4" - } - }, - "SQLitePCLRaw.core": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", - "dependencies": { - "System.Memory": "4.5.3" - } - }, - "SQLitePCLRaw.lib.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" - }, - "SQLitePCLRaw.provider.dynamic_cdecl": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "ZsaKKhgYF9B1fvcnOGKl3EycNAwd9CRWX7v0rEfuPWhQQ5Jjpvf2VEHahiLIGHio3hxi3EIKFJw9KvyowWOUAw==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.ComponentModel.Annotations": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ==" - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.Net.WebSockets.Client.Managed": { - "type": "Transitive", - "resolved": "1.0.22", - "contentHash": "WqEOxPlXjuZrIjUtXNE9NxEfU/n5E35iV2PtoZdJSUC4tlrqwHnTee+wvMIM4OUaJWmwrymeqcgYrE0IkGAgLA==", - "dependencies": { - "System.Buffers": "4.4.0", - "System.Numerics.Vectors": "4.4.0" - } - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "KmJ+CJXizDofbq6mpqDoRRLcxgOd2z9X3XoFNULSbvbqVRZkFX3istvr+MUjL6Zw1RT+RNdoI4GYidIINtgvqQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "5.0.2", - "contentHash": "I47dVIGiV6SfAyppphxqupertT/5oZkYLDCX6vC3HpOI4ZLjyoKAreUoem2ie6G0RbRuFrlqz/PcTQjfb2DOfQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "5.0.0", - "System.Text.Encodings.Web": "5.0.1", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.ValueTuple": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" - }, - "speckle.autofac": { - "type": "Project", - "dependencies": { - "Autofac": "[5.2.0, )" - } - }, - "speckle.converters.autocad2022": { - "type": "Project", - "dependencies": { - "Speckle.AutoCAD.API": "[2022.0.2, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "speckle.converters.common": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.common.dependencyinjection": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "Microsoft.Extensions.Logging": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "3.1.0", - "Microsoft.Extensions.DependencyInjection": "3.1.0", - "Microsoft.Extensions.Logging.Abstractions": "3.1.0", - "Microsoft.Extensions.Options": "3.1.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==" - }, - "Speckle.AutoCAD.API": { - "type": "CentralTransitive", - "requested": "[2023.0.0, )", - "resolved": "2022.0.2", - "contentHash": "NFHXnlkBjzM8Bau52d6eF6m0+etHddGx7qlWN8YyrfTtGyz+AmPvF8fgxcLgyjAcB3W4Wim11JeYuEoTNH1X0w==" - }, - "Speckle.Objects": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "zKOwln3evlRcasL9AHHLbkTHsKK+sxUDia3VaafhKNx/fJjqoyhiIPgPjW7xVLfU31pZR2OfTmYBFFcfgH1i/A==", - "dependencies": { - "Speckle.Sdk": "3.1.0-dev.142" - } - }, - "Speckle.Sdk": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "xtPyLVnufvipfT5jIuH9cetqkVn2e+rrJSX9fLObCkbxMCF27fioJPcJ9aOd2ErzrCKXapOVRnlHTaPdfFAdEQ==", - "dependencies": { - "GraphQL.Client": "6.0.0", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Data.Sqlite": "7.0.7", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Logging": "3.1.0", - "Polly": "7.2.3", - "Polly.Contrib.WaitAndRetry": "1.1.1", - "Polly.Extensions.Http": "3.0.0", - "Speckle.DoubleNumerics": "4.0.1", - "Speckle.Newtonsoft.Json": "13.0.2", - "System.Text.Json": "5.0.2" - } - } - } - } -} \ No newline at end of file diff --git a/Converters/Autocad/Speckle.Converters.Autocad2022/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2022/packages.lock.json index 79b6ce524..d793366bf 100644 --- a/Converters/Autocad/Speckle.Converters.Autocad2022/packages.lock.json +++ b/Converters/Autocad/Speckle.Converters.Autocad2022/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Autocad/Speckle.Converters.Autocad2023.DependencyInjection/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2023.DependencyInjection/packages.lock.json deleted file mode 100644 index 68d50c2ae..000000000 --- a/Converters/Autocad/Speckle.Converters.Autocad2023.DependencyInjection/packages.lock.json +++ /dev/null @@ -1,403 +0,0 @@ -{ - "version": 2, - "dependencies": { - ".NETFramework,Version=v4.8": { - "Autofac": { - "type": "Direct", - "requested": "[5.2.0, )", - "resolved": "5.2.0", - "contentHash": "V8dBH0dsv75uDzl7Sw+HkhKDPUw2eXnlMjcSVMH+tLo2s67MpTKGyDj1pDcpR+IF2u4YRs0s3/x7R88YJzIWvg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies": { - "type": "Direct", - "requested": "[1.0.3, )", - "resolved": "1.0.3", - "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", - "dependencies": { - "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3" - } - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "PolySharp": { - "type": "Direct", - "requested": "[1.14.1, )", - "resolved": "1.14.1", - "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" - }, - "Speckle.InterfaceGenerator": { - "type": "Direct", - "requested": "[0.9.6, )", - "resolved": "0.9.6", - "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" - }, - "GraphQL.Client": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0", - "GraphQL.Client.Abstractions.Websocket": "6.0.0", - "System.Net.WebSockets.Client.Managed": "1.0.22", - "System.Reactive": "5.0.0" - } - }, - "GraphQL.Client.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", - "dependencies": { - "GraphQL.Primitives": "6.0.0" - } - }, - "GraphQL.Client.Abstractions.Websocket": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0" - } - }, - "GraphQL.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Data.Sqlite": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "tiNmV1oPy+Z2R7Wd0bPB/FxCr8B+/5q11OpDMG751GA/YuOL7MZrBFfzv5oFRlFe08K6sjrnbrauzzGIeNrzLQ==", - "dependencies": { - "Microsoft.Data.Sqlite.Core": "7.0.7", - "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" - } - }, - "Microsoft.Data.Sqlite.Core": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "21FRzcJhaTrlv7kTrqr/ltFcSQM2TyuTTPhUcjO8H73od7Bb3QraNW90c7lUucNI/245XPkKZG4fp7/7OsKCSg==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==" - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Primitives": "3.1.0", - "System.ComponentModel.Annotations": "4.7.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==", - "dependencies": { - "System.Memory": "4.5.2", - "System.Runtime.CompilerServices.Unsafe": "4.7.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies.net48": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.3", - "contentHash": "DeCY0OFbNdNxsjntr1gTXHJ5pKUwYzp04Er2LLeN3g6pWhffsGuKVfMBLe1lw7x76HrPkLxKEFxBlpRxS2nDEQ==" - }, - "Polly.Contrib.WaitAndRetry": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, - "Speckle.DoubleNumerics": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" - }, - "Speckle.Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" - }, - "SQLitePCLRaw.bundle_e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", - "dependencies": { - "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", - "SQLitePCLRaw.provider.dynamic_cdecl": "2.1.4" - } - }, - "SQLitePCLRaw.core": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", - "dependencies": { - "System.Memory": "4.5.3" - } - }, - "SQLitePCLRaw.lib.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" - }, - "SQLitePCLRaw.provider.dynamic_cdecl": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "ZsaKKhgYF9B1fvcnOGKl3EycNAwd9CRWX7v0rEfuPWhQQ5Jjpvf2VEHahiLIGHio3hxi3EIKFJw9KvyowWOUAw==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.ComponentModel.Annotations": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ==" - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.Net.WebSockets.Client.Managed": { - "type": "Transitive", - "resolved": "1.0.22", - "contentHash": "WqEOxPlXjuZrIjUtXNE9NxEfU/n5E35iV2PtoZdJSUC4tlrqwHnTee+wvMIM4OUaJWmwrymeqcgYrE0IkGAgLA==", - "dependencies": { - "System.Buffers": "4.4.0", - "System.Numerics.Vectors": "4.4.0" - } - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "KmJ+CJXizDofbq6mpqDoRRLcxgOd2z9X3XoFNULSbvbqVRZkFX3istvr+MUjL6Zw1RT+RNdoI4GYidIINtgvqQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "5.0.2", - "contentHash": "I47dVIGiV6SfAyppphxqupertT/5oZkYLDCX6vC3HpOI4ZLjyoKAreUoem2ie6G0RbRuFrlqz/PcTQjfb2DOfQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "5.0.0", - "System.Text.Encodings.Web": "5.0.1", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.ValueTuple": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" - }, - "speckle.autofac": { - "type": "Project", - "dependencies": { - "Autofac": "[5.2.0, )" - } - }, - "speckle.converters.autocad2023": { - "type": "Project", - "dependencies": { - "Speckle.AutoCAD.API": "[2023.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "speckle.converters.common": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.common.dependencyinjection": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "Microsoft.Extensions.Logging": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "3.1.0", - "Microsoft.Extensions.DependencyInjection": "3.1.0", - "Microsoft.Extensions.Logging.Abstractions": "3.1.0", - "Microsoft.Extensions.Options": "3.1.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==" - }, - "Speckle.AutoCAD.API": { - "type": "CentralTransitive", - "requested": "[2023.0.0, )", - "resolved": "2023.0.0", - "contentHash": "aNfiNw9zRW8pCl8AAQK7afEJuea4bJ4sFNsGVSDrdq1egaonZrwALU01dSyFNCE8tne86eVjlprpOGG6r0+G/A==" - }, - "Speckle.Objects": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "zKOwln3evlRcasL9AHHLbkTHsKK+sxUDia3VaafhKNx/fJjqoyhiIPgPjW7xVLfU31pZR2OfTmYBFFcfgH1i/A==", - "dependencies": { - "Speckle.Sdk": "3.1.0-dev.142" - } - }, - "Speckle.Sdk": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "xtPyLVnufvipfT5jIuH9cetqkVn2e+rrJSX9fLObCkbxMCF27fioJPcJ9aOd2ErzrCKXapOVRnlHTaPdfFAdEQ==", - "dependencies": { - "GraphQL.Client": "6.0.0", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Data.Sqlite": "7.0.7", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Logging": "3.1.0", - "Polly": "7.2.3", - "Polly.Contrib.WaitAndRetry": "1.1.1", - "Polly.Extensions.Http": "3.0.0", - "Speckle.DoubleNumerics": "4.0.1", - "Speckle.Newtonsoft.Json": "13.0.2", - "System.Text.Json": "5.0.2" - } - } - } - } -} \ No newline at end of file diff --git a/Converters/Autocad/Speckle.Converters.Autocad2023/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2023/packages.lock.json index 945d1b482..06502516a 100644 --- a/Converters/Autocad/Speckle.Converters.Autocad2023/packages.lock.json +++ b/Converters/Autocad/Speckle.Converters.Autocad2023/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Autocad/Speckle.Converters.Autocad2024.DependencyInjection/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2024.DependencyInjection/packages.lock.json deleted file mode 100644 index 8507379cd..000000000 --- a/Converters/Autocad/Speckle.Converters.Autocad2024.DependencyInjection/packages.lock.json +++ /dev/null @@ -1,445 +0,0 @@ -{ - "version": 2, - "dependencies": { - ".NETFramework,Version=v4.8": { - "Autofac": { - "type": "Direct", - "requested": "[5.2.0, )", - "resolved": "5.2.0", - "contentHash": "V8dBH0dsv75uDzl7Sw+HkhKDPUw2eXnlMjcSVMH+tLo2s67MpTKGyDj1pDcpR+IF2u4YRs0s3/x7R88YJzIWvg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies": { - "type": "Direct", - "requested": "[1.0.3, )", - "resolved": "1.0.3", - "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", - "dependencies": { - "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3" - } - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "PolySharp": { - "type": "Direct", - "requested": "[1.14.1, )", - "resolved": "1.14.1", - "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" - }, - "Speckle.InterfaceGenerator": { - "type": "Direct", - "requested": "[0.9.6, )", - "resolved": "0.9.6", - "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" - }, - "GraphQL.Client": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0", - "GraphQL.Client.Abstractions.Websocket": "6.0.0", - "System.Net.WebSockets.Client.Managed": "1.0.22", - "System.Reactive": "5.0.0" - } - }, - "GraphQL.Client.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", - "dependencies": { - "GraphQL.Primitives": "6.0.0" - } - }, - "GraphQL.Client.Abstractions.Websocket": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0" - } - }, - "GraphQL.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Data.Sqlite": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "tiNmV1oPy+Z2R7Wd0bPB/FxCr8B+/5q11OpDMG751GA/YuOL7MZrBFfzv5oFRlFe08K6sjrnbrauzzGIeNrzLQ==", - "dependencies": { - "Microsoft.Data.Sqlite.Core": "7.0.7", - "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" - } - }, - "Microsoft.Data.Sqlite.Core": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "21FRzcJhaTrlv7kTrqr/ltFcSQM2TyuTTPhUcjO8H73od7Bb3QraNW90c7lUucNI/245XPkKZG4fp7/7OsKCSg==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==" - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Primitives": "3.1.0", - "System.ComponentModel.Annotations": "4.7.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==", - "dependencies": { - "System.Memory": "4.5.2", - "System.Runtime.CompilerServices.Unsafe": "4.7.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies.net48": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.3", - "contentHash": "DeCY0OFbNdNxsjntr1gTXHJ5pKUwYzp04Er2LLeN3g6pWhffsGuKVfMBLe1lw7x76HrPkLxKEFxBlpRxS2nDEQ==" - }, - "Polly.Contrib.WaitAndRetry": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, - "Speckle.DoubleNumerics": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" - }, - "Speckle.Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" - }, - "SQLitePCLRaw.bundle_e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", - "dependencies": { - "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", - "SQLitePCLRaw.provider.dynamic_cdecl": "2.1.4" - } - }, - "SQLitePCLRaw.core": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", - "dependencies": { - "System.Memory": "4.5.3" - } - }, - "SQLitePCLRaw.lib.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" - }, - "SQLitePCLRaw.provider.dynamic_cdecl": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "ZsaKKhgYF9B1fvcnOGKl3EycNAwd9CRWX7v0rEfuPWhQQ5Jjpvf2VEHahiLIGHio3hxi3EIKFJw9KvyowWOUAw==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.ComponentModel.Annotations": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ==" - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.Net.WebSockets.Client.Managed": { - "type": "Transitive", - "resolved": "1.0.22", - "contentHash": "WqEOxPlXjuZrIjUtXNE9NxEfU/n5E35iV2PtoZdJSUC4tlrqwHnTee+wvMIM4OUaJWmwrymeqcgYrE0IkGAgLA==", - "dependencies": { - "System.Buffers": "4.4.0", - "System.Numerics.Vectors": "4.4.0" - } - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "KmJ+CJXizDofbq6mpqDoRRLcxgOd2z9X3XoFNULSbvbqVRZkFX3istvr+MUjL6Zw1RT+RNdoI4GYidIINtgvqQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "5.0.2", - "contentHash": "I47dVIGiV6SfAyppphxqupertT/5oZkYLDCX6vC3HpOI4ZLjyoKAreUoem2ie6G0RbRuFrlqz/PcTQjfb2DOfQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "5.0.0", - "System.Text.Encodings.Web": "5.0.1", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.ValueTuple": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" - }, - "speckle.autofac": { - "type": "Project", - "dependencies": { - "Autofac": "[5.2.0, )" - } - }, - "speckle.connectors.dui": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Connectors.Utils": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.142, )", - "System.Threading.Tasks.Dataflow": "[6.0.0, )" - } - }, - "speckle.connectors.dui.webview": { - "type": "Project", - "dependencies": { - "Microsoft.Web.WebView2": "[1.0.1938.49, )", - "Speckle.Connectors.DUI": "[1.0.0, )" - } - }, - "speckle.connectors.logging": { - "type": "Project" - }, - "speckle.connectors.utils": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )", - "Speckle.Sdk": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.autocad2024": { - "type": "Project", - "dependencies": { - "Speckle.AutoCAD.API": "[2024.0.0, )", - "Speckle.Connectors.DUI.WebView": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "speckle.converters.common": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.common.dependencyinjection": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "Microsoft.Extensions.Logging": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "3.1.0", - "Microsoft.Extensions.DependencyInjection": "3.1.0", - "Microsoft.Extensions.Logging.Abstractions": "3.1.0", - "Microsoft.Extensions.Options": "3.1.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==" - }, - "Microsoft.Web.WebView2": { - "type": "CentralTransitive", - "requested": "[1.0.1938.49, )", - "resolved": "1.0.1938.49", - "contentHash": "z8KnFnaTYzhA/ZnyRX0qGfS1NU5ZBJeClAH64F0fVDvdDJTvME7xl6zTJ0Jlfe1BtL3C0NH9xTy64shg2baKdw==" - }, - "Speckle.AutoCAD.API": { - "type": "CentralTransitive", - "requested": "[2023.0.0, )", - "resolved": "2024.0.0", - "contentHash": "pZZ5uI+NXhZaQnsqRkgp/rywqBAjDObDJ9XNFGJvemT5k2OthDpHzlK/mKxz8QDCYie7uImQ8dv3uWj2QUFDPw==" - }, - "Speckle.Objects": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "zKOwln3evlRcasL9AHHLbkTHsKK+sxUDia3VaafhKNx/fJjqoyhiIPgPjW7xVLfU31pZR2OfTmYBFFcfgH1i/A==", - "dependencies": { - "Speckle.Sdk": "3.1.0-dev.142" - } - }, - "Speckle.Sdk": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "xtPyLVnufvipfT5jIuH9cetqkVn2e+rrJSX9fLObCkbxMCF27fioJPcJ9aOd2ErzrCKXapOVRnlHTaPdfFAdEQ==", - "dependencies": { - "GraphQL.Client": "6.0.0", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Data.Sqlite": "7.0.7", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Logging": "3.1.0", - "Polly": "7.2.3", - "Polly.Contrib.WaitAndRetry": "1.1.1", - "Polly.Extensions.Http": "3.0.0", - "Speckle.DoubleNumerics": "4.0.1", - "Speckle.Newtonsoft.Json": "13.0.2", - "System.Text.Json": "5.0.2" - } - }, - "System.Threading.Tasks.Dataflow": { - "type": "CentralTransitive", - "requested": "[6.0.0, )", - "resolved": "6.0.0", - "contentHash": "+tyDCU3/B1lDdOOAJywHQoFwyXIUghIaP2BxG79uvhfTnO+D9qIgjVlL/JV2NTliYbMHpd6eKDmHp2VHpij7MA==" - } - } - } -} \ No newline at end of file diff --git a/Converters/Autocad/Speckle.Converters.Autocad2024/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2024/packages.lock.json index a879f1d22..ae3c4c29f 100644 --- a/Converters/Autocad/Speckle.Converters.Autocad2024/packages.lock.json +++ b/Converters/Autocad/Speckle.Converters.Autocad2024/packages.lock.json @@ -274,8 +274,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -283,7 +283,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -301,7 +301,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -339,18 +339,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Autocad/Speckle.Converters.Autocad2025.DependencyInjection/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2025.DependencyInjection/packages.lock.json deleted file mode 100644 index a9b09076e..000000000 --- a/Converters/Autocad/Speckle.Converters.Autocad2025.DependencyInjection/packages.lock.json +++ /dev/null @@ -1,344 +0,0 @@ -{ - "version": 2, - "dependencies": { - "net8.0-windows7.0": { - "Autofac": { - "type": "Direct", - "requested": "[5.2.0, )", - "resolved": "5.2.0", - "contentHash": "V8dBH0dsv75uDzl7Sw+HkhKDPUw2eXnlMjcSVMH+tLo2s67MpTKGyDj1pDcpR+IF2u4YRs0s3/x7R88YJzIWvg==" - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "PolySharp": { - "type": "Direct", - "requested": "[1.14.1, )", - "resolved": "1.14.1", - "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" - }, - "Speckle.InterfaceGenerator": { - "type": "Direct", - "requested": "[0.9.6, )", - "resolved": "0.9.6", - "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" - }, - "GraphQL.Client": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0", - "GraphQL.Client.Abstractions.Websocket": "6.0.0", - "System.Reactive": "5.0.0" - } - }, - "GraphQL.Client.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", - "dependencies": { - "GraphQL.Primitives": "6.0.0" - } - }, - "GraphQL.Client.Abstractions.Websocket": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0" - } - }, - "GraphQL.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Data.Sqlite": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "tiNmV1oPy+Z2R7Wd0bPB/FxCr8B+/5q11OpDMG751GA/YuOL7MZrBFfzv5oFRlFe08K6sjrnbrauzzGIeNrzLQ==", - "dependencies": { - "Microsoft.Data.Sqlite.Core": "7.0.7", - "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" - } - }, - "Microsoft.Data.Sqlite.Core": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "21FRzcJhaTrlv7kTrqr/ltFcSQM2TyuTTPhUcjO8H73od7Bb3QraNW90c7lUucNI/245XPkKZG4fp7/7OsKCSg==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==" - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.3", - "contentHash": "DeCY0OFbNdNxsjntr1gTXHJ5pKUwYzp04Er2LLeN3g6pWhffsGuKVfMBLe1lw7x76HrPkLxKEFxBlpRxS2nDEQ==" - }, - "Polly.Contrib.WaitAndRetry": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, - "Speckle.DoubleNumerics": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" - }, - "Speckle.Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" - }, - "SQLitePCLRaw.bundle_e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", - "dependencies": { - "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", - "SQLitePCLRaw.provider.e_sqlite3": "2.1.4" - } - }, - "SQLitePCLRaw.core": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", - "dependencies": { - "System.Memory": "4.5.3" - } - }, - "SQLitePCLRaw.lib.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" - }, - "SQLitePCLRaw.provider.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "CSlb5dUp1FMIkez9Iv5EXzpeq7rHryVNqwJMWnpq87j9zWZexaEMdisDktMsnnrzKM6ahNrsTkjqNodTBPBxtQ==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.3", - "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==" - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "5.0.2", - "contentHash": "I47dVIGiV6SfAyppphxqupertT/5oZkYLDCX6vC3HpOI4ZLjyoKAreUoem2ie6G0RbRuFrlqz/PcTQjfb2DOfQ==" - }, - "speckle.autofac": { - "type": "Project", - "dependencies": { - "Autofac": "[5.2.0, )" - } - }, - "speckle.connectors.dui": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Connectors.Utils": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.142, )", - "System.Threading.Tasks.Dataflow": "[6.0.0, )" - } - }, - "speckle.connectors.dui.webview": { - "type": "Project", - "dependencies": { - "Microsoft.Web.WebView2": "[1.0.1938.49, )", - "Speckle.Connectors.DUI": "[1.0.0, )" - } - }, - "speckle.connectors.logging": { - "type": "Project" - }, - "speckle.connectors.utils": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )", - "Speckle.Sdk": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.autocad2025": { - "type": "Project", - "dependencies": { - "Speckle.AutoCAD.API": "[2025.0.0, )", - "Speckle.Connectors.DUI.WebView": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "speckle.converters.common": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.common.dependencyinjection": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "Microsoft.Extensions.Logging": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "3.1.0", - "Microsoft.Extensions.DependencyInjection": "3.1.0", - "Microsoft.Extensions.Logging.Abstractions": "3.1.0", - "Microsoft.Extensions.Options": "3.1.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==" - }, - "Microsoft.Web.WebView2": { - "type": "CentralTransitive", - "requested": "[1.0.1938.49, )", - "resolved": "1.0.1938.49", - "contentHash": "z8KnFnaTYzhA/ZnyRX0qGfS1NU5ZBJeClAH64F0fVDvdDJTvME7xl6zTJ0Jlfe1BtL3C0NH9xTy64shg2baKdw==" - }, - "Speckle.AutoCAD.API": { - "type": "CentralTransitive", - "requested": "[2023.0.0, )", - "resolved": "2025.0.0", - "contentHash": "dqEgZ+bTqAG0tx0WwdnTZcbNKH2igzhOr3SMXtRYai7yIqXiz5btZ4Mf2bmfxbmxLucww3GKVpdZoI+PSZlMuQ==" - }, - "Speckle.Objects": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "zKOwln3evlRcasL9AHHLbkTHsKK+sxUDia3VaafhKNx/fJjqoyhiIPgPjW7xVLfU31pZR2OfTmYBFFcfgH1i/A==", - "dependencies": { - "Speckle.Sdk": "3.1.0-dev.142" - } - }, - "Speckle.Sdk": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "xtPyLVnufvipfT5jIuH9cetqkVn2e+rrJSX9fLObCkbxMCF27fioJPcJ9aOd2ErzrCKXapOVRnlHTaPdfFAdEQ==", - "dependencies": { - "GraphQL.Client": "6.0.0", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Data.Sqlite": "7.0.7", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Logging": "3.1.0", - "Polly": "7.2.3", - "Polly.Contrib.WaitAndRetry": "1.1.1", - "Polly.Extensions.Http": "3.0.0", - "Speckle.DoubleNumerics": "4.0.1", - "Speckle.Newtonsoft.Json": "13.0.2", - "System.Text.Json": "5.0.2" - } - }, - "System.Threading.Tasks.Dataflow": { - "type": "CentralTransitive", - "requested": "[6.0.0, )", - "resolved": "6.0.0", - "contentHash": "+tyDCU3/B1lDdOOAJywHQoFwyXIUghIaP2BxG79uvhfTnO+D9qIgjVlL/JV2NTliYbMHpd6eKDmHp2VHpij7MA==" - } - } - } -} \ No newline at end of file diff --git a/Converters/Autocad/Speckle.Converters.Autocad2025/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2025/packages.lock.json index 678bee37f..aad3d3cc6 100644 --- a/Converters/Autocad/Speckle.Converters.Autocad2025/packages.lock.json +++ b/Converters/Autocad/Speckle.Converters.Autocad2025/packages.lock.json @@ -238,8 +238,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -247,7 +247,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -265,7 +265,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -303,18 +303,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Autocad/Speckle.Converters.AutocadShared/ToSpeckle/Geometry/SubDMeshToSpeckleConverter.cs b/Converters/Autocad/Speckle.Converters.AutocadShared/ToSpeckle/Geometry/SubDMeshToSpeckleConverter.cs index 212a9d93b..6e168f9a7 100644 --- a/Converters/Autocad/Speckle.Converters.AutocadShared/ToSpeckle/Geometry/SubDMeshToSpeckleConverter.cs +++ b/Converters/Autocad/Speckle.Converters.AutocadShared/ToSpeckle/Geometry/SubDMeshToSpeckleConverter.cs @@ -30,7 +30,9 @@ public SOG.Mesh RawConvert(ADB.SubDMesh target) var vertices = new List(target.Vertices.Count * 3); foreach (AG.Point3d vert in target.Vertices) { - vertices.AddRange(_pointConverter.Convert(vert).ToList()); + vertices.Add(vert.X); + vertices.Add(vert.Y); + vertices.Add(vert.Z); } // faces diff --git a/Converters/Autocad/Speckle.Converters.AutocadShared/ToSpeckle/Raw/DBCurveToSpeckleRawConverter.cs b/Converters/Autocad/Speckle.Converters.AutocadShared/ToSpeckle/Raw/DBCurveToSpeckleRawConverter.cs index 789d6db00..d12177389 100644 --- a/Converters/Autocad/Speckle.Converters.AutocadShared/ToSpeckle/Raw/DBCurveToSpeckleRawConverter.cs +++ b/Converters/Autocad/Speckle.Converters.AutocadShared/ToSpeckle/Raw/DBCurveToSpeckleRawConverter.cs @@ -53,9 +53,9 @@ public Objects.ICurve Convert(ADB.Curve target) => target switch { ADB.Line line => _lineConverter.Convert(line), - //ADB.Polyline polyline => _polylineConverter.Convert(polyline), - //ADB.Polyline2d polyline2d => _polyline2dConverter.Convert(polyline2d), - //ADB.Polyline3d polyline3d => _polyline3dConverter.Convert(polyline3d), + ADB.Polyline polyline => _polylineConverter.Convert(polyline), + ADB.Polyline2d polyline2d => _polyline2dConverter.Convert(polyline2d), + ADB.Polyline3d polyline3d => _polyline3dConverter.Convert(polyline3d), ADB.Arc arc => _arcConverter.Convert(arc), ADB.Circle circle => _circleConverter.Convert(circle), ADB.Ellipse ellipse => _ellipseConverter.Convert(ellipse), diff --git a/Converters/Civil3d/Speckle.Converters.Civil3d2024.DependencyInjection/packages.lock.json b/Converters/Civil3d/Speckle.Converters.Civil3d2024.DependencyInjection/packages.lock.json deleted file mode 100644 index 3592145f7..000000000 --- a/Converters/Civil3d/Speckle.Converters.Civil3d2024.DependencyInjection/packages.lock.json +++ /dev/null @@ -1,413 +0,0 @@ -{ - "version": 2, - "dependencies": { - ".NETFramework,Version=v4.8": { - "Autofac": { - "type": "Direct", - "requested": "[5.2.0, )", - "resolved": "5.2.0", - "contentHash": "V8dBH0dsv75uDzl7Sw+HkhKDPUw2eXnlMjcSVMH+tLo2s67MpTKGyDj1pDcpR+IF2u4YRs0s3/x7R88YJzIWvg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies": { - "type": "Direct", - "requested": "[1.0.3, )", - "resolved": "1.0.3", - "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", - "dependencies": { - "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3" - } - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "PolySharp": { - "type": "Direct", - "requested": "[1.14.1, )", - "resolved": "1.14.1", - "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" - }, - "Speckle.InterfaceGenerator": { - "type": "Direct", - "requested": "[0.9.6, )", - "resolved": "0.9.6", - "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" - }, - "GraphQL.Client": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0", - "GraphQL.Client.Abstractions.Websocket": "6.0.0", - "System.Net.WebSockets.Client.Managed": "1.0.22", - "System.Reactive": "5.0.0" - } - }, - "GraphQL.Client.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", - "dependencies": { - "GraphQL.Primitives": "6.0.0" - } - }, - "GraphQL.Client.Abstractions.Websocket": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0" - } - }, - "GraphQL.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Data.Sqlite": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "tiNmV1oPy+Z2R7Wd0bPB/FxCr8B+/5q11OpDMG751GA/YuOL7MZrBFfzv5oFRlFe08K6sjrnbrauzzGIeNrzLQ==", - "dependencies": { - "Microsoft.Data.Sqlite.Core": "7.0.7", - "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" - } - }, - "Microsoft.Data.Sqlite.Core": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "21FRzcJhaTrlv7kTrqr/ltFcSQM2TyuTTPhUcjO8H73od7Bb3QraNW90c7lUucNI/245XPkKZG4fp7/7OsKCSg==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==" - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Primitives": "3.1.0", - "System.ComponentModel.Annotations": "4.7.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==", - "dependencies": { - "System.Memory": "4.5.2", - "System.Runtime.CompilerServices.Unsafe": "4.7.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies.net48": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.3", - "contentHash": "DeCY0OFbNdNxsjntr1gTXHJ5pKUwYzp04Er2LLeN3g6pWhffsGuKVfMBLe1lw7x76HrPkLxKEFxBlpRxS2nDEQ==" - }, - "Polly.Contrib.WaitAndRetry": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, - "Speckle.DoubleNumerics": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" - }, - "Speckle.Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" - }, - "SQLitePCLRaw.bundle_e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", - "dependencies": { - "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", - "SQLitePCLRaw.provider.dynamic_cdecl": "2.1.4" - } - }, - "SQLitePCLRaw.core": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", - "dependencies": { - "System.Memory": "4.5.3" - } - }, - "SQLitePCLRaw.lib.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" - }, - "SQLitePCLRaw.provider.dynamic_cdecl": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "ZsaKKhgYF9B1fvcnOGKl3EycNAwd9CRWX7v0rEfuPWhQQ5Jjpvf2VEHahiLIGHio3hxi3EIKFJw9KvyowWOUAw==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.ComponentModel.Annotations": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ==" - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.Net.WebSockets.Client.Managed": { - "type": "Transitive", - "resolved": "1.0.22", - "contentHash": "WqEOxPlXjuZrIjUtXNE9NxEfU/n5E35iV2PtoZdJSUC4tlrqwHnTee+wvMIM4OUaJWmwrymeqcgYrE0IkGAgLA==", - "dependencies": { - "System.Buffers": "4.4.0", - "System.Numerics.Vectors": "4.4.0" - } - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "KmJ+CJXizDofbq6mpqDoRRLcxgOd2z9X3XoFNULSbvbqVRZkFX3istvr+MUjL6Zw1RT+RNdoI4GYidIINtgvqQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "5.0.2", - "contentHash": "I47dVIGiV6SfAyppphxqupertT/5oZkYLDCX6vC3HpOI4ZLjyoKAreUoem2ie6G0RbRuFrlqz/PcTQjfb2DOfQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "5.0.0", - "System.Text.Encodings.Web": "5.0.1", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.ValueTuple": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" - }, - "speckle.autofac": { - "type": "Project", - "dependencies": { - "Autofac": "[5.2.0, )" - } - }, - "speckle.converters.civil3d2024": { - "type": "Project", - "dependencies": { - "Speckle.AutoCAD.API": "[2024.0.0, )", - "Speckle.Civil3D.API": "[2024.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "speckle.converters.common": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.common.dependencyinjection": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "Microsoft.Extensions.Logging": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "3.1.0", - "Microsoft.Extensions.DependencyInjection": "3.1.0", - "Microsoft.Extensions.Logging.Abstractions": "3.1.0", - "Microsoft.Extensions.Options": "3.1.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==" - }, - "Speckle.AutoCAD.API": { - "type": "CentralTransitive", - "requested": "[2023.0.0, )", - "resolved": "2024.0.0", - "contentHash": "pZZ5uI+NXhZaQnsqRkgp/rywqBAjDObDJ9XNFGJvemT5k2OthDpHzlK/mKxz8QDCYie7uImQ8dv3uWj2QUFDPw==" - }, - "Speckle.Civil3D.API": { - "type": "CentralTransitive", - "requested": "[2024.0.0, )", - "resolved": "2024.0.0", - "contentHash": "9Q7M1k0DotN8w7MkiScQezErRdnZ4dAkxBMcPNhHSWoth/lSaT6UPV1aYEdl90RhehJWG4l3O7U2e3OXvVSFdw==", - "dependencies": { - "Speckle.AutoCAD.API": "2024.0.0" - } - }, - "Speckle.Objects": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "zKOwln3evlRcasL9AHHLbkTHsKK+sxUDia3VaafhKNx/fJjqoyhiIPgPjW7xVLfU31pZR2OfTmYBFFcfgH1i/A==", - "dependencies": { - "Speckle.Sdk": "3.1.0-dev.142" - } - }, - "Speckle.Sdk": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "xtPyLVnufvipfT5jIuH9cetqkVn2e+rrJSX9fLObCkbxMCF27fioJPcJ9aOd2ErzrCKXapOVRnlHTaPdfFAdEQ==", - "dependencies": { - "GraphQL.Client": "6.0.0", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Data.Sqlite": "7.0.7", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Logging": "3.1.0", - "Polly": "7.2.3", - "Polly.Contrib.WaitAndRetry": "1.1.1", - "Polly.Extensions.Http": "3.0.0", - "Speckle.DoubleNumerics": "4.0.1", - "Speckle.Newtonsoft.Json": "13.0.2", - "System.Text.Json": "5.0.2" - } - } - } - } -} \ No newline at end of file diff --git a/Converters/Civil3d/Speckle.Converters.Civil3d2024/packages.lock.json b/Converters/Civil3d/Speckle.Converters.Civil3d2024/packages.lock.json index f6b13dff4..1d5682905 100644 --- a/Converters/Civil3d/Speckle.Converters.Civil3d2024/packages.lock.json +++ b/Converters/Civil3d/Speckle.Converters.Civil3d2024/packages.lock.json @@ -282,7 +282,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -305,18 +305,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dConversionSettings.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dConversionSettings.cs index 71835b3dd..e15a58213 100644 --- a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dConversionSettings.cs +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dConversionSettings.cs @@ -1,3 +1,3 @@ -namespace Speckle.Converters.Civil3d; +namespace Speckle.Converters.Civil3dShared; public record Civil3dConversionSettings(Document Document, string SpeckleUnits); diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dConversionSettingsFactory.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dConversionSettingsFactory.cs index b22adb63a..47ebb0934 100644 --- a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dConversionSettingsFactory.cs +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dConversionSettingsFactory.cs @@ -1,7 +1,7 @@ using Speckle.Converters.Common; using Speckle.InterfaceGenerator; -namespace Speckle.Converters.Civil3d; +namespace Speckle.Converters.Civil3dShared; [GenerateAutoInterface] public class Civil3dConversionSettingsFactory(IHostToSpeckleUnitConverter unitsConverter) diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dRootToHostConverter.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dRootToHostConverter.cs deleted file mode 100644 index 54b047658..000000000 --- a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dRootToHostConverter.cs +++ /dev/null @@ -1,55 +0,0 @@ -using Autodesk.AutoCAD.DatabaseServices; -using Speckle.Converters.Common; -using Speckle.Converters.Common.Objects; -using Speckle.Converters.Common.Registration; -using Speckle.Sdk.Common.Exceptions; -using Speckle.Sdk.Models; - -namespace Speckle.Converters.Civil3d; - -public class Civil3dRootToHostConverter : IRootToSpeckleConverter -{ - private readonly IConverterManager _toSpeckle; - private readonly IConverterSettingsStore _settingsStore; - - public Civil3dRootToHostConverter( - IConverterManager toSpeckle, - IConverterSettingsStore settingsStore - ) - { - _toSpeckle = toSpeckle; - _settingsStore = settingsStore; - } - - public Base Convert(object target) - { - if (target is not DBObject dbObject) - { - throw new ValidationException( - $"Conversion of {target.GetType().Name} to Speckle is not supported. Only objects that inherit from DBObject are." - ); - } - - Type type = dbObject.GetType(); - object objectToConvert = dbObject; - - // check first for civil type objects - if (target is CDB.Entity civilEntity) - { - type = civilEntity.GetType(); - objectToConvert = civilEntity; - } - - var objectConverter = _toSpeckle.ResolveConverter(type); - - using (var l = _settingsStore.Current.Document.LockDocument()) - { - using (var tr = _settingsStore.Current.Document.Database.TransactionManager.StartTransaction()) - { - var convertedObject = objectConverter.Convert(objectToConvert); - tr.Commit(); - return convertedObject; - } - } - } -} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dRootToSpeckleConverter.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dRootToSpeckleConverter.cs new file mode 100644 index 000000000..812c438bb --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dRootToSpeckleConverter.cs @@ -0,0 +1,117 @@ +using Autodesk.AutoCAD.DatabaseServices; +using Speckle.Converters.Civil3dShared.ToSpeckle; +using Speckle.Converters.Common; +using Speckle.Converters.Common.Objects; +using Speckle.Converters.Common.Registration; +using Speckle.Sdk.Models; + +namespace Speckle.Converters.Civil3dShared; + +public class Civil3dRootToSpeckleConverter : IRootToSpeckleConverter +{ + private readonly IConverterManager _toSpeckle; + private readonly IConverterSettingsStore _settingsStore; + private readonly PartDataExtractor _partDataExtractor; + private readonly PropertySetExtractor _propertySetExtractor; + private readonly GeneralPropertiesExtractor _generalPropertiesExtractor; + + public Civil3dRootToSpeckleConverter( + IConverterManager toSpeckle, + IConverterSettingsStore settingsStore, + PartDataExtractor partDataExtractor, + PropertySetExtractor propertySetExtractor, + GeneralPropertiesExtractor generalPropertiesExtractor + ) + { + _toSpeckle = toSpeckle; + _settingsStore = settingsStore; + _partDataExtractor = partDataExtractor; + _propertySetExtractor = propertySetExtractor; + _generalPropertiesExtractor = generalPropertiesExtractor; + } + + public Base Convert(object target) + { + if (target is not DBObject dbObject) + { + throw new SpeckleConversionException( + $"Conversion of {target.GetType().Name} to Speckle is not supported. Only objects that inherit from DBObject are." + ); + } + + Type type = dbObject.GetType(); + object objectToConvert = dbObject; + Dictionary properties = new(); + + // check first for civil type objects + if (target is CDB.Entity civilEntity) + { + type = civilEntity.GetType(); + objectToConvert = civilEntity; + + // get properties like partdata, property sets, general properties + properties = GetCivilEntityProperties(civilEntity); + } + + var objectConverter = _toSpeckle.ResolveConverter(type, true); + + if (objectConverter == null) + { + throw new SpeckleConversionException($"No conversion found for {target.GetType().Name}"); + } + + try + { + using (var l = _settingsStore.Current.Document.LockDocument()) + { + using (var tr = _settingsStore.Current.Document.Database.TransactionManager.StartTransaction()) + { + var result = objectConverter.Convert(objectToConvert); + + if (properties.Count > 0) + { + result["properties"] = properties; + } + + tr.Commit(); + return result; + } + } + } + catch (SpeckleConversionException e) + { + Console.WriteLine(e); + throw; // Just rethrowing for now, Logs may be needed here. + } + } + + private Dictionary GetCivilEntityProperties(CDB.Entity entity) + { + Dictionary properties = new(); + + // get general properties + Dictionary? generalProperties = _generalPropertiesExtractor.GetGeneralProperties(entity); + if (generalProperties is not null) + { + properties.Add("Properties", generalProperties); + } + + // get part data + Dictionary? partData = _partDataExtractor.GetPartData(entity); + if (partData is not null) + { + properties.Add("Part Data", partData); + } + + // get property set data + Dictionary? propertySets = _propertySetExtractor.GetPropertySets(entity); + if (propertySets is not null) + { + properties.Add("Property Sets", propertySets); + } + + // TODO: add XDATA here + + return properties; + } +} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dToSpeckleUnitConverter.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dToSpeckleUnitConverter.cs index a90992d80..825bc0162 100644 --- a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dToSpeckleUnitConverter.cs +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Civil3dToSpeckleUnitConverter.cs @@ -2,7 +2,7 @@ using Speckle.Sdk.Common; using Speckle.Sdk.Common.Exceptions; -namespace Speckle.Converters.Civil3d; +namespace Speckle.Converters.Civil3dShared; public class Civil3dToSpeckleUnitConverter : IHostToSpeckleUnitConverter { diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Extensions/SpeckleApplicationIdExtensions.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Extensions/SpeckleApplicationIdExtensions.cs new file mode 100644 index 000000000..82a1cf49e --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Extensions/SpeckleApplicationIdExtensions.cs @@ -0,0 +1,17 @@ +namespace Speckle.Converters.Civil3dShared.Extensions; + +public static class SpeckleApplicationIdExtensions +{ + /// + /// Retrieves the Speckle object application id + /// + public static string GetSpeckleApplicationId(this CDB.Entity entity) => entity.Handle.Value.ToString(); + + /// + /// Retrieves the Speckle application id from an ObjectId. + /// This is used primarily when storing civil entity relationships, eg alignments used for sites and corridors + /// + /// + /// + public static string GetSpeckleApplicationId(this ADB.ObjectId objectId) => objectId.Handle.Value.ToString(); +} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/GlobalUsings.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/GlobalUsings.cs index 84ef53636..a4bc49b0f 100644 --- a/Converters/Civil3d/Speckle.Converters.Civil3dShared/GlobalUsings.cs +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/GlobalUsings.cs @@ -1,2 +1,3 @@ global using AAEC = Autodesk.Aec; +global using AAECPDB = Autodesk.Aec.PropertyData.DatabaseServices; global using CDB = Autodesk.Civil.DatabaseServices; diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Helpers/BaseCurveExtractor.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Helpers/BaseCurveExtractor.cs new file mode 100644 index 000000000..02acc8130 --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Helpers/BaseCurveExtractor.cs @@ -0,0 +1,55 @@ +using Microsoft.Extensions.Logging; +using Speckle.Converters.Common; +using Speckle.Converters.Common.Objects; +using Speckle.Objects; + +namespace Speckle.Converters.Civil3dShared.Helpers; + +public sealed class BaseCurveExtractor +{ + private readonly ILogger _logger; + private readonly IConverterSettingsStore _converterSettings; + private readonly ITypedConverter _lineConverter; + + //private readonly ITypedConverter _arcConverter; + private readonly ITypedConverter _curveConverter; + + public BaseCurveExtractor( + ITypedConverter lineConverter, + //ITypedConverter arcConverter, + ITypedConverter curveConverter, + ILogger logger, + IConverterSettingsStore converterSettings + ) + { + _lineConverter = lineConverter; + //_arcConverter = arcConverter; + _curveConverter = curveConverter; + _logger = logger; + _converterSettings = converterSettings; + } + + public List? GetBaseCurve(CDB.Entity entity) + { + switch (entity) + { + // rant: if this is a pipe, the BaseCurve prop is fake news && will return a DB.line with start and endpoints set to [0,0,0] & [0,0,1] + // do not use basecurve for pipes 😡 + // currently not handling arc pipes due to lack of CircularArc2D converter, and also way to properly retrieve 2d arc curve + case CDB.Pipe pipe: + ICurve pipeCurve = + //pipe.SubEntityType == PipeSubEntityType.Straight ? + _lineConverter.Convert(new AG.LineSegment3d(pipe.StartPoint, pipe.EndPoint)); + //: _arcConverter.Convert(pipe.Curve2d); + return new() { pipeCurve }; + + case CDB.Alignment: + ICurve baseCurve = _curveConverter.Convert(entity.BaseCurve); + return new() { baseCurve }; + + // for any entities that don't use their basecurve prop + default: + return null; + } + } +} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Helpers/CatchmentGroupHandler.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Helpers/CatchmentGroupHandler.cs new file mode 100644 index 000000000..fd0fbf76c --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Helpers/CatchmentGroupHandler.cs @@ -0,0 +1,61 @@ +using Speckle.Converters.Civil3dShared.Extensions; +using Speckle.Converters.Common; +using Speckle.Sdk.Models.Proxies; + +namespace Speckle.Converters.Civil3dShared.Helpers; + +public sealed class CatchmentGroupHandler +{ + /// + /// Keeps track of all catchment groups used by catchments in the current send operation. + /// (catchmentGroup objectId, catchmentGroupProxy). + /// This should be added to the root commit object post conversion. + /// + /// POC: Using group proxies for now + public Dictionary CatchmentGroupProxiesCache { get; } = new(); + + private readonly IConverterSettingsStore _converterSettings; + + public CatchmentGroupHandler(IConverterSettingsStore converterSettings) + { + _converterSettings = converterSettings; + } + + /// + /// Extracts the Catchment group from a catchment and stores in the appId of the catchment. + /// + /// + /// + public void HandleCatchmentGroup(CDB.Catchment catchment) + { + ADB.ObjectId catchmentGroupId = catchment.ContainingGroupId; + + if (catchmentGroupId == ADB.ObjectId.Null) + { + return; + } + + string catchmentApplicationId = catchment.GetSpeckleApplicationId(); + if (CatchmentGroupProxiesCache.TryGetValue(catchmentGroupId, out GroupProxy? value)) + { + value.objects.Add(catchmentApplicationId); + } + else + { + using (var tr = _converterSettings.Current.Document.Database.TransactionManager.StartTransaction()) + { + var catchmentGroup = (CDB.CatchmentGroup)tr.GetObject(catchmentGroupId, ADB.OpenMode.ForRead); + + CatchmentGroupProxiesCache[catchmentGroupId] = new() + { + name = catchmentGroup.Name, + objects = new() { catchmentApplicationId }, + applicationId = catchmentGroup.Handle.Value.ToString() + }; + + tr.Commit(); + } + } + return; + } +} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Helpers/DisplayValueExtractor.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Helpers/DisplayValueExtractor.cs new file mode 100644 index 000000000..0ab46cbb4 --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Helpers/DisplayValueExtractor.cs @@ -0,0 +1,54 @@ +using Microsoft.Extensions.Logging; +using Speckle.Converters.Common; +using Speckle.Converters.Common.Objects; + +namespace Speckle.Converters.Civil3dShared.Helpers; + +public sealed class DisplayValueExtractor +{ + private readonly ITypedConverter _solidConverter; + private readonly ITypedConverter _tinSurfaceConverter; + private readonly ITypedConverter _gridSurfaceConverter; + private readonly ILogger _logger; + private readonly IConverterSettingsStore _converterSettings; + + public DisplayValueExtractor( + ITypedConverter solidConverter, + ITypedConverter tinSurfaceConverter, + ITypedConverter gridSurfaceConverter, + ILogger logger, + IConverterSettingsStore converterSettings + ) + { + _solidConverter = solidConverter; + _tinSurfaceConverter = tinSurfaceConverter; + _gridSurfaceConverter = gridSurfaceConverter; + _logger = logger; + _converterSettings = converterSettings; + } + + public List GetDisplayValue(CDB.Entity entity) + { + List result = new(); + switch (entity) + { + // pipe networks: https://help.autodesk.com/view/CIV3D/2025/ENU/?guid=ade47b62-debf-f899-9b94-5645a620ab4f + case CDB.Part part: + SOG.Mesh partMesh = _solidConverter.Convert(part.Solid3dBody); + result.Add(partMesh); + break; + + // surfaces: https://help.autodesk.com/view/CIV3D/2025/ENU/?guid=d741aa49-e7da-9513-6b0b-226ebe3fa43f + // POC: volume surfaces not supported + case CDB.TinSurface tinSurface: + SOG.Mesh tinSurfaceMesh = _tinSurfaceConverter.Convert(tinSurface); + result.Add(tinSurfaceMesh); + break; + case CDB.GridSurface gridSurface: + SOG.Mesh gridSurfaceMesh = _gridSurfaceConverter.Convert(gridSurface); + result.Add(gridSurfaceMesh); + break; + } + return result; + } +} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Helpers/PipeNetworkHandler.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Helpers/PipeNetworkHandler.cs new file mode 100644 index 000000000..8ed0f2a9c --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Helpers/PipeNetworkHandler.cs @@ -0,0 +1,60 @@ +using Speckle.Converters.Civil3dShared.Extensions; +using Speckle.Converters.Common; +using Speckle.Sdk.Models.Proxies; + +namespace Speckle.Converters.Civil3dShared.Helpers; + +public sealed class PipeNetworkHandler +{ + /// + /// Keeps track of all networks used by parts in the current send operation. + /// (network app id, network Proxy). + /// This should be added to the root commit object post conversion. + /// + /// POC: Using group proxies for now + public Dictionary PipeNetworkProxiesCache { get; } = new(); + + private readonly IConverterSettingsStore _converterSettings; + + public PipeNetworkHandler(IConverterSettingsStore converterSettings) + { + _converterSettings = converterSettings; + } + + /// + /// Extracts the pipe network from a part and stores in the appId of the part. + /// + /// + /// + public void HandlePipeNetwork(CDB.Part part) + { + if (part.NetworkId == ADB.ObjectId.Null) + { + return; + } + + string networkApplicationId = part.NetworkId.GetSpeckleApplicationId(); + string partApplicationId = part.GetSpeckleApplicationId(); + if (PipeNetworkProxiesCache.TryGetValue(networkApplicationId, out GroupProxy? value)) + { + value.objects.Add(partApplicationId); + } + else + { + using (var tr = _converterSettings.Current.Document.Database.TransactionManager.StartTransaction()) + { + var network = (CDB.Network)tr.GetObject(part.NetworkId, ADB.OpenMode.ForRead); + + PipeNetworkProxiesCache[networkApplicationId] = new() + { + name = network.Name, + objects = new() { partApplicationId }, + applicationId = networkApplicationId + }; + + tr.Commit(); + } + } + return; + } +} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ServiceRegistration.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ServiceRegistration.cs index 0b001f819..e65e403f1 100644 --- a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ServiceRegistration.cs +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ServiceRegistration.cs @@ -1,10 +1,12 @@ -using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection; using Speckle.Converters.Autocad; +using Speckle.Converters.Civil3dShared.Helpers; +using Speckle.Converters.Civil3dShared.ToSpeckle; using Speckle.Converters.Common; using Speckle.Converters.Common.Registration; using Speckle.Sdk; -namespace Speckle.Converters.Civil3d; +namespace Speckle.Converters.Civil3dShared; public static class ServiceRegistration { @@ -16,7 +18,7 @@ public static void AddCivil3dConverters(this IServiceCollection serviceCollectio serviceCollection.AddMatchingInterfacesAsTransient(civil3dAssembly); serviceCollection.AddMatchingInterfacesAsTransient(autocadAssembly); // Register single root - serviceCollection.AddRootCommon(civil3dAssembly); + serviceCollection.AddRootCommon(civil3dAssembly); // register all application converters serviceCollection.AddApplicationConverters( @@ -31,5 +33,16 @@ public static void AddCivil3dConverters(this IServiceCollection serviceCollectio IConverterSettingsStore, ConverterSettingsStore >(); + + // add other classes + serviceCollection.AddScoped(); + serviceCollection.AddScoped(); + serviceCollection.AddScoped(); + serviceCollection.AddScoped(); + serviceCollection.AddScoped(); + serviceCollection.AddScoped(); + serviceCollection.AddScoped(); + serviceCollection.AddScoped(); + serviceCollection.AddScoped(); } } diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Speckle.Converters.Civil3dShared.projitems b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Speckle.Converters.Civil3dShared.projitems index fdde977ce..eb1c74523 100644 --- a/Converters/Civil3d/Speckle.Converters.Civil3dShared/Speckle.Converters.Civil3dShared.projitems +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/Speckle.Converters.Civil3dShared.projitems @@ -11,11 +11,23 @@ - + + + + + + - + + + + + + + + \ No newline at end of file diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/BuiltElements/CivilEntityToSpeckleTopLevelConverter.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/BuiltElements/CivilEntityToSpeckleTopLevelConverter.cs index 5f1807128..f2433fa62 100644 --- a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/BuiltElements/CivilEntityToSpeckleTopLevelConverter.cs +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/BuiltElements/CivilEntityToSpeckleTopLevelConverter.cs @@ -1,57 +1,64 @@ +using Speckle.Converters.Civil3dShared.Helpers; using Speckle.Converters.Common; using Speckle.Converters.Common.Objects; using Speckle.Objects; -using Speckle.Objects.Other; using Speckle.Sdk.Models; -using AECPropDB = Autodesk.Aec.PropertyData.DatabaseServices; -namespace Speckle.Converters.Civil3d.ToSpeckle.BuiltElements; +namespace Speckle.Converters.Civil3dShared.ToSpeckle.BuiltElements; [NameAndRankValue(nameof(CDB.Entity), NameAndRankValueAttribute.SPECKLE_DEFAULT_RANK)] public class CivilEntityToSpeckleTopLevelConverter : IToSpeckleTopLevelConverter { - private readonly ITypedConverter _pointConverter; - private readonly ITypedConverter _curveConverter; - private readonly ITypedConverter _solidConverter; - private readonly ITypedConverter> _propertySetConverter; private readonly IConverterSettingsStore _settingsStore; + private readonly DisplayValueExtractor _displayValueExtractor; + private readonly BaseCurveExtractor _baseCurveExtractor; + private readonly ClassPropertiesExtractor _classPropertiesExtractor; public CivilEntityToSpeckleTopLevelConverter( - ITypedConverter pointConverter, - ITypedConverter curveConverter, - ITypedConverter solidConverter, - ITypedConverter> propertySetConverter, - IConverterSettingsStore settingsStore + IConverterSettingsStore settingsStore, + DisplayValueExtractor displayValueExtractor, + BaseCurveExtractor baseCurveExtractor, + ClassPropertiesExtractor classPropertiesExtractor ) { - _pointConverter = pointConverter; - _curveConverter = curveConverter; - _solidConverter = solidConverter; - _propertySetConverter = propertySetConverter; _settingsStore = settingsStore; + _displayValueExtractor = displayValueExtractor; + _baseCurveExtractor = baseCurveExtractor; + _classPropertiesExtractor = classPropertiesExtractor; } public Base Convert(object target) => Convert((CDB.Entity)target); public Base Convert(CDB.Entity target) { - ICurve curve = _curveConverter.Convert(target.BaseCurve); - Base civilObject = new(); - civilObject["category"] = target.GetRXClass().AppName; + civilObject["type"] = target.GetType().ToString().Split('.').Last(); civilObject["name"] = target.Name; - civilObject["baseCurve"] = curve; civilObject["units"] = _settingsStore.Current.SpeckleUnits; - if (target is CDB.Part part) + // get basecurve + List? baseCurves = _baseCurveExtractor.GetBaseCurve(target); + if (baseCurves is not null) + { + civilObject["baseCurves"] = baseCurves; + } + + // extract display value + List display = _displayValueExtractor.GetDisplayValue(target); + if (display.Count > 0) { - // can get solid body info from part for display value - SOG.Mesh display = _solidConverter.Convert(part.Solid3dBody); civilObject["displayValue"] = display; } - // POC: not setting property sets yet, need to determine connector parameter interoperability - // POC: not setting part data yet, same reason as above + // add any additional class properties + Dictionary? classProperties = _classPropertiesExtractor.GetClassProperties(target); + if (classProperties is not null) + { + foreach (string key in classProperties.Keys) + { + civilObject[$"{key}"] = classProperties[key]; + } + } return civilObject; } diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/ClassPropertiesExtractor.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/ClassPropertiesExtractor.cs new file mode 100644 index 000000000..f7ce2f20f --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/ClassPropertiesExtractor.cs @@ -0,0 +1,208 @@ +using Autodesk.Civil.DatabaseServices; +using Speckle.Converters.Civil3dShared.Extensions; +using Speckle.Converters.Civil3dShared.Helpers; +using Speckle.Converters.Common; +using Speckle.Converters.Common.Objects; + +namespace Speckle.Converters.Civil3dShared.ToSpeckle; + +/// +/// Extracts class properties deemed important from a civil entity. +/// Should not repeat any data that would be included on property sets and general properties on the object. +/// Expects to be scoped per operation. +/// +public class ClassPropertiesExtractor +{ + private readonly IConverterSettingsStore _settingsStore; + private readonly ITypedConverter _point3dCollectionConverter; + private readonly ITypedConverter _pointConverter; + private readonly CatchmentGroupHandler _catchmentGroupHandler; + private readonly PipeNetworkHandler _pipeNetworkHandler; + + public ClassPropertiesExtractor( + IConverterSettingsStore settingsStore, + ITypedConverter point3dCollectionConverter, + ITypedConverter pointConverter, + CatchmentGroupHandler catchmentGroupHandler, + PipeNetworkHandler pipeNetworkHandler + ) + { + _point3dCollectionConverter = point3dCollectionConverter; + _pointConverter = pointConverter; + _settingsStore = settingsStore; + _catchmentGroupHandler = catchmentGroupHandler; + _pipeNetworkHandler = pipeNetworkHandler; + } + + /// + /// Extracts general properties from a civil entity. Expects to be scoped per operation. + /// + /// + /// + public Dictionary? GetClassProperties(CDB.Entity entity) + { + switch (entity) + { + case CDB.Catchment catchment: + return ExtractCatchmentProperties(catchment); + case CDB.Site site: + return ExtractSiteProperties(site); + case CDB.Pipe pipe: + return ExtractPipeProperties(pipe); + case CDB.Structure structure: + return ExtractStructureProperties(structure); + + default: + return null; + } + } + + // For more info on how points are used: https://help.autodesk.com/view/CIV3D/2024/ENU/?guid=GUID-CBABE972-D690-49AE-A7DE-60F2E1B0675D + private Dictionary ExtractPointProperties(CDB.Point point) + { + Dictionary pointProperties = + new() + { + ["elevation"] = point.Elevation, + ["station"] = point.Station, + ["isLoopPoint"] = point.IsLoopPoint + }; + + if (point.Codes.Count > 0) + { + pointProperties["codes"] = point.Codes.ToList(); + } + + return pointProperties; + } + + private Dictionary ExtractPipeProperties(CDB.Pipe pipe) + { + Dictionary pipeProperties = + new() + { + ["innerDiameterOrWidth"] = pipe.InnerDiameterOrWidth, + ["innerHeight"] = pipe.InnerHeight, + ["slope"] = pipe.Slope, + ["shape"] = pipe.CrossSectionalShape.ToString(), + ["length2d"] = pipe.Length2D, + ["minimumCover"] = pipe.MinimumCover, + ["maximumCover"] = pipe.MaximumCover, + ["junctionLoss"] = pipe.JunctionLoss, + ["flowDirection"] = pipe.FlowDirection.ToString(), + ["flowRate"] = pipe.FlowRate + }; + + if (pipe.StartStructureId != ADB.ObjectId.Null) + { + pipeProperties["startStructureId"] = pipe.StartStructureId.GetSpeckleApplicationId(); + } + + if (pipe.EndStructureId != ADB.ObjectId.Null) + { + pipeProperties["endStructureId"] = pipe.EndStructureId.GetSpeckleApplicationId(); + } + + ExtractPartProperties(pipe, pipeProperties); + + return pipeProperties; + } + + private Dictionary ExtractStructureProperties(CDB.Structure structure) + { + var location = _pointConverter.Convert(structure.Location); + + Dictionary structureProperties = + new() + { + ["location"] = location, + ["northing"] = structure.Northing, + ["rotation"] = structure.Rotation, + ["sumpDepth"] = structure.SumpDepth, + ["sumpElevation"] = structure.SumpElevation, + ["innerDiameterOrWidth"] = structure.InnerDiameterOrWidth + }; + + if (structure.BoundingShape == BoundingShapeType.Box) + { + structureProperties["innerLength"] = structure.InnerLength; + structureProperties["length"] = structure.Length; + } + + ExtractPartProperties(structure, structureProperties); + + return structureProperties; + } + + private void ExtractPartProperties(CDB.Part part, Dictionary dict) + { + // process the part's pipe network with the pipe network handler + _pipeNetworkHandler.HandlePipeNetwork(part); + + dict["domain"] = part.Domain.ToString(); + dict["partType"] = part.PartType.ToString(); + if (part.RefSurfaceId != ADB.ObjectId.Null) + { + dict["surfaceId"] = part.RefSurfaceId.GetSpeckleApplicationId(); + } + + return; + } + + private Dictionary ExtractSiteProperties(CDB.Site site) + { + Dictionary catchmentProperties = new(); + + if (site.GetAlignmentIds().Count > 0) + { + catchmentProperties["alignmentIds"] = GetSpeckleApplicationIdsFromCollection(site.GetAlignmentIds()); + } + + if (site.GetFeatureLineIds().Count > 0) + { + catchmentProperties["featureLineIds"] = GetSpeckleApplicationIdsFromCollection(site.GetFeatureLineIds()); + } + + if (site.GetParcelIds().Count > 0) + { + catchmentProperties["parcelIds"] = GetSpeckleApplicationIdsFromCollection(site.GetParcelIds()); + } + + return catchmentProperties; + } + + private Dictionary ExtractCatchmentProperties(CDB.Catchment catchment) + { + // get the bounding curve of the catchment + SOG.Polyline boundary = _point3dCollectionConverter.Convert(catchment.BoundaryPolyline3d); + + // use the catchment group handler to process the catchment's group + _catchmentGroupHandler.HandleCatchmentGroup(catchment); + + return new() + { + ["antecedentWetness"] = catchment.AntecedentWetness, + ["area"] = catchment.Area, + ["area2d"] = catchment.Area2d, + ["boundary"] = boundary, + ["exclusionary"] = catchment.Exclusionary, + ["hydrologicalSoilGroup"] = catchment.HydrologicalSoilGroup.ToString(), + ["imperviousArea"] = catchment.ImperviousArea, + ["manningsCoefficient"] = catchment.ManningsCoefficient, + ["perimeter2d"] = catchment.Perimeter2d, + ["runoffCoefficient"] = catchment.RunoffCoefficient, + ["timeOfConcentration"] = catchment.TimeOfConcentration + }; + } + + private List GetSpeckleApplicationIdsFromCollection(ADB.ObjectIdCollection collection) + { + List speckleAppIds = new(collection.Count); + foreach (ADB.ObjectId parcelId in collection) + { + speckleAppIds.Add(parcelId.GetSpeckleApplicationId()); + } + + return speckleAppIds; + } +} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/GeneralPropertiesExtractor.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/GeneralPropertiesExtractor.cs new file mode 100644 index 000000000..fd8ed7a3e --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/GeneralPropertiesExtractor.cs @@ -0,0 +1,76 @@ +using System.Reflection; + +namespace Speckle.Converters.Civil3dShared.ToSpeckle; + +/// +/// Extracts general properties related to analysis, statistics, and calculations out from a civil entity. Expects to be scoped per operation. +/// +public class GeneralPropertiesExtractor +{ + public GeneralPropertiesExtractor() { } + + /// + /// Extracts general properties from a civil entity. Expects to be scoped per operation. + /// + /// + /// + public Dictionary? GetGeneralProperties(CDB.Entity entity) + { + Dictionary? generalPropertiesDict = null; + switch (entity) + { + // surface -> properties -> statistics -> general, extended, and tin/grid properties + case CDB.Surface surface: + generalPropertiesDict = ExtractSurfaceProperties(surface); + break; + } + + return generalPropertiesDict; + } + + private Dictionary ExtractSurfaceProperties(CDB.Surface surface) + { + Dictionary generalPropertiesDict = new(); + + // get statistics props + Dictionary statisticsDict = new(); + statisticsDict["General"] = ExtractPropertiesGeneric(surface.GetGeneralProperties()); + switch (surface) + { + case CDB.TinSurface tinSurface: + statisticsDict["TIN"] = ExtractPropertiesGeneric(tinSurface.GetTinProperties()); + break; + case CDB.TinVolumeSurface tinVolumeSurface: + statisticsDict["TIN"] = ExtractPropertiesGeneric(tinVolumeSurface.GetTinProperties()); + break; + case CDB.GridSurface gridSurface: + statisticsDict["Grid"] = ExtractPropertiesGeneric(gridSurface.GetGridProperties()); + break; + case CDB.GridVolumeSurface gridVolumeSurface: + statisticsDict["Grid"] = ExtractPropertiesGeneric( + gridVolumeSurface.GetGridProperties() + ); + break; + } + + // set all general props + generalPropertiesDict["Statistics"] = statisticsDict; + return generalPropertiesDict; + } + + // A generic method to create a dictionary from an object types's properties + private Dictionary ExtractPropertiesGeneric(T obj) + { + Dictionary propertiesDict = new(); + + var type = typeof(T); + PropertyInfo[] properties = type.GetProperties(); + foreach (PropertyInfo? property in properties) + { + var value = property.GetValue(obj); + propertiesDict[property.Name] = value; + } + + return propertiesDict; + } +} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/PartDataExtractor.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/PartDataExtractor.cs new file mode 100644 index 000000000..338ca6650 --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/PartDataExtractor.cs @@ -0,0 +1,117 @@ +namespace Speckle.Converters.Civil3dShared.ToSpeckle; + +/// +/// Extracts parameters out from an element. Expects to be scoped per operation. +/// +public class PartDataExtractor +{ + /// POC: Note that we're abusing dictionaries in here because we've yet to have a simple way to serialize non-base derived classes (or structs?) + + public PartDataExtractor() { } + + /// + /// Extracts part data out from an entity. Expects to be scoped per operation. + /// + /// + /// + public Dictionary? GetPartData(CDB.Entity entity) + { + if (entity is CDB.Part part) + { + return ParsePartData(part.PartData); + } + + return null; + } + + private Dictionary ParsePartData(CDB.PartDataRecord partData) + { + var result = new Dictionary(); + + foreach (CDB.PartDataField field in partData.GetAllDataFields()) + { + var value = GetValue(field); + string fieldName = field.Context.ToString(); // we're using the context for the field name because it is more human-readable than the name prop + + var fieldDictionary = new Dictionary() + { + ["value"] = value, + ["name"] = field.Name, + ["context"] = fieldName, + ["units"] = field.Units + }; + + if (!result.ContainsKey(fieldName)) + { + result.Add(fieldName, fieldDictionary); + } + } + + return result; + } + + private object? GetValue(CDB.PartDataField field) + { + switch (field.DataType) + { + case CDB.PartCatalogDataType.Double: + return field.IsFromList + ? GetValueListGeneric(field.ValueList) + : field.IsFromRange + ? GetValueRangeGeneric(field.ValueRange) + : field.Value as double?; + case CDB.PartCatalogDataType.Int: + return field.IsFromList + ? GetValueListGeneric(field.ValueList) + : field.IsFromRange + ? GetValueRangeGeneric(field.ValueRange) + : field.Value as int?; + case CDB.PartCatalogDataType.Bool: + return field.IsFromList + ? GetValueListGeneric(field.ValueList) + : field.IsFromRange + ? GetValueRangeGeneric(field.ValueRange) + : field.Value as bool?; + default: + return field.IsFromList + ? GetValueListGeneric(field.ValueList) + : field.IsFromRange + ? GetValueRangeGeneric(field.ValueRange) + : field.Value.ToString(); + } + } + + private List? GetValueListGeneric(CDB.PartDataList list) + { + if (list == null || list.Count == 0) + { + return default; + } + + List result = new(); + for (int i = 0; i < list.Count; i++) + { + if (list[i] is TResult item) + { + result.Add(item); + } + } + + return result; + } + + private List? GetValueRangeGeneric(CDB.PartDataRange range) + { + if (range == null) + { + return default; + } + + if (range.RangeMin is TResult min && range.RangeMax is TResult max) + { + return new() { min, max }; + } + + return default; + } +} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/PropertySetDefinitionHandler.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/PropertySetDefinitionHandler.cs new file mode 100644 index 000000000..73f210461 --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/PropertySetDefinitionHandler.cs @@ -0,0 +1,67 @@ +using Speckle.Sdk; + +namespace Speckle.Converters.Civil3dShared.ToSpeckle; + +/// +/// Keeps track during a send conversion operation of the property set definitions used. +/// +public class PropertySetDefinitionHandler +{ + /// + /// Keeps track of all property set definitions used in the current send operation. This should be added to the properties dict on the root commit object post conversion. + /// + /// POC: Note that we're abusing dictionaries in here because we've yet to have a simple way to serialize non-base derived classes (or structs?) + /// POC: We're storing these by property set def name atm. There is a decent change different property sets can have the same name, need to validate this. + public Dictionary> Definitions { get; } = new(); + + /// + /// Extracts out and stores in the property set definition. + /// + /// The property set definition. Assumes this is opened for Read already. + /// + public (Dictionary propertyDefinitionNames, string name) HandleDefinition( + AAECPDB.PropertySetDefinition setDefinition + ) + { + Dictionary propertyDefinitionsDict = new(); // this is used to store on the property set definition + Dictionary propertyDefinitionNames = new(); // this is used to pass to the instance for property value retrieval + foreach (AAECPDB.PropertyDefinition propertyDefinition in setDefinition.Definitions) + { + string propertyName = propertyDefinition.Name; + propertyDefinitionNames[propertyDefinition.Id] = propertyName; + var propertyDict = new Dictionary() + { + ["name"] = propertyName, + ["description"] = propertyDefinition.Description, + ["id"] = propertyDefinition.Id, + ["isReadOnly"] = propertyDefinition.IsReadOnly, + ["dataType"] = propertyDefinition.DataType.ToString(), + ["defaultValue"] = propertyDefinition.DefaultData + }; + + try + { + // accessing unit type prop can be expected to throw if it's not applicable to the definition + propertyDict["units"] = propertyDefinition.UnitType.GetTypeDisplayName(true); + } + catch (Exception e) when (!e.IsFatal()) { } + + propertyDefinitionsDict[propertyName] = propertyDict; + } + + var name = setDefinition.Name; + + if (Definitions.ContainsKey(name)) + { + return (propertyDefinitionNames, name); + } + + Definitions[name] = new Dictionary() + { + ["name"] = name, + ["propertyDefinitions"] = propertyDefinitionsDict + }; + + return (propertyDefinitionNames, name); + } +} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/PropertySetExtractor.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/PropertySetExtractor.cs new file mode 100644 index 000000000..6c56bae7b --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Properties/PropertySetExtractor.cs @@ -0,0 +1,151 @@ +using Microsoft.Extensions.Logging; +using Speckle.Converters.Common; +using Speckle.Sdk; + +namespace Speckle.Converters.Civil3dShared.ToSpeckle; + +/// +/// Extracts property sets out from a dbobject. Expects to be scoped per operation. +/// +public class PropertySetExtractor +{ + /// POC: Note that we're abusing dictionaries in here because we've yet to have a simple way to serialize non-base derived classes (or structs?) + private readonly PropertySetDefinitionHandler _propertySetDefinitionHandler; + private readonly IConverterSettingsStore _settingsStore; + private readonly ILogger _logger; + + public PropertySetExtractor( + PropertySetDefinitionHandler propertySetDefinitionHandler, + IConverterSettingsStore settingsStore, + ILogger logger + ) + { + _propertySetDefinitionHandler = propertySetDefinitionHandler; + _settingsStore = settingsStore; + _logger = logger; + } + + /// + /// Extracts property sets out from a dbObject. Expects to be scoped per operation. + /// + /// + /// + public Dictionary? GetPropertySets(ADB.DBObject dbObject) + { + ADB.ObjectIdCollection? propertySetIds = null; + + try + { + propertySetIds = AAECPDB.PropertyDataServices.GetPropertySets(dbObject); + } + catch (Exception e) when (!e.IsFatal()) + { + _logger.LogWarning(e, $"Failed to retrieve property sets on object {dbObject.Handle.Value}"); + } + + if (propertySetIds is null || propertySetIds.Count == 0) + { + return null; + } + + using (var tr = _settingsStore.Current.Document.Database.TransactionManager.StartTransaction()) + { + Dictionary propertySets = new(); + foreach (ADB.ObjectId id in propertySetIds) + { + AAECPDB.PropertySet propertySet = (AAECPDB.PropertySet)tr.GetObject(id, ADB.OpenMode.ForRead); + + // parse property sets within this transaction, since we'll need it for retrieving the definition as well + if (ParsePropertySet(propertySet, tr) is (string propertySetName, Dictionary propertySetValue)) + { + propertySets[propertySetName] = propertySetValue; + } + } + + tr.Commit(); + return propertySets; + } + } + + private (string, Dictionary)? ParsePropertySet(AAECPDB.PropertySet propertySet, ADB.Transaction tr) + { + try + { + // var isNullOrEmpty = value == null || (value is string s && string.IsNullOrEmpty(s)); + // POC: should add same check as in revit for sending null or empty values + + var setDefinition = (AAECPDB.PropertySetDefinition) + tr.GetObject(propertySet.PropertySetDefinition, ADB.OpenMode.ForRead); + + (Dictionary propertyDefinitionNames, string name) = _propertySetDefinitionHandler.HandleDefinition( + setDefinition + ); + + // get all property values in the propertyset + Dictionary properties = new(); + foreach (AAECPDB.PropertySetData data in propertySet.PropertySetData) + { + string dataName = propertyDefinitionNames.TryGetValue(data.Id, out string propertyDefinitionName) + ? propertyDefinitionName + : data.FieldBucketId; + + var value = GetValue(data); + + var propertyValueDict = new Dictionary() { ["value"] = value, ["name"] = dataName }; + + try + { + // accessing unit type prop can be expected to throw if it's not applicable to the definition + propertyValueDict["units"] = data.UnitType.GetTypeDisplayName(true); + } + catch (Exception e) when (!e.IsFatal()) { } + + properties[dataName] = propertyValueDict; + } + + // add property set to dict + Dictionary propertySetDict = + new() + { + ["name"] = name, + ["properties"] = properties, + ["definitionName"] = name + }; + + return (name, propertySetDict); + } + catch (Exception e) when (!e.IsFatal()) + { + _logger.LogWarning(e, $"Failed to convert property set {propertySet.Name}"); + } + + return null; + } + + private object? GetValue(AAECPDB.PropertySetData data) + { + object fieldData = data.GetData(data.UnitType); + + switch (data.DataType) + { + case AAEC.PropertyData.DataType.Integer: + return fieldData as int?; + case AAEC.PropertyData.DataType.Real: + return fieldData as double?; + case AAEC.PropertyData.DataType.TrueFalse: + return fieldData as bool?; + case AAEC.PropertyData.DataType.Graphic: // POC: not sure how to support atm + return null; + case AAEC.PropertyData.DataType.List: + return fieldData as List; + case AAEC.PropertyData.DataType.AutoIncrement: + return fieldData as int?; + case AAEC.PropertyData.DataType.AlphaIncrement: // POC: not sure what this is + return fieldData; + case AAEC.PropertyData.DataType.Text: + return fieldData as string; + default: + return fieldData; + } + } +} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Raw/GridSurfaceToSpeckleMeshRawConverter.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Raw/GridSurfaceToSpeckleMeshRawConverter.cs new file mode 100644 index 000000000..1c874940a --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Raw/GridSurfaceToSpeckleMeshRawConverter.cs @@ -0,0 +1,71 @@ +using Autodesk.AutoCAD.Geometry; +using Speckle.Converters.Common; +using Speckle.Converters.Common.Objects; + +namespace Speckle.Converters.Civil3dShared.ToSpeckle.Raw; + +public class GridSurfaceToSpeckleMeshRawConverter : ITypedConverter +{ + private readonly IConverterSettingsStore _settingsStore; + + public GridSurfaceToSpeckleMeshRawConverter(IConverterSettingsStore settingsStore) + { + _settingsStore = settingsStore; + } + + public SOG.Mesh Convert(object target) => Convert((CDB.GridSurface)target); + + public SOG.Mesh Convert(CDB.GridSurface target) + { + List vertices = new(); + List faces = new(); + Dictionary indices = new(); + + int indexCounter = 0; + foreach (var cell in target.GetCells(false)) + { + try + { + Point3d[] cellVertices = + { + cell.BottomLeftVertex.Location, + cell.BottomRightVertex.Location, + cell.TopLeftVertex.Location, + cell.TopRightVertex.Location + }; + + foreach (Point3d p in cellVertices) + { + if (!indices.ContainsKey(p)) + { + vertices.Add(p.X); + vertices.Add(p.Y); + vertices.Add(p.Z); + indices.Add(p, indexCounter); + indexCounter++; + } + } + + faces.Add(4); + faces.Add(indices[cellVertices[0]]); + faces.Add(indices[cellVertices[1]]); + faces.Add(indices[cellVertices[2]]); + faces.Add(indices[cellVertices[3]]); + } + finally + { + cell.Dispose(); + } + } + + SOG.Mesh mesh = + new() + { + vertices = vertices, + faces = faces, + units = _settingsStore.Current.SpeckleUnits + }; + + return mesh; + } +} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Raw/Point3dCollectionToSpeckleRawConverter.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Raw/Point3dCollectionToSpeckleRawConverter.cs new file mode 100644 index 000000000..8cb13973a --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Raw/Point3dCollectionToSpeckleRawConverter.cs @@ -0,0 +1,47 @@ +using Speckle.Converters.Common; +using Speckle.Converters.Common.Objects; + +namespace Speckle.Converters.Civil3dShared.ToSpeckle.Raw; + +public class Point3dCollectionToSpeckleRawConverter : ITypedConverter +{ + private readonly ITypedConverter _pointConverter; + private readonly IConverterSettingsStore _settingsStore; + + public Point3dCollectionToSpeckleRawConverter( + ITypedConverter pointConverter, + IConverterSettingsStore settingsStore + ) + { + _pointConverter = pointConverter; + _settingsStore = settingsStore; + } + + public SOG.Polyline Convert(object target) => Convert((AG.Point3dCollection)target); + + public SOG.Polyline Convert(AG.Point3dCollection target) + { + List value = new(); + double length = 0; + AG.Point3d? previousPoint = null; + foreach (AG.Point3d point in target) + { + value.Add(point.X); + value.Add(point.Y); + value.Add(point.Z); + if (previousPoint is AG.Point3d p) + { + length += point.DistanceTo(p); + } + previousPoint = point; + } + + return new() + { + value = value, + units = _settingsStore.Current.SpeckleUnits, + closed = true, + length = length + }; + } +} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Raw/PropertySetToSpeckleRawConverter.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Raw/PropertySetToSpeckleRawConverter.cs deleted file mode 100644 index c2517f70b..000000000 --- a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Raw/PropertySetToSpeckleRawConverter.cs +++ /dev/null @@ -1,56 +0,0 @@ -using Speckle.Converters.Common; -using Speckle.Converters.Common.Objects; -using Speckle.Objects.Other; -using AECPropDB = Autodesk.Aec.PropertyData.DatabaseServices; - -namespace Speckle.Converters.Civil3d.ToSpeckle.Raw; - -public class PropertySetToSpeckleRawConverter : ITypedConverter> -{ - private readonly ITypedConverter _vectorConverter; - private readonly ITypedConverter _pointConverter; - private readonly IConverterSettingsStore _settingsStore; - - public PropertySetToSpeckleRawConverter( - ITypedConverter vectorConverter, - ITypedConverter pointConverter, - IConverterSettingsStore settingsStore - ) - { - _vectorConverter = vectorConverter; - _pointConverter = pointConverter; - _settingsStore = settingsStore; - } - - public List Convert(object target) => Convert((AECPropDB.PropertySet)target); - - public List Convert(AECPropDB.PropertySet target) - { - List properties = new(); - - //TODO using? - ADB.Transaction tr = _settingsStore.Current.Document.TransactionManager.TopTransaction; - AECPropDB.PropertySetDefinition setDef = (AECPropDB.PropertySetDefinition) - tr.GetObject(target.PropertySetDefinition, ADB.OpenMode.ForRead); - - // get property definitions - var propDefs = new Dictionary(); - foreach (AECPropDB.PropertyDefinition def in setDef.Definitions) - { - propDefs.Add(def.Id, def); - } - - foreach (AECPropDB.PropertySetData data in target.PropertySetData) - { - string fieldName = propDefs.TryGetValue(data.Id, out AECPropDB.PropertyDefinition value) - ? value.Name - : data.FieldBucketId; - - object fieldData = data.GetData(); - DataField field = new(fieldName, fieldData.GetType().Name, fieldData, data.UnitType.PluralName(false)); - properties.Add(field); - } - - return properties; - } -} diff --git a/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Raw/TinSurfaceToSpeckleMeshRawConverter.cs b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Raw/TinSurfaceToSpeckleMeshRawConverter.cs new file mode 100644 index 000000000..aaf607bd9 --- /dev/null +++ b/Converters/Civil3d/Speckle.Converters.Civil3dShared/ToSpeckle/Raw/TinSurfaceToSpeckleMeshRawConverter.cs @@ -0,0 +1,67 @@ +using Autodesk.AutoCAD.Geometry; +using Speckle.Converters.Common; +using Speckle.Converters.Common.Objects; + +namespace Speckle.Converters.Civil3dShared.ToSpeckle.Raw; + +public class TinSurfaceToSpeckleMeshRawConverter : ITypedConverter +{ + private readonly IConverterSettingsStore _settingsStore; + + public TinSurfaceToSpeckleMeshRawConverter(IConverterSettingsStore settingsStore) + { + _settingsStore = settingsStore; + } + + public SOG.Mesh Convert(object target) => Convert((CDB.TinSurface)target); + + public SOG.Mesh Convert(CDB.TinSurface target) + { + List vertices = new(); + List faces = new(); + Dictionary indices = new(); + + int indexCounter = 0; + foreach (var triangle in target.GetTriangles(false)) + { + try + { + Point3d[] triangleVertices = + { + triangle.Vertex1.Location, + triangle.Vertex2.Location, + triangle.Vertex3.Location + }; + foreach (Point3d p in triangleVertices) + { + if (!indices.ContainsKey(p)) + { + vertices.Add(p.X); + vertices.Add(p.Y); + vertices.Add(p.Z); + indices.Add(p, indexCounter); + indexCounter++; + } + } + faces.Add(3); + faces.Add(indices[triangleVertices[0]]); + faces.Add(indices[triangleVertices[1]]); + faces.Add(indices[triangleVertices[2]]); + } + finally + { + triangle.Dispose(); + } + } + + SOG.Mesh mesh = + new() + { + faces = faces, + vertices = vertices, + units = _settingsStore.Current.SpeckleUnits + }; + + return mesh; + } +} diff --git a/Converters/Revit/Speckle.Converters.Revit2022.DependencyInjection/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2022.DependencyInjection/packages.lock.json deleted file mode 100644 index c098cc75d..000000000 --- a/Converters/Revit/Speckle.Converters.Revit2022.DependencyInjection/packages.lock.json +++ /dev/null @@ -1,404 +0,0 @@ -{ - "version": 2, - "dependencies": { - ".NETFramework,Version=v4.8": { - "Microsoft.NETFramework.ReferenceAssemblies": { - "type": "Direct", - "requested": "[1.0.3, )", - "resolved": "1.0.3", - "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", - "dependencies": { - "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3" - } - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "PolySharp": { - "type": "Direct", - "requested": "[1.14.1, )", - "resolved": "1.14.1", - "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" - }, - "Speckle.InterfaceGenerator": { - "type": "Direct", - "requested": "[0.9.6, )", - "resolved": "0.9.6", - "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" - }, - "GraphQL.Client": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0", - "GraphQL.Client.Abstractions.Websocket": "6.0.0", - "System.Net.WebSockets.Client.Managed": "1.0.22", - "System.Reactive": "5.0.0" - } - }, - "GraphQL.Client.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", - "dependencies": { - "GraphQL.Primitives": "6.0.0" - } - }, - "GraphQL.Client.Abstractions.Websocket": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0" - } - }, - "GraphQL.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Data.Sqlite": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "tiNmV1oPy+Z2R7Wd0bPB/FxCr8B+/5q11OpDMG751GA/YuOL7MZrBFfzv5oFRlFe08K6sjrnbrauzzGIeNrzLQ==", - "dependencies": { - "Microsoft.Data.Sqlite.Core": "7.0.7", - "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" - } - }, - "Microsoft.Data.Sqlite.Core": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "21FRzcJhaTrlv7kTrqr/ltFcSQM2TyuTTPhUcjO8H73od7Bb3QraNW90c7lUucNI/245XPkKZG4fp7/7OsKCSg==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==" - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Primitives": "3.1.0", - "System.ComponentModel.Annotations": "4.7.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==", - "dependencies": { - "System.Memory": "4.5.2", - "System.Runtime.CompilerServices.Unsafe": "4.7.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies.net48": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.3", - "contentHash": "DeCY0OFbNdNxsjntr1gTXHJ5pKUwYzp04Er2LLeN3g6pWhffsGuKVfMBLe1lw7x76HrPkLxKEFxBlpRxS2nDEQ==" - }, - "Polly.Contrib.WaitAndRetry": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, - "Speckle.DoubleNumerics": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" - }, - "Speckle.Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" - }, - "SQLitePCLRaw.bundle_e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", - "dependencies": { - "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", - "SQLitePCLRaw.provider.dynamic_cdecl": "2.1.4" - } - }, - "SQLitePCLRaw.core": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", - "dependencies": { - "System.Memory": "4.5.3" - } - }, - "SQLitePCLRaw.lib.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" - }, - "SQLitePCLRaw.provider.dynamic_cdecl": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "ZsaKKhgYF9B1fvcnOGKl3EycNAwd9CRWX7v0rEfuPWhQQ5Jjpvf2VEHahiLIGHio3hxi3EIKFJw9KvyowWOUAw==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.ComponentModel.Annotations": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ==" - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.Net.WebSockets.Client.Managed": { - "type": "Transitive", - "resolved": "1.0.22", - "contentHash": "WqEOxPlXjuZrIjUtXNE9NxEfU/n5E35iV2PtoZdJSUC4tlrqwHnTee+wvMIM4OUaJWmwrymeqcgYrE0IkGAgLA==", - "dependencies": { - "System.Buffers": "4.4.0", - "System.Numerics.Vectors": "4.4.0" - } - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "KmJ+CJXizDofbq6mpqDoRRLcxgOd2z9X3XoFNULSbvbqVRZkFX3istvr+MUjL6Zw1RT+RNdoI4GYidIINtgvqQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "5.0.2", - "contentHash": "I47dVIGiV6SfAyppphxqupertT/5oZkYLDCX6vC3HpOI4ZLjyoKAreUoem2ie6G0RbRuFrlqz/PcTQjfb2DOfQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "5.0.0", - "System.Text.Encodings.Web": "5.0.1", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.ValueTuple": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" - }, - "speckle.autofac": { - "type": "Project", - "dependencies": { - "Autofac": "[5.2.0, )" - } - }, - "speckle.converters.common": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.common.dependencyinjection": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "speckle.converters.revit2022": { - "type": "Project", - "dependencies": { - "Speckle.Converters.Common": "[1.0.0, )", - "Speckle.Converters.Common.DependencyInjection": "[1.0.0, )", - "Speckle.Revit.API": "[2022.0.2.1, )" - } - }, - "Autofac": { - "type": "CentralTransitive", - "requested": "[5.2.0, )", - "resolved": "5.2.0", - "contentHash": "V8dBH0dsv75uDzl7Sw+HkhKDPUw2eXnlMjcSVMH+tLo2s67MpTKGyDj1pDcpR+IF2u4YRs0s3/x7R88YJzIWvg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0" - } - }, - "Microsoft.Extensions.Logging": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "3.1.0", - "Microsoft.Extensions.DependencyInjection": "3.1.0", - "Microsoft.Extensions.Logging.Abstractions": "3.1.0", - "Microsoft.Extensions.Options": "3.1.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==" - }, - "Speckle.Objects": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "zKOwln3evlRcasL9AHHLbkTHsKK+sxUDia3VaafhKNx/fJjqoyhiIPgPjW7xVLfU31pZR2OfTmYBFFcfgH1i/A==", - "dependencies": { - "Speckle.Sdk": "3.1.0-dev.142" - } - }, - "Speckle.Revit.API": { - "type": "CentralTransitive", - "requested": "[2023.0.0, )", - "resolved": "2022.0.2.1", - "contentHash": "IrLN4WyI2ix+g3zCpo7sX8zNB3FrtrdQ3E2RpceGVPNG00v8OfD+Kei7o1bn1u/ML46iBYRAr/JcsLbwfUQsBw==" - }, - "Speckle.Sdk": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "xtPyLVnufvipfT5jIuH9cetqkVn2e+rrJSX9fLObCkbxMCF27fioJPcJ9aOd2ErzrCKXapOVRnlHTaPdfFAdEQ==", - "dependencies": { - "GraphQL.Client": "6.0.0", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Data.Sqlite": "7.0.7", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Logging": "3.1.0", - "Polly": "7.2.3", - "Polly.Contrib.WaitAndRetry": "1.1.1", - "Polly.Extensions.Http": "3.0.0", - "Speckle.DoubleNumerics": "4.0.1", - "Speckle.Newtonsoft.Json": "13.0.2", - "System.Text.Json": "5.0.2" - } - } - } - } -} \ No newline at end of file diff --git a/Converters/Revit/Speckle.Converters.Revit2022.Tests/Speckle.Converters.Revit2022.Tests.csproj b/Converters/Revit/Speckle.Converters.Revit2022.Tests/Speckle.Converters.Revit2022.Tests.csproj index 43338bfd8..2f4cc84f7 100644 --- a/Converters/Revit/Speckle.Converters.Revit2022.Tests/Speckle.Converters.Revit2022.Tests.csproj +++ b/Converters/Revit/Speckle.Converters.Revit2022.Tests/Speckle.Converters.Revit2022.Tests.csproj @@ -25,6 +25,6 @@ - + diff --git a/Converters/Revit/Speckle.Converters.Revit2022.Tests/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2022.Tests/packages.lock.json index d6e9bccaf..693ece02c 100644 --- a/Converters/Revit/Speckle.Converters.Revit2022.Tests/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2022.Tests/packages.lock.json @@ -87,9 +87,9 @@ }, "Speckle.Revit2022.Fakes": { "type": "Direct", - "requested": "[0.3.0, 1.0.0)", - "resolved": "0.3.0", - "contentHash": "aAy+bmuXn7oFyUyuvwe8Aw0SfuQoX23jTDI1v6ZrTDSVvRxsmJLBZVYcT9V0CuGiP3JwqM5gmy9CkVBfSm+DcA==", + "requested": "[0.3.1, )", + "resolved": "0.3.1", + "contentHash": "kz/taszZjEUEnqJM4qjRqEYdsrD6s9X1N56SXiB2fUiwc7MeM6H1LZaAdRYM/70tukq8OshL5fiWIQZrXrLaAg==", "dependencies": { "System.Drawing.Common": "8.0.6" } @@ -363,7 +363,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.testing": { @@ -393,18 +393,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.Revit2022/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2022/packages.lock.json index d25dcd357..4f91063c7 100644 --- a/Converters/Revit/Speckle.Converters.Revit2022/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2022/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.Revit2023.DependencyInjection/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2023.DependencyInjection/packages.lock.json deleted file mode 100644 index e0994174b..000000000 --- a/Converters/Revit/Speckle.Converters.Revit2023.DependencyInjection/packages.lock.json +++ /dev/null @@ -1,403 +0,0 @@ -{ - "version": 2, - "dependencies": { - ".NETFramework,Version=v4.8": { - "Microsoft.NETFramework.ReferenceAssemblies": { - "type": "Direct", - "requested": "[1.0.3, )", - "resolved": "1.0.3", - "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", - "dependencies": { - "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3" - } - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "PolySharp": { - "type": "Direct", - "requested": "[1.14.1, )", - "resolved": "1.14.1", - "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" - }, - "Speckle.InterfaceGenerator": { - "type": "Direct", - "requested": "[0.9.6, )", - "resolved": "0.9.6", - "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" - }, - "GraphQL.Client": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0", - "GraphQL.Client.Abstractions.Websocket": "6.0.0", - "System.Net.WebSockets.Client.Managed": "1.0.22", - "System.Reactive": "5.0.0" - } - }, - "GraphQL.Client.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", - "dependencies": { - "GraphQL.Primitives": "6.0.0" - } - }, - "GraphQL.Client.Abstractions.Websocket": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0" - } - }, - "GraphQL.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Data.Sqlite": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "tiNmV1oPy+Z2R7Wd0bPB/FxCr8B+/5q11OpDMG751GA/YuOL7MZrBFfzv5oFRlFe08K6sjrnbrauzzGIeNrzLQ==", - "dependencies": { - "Microsoft.Data.Sqlite.Core": "7.0.7", - "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" - } - }, - "Microsoft.Data.Sqlite.Core": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "21FRzcJhaTrlv7kTrqr/ltFcSQM2TyuTTPhUcjO8H73od7Bb3QraNW90c7lUucNI/245XPkKZG4fp7/7OsKCSg==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==" - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Primitives": "3.1.0", - "System.ComponentModel.Annotations": "4.7.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==", - "dependencies": { - "System.Memory": "4.5.2", - "System.Runtime.CompilerServices.Unsafe": "4.7.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies.net48": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.3", - "contentHash": "DeCY0OFbNdNxsjntr1gTXHJ5pKUwYzp04Er2LLeN3g6pWhffsGuKVfMBLe1lw7x76HrPkLxKEFxBlpRxS2nDEQ==" - }, - "Polly.Contrib.WaitAndRetry": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, - "Speckle.DoubleNumerics": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" - }, - "Speckle.Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" - }, - "SQLitePCLRaw.bundle_e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", - "dependencies": { - "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", - "SQLitePCLRaw.provider.dynamic_cdecl": "2.1.4" - } - }, - "SQLitePCLRaw.core": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", - "dependencies": { - "System.Memory": "4.5.3" - } - }, - "SQLitePCLRaw.lib.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" - }, - "SQLitePCLRaw.provider.dynamic_cdecl": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "ZsaKKhgYF9B1fvcnOGKl3EycNAwd9CRWX7v0rEfuPWhQQ5Jjpvf2VEHahiLIGHio3hxi3EIKFJw9KvyowWOUAw==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.ComponentModel.Annotations": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ==" - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.Net.WebSockets.Client.Managed": { - "type": "Transitive", - "resolved": "1.0.22", - "contentHash": "WqEOxPlXjuZrIjUtXNE9NxEfU/n5E35iV2PtoZdJSUC4tlrqwHnTee+wvMIM4OUaJWmwrymeqcgYrE0IkGAgLA==", - "dependencies": { - "System.Buffers": "4.4.0", - "System.Numerics.Vectors": "4.4.0" - } - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "KmJ+CJXizDofbq6mpqDoRRLcxgOd2z9X3XoFNULSbvbqVRZkFX3istvr+MUjL6Zw1RT+RNdoI4GYidIINtgvqQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "5.0.2", - "contentHash": "I47dVIGiV6SfAyppphxqupertT/5oZkYLDCX6vC3HpOI4ZLjyoKAreUoem2ie6G0RbRuFrlqz/PcTQjfb2DOfQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "5.0.0", - "System.Text.Encodings.Web": "5.0.1", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.ValueTuple": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" - }, - "speckle.autofac": { - "type": "Project", - "dependencies": { - "Autofac": "[5.2.0, )" - } - }, - "speckle.converters.common": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.common.dependencyinjection": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "speckle.converters.revit2023": { - "type": "Project", - "dependencies": { - "Speckle.Converters.Common": "[1.0.0, )", - "Speckle.Revit.API": "[2023.0.0, )" - } - }, - "Autofac": { - "type": "CentralTransitive", - "requested": "[5.2.0, )", - "resolved": "5.2.0", - "contentHash": "V8dBH0dsv75uDzl7Sw+HkhKDPUw2eXnlMjcSVMH+tLo2s67MpTKGyDj1pDcpR+IF2u4YRs0s3/x7R88YJzIWvg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0" - } - }, - "Microsoft.Extensions.Logging": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "3.1.0", - "Microsoft.Extensions.DependencyInjection": "3.1.0", - "Microsoft.Extensions.Logging.Abstractions": "3.1.0", - "Microsoft.Extensions.Options": "3.1.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==" - }, - "Speckle.Objects": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "zKOwln3evlRcasL9AHHLbkTHsKK+sxUDia3VaafhKNx/fJjqoyhiIPgPjW7xVLfU31pZR2OfTmYBFFcfgH1i/A==", - "dependencies": { - "Speckle.Sdk": "3.1.0-dev.142" - } - }, - "Speckle.Revit.API": { - "type": "CentralTransitive", - "requested": "[2023.0.0, )", - "resolved": "2023.0.0", - "contentHash": "tq40eD7psgTbV+epNouYyqfo6+hEi7FmXZqcxEOsAV7zfYyWhL6Rt3vmojkWGNuerGbH6oRI6KIIxrnlCNb8Hw==" - }, - "Speckle.Sdk": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "xtPyLVnufvipfT5jIuH9cetqkVn2e+rrJSX9fLObCkbxMCF27fioJPcJ9aOd2ErzrCKXapOVRnlHTaPdfFAdEQ==", - "dependencies": { - "GraphQL.Client": "6.0.0", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Data.Sqlite": "7.0.7", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Logging": "3.1.0", - "Polly": "7.2.3", - "Polly.Contrib.WaitAndRetry": "1.1.1", - "Polly.Extensions.Http": "3.0.0", - "Speckle.DoubleNumerics": "4.0.1", - "Speckle.Newtonsoft.Json": "13.0.2", - "System.Text.Json": "5.0.2" - } - } - } - } -} \ No newline at end of file diff --git a/Converters/Revit/Speckle.Converters.Revit2023.Tests/Speckle.Converters.Revit2023.Tests.csproj b/Converters/Revit/Speckle.Converters.Revit2023.Tests/Speckle.Converters.Revit2023.Tests.csproj index d6f5c8eaa..f2c9896b8 100644 --- a/Converters/Revit/Speckle.Converters.Revit2023.Tests/Speckle.Converters.Revit2023.Tests.csproj +++ b/Converters/Revit/Speckle.Converters.Revit2023.Tests/Speckle.Converters.Revit2023.Tests.csproj @@ -25,6 +25,6 @@ - + diff --git a/Converters/Revit/Speckle.Converters.Revit2023.Tests/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2023.Tests/packages.lock.json index d20d256f9..70c7e011c 100644 --- a/Converters/Revit/Speckle.Converters.Revit2023.Tests/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2023.Tests/packages.lock.json @@ -87,9 +87,9 @@ }, "Speckle.Revit2023.Fakes": { "type": "Direct", - "requested": "[0.3.0, 1.0.0)", - "resolved": "0.3.0", - "contentHash": "kMNRHztk5lncfCJxaxM73UtYIq7f0ekT8Zq99CXrHSYDEKif4tUga8re1uNv2rT1x25CvVtnvyTiNOtrs1yd0g==", + "requested": "[0.3.1, )", + "resolved": "0.3.1", + "contentHash": "uHYAqg2ljL5WpYYAQujgiS6olkGD31lXToyc0yIugAi0cnHtP5z95hjzg3QBbmFizVYyD5n2IwFnR49UiSVfJg==", "dependencies": { "System.Drawing.Common": "8.0.6" } @@ -363,7 +363,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.testing": { @@ -393,18 +393,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.Revit2023/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2023/packages.lock.json index 2db4582c0..22fd4ef63 100644 --- a/Converters/Revit/Speckle.Converters.Revit2023/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2023/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.Revit2024.DependencyInjection/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2024.DependencyInjection/packages.lock.json deleted file mode 100644 index f9236201c..000000000 --- a/Converters/Revit/Speckle.Converters.Revit2024.DependencyInjection/packages.lock.json +++ /dev/null @@ -1,403 +0,0 @@ -{ - "version": 2, - "dependencies": { - ".NETFramework,Version=v4.8": { - "Microsoft.NETFramework.ReferenceAssemblies": { - "type": "Direct", - "requested": "[1.0.3, )", - "resolved": "1.0.3", - "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", - "dependencies": { - "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3" - } - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "PolySharp": { - "type": "Direct", - "requested": "[1.14.1, )", - "resolved": "1.14.1", - "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" - }, - "Speckle.InterfaceGenerator": { - "type": "Direct", - "requested": "[0.9.6, )", - "resolved": "0.9.6", - "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" - }, - "GraphQL.Client": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0", - "GraphQL.Client.Abstractions.Websocket": "6.0.0", - "System.Net.WebSockets.Client.Managed": "1.0.22", - "System.Reactive": "5.0.0" - } - }, - "GraphQL.Client.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", - "dependencies": { - "GraphQL.Primitives": "6.0.0" - } - }, - "GraphQL.Client.Abstractions.Websocket": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0" - } - }, - "GraphQL.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Data.Sqlite": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "tiNmV1oPy+Z2R7Wd0bPB/FxCr8B+/5q11OpDMG751GA/YuOL7MZrBFfzv5oFRlFe08K6sjrnbrauzzGIeNrzLQ==", - "dependencies": { - "Microsoft.Data.Sqlite.Core": "7.0.7", - "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" - } - }, - "Microsoft.Data.Sqlite.Core": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "21FRzcJhaTrlv7kTrqr/ltFcSQM2TyuTTPhUcjO8H73od7Bb3QraNW90c7lUucNI/245XPkKZG4fp7/7OsKCSg==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==" - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Primitives": "3.1.0", - "System.ComponentModel.Annotations": "4.7.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==", - "dependencies": { - "System.Memory": "4.5.2", - "System.Runtime.CompilerServices.Unsafe": "4.7.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies.net48": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.3", - "contentHash": "DeCY0OFbNdNxsjntr1gTXHJ5pKUwYzp04Er2LLeN3g6pWhffsGuKVfMBLe1lw7x76HrPkLxKEFxBlpRxS2nDEQ==" - }, - "Polly.Contrib.WaitAndRetry": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, - "Speckle.DoubleNumerics": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" - }, - "Speckle.Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" - }, - "SQLitePCLRaw.bundle_e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", - "dependencies": { - "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", - "SQLitePCLRaw.provider.dynamic_cdecl": "2.1.4" - } - }, - "SQLitePCLRaw.core": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", - "dependencies": { - "System.Memory": "4.5.3" - } - }, - "SQLitePCLRaw.lib.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" - }, - "SQLitePCLRaw.provider.dynamic_cdecl": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "ZsaKKhgYF9B1fvcnOGKl3EycNAwd9CRWX7v0rEfuPWhQQ5Jjpvf2VEHahiLIGHio3hxi3EIKFJw9KvyowWOUAw==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.ComponentModel.Annotations": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ==" - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.Net.WebSockets.Client.Managed": { - "type": "Transitive", - "resolved": "1.0.22", - "contentHash": "WqEOxPlXjuZrIjUtXNE9NxEfU/n5E35iV2PtoZdJSUC4tlrqwHnTee+wvMIM4OUaJWmwrymeqcgYrE0IkGAgLA==", - "dependencies": { - "System.Buffers": "4.4.0", - "System.Numerics.Vectors": "4.4.0" - } - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "KmJ+CJXizDofbq6mpqDoRRLcxgOd2z9X3XoFNULSbvbqVRZkFX3istvr+MUjL6Zw1RT+RNdoI4GYidIINtgvqQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "5.0.2", - "contentHash": "I47dVIGiV6SfAyppphxqupertT/5oZkYLDCX6vC3HpOI4ZLjyoKAreUoem2ie6G0RbRuFrlqz/PcTQjfb2DOfQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "5.0.0", - "System.Text.Encodings.Web": "5.0.1", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.ValueTuple": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" - }, - "speckle.autofac": { - "type": "Project", - "dependencies": { - "Autofac": "[5.2.0, )" - } - }, - "speckle.converters.common": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.common.dependencyinjection": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "speckle.converters.revit2024": { - "type": "Project", - "dependencies": { - "Speckle.Converters.Common": "[1.0.0, )", - "Speckle.Revit.API": "[2024.0.0, )" - } - }, - "Autofac": { - "type": "CentralTransitive", - "requested": "[5.2.0, )", - "resolved": "5.2.0", - "contentHash": "V8dBH0dsv75uDzl7Sw+HkhKDPUw2eXnlMjcSVMH+tLo2s67MpTKGyDj1pDcpR+IF2u4YRs0s3/x7R88YJzIWvg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0" - } - }, - "Microsoft.Extensions.Logging": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "3.1.0", - "Microsoft.Extensions.DependencyInjection": "3.1.0", - "Microsoft.Extensions.Logging.Abstractions": "3.1.0", - "Microsoft.Extensions.Options": "3.1.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==" - }, - "Speckle.Objects": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "zKOwln3evlRcasL9AHHLbkTHsKK+sxUDia3VaafhKNx/fJjqoyhiIPgPjW7xVLfU31pZR2OfTmYBFFcfgH1i/A==", - "dependencies": { - "Speckle.Sdk": "3.1.0-dev.142" - } - }, - "Speckle.Revit.API": { - "type": "CentralTransitive", - "requested": "[2023.0.0, )", - "resolved": "2024.0.0", - "contentHash": "a4dsvZ00ocvzTgCD6dUdydf0jIZDVcDhs6dUX9cv+y3aTDbU8rmzhYXWt8sThedIG+IPSVa0vHmAH9pKiJL3SQ==" - }, - "Speckle.Sdk": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "xtPyLVnufvipfT5jIuH9cetqkVn2e+rrJSX9fLObCkbxMCF27fioJPcJ9aOd2ErzrCKXapOVRnlHTaPdfFAdEQ==", - "dependencies": { - "GraphQL.Client": "6.0.0", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Data.Sqlite": "7.0.7", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Logging": "3.1.0", - "Polly": "7.2.3", - "Polly.Contrib.WaitAndRetry": "1.1.1", - "Polly.Extensions.Http": "3.0.0", - "Speckle.DoubleNumerics": "4.0.1", - "Speckle.Newtonsoft.Json": "13.0.2", - "System.Text.Json": "5.0.2" - } - } - } - } -} \ No newline at end of file diff --git a/Converters/Revit/Speckle.Converters.Revit2024.Tests/Speckle.Converters.Revit2024.Tests.csproj b/Converters/Revit/Speckle.Converters.Revit2024.Tests/Speckle.Converters.Revit2024.Tests.csproj index 58a09acda..54573dcd1 100644 --- a/Converters/Revit/Speckle.Converters.Revit2024.Tests/Speckle.Converters.Revit2024.Tests.csproj +++ b/Converters/Revit/Speckle.Converters.Revit2024.Tests/Speckle.Converters.Revit2024.Tests.csproj @@ -25,6 +25,6 @@ - + diff --git a/Converters/Revit/Speckle.Converters.Revit2024.Tests/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2024.Tests/packages.lock.json index c0baead61..2112e0a11 100644 --- a/Converters/Revit/Speckle.Converters.Revit2024.Tests/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2024.Tests/packages.lock.json @@ -87,9 +87,9 @@ }, "Speckle.Revit2024.Fakes": { "type": "Direct", - "requested": "[0.3.0, 1.0.0)", - "resolved": "0.3.0", - "contentHash": "gBwoXQDphcbfexbNojI+9Isht8M3citP9j3cMMsnDJPlj7l1rXHzFmzZ7sn0OzuKzmcG92sGvyR1RvsGUtfqYw==", + "requested": "[0.3.1, )", + "resolved": "0.3.1", + "contentHash": "01T15eXABKlHKNBKMfehlnH+Ki5r/0Ozx6sFMCTSnFSF5u12g+Dkefo+GsEIiS1GxuMlEb+BKZbCrFmp8GLaHQ==", "dependencies": { "System.Drawing.Common": "8.0.6" } @@ -363,7 +363,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.testing": { @@ -393,18 +393,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.Revit2024/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2024/packages.lock.json index 40c58beee..2b3064cd4 100644 --- a/Converters/Revit/Speckle.Converters.Revit2024/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2024/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.Revit2025.DependencyInjection/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2025.DependencyInjection/packages.lock.json deleted file mode 100644 index 1c930d602..000000000 --- a/Converters/Revit/Speckle.Converters.Revit2025.DependencyInjection/packages.lock.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "version": 2, - "dependencies": { - "net8.0-windows7.0": { - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "PolySharp": { - "type": "Direct", - "requested": "[1.14.1, )", - "resolved": "1.14.1", - "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" - }, - "Speckle.InterfaceGenerator": { - "type": "Direct", - "requested": "[0.9.6, )", - "resolved": "0.9.6", - "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" - }, - "GraphQL.Client": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0", - "GraphQL.Client.Abstractions.Websocket": "6.0.0", - "System.Reactive": "5.0.0" - } - }, - "GraphQL.Client.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", - "dependencies": { - "GraphQL.Primitives": "6.0.0" - } - }, - "GraphQL.Client.Abstractions.Websocket": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0" - } - }, - "GraphQL.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Data.Sqlite": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "tiNmV1oPy+Z2R7Wd0bPB/FxCr8B+/5q11OpDMG751GA/YuOL7MZrBFfzv5oFRlFe08K6sjrnbrauzzGIeNrzLQ==", - "dependencies": { - "Microsoft.Data.Sqlite.Core": "7.0.7", - "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" - } - }, - "Microsoft.Data.Sqlite.Core": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "21FRzcJhaTrlv7kTrqr/ltFcSQM2TyuTTPhUcjO8H73od7Bb3QraNW90c7lUucNI/245XPkKZG4fp7/7OsKCSg==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==" - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.3", - "contentHash": "DeCY0OFbNdNxsjntr1gTXHJ5pKUwYzp04Er2LLeN3g6pWhffsGuKVfMBLe1lw7x76HrPkLxKEFxBlpRxS2nDEQ==" - }, - "Polly.Contrib.WaitAndRetry": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, - "Speckle.DoubleNumerics": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" - }, - "Speckle.Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" - }, - "SQLitePCLRaw.bundle_e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", - "dependencies": { - "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", - "SQLitePCLRaw.provider.e_sqlite3": "2.1.4" - } - }, - "SQLitePCLRaw.core": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", - "dependencies": { - "System.Memory": "4.5.3" - } - }, - "SQLitePCLRaw.lib.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" - }, - "SQLitePCLRaw.provider.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "CSlb5dUp1FMIkez9Iv5EXzpeq7rHryVNqwJMWnpq87j9zWZexaEMdisDktMsnnrzKM6ahNrsTkjqNodTBPBxtQ==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.3", - "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==" - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "5.0.2", - "contentHash": "I47dVIGiV6SfAyppphxqupertT/5oZkYLDCX6vC3HpOI4ZLjyoKAreUoem2ie6G0RbRuFrlqz/PcTQjfb2DOfQ==" - }, - "speckle.autofac": { - "type": "Project", - "dependencies": { - "Autofac": "[5.2.0, )" - } - }, - "speckle.converters.common": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.common.dependencyinjection": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "speckle.converters.revit2025": { - "type": "Project", - "dependencies": { - "Speckle.Converters.Common": "[1.0.0, )", - "Speckle.Revit.API": "[2025.0.0, )" - } - }, - "Autofac": { - "type": "CentralTransitive", - "requested": "[5.2.0, )", - "resolved": "5.2.0", - "contentHash": "V8dBH0dsv75uDzl7Sw+HkhKDPUw2eXnlMjcSVMH+tLo2s67MpTKGyDj1pDcpR+IF2u4YRs0s3/x7R88YJzIWvg==" - }, - "Microsoft.Extensions.Logging": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "3.1.0", - "Microsoft.Extensions.DependencyInjection": "3.1.0", - "Microsoft.Extensions.Logging.Abstractions": "3.1.0", - "Microsoft.Extensions.Options": "3.1.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==" - }, - "Speckle.Objects": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "zKOwln3evlRcasL9AHHLbkTHsKK+sxUDia3VaafhKNx/fJjqoyhiIPgPjW7xVLfU31pZR2OfTmYBFFcfgH1i/A==", - "dependencies": { - "Speckle.Sdk": "3.1.0-dev.142" - } - }, - "Speckle.Revit.API": { - "type": "CentralTransitive", - "requested": "[2023.0.0, )", - "resolved": "2025.0.0", - "contentHash": "Hwf/3Ydc7KxvjgD9pSZKLSJRsFTsxYg95YyTm6f43hcsGjmk49GsLFQt921Z9OcvUVewOggQHcmBgti+P2EPHw==" - }, - "Speckle.Sdk": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "xtPyLVnufvipfT5jIuH9cetqkVn2e+rrJSX9fLObCkbxMCF27fioJPcJ9aOd2ErzrCKXapOVRnlHTaPdfFAdEQ==", - "dependencies": { - "GraphQL.Client": "6.0.0", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Data.Sqlite": "7.0.7", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Logging": "3.1.0", - "Polly": "7.2.3", - "Polly.Contrib.WaitAndRetry": "1.1.1", - "Polly.Extensions.Http": "3.0.0", - "Speckle.DoubleNumerics": "4.0.1", - "Speckle.Newtonsoft.Json": "13.0.2", - "System.Text.Json": "5.0.2" - } - } - } - } -} \ No newline at end of file diff --git a/Converters/Revit/Speckle.Converters.Revit2025/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2025/packages.lock.json index 96c32115c..0c3e5dbe5 100644 --- a/Converters/Revit/Speckle.Converters.Revit2025/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2025/packages.lock.json @@ -237,7 +237,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -260,18 +260,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToHostConverter.cs b/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToHostConverter.cs index 2e1067eb4..b12cfdd70 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToHostConverter.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToHostConverter.cs @@ -7,6 +7,8 @@ namespace Speckle.Converters.RevitShared; +public record DirectShapeDefinitionWrapper(string DefinitionId, List Geometries); + public class RevitRootToHostConverter : IRootToHostConverter { private readonly IConverterSettingsStore _converterSettings; @@ -23,46 +25,18 @@ IConverterSettingsStore converterSettings public object Convert(Base target) { - List geometryObjects = _baseToGeometryConverter.Convert(target); + List geometryObjects = _baseToGeometryConverter.Convert(target); if (geometryObjects.Count == 0) { throw new ConversionException($"No supported conversion for {target.speckle_type} found."); } - // create direct shape from geometries - DB.DirectShape result = CreateDirectShape(geometryObjects, target["category"] as string); - - return result; - } - - private DB.DirectShape CreateDirectShape(List geometry, string? category) - { - // set ds category - var dsCategory = BuiltInCategory.OST_GenericModel; - if (category is string categoryString) - { - var res = Enum.TryParse($"OST_{categoryString}", out DB.BuiltInCategory cat); - if (res) - { - var c = Category.GetCategory(_converterSettings.Current.Document, cat); - if (c is not null && DirectShape.IsValidCategoryId(c.Id, _converterSettings.Current.Document)) - { - dsCategory = cat; - } - } - } - - var result = DirectShape.CreateElement(_converterSettings.Current.Document, new DB.ElementId(dsCategory)); - - // check for valid geometry - if (!result.IsValidShape(geometry)) - { - _converterSettings.Current.Document.Delete(result.Id); - throw new ValidationException("Invalid geometry (eg unbounded curves) found for creating directshape."); - } - result.SetShape(geometry); + var definitionId = target.applicationId ?? target.id; + DirectShapeLibrary + .GetDirectShapeLibrary(_converterSettings.Current.Document) + .AddDefinition(definitionId, geometryObjects); - return result; + return new DirectShapeDefinitionWrapper(definitionId, geometryObjects); } } diff --git a/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToSpeckleConverter.cs b/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToSpeckleConverter.cs index 8f7cf4041..a29910a2d 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToSpeckleConverter.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToSpeckleConverter.cs @@ -14,7 +14,7 @@ namespace Speckle.Converters.RevitShared; public class RevitRootToSpeckleConverter : IRootToSpeckleConverter { private readonly IConverterManager _toSpeckle; - private readonly ITypedConverter>> _materialQuantityConverter; + private readonly ITypedConverter> _materialQuantityConverter; private readonly IConverterSettingsStore _converterSettings; private readonly ParameterExtractor _parameterExtractor; private readonly ILogger _logger; @@ -23,7 +23,7 @@ public class RevitRootToSpeckleConverter : IRootToSpeckleConverter public RevitRootToSpeckleConverter( IConverterManager toSpeckle, - ITypedConverter>> materialQuantityConverter, + ITypedConverter> materialQuantityConverter, IConverterSettingsStore converterSettings, ParameterExtractor parameterExtractor, ILogger logger @@ -49,6 +49,9 @@ public Base Convert(object target) result.applicationId = element.UniqueId; + // Add ElementID to the converted objects + result["elementId"] = element.Id.ToString()!; + // POC DirectShapes have RevitCategory enum as the type or the category property, DS category property is already set in the converter // trying to set the category as a string will throw // the category should be moved to be set in each converter instead of the root to speckle converter diff --git a/Converters/Revit/Speckle.Converters.RevitShared/Speckle.Converters.RevitShared.projitems b/Converters/Revit/Speckle.Converters.RevitShared/Speckle.Converters.RevitShared.projitems index c7214cd00..25c8e14a2 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/Speckle.Converters.RevitShared.projitems +++ b/Converters/Revit/Speckle.Converters.RevitShared/Speckle.Converters.RevitShared.projitems @@ -39,11 +39,14 @@ + + + @@ -101,7 +104,4 @@ - - - \ No newline at end of file diff --git a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/BaseToHostGeometryObjectConverter.cs b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/BaseToHostGeometryObjectConverter.cs index 10453f04e..f16afcbdd 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/BaseToHostGeometryObjectConverter.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/BaseToHostGeometryObjectConverter.cs @@ -12,16 +12,19 @@ public class BaseToHostGeometryObjectConverter : ITypedConverter _pointConverter; private readonly ITypedConverter _curveConverter; private readonly ITypedConverter> _meshConverter; + private readonly ITypedConverter> _encodedObjectConverter; public BaseToHostGeometryObjectConverter( ITypedConverter pointConverter, ITypedConverter curveConverter, - ITypedConverter> meshConverter + ITypedConverter> meshConverter, + ITypedConverter> encodedObjectConverter ) { _pointConverter = pointConverter; _curveConverter = curveConverter; _meshConverter = meshConverter; + _encodedObjectConverter = encodedObjectConverter; } public List Convert(Base target) @@ -42,6 +45,10 @@ public BaseToHostGeometryObjectConverter( var meshes = _meshConverter.Convert(mesh).Cast(); result.AddRange(meshes); break; + case SOG.IRawEncodedObject elon: + var res = _encodedObjectConverter.Convert(elon); + result.AddRange(res); + break; default: var displayValue = target.TryGetDisplayValue(); if ((displayValue is IList && !displayValue.Any()) || displayValue is null) @@ -53,7 +60,6 @@ public BaseToHostGeometryObjectConverter( { result.AddRange(Convert(display)); } - break; } diff --git a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/IRawEncodedObjectConverter.cs b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/IRawEncodedObjectConverter.cs new file mode 100644 index 000000000..ac98b4d25 --- /dev/null +++ b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/IRawEncodedObjectConverter.cs @@ -0,0 +1,76 @@ +using Speckle.Converters.Common; +using Speckle.Converters.Common.FileOps; +using Speckle.Converters.Common.Objects; +using Speckle.Converters.RevitShared.Helpers; +using Speckle.Converters.RevitShared.Settings; +using Speckle.Sdk.Common; +using Speckle.Sdk.Models; +using Speckle.Sdk.Models.Extensions; + +namespace Speckle.Converters.RevitShared.ToSpeckle; + +public class IRawEncodedObjectConverter : ITypedConverter> +{ + private readonly IConverterSettingsStore _settings; + private readonly ITypedConverter> _meshConverter; + private readonly RevitToHostCacheSingleton _revitToHostCacheSingleton; + + public IRawEncodedObjectConverter( + IConverterSettingsStore settings, + ITypedConverter> meshConverter, + RevitToHostCacheSingleton revitToHostCacheSingleton + ) + { + _settings = settings; + _meshConverter = meshConverter; + _revitToHostCacheSingleton = revitToHostCacheSingleton; + } + + public List Convert(SOG.IRawEncodedObject target) + { + var targetAsBase = (Base)target; + var raw = target.encodedValue.contents; + var bytes = System.Convert.FromBase64String(raw!); + var filePath = TempFileProvider.GetTempFile("RevitX", target.encodedValue.format); + File.WriteAllBytes(filePath, bytes); + + using var importer = new DB.ShapeImporter(); + var shapeImportResult = importer.Convert(_settings.Current.Document, filePath); + + DB.ElementId materialId = DB.ElementId.InvalidElementId; + if ( + _revitToHostCacheSingleton.MaterialsByObjectId.TryGetValue( + targetAsBase.applicationId ?? targetAsBase.id, + out var mappedElementId + ) + ) + { + materialId = mappedElementId; + } + + if (materialId == DB.ElementId.InvalidElementId) + { + return shapeImportResult.ToList(); // exit fast if there's no material id associated with this object + } + + // check whether the results have any meshes inside - if yes, it means the shape importer produced a subpar result. + // as we cannot paint meshes later (as you can solid faces), we need to create them now. + // we'll default to using the display value of the original object as it's a better fallback. + // note: if you're tempted to try and re-mesh the shape importer's meshes, don't - they are garbage. + var hasMesh = shapeImportResult.Any(o => o is DB.Mesh); + if (!hasMesh) + { + return shapeImportResult.ToList(); + } + + var displayValue = targetAsBase.TryGetDisplayValue().NotNull(); + var returnList = new List(); + foreach (var mesh in displayValue) + { + mesh.applicationId = targetAsBase.applicationId ?? targetAsBase.id; // to properly map materials + returnList.AddRange(_meshConverter.Convert(mesh)); + } + + return returnList; + } +} diff --git a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/MeshConverterToHost.cs b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/MeshConverterToHost.cs index 1312aec59..8b1509f08 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/MeshConverterToHost.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/MeshConverterToHost.cs @@ -1,6 +1,7 @@ using Autodesk.Revit.DB; using Speckle.Converters.Common.Objects; using Speckle.Converters.RevitShared.Helpers; +using Speckle.Converters.RevitShared.Services; using Speckle.DoubleNumerics; using Speckle.Sdk.Common.Exceptions; @@ -8,16 +9,16 @@ namespace Speckle.Converters.RevitShared.ToHost.TopLevel; public class MeshConverterToHost : ITypedConverter> { - private readonly ITypedConverter _pointConverter; private readonly RevitToHostCacheSingleton _revitToHostCacheSingleton; + private readonly ScalingServiceToHost _scalingServiceToHost; public MeshConverterToHost( - ITypedConverter pointConverter, - RevitToHostCacheSingleton revitToHostCacheSingleton + RevitToHostCacheSingleton revitToHostCacheSingleton, + ScalingServiceToHost scalingServiceToHost ) { - _pointConverter = pointConverter; _revitToHostCacheSingleton = revitToHostCacheSingleton; + _scalingServiceToHost = scalingServiceToHost; } public List Convert(SOG.Mesh mesh) @@ -32,12 +33,10 @@ RevitToHostCacheSingleton revitToHostCacheSingleton GraphicsStyleId = ElementId.InvalidElementId }; - var valid = tsb.AreTargetAndFallbackCompatible(target, fallback); tsb.OpenConnectedFaceSet(false); var vertices = ArrayToPoints(mesh.vertices, mesh.units); ElementId materialId = ElementId.InvalidElementId; - if ( _revitToHostCacheSingleton.MaterialsByObjectId.TryGetValue(mesh.applicationId ?? mesh.id, out var mappedElementId) ) @@ -58,8 +57,8 @@ RevitToHostCacheSingleton revitToHostCacheSingleton if (IsNonPlanarQuad(points)) { - //Non-planar quads will be triangulated as it's more desirable than `TessellatedShapeBuilder.Build`'s attempt to make them planar. - //TODO consider triangulating all n > 3 polygons that are non-planar + // Non-planar quads will be triangulated as it's more desirable than `TessellatedShapeBuilder.Build`'s attempt to make them planar. + // TODO consider triangulating all n > 3 polygons that are non-planar var triPoints = new List { points[0], points[1], points[3] }; var face1 = new TessellatedFace(triPoints, materialId); tsb.AddFace(face1); @@ -122,11 +121,15 @@ private XYZ[] ArrayToPoints(IList arr, string units) } XYZ[] points = new XYZ[arr.Count / 3]; + var fTypeId = _scalingServiceToHost.UnitsToNative(units) ?? UnitTypeId.Meters; for (int i = 2, k = 0; i < arr.Count; i += 3) { - var point = new SOG.Point(arr[i - 2], arr[i - 1], arr[i], units); - points[k++] = _pointConverter.Convert(point); + points[k++] = new XYZ( + _scalingServiceToHost.ScaleToNative(arr[i - 2], fTypeId), + _scalingServiceToHost.ScaleToNative(arr[i - 1], fTypeId), + _scalingServiceToHost.ScaleToNative(arr[i], fTypeId) + ); } return points; diff --git a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/TransformConverterToHost.cs b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/TransformConverterToHost.cs new file mode 100644 index 000000000..8b29bb880 --- /dev/null +++ b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/TransformConverterToHost.cs @@ -0,0 +1,47 @@ +using Speckle.Converters.Common.Objects; +using Speckle.Converters.RevitShared.Services; +using Speckle.DoubleNumerics; + +namespace Speckle.Converters.RevitShared.ToSpeckle; + +public class TransformConverterToHost : ITypedConverter<(Matrix4x4 matrix, string units), DB.Transform> +{ + private readonly ScalingServiceToHost _scalingService; + + public TransformConverterToHost(ScalingServiceToHost scalingService) + { + _scalingService = scalingService; + } + + public DB.Transform Convert((Matrix4x4 matrix, string units) target) + { + var transform = DB.Transform.Identity; + if (target.matrix.M44 == 0 || target.units is null) // TODO: check target.units nullability? + { + return transform; + } + + var tX = _scalingService.ScaleToNative(target.matrix.M14 / target.matrix.M44, target.units); + var tY = _scalingService.ScaleToNative(target.matrix.M24 / target.matrix.M44, target.units); + var tZ = _scalingService.ScaleToNative(target.matrix.M34 / target.matrix.M44, target.units); + var t = new DB.XYZ(tX, tY, tZ); + + // basis vectors + DB.XYZ vX = new(target.matrix.M11, target.matrix.M21, target.matrix.M31); + DB.XYZ vY = new(target.matrix.M12, target.matrix.M22, target.matrix.M32); + DB.XYZ vZ = new(target.matrix.M13, target.matrix.M23, target.matrix.M33); + + // apply to new transform + transform.Origin = t; + transform.BasisX = vX.Normalize(); + transform.BasisY = vY.Normalize(); + transform.BasisZ = vZ.Normalize(); + + // TODO: check below needed? + // // apply doc transform + // var docTransform = GetDocReferencePointTransform(Doc); + // var internalTransform = docTransform.Multiply(_transform); + + return transform; + } +} diff --git a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/LocalToGlobalToDirectShapeConverter.cs b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/LocalToGlobalToDirectShapeConverter.cs new file mode 100644 index 000000000..c33972225 --- /dev/null +++ b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/LocalToGlobalToDirectShapeConverter.cs @@ -0,0 +1,82 @@ +using Speckle.Converters.Common; +using Speckle.Converters.Common.Objects; +using Speckle.Converters.RevitShared.Settings; +using Speckle.DoubleNumerics; +using Speckle.Sdk.Models; + +namespace Speckle.Converters.RevitShared.ToSpeckle; + +/// +/// Converts local to global maps to direct shapes. +/// Spirit of the LocalToGlobalMap, we can't pass that object directly here bc it lives in Connectors.Common which I (ogu) don't want to bother with it. +/// All this is poc that should be burned, once we enable proper block support to revit. +/// +public class LocalToGlobalToDirectShapeConverter + : ITypedConverter<(Base atomicObject, List matrix), DB.DirectShape> +{ + private readonly IConverterSettingsStore _converterSettings; + private readonly ITypedConverter<(Matrix4x4 matrix, string units), DB.Transform> _transformConverter; + + public LocalToGlobalToDirectShapeConverter( + IConverterSettingsStore converterSettings, + ITypedConverter<(Matrix4x4 matrix, string units), DB.Transform> transformConverter + ) + { + _converterSettings = converterSettings; + _transformConverter = transformConverter; + } + + public DB.DirectShape Convert((Base atomicObject, List matrix) target) + { + // 1- set ds category + var category = target.atomicObject["category"] as string; + var dsCategory = DB.BuiltInCategory.OST_GenericModel; + if (category is not null) + { + var res = Enum.TryParse($"OST_{category}", out DB.BuiltInCategory cat); + if (res) + { + var c = DB.Category.GetCategory(_converterSettings.Current.Document, cat); + if (c is not null && DB.DirectShape.IsValidCategoryId(c.Id, _converterSettings.Current.Document)) + { + dsCategory = cat; + } + } + } + + // 2 - init DirectShape + var result = DB.DirectShape.CreateElement(_converterSettings.Current.Document, new DB.ElementId(dsCategory)); + + // If there is no transforms to be applied, use the simple way of creating direct shapes + if (target.matrix.Count == 0) + { + var def = DB + .DirectShapeLibrary.GetDirectShapeLibrary(_converterSettings.Current.Document) + .FindDefinition(target.atomicObject.applicationId ?? target.atomicObject.id); + result.SetShape(def); + return result; // note fast exit here + } + + // 3 - Transform the geometries + DB.Transform combinedTransform = DB.Transform.Identity; + + // existence of units is must, to be able to scale the transform correctly + if (target.atomicObject["units"] is string units) + { + foreach (Matrix4x4 matrix in target.matrix) + { + DB.Transform revitTransform = _transformConverter.Convert((matrix, units)); + combinedTransform = combinedTransform.Multiply(revitTransform); + } + } + + var transformedGeometries = DB.DirectShape.CreateGeometryInstance( + _converterSettings.Current.Document, + target.atomicObject.applicationId ?? target.atomicObject.id, + combinedTransform + ); + + result.SetShape(transformedGeometries); + return result; + } +} diff --git a/Converters/Revit/Speckle.Converters.RevitShared/ToSpeckle/Parameters/ParameterExtractor.cs b/Converters/Revit/Speckle.Converters.RevitShared/ToSpeckle/Parameters/ParameterExtractor.cs index 15310fae7..6f93643b4 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/ToSpeckle/Parameters/ParameterExtractor.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/ToSpeckle/Parameters/ParameterExtractor.cs @@ -65,12 +65,42 @@ ILogger logger return CreateParameterDictionary(instanceParameterDictionary, null); } - typeParameterDictionary = ParseParameterSet(type.Parameters); + typeParameterDictionary = ParseParameterSet(type.Parameters); // NOTE: type parameters should be ideally proxied out for a better data layout. + if (type is DB.HostObjAttributes hostObjectAttr) + { + // NOTE: this could be paired up and merged with material quantities - they're pretty much the same :/ + var factor = _scalingServiceToSpeckle.ScaleLength(1); + var structureDictionary = new Dictionary(); + var structure = hostObjectAttr.GetCompoundStructure(); + var layers = structure.GetLayers(); + foreach (var layer in layers) + { + if (_settingsStore.Current.Document.GetElement(layer.MaterialId) is DB.Material material) + { + structureDictionary[material.Name] = new Dictionary() + { + ["material"] = material.Name, + ["function"] = layer.Function.ToString(), + ["thickness"] = layer.Width * factor, + ["units"] = _settingsStore.Current.SpeckleUnits + }; + } + } + + typeParameterDictionary["Structure"] = structureDictionary; + } + _typeParameterCache[typeId] = typeParameterDictionary; return CreateParameterDictionary(instanceParameterDictionary, typeParameterDictionary); } + /// + /// Internal utility to create the default parameter structure we expect all elements to have. + /// + /// + /// + /// private Dictionary CreateParameterDictionary( Dictionary> instanceParams, Dictionary>? typeParams @@ -90,15 +120,39 @@ ILogger logger { try { + var (internalDefinitionName, humanReadableName, groupName, units) = + _parameterDefinitionHandler.HandleDefinition(parameter); + + // NOTE: ids don't really have much meaning; if we discover the opposite, we can bring them back. See [CNX-556: All ID Parameters are send as Name](https://linear.app/speckle/issue/CNX-556/all-id-parameters-are-send-as-name) + if (internalDefinitionName.Contains("_ID")) + { + continue; + } + var value = GetValue(parameter); + var isNullOrEmpty = value == null || (value is string s && string.IsNullOrEmpty(s)); + if (!_settingsStore.Current.SendParameterNullOrEmptyStrings && isNullOrEmpty) { continue; } - var (internalDefinitionName, humanReadableName, groupName, units) = - _parameterDefinitionHandler.HandleDefinition(parameter); + if (value is (string typeName, string familyName)) // element type: same element, different expected values depending on the param definition + { + if (internalDefinitionName == "ELEM_FAMILY_PARAM") // Probably should be using the BUILTINPARAM whatever + { + value = familyName; + } + else if (internalDefinitionName == "ELEM_TYPE_PARAM") + { + value = typeName; + } + else + { + value = familyName + " " + typeName; + } + } var param = new Dictionary() { @@ -107,7 +161,7 @@ ILogger logger ["internalDefinitionName"] = internalDefinitionName }; - if (units is string paramUnits) + if (units is not null) { param["units"] = units; } @@ -135,7 +189,7 @@ ILogger logger return dict; } - private readonly Dictionary _elementNameCache = new(); + private readonly Dictionary _elementNameCache = new(); private object? GetValue(DB.Parameter parameter) { @@ -149,12 +203,30 @@ ILogger logger : parameter.AsValueString(); case DB.StorageType.ElementId: var elId = parameter.AsElementId()!; - if (_elementNameCache.TryGetValue(elId, out string? value)) + if (elId == DB.ElementId.InvalidElementId) + { + return null; + } + + if (_elementNameCache.TryGetValue(elId, out object? value)) { return value; } + var docElement = _settingsStore.Current.Document.GetElement(elId); - var docElementName = docElement?.Name ?? elId.ToString(); + object? docElementName; + + // Note: for element types, different params point at the same element. We're getting the right value out in the parent function + // based on what the actual built in param name is. + if (docElement is DB.ElementType elementType) + { + docElementName = (elementType.Name, elementType.FamilyName); + } + else + { + docElementName = docElement?.Name ?? null; + } + _elementNameCache[parameter.AsElementId()] = docElementName; return docElementName; case DB.StorageType.String: diff --git a/Converters/Revit/Speckle.Converters.RevitShared/ToSpeckle/Raw/MaterialQuantitiesToSpeckle.cs b/Converters/Revit/Speckle.Converters.RevitShared/ToSpeckle/Raw/MaterialQuantitiesToSpeckle.cs index 0953be5a0..6defa25b0 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/ToSpeckle/Raw/MaterialQuantitiesToSpeckle.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/ToSpeckle/Raw/MaterialQuantitiesToSpeckle.cs @@ -11,7 +11,7 @@ namespace Speckle.Converters.RevitShared.ToSpeckle; /// Lighter converter for material quantities. It basically returns a For each material quantity available on the target element, it will return a dictionary containing: area, volume, units, material name, material class and material category. /// POC: we need to validate this with user needs. It currently does not include material parameters or any other more complex props to ensure speedy sending of data and a lighter payload. We're though keen to re-add more data provided we can validate it. /// -public class MaterialQuantitiesToSpeckleLite : ITypedConverter>> +public class MaterialQuantitiesToSpeckleLite : ITypedConverter> { private readonly ScalingServiceToSpeckle _scalingService; private readonly IConverterSettingsStore _converterSettings; @@ -30,10 +30,9 @@ IConverterSettingsStore converterSettings /// /// /// - public List> Convert(DB.Element target) + public Dictionary Convert(DB.Element target) { - List> quantities = new(); - + Dictionary quantities = new(); if (target.Category.HasMaterialQuantities) { foreach (DB.ElementId matId in target.GetMaterialIds(false)) @@ -55,7 +54,7 @@ public List> Convert(DB.Element target) materialQuantity["materialName"] = material.Name; materialQuantity["materialCategory"] = material.MaterialCategory; materialQuantity["materialClass"] = material.MaterialClass; - quantities.Add(materialQuantity); + quantities[material.Name] = materialQuantity; } } } diff --git a/Converters/Revit/Speckle.Converters.RevitShared/ToSpeckle/TopLevel/FootPrintRoofToSpeckleTopLevelConverter.cs b/Converters/Revit/Speckle.Converters.RevitShared/ToSpeckle/TopLevel/FootPrintRoofToSpeckleTopLevelConverter.cs index 85e8f7dbb..3234b6c7f 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/ToSpeckle/TopLevel/FootPrintRoofToSpeckleTopLevelConverter.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/ToSpeckle/TopLevel/FootPrintRoofToSpeckleTopLevelConverter.cs @@ -55,10 +55,6 @@ public override RevitFootprintRoof Convert(FootPrintRoof target) out var topLevel ); - //POC: CNX-9403 can be null if the sides have different slopes. - //We currently don't validate the success or failure of this TryGet as it's not necessary, but will be once we start the above ticket. - _parameterValueExtractor.TryGetValueAsDouble(target, DB.BuiltInParameter.ROOF_SLOPE, out var slope); - var elementType = (ElementType)target.Document.GetElement(target.GetTypeId()); List displayValue = _displayValueExtractor.GetDisplayValue(target); @@ -69,7 +65,6 @@ out var topLevel family = elementType.FamilyName, level = _levelConverter.Convert(baseLevel), cutOffLevel = topLevel is not null ? _levelConverter.Convert(topLevel) : null, - slope = slope, displayValue = displayValue, units = _converterSettings.Current.SpeckleUnits }; diff --git a/Converters/Rhino/Speckle.Converters.Rhino7.DependencyInjection/packages.lock.json b/Converters/Rhino/Speckle.Converters.Rhino7.DependencyInjection/packages.lock.json deleted file mode 100644 index d9ccfbb75..000000000 --- a/Converters/Rhino/Speckle.Converters.Rhino7.DependencyInjection/packages.lock.json +++ /dev/null @@ -1,403 +0,0 @@ -{ - "version": 2, - "dependencies": { - ".NETFramework,Version=v4.8": { - "Microsoft.NETFramework.ReferenceAssemblies": { - "type": "Direct", - "requested": "[1.0.3, )", - "resolved": "1.0.3", - "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", - "dependencies": { - "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3" - } - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "PolySharp": { - "type": "Direct", - "requested": "[1.14.1, )", - "resolved": "1.14.1", - "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" - }, - "Speckle.InterfaceGenerator": { - "type": "Direct", - "requested": "[0.9.6, )", - "resolved": "0.9.6", - "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" - }, - "GraphQL.Client": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0", - "GraphQL.Client.Abstractions.Websocket": "6.0.0", - "System.Net.WebSockets.Client.Managed": "1.0.22", - "System.Reactive": "5.0.0" - } - }, - "GraphQL.Client.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", - "dependencies": { - "GraphQL.Primitives": "6.0.0" - } - }, - "GraphQL.Client.Abstractions.Websocket": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0" - } - }, - "GraphQL.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Data.Sqlite": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "tiNmV1oPy+Z2R7Wd0bPB/FxCr8B+/5q11OpDMG751GA/YuOL7MZrBFfzv5oFRlFe08K6sjrnbrauzzGIeNrzLQ==", - "dependencies": { - "Microsoft.Data.Sqlite.Core": "7.0.7", - "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" - } - }, - "Microsoft.Data.Sqlite.Core": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "21FRzcJhaTrlv7kTrqr/ltFcSQM2TyuTTPhUcjO8H73od7Bb3QraNW90c7lUucNI/245XPkKZG4fp7/7OsKCSg==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==" - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Primitives": "3.1.0", - "System.ComponentModel.Annotations": "4.7.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==", - "dependencies": { - "System.Memory": "4.5.2", - "System.Runtime.CompilerServices.Unsafe": "4.7.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies.net48": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.3", - "contentHash": "DeCY0OFbNdNxsjntr1gTXHJ5pKUwYzp04Er2LLeN3g6pWhffsGuKVfMBLe1lw7x76HrPkLxKEFxBlpRxS2nDEQ==" - }, - "Polly.Contrib.WaitAndRetry": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, - "Speckle.DoubleNumerics": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" - }, - "Speckle.Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" - }, - "SQLitePCLRaw.bundle_e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", - "dependencies": { - "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", - "SQLitePCLRaw.provider.dynamic_cdecl": "2.1.4" - } - }, - "SQLitePCLRaw.core": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", - "dependencies": { - "System.Memory": "4.5.3" - } - }, - "SQLitePCLRaw.lib.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" - }, - "SQLitePCLRaw.provider.dynamic_cdecl": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "ZsaKKhgYF9B1fvcnOGKl3EycNAwd9CRWX7v0rEfuPWhQQ5Jjpvf2VEHahiLIGHio3hxi3EIKFJw9KvyowWOUAw==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.ComponentModel.Annotations": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ==" - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.Net.WebSockets.Client.Managed": { - "type": "Transitive", - "resolved": "1.0.22", - "contentHash": "WqEOxPlXjuZrIjUtXNE9NxEfU/n5E35iV2PtoZdJSUC4tlrqwHnTee+wvMIM4OUaJWmwrymeqcgYrE0IkGAgLA==", - "dependencies": { - "System.Buffers": "4.4.0", - "System.Numerics.Vectors": "4.4.0" - } - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "KmJ+CJXizDofbq6mpqDoRRLcxgOd2z9X3XoFNULSbvbqVRZkFX3istvr+MUjL6Zw1RT+RNdoI4GYidIINtgvqQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "5.0.2", - "contentHash": "I47dVIGiV6SfAyppphxqupertT/5oZkYLDCX6vC3HpOI4ZLjyoKAreUoem2ie6G0RbRuFrlqz/PcTQjfb2DOfQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "5.0.0", - "System.Text.Encodings.Web": "5.0.1", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.ValueTuple": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" - }, - "speckle.autofac": { - "type": "Project", - "dependencies": { - "Autofac": "[5.2.0, )" - } - }, - "speckle.converters.common": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.common.dependencyinjection": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "speckle.converters.rhino7": { - "type": "Project", - "dependencies": { - "RhinoCommon": "[7.13.21348.13001, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "Autofac": { - "type": "CentralTransitive", - "requested": "[5.2.0, )", - "resolved": "5.2.0", - "contentHash": "V8dBH0dsv75uDzl7Sw+HkhKDPUw2eXnlMjcSVMH+tLo2s67MpTKGyDj1pDcpR+IF2u4YRs0s3/x7R88YJzIWvg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0" - } - }, - "Microsoft.Extensions.Logging": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "3.1.0", - "Microsoft.Extensions.DependencyInjection": "3.1.0", - "Microsoft.Extensions.Logging.Abstractions": "3.1.0", - "Microsoft.Extensions.Options": "3.1.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==" - }, - "RhinoCommon": { - "type": "CentralTransitive", - "requested": "[8.9.24194.18121, )", - "resolved": "7.13.21348.13001", - "contentHash": "JQdaNw61ddBqIe08E9O4N/grwrN1hjDHcYW7tWylwCZyFR7SepoCD4NS+6LN6+oSQhNbhLi9Bf+hQOFYFdRAEA==" - }, - "Speckle.Objects": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "zKOwln3evlRcasL9AHHLbkTHsKK+sxUDia3VaafhKNx/fJjqoyhiIPgPjW7xVLfU31pZR2OfTmYBFFcfgH1i/A==", - "dependencies": { - "Speckle.Sdk": "3.1.0-dev.142" - } - }, - "Speckle.Sdk": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "xtPyLVnufvipfT5jIuH9cetqkVn2e+rrJSX9fLObCkbxMCF27fioJPcJ9aOd2ErzrCKXapOVRnlHTaPdfFAdEQ==", - "dependencies": { - "GraphQL.Client": "6.0.0", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Data.Sqlite": "7.0.7", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Logging": "3.1.0", - "Polly": "7.2.3", - "Polly.Contrib.WaitAndRetry": "1.1.1", - "Polly.Extensions.Http": "3.0.0", - "Speckle.DoubleNumerics": "4.0.1", - "Speckle.Newtonsoft.Json": "13.0.2", - "System.Text.Json": "5.0.2" - } - } - } - } -} \ No newline at end of file diff --git a/Converters/Rhino/Speckle.Converters.Rhino7.Tests/Speckle.Converters.Rhino7.Tests.csproj b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/Speckle.Converters.Rhino7.Tests.csproj index b2b3653be..a7c0bf00e 100644 --- a/Converters/Rhino/Speckle.Converters.Rhino7.Tests/Speckle.Converters.Rhino7.Tests.csproj +++ b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/Speckle.Converters.Rhino7.Tests.csproj @@ -23,6 +23,6 @@ - + diff --git a/Converters/Rhino/Speckle.Converters.Rhino7.Tests/packages.lock.json b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/packages.lock.json index 13a172ba9..f160cf303 100644 --- a/Converters/Rhino/Speckle.Converters.Rhino7.Tests/packages.lock.json +++ b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/packages.lock.json @@ -87,9 +87,9 @@ }, "Speckle.Rhino7.Fakes": { "type": "Direct", - "requested": "[0.3.0, 1.0.0)", - "resolved": "0.3.0", - "contentHash": "6nDQudPvrsaVgrGWicQ50fb3LzyEp8QMCltJZs6itzyYlHYC8xjmCHK1Z305f3y9QfK9QQa93sBrEtS7xIhcEQ==", + "requested": "[0.3.1, )", + "resolved": "0.3.1", + "contentHash": "II0zR/4QfPC/j44zfVTSqplZsd/GXHEa4eKRZFdjHuXnXBcd80uObWAb0C2Wm88KSlKOnSYAeQLEMmPjK5Kw3w==", "dependencies": { "System.Drawing.Common": "8.0.6" } @@ -363,7 +363,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.testing": { @@ -393,18 +393,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Rhino/Speckle.Converters.Rhino7/packages.lock.json b/Converters/Rhino/Speckle.Converters.Rhino7/packages.lock.json index 91727817b..36eff02fd 100644 --- a/Converters/Rhino/Speckle.Converters.Rhino7/packages.lock.json +++ b/Converters/Rhino/Speckle.Converters.Rhino7/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Rhino/Speckle.Converters.Rhino8.DependencyInjection/packages.lock.json b/Converters/Rhino/Speckle.Converters.Rhino8.DependencyInjection/packages.lock.json deleted file mode 100644 index 6681924a1..000000000 --- a/Converters/Rhino/Speckle.Converters.Rhino8.DependencyInjection/packages.lock.json +++ /dev/null @@ -1,403 +0,0 @@ -{ - "version": 2, - "dependencies": { - ".NETFramework,Version=v4.8": { - "Microsoft.NETFramework.ReferenceAssemblies": { - "type": "Direct", - "requested": "[1.0.3, )", - "resolved": "1.0.3", - "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", - "dependencies": { - "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3" - } - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "PolySharp": { - "type": "Direct", - "requested": "[1.14.1, )", - "resolved": "1.14.1", - "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" - }, - "Speckle.InterfaceGenerator": { - "type": "Direct", - "requested": "[0.9.6, )", - "resolved": "0.9.6", - "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" - }, - "GraphQL.Client": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0", - "GraphQL.Client.Abstractions.Websocket": "6.0.0", - "System.Net.WebSockets.Client.Managed": "1.0.22", - "System.Reactive": "5.0.0" - } - }, - "GraphQL.Client.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", - "dependencies": { - "GraphQL.Primitives": "6.0.0" - } - }, - "GraphQL.Client.Abstractions.Websocket": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0" - } - }, - "GraphQL.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Data.Sqlite": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "tiNmV1oPy+Z2R7Wd0bPB/FxCr8B+/5q11OpDMG751GA/YuOL7MZrBFfzv5oFRlFe08K6sjrnbrauzzGIeNrzLQ==", - "dependencies": { - "Microsoft.Data.Sqlite.Core": "7.0.7", - "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" - } - }, - "Microsoft.Data.Sqlite.Core": { - "type": "Transitive", - "resolved": "7.0.7", - "contentHash": "21FRzcJhaTrlv7kTrqr/ltFcSQM2TyuTTPhUcjO8H73od7Bb3QraNW90c7lUucNI/245XPkKZG4fp7/7OsKCSg==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "3.1.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==" - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Primitives": "3.1.0", - "System.ComponentModel.Annotations": "4.7.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==", - "dependencies": { - "System.Memory": "4.5.2", - "System.Runtime.CompilerServices.Unsafe": "4.7.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies.net48": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.3", - "contentHash": "DeCY0OFbNdNxsjntr1gTXHJ5pKUwYzp04Er2LLeN3g6pWhffsGuKVfMBLe1lw7x76HrPkLxKEFxBlpRxS2nDEQ==" - }, - "Polly.Contrib.WaitAndRetry": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, - "Speckle.DoubleNumerics": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" - }, - "Speckle.Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" - }, - "SQLitePCLRaw.bundle_e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", - "dependencies": { - "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", - "SQLitePCLRaw.provider.dynamic_cdecl": "2.1.4" - } - }, - "SQLitePCLRaw.core": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", - "dependencies": { - "System.Memory": "4.5.3" - } - }, - "SQLitePCLRaw.lib.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" - }, - "SQLitePCLRaw.provider.dynamic_cdecl": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "ZsaKKhgYF9B1fvcnOGKl3EycNAwd9CRWX7v0rEfuPWhQQ5Jjpvf2VEHahiLIGHio3hxi3EIKFJw9KvyowWOUAw==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.ComponentModel.Annotations": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ==" - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.Net.WebSockets.Client.Managed": { - "type": "Transitive", - "resolved": "1.0.22", - "contentHash": "WqEOxPlXjuZrIjUtXNE9NxEfU/n5E35iV2PtoZdJSUC4tlrqwHnTee+wvMIM4OUaJWmwrymeqcgYrE0IkGAgLA==", - "dependencies": { - "System.Buffers": "4.4.0", - "System.Numerics.Vectors": "4.4.0" - } - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "KmJ+CJXizDofbq6mpqDoRRLcxgOd2z9X3XoFNULSbvbqVRZkFX3istvr+MUjL6Zw1RT+RNdoI4GYidIINtgvqQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "5.0.2", - "contentHash": "I47dVIGiV6SfAyppphxqupertT/5oZkYLDCX6vC3HpOI4ZLjyoKAreUoem2ie6G0RbRuFrlqz/PcTQjfb2DOfQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "5.0.0", - "System.Text.Encodings.Web": "5.0.1", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.ValueTuple": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" - }, - "speckle.autofac": { - "type": "Project", - "dependencies": { - "Autofac": "[5.2.0, )" - } - }, - "speckle.converters.common": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[3.1.0, )", - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.142, )" - } - }, - "speckle.converters.common.dependencyinjection": { - "type": "Project", - "dependencies": { - "Speckle.Autofac": "[1.0.0, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "speckle.converters.rhino8": { - "type": "Project", - "dependencies": { - "RhinoCommon": "[8.9.24194.18121, )", - "Speckle.Converters.Common": "[1.0.0, )" - } - }, - "Autofac": { - "type": "CentralTransitive", - "requested": "[5.2.0, )", - "resolved": "5.2.0", - "contentHash": "V8dBH0dsv75uDzl7Sw+HkhKDPUw2eXnlMjcSVMH+tLo2s67MpTKGyDj1pDcpR+IF2u4YRs0s3/x7R88YJzIWvg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0" - } - }, - "Microsoft.Extensions.Logging": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "3.1.0", - "Microsoft.Extensions.DependencyInjection": "3.1.0", - "Microsoft.Extensions.Logging.Abstractions": "3.1.0", - "Microsoft.Extensions.Options": "3.1.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "CentralTransitive", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==" - }, - "RhinoCommon": { - "type": "CentralTransitive", - "requested": "[8.9.24194.18121, )", - "resolved": "8.9.24194.18121", - "contentHash": "XRMnm38sBFeMT5AAtRTJdSaql/YNtT02AGi8TEVP1VZ4fkm8VJ1q2nNioWN3tW/+H8Tdi4nV+DuhB/5uE41MCg==" - }, - "Speckle.Objects": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "zKOwln3evlRcasL9AHHLbkTHsKK+sxUDia3VaafhKNx/fJjqoyhiIPgPjW7xVLfU31pZR2OfTmYBFFcfgH1i/A==", - "dependencies": { - "Speckle.Sdk": "3.1.0-dev.142" - } - }, - "Speckle.Sdk": { - "type": "CentralTransitive", - "requested": "[3.1.0-dev.142, )", - "resolved": "3.1.0-dev.142", - "contentHash": "xtPyLVnufvipfT5jIuH9cetqkVn2e+rrJSX9fLObCkbxMCF27fioJPcJ9aOd2ErzrCKXapOVRnlHTaPdfFAdEQ==", - "dependencies": { - "GraphQL.Client": "6.0.0", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Data.Sqlite": "7.0.7", - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", - "Microsoft.Extensions.Logging": "3.1.0", - "Polly": "7.2.3", - "Polly.Contrib.WaitAndRetry": "1.1.1", - "Polly.Extensions.Http": "3.0.0", - "Speckle.DoubleNumerics": "4.0.1", - "Speckle.Newtonsoft.Json": "13.0.2", - "System.Text.Json": "5.0.2" - } - } - } - } -} \ No newline at end of file diff --git a/Converters/Rhino/Speckle.Converters.Rhino8/packages.lock.json b/Converters/Rhino/Speckle.Converters.Rhino8/packages.lock.json index fb2148853..5fa802b9a 100644 --- a/Converters/Rhino/Speckle.Converters.Rhino8/packages.lock.json +++ b/Converters/Rhino/Speckle.Converters.Rhino8/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Rhino/Speckle.Converters.RhinoShared/GlobalUsings.cs b/Converters/Rhino/Speckle.Converters.RhinoShared/GlobalUsings.cs index a26246d61..1880b8c40 100644 --- a/Converters/Rhino/Speckle.Converters.RhinoShared/GlobalUsings.cs +++ b/Converters/Rhino/Speckle.Converters.RhinoShared/GlobalUsings.cs @@ -1,3 +1,4 @@ global using RG = Rhino.Geometry; +global using SO = Speckle.Objects.Other; global using SOG = Speckle.Objects.Geometry; global using SOP = Speckle.Objects.Primitive; diff --git a/Converters/Rhino/Speckle.Converters.RhinoShared/SpeckleToHostGeometryBaseTopLevelConverter.cs b/Converters/Rhino/Speckle.Converters.RhinoShared/SpeckleToHostGeometryBaseTopLevelConverter.cs index a7f4914e7..c2b0030ce 100644 --- a/Converters/Rhino/Speckle.Converters.RhinoShared/SpeckleToHostGeometryBaseTopLevelConverter.cs +++ b/Converters/Rhino/Speckle.Converters.RhinoShared/SpeckleToHostGeometryBaseTopLevelConverter.cs @@ -7,9 +7,8 @@ namespace Speckle.Converters.Rhino; public abstract class SpeckleToHostGeometryBaseTopLevelConverter : IToHostTopLevelConverter where TIn : Base - where TOut : RG.GeometryBase { - protected IConverterSettingsStore SettingsStore { get; private set; } + private readonly IConverterSettingsStore _settingsStore; private readonly ITypedConverter _geometryBaseConverter; protected SpeckleToHostGeometryBaseTopLevelConverter( @@ -17,7 +16,7 @@ protected SpeckleToHostGeometryBaseTopLevelConverter( ITypedConverter geometryBaseConverter ) { - SettingsStore = settingsStore; + _settingsStore = settingsStore; _geometryBaseConverter = geometryBaseConverter; } @@ -26,18 +25,38 @@ public object Convert(Base target) var castedBase = (TIn)target; var result = _geometryBaseConverter.Convert(castedBase); - /* - * POC: CNX-9270 Looking at a simpler, more performant way of doing unit scaling on `ToNative` - * by fully relying on the transform capabilities of the HostApp, and only transforming top-level stuff. - * This may not hold when adding more complex conversions, but it works for now! - */ - if (castedBase["units"] is string units) + if (result is null) { - var scaleFactor = Units.GetConversionFactor(units, SettingsStore.Current.SpeckleUnits); - var scale = RG.Transform.Scale(RG.Point3d.Origin, scaleFactor); - result.Transform(scale); + throw new SpeckleConversionException( + $"Geometry base converter returned null for base object of type {target.speckle_type}" + ); + } + + var units = castedBase["units"] as string; + if (result is RG.GeometryBase geometryBase && units is not null) + { + geometryBase.Transform(GetScaleTransform(units)); + return geometryBase; + } + + if (result is List geometryBases && units is not null) + { + var t = GetScaleTransform(units); + foreach (var gb in geometryBases) + { + gb.Transform(t); + } + + return geometryBases; } return result; } + + private RG.Transform GetScaleTransform(string from) + { + var scaleFactor = Units.GetConversionFactor(from, _settingsStore.Current.SpeckleUnits); + var scale = RG.Transform.Scale(RG.Point3d.Origin, scaleFactor); + return scale; + } } diff --git a/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/Helpers/RawEncodingToHost.cs b/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/Helpers/RawEncodingToHost.cs new file mode 100644 index 000000000..ca59d5b23 --- /dev/null +++ b/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/Helpers/RawEncodingToHost.cs @@ -0,0 +1,30 @@ +using Rhino.FileIO; +using Speckle.Converters.Common; + +namespace Speckle.Converters.Rhino.ToHost.Helpers; + +/// +/// Top level handler for raw encoded objects. +/// +public static class RawEncodingToHost +{ + public static List Convert(SOG.IRawEncodedObject target) + { + // note: I am not sure that we're going to have other encoding formats, but who knows. + switch (target.encodedValue.format) + { + case SO.RawEncodingFormats.RHINO_3DM: + return Handle3dm(target); + default: + throw new SpeckleConversionException($"Unsupported brep encoding format: {target.encodedValue.format}"); + } + } + + private static List Handle3dm(SOG.IRawEncodedObject target) + { + var bytes = System.Convert.FromBase64String(target.encodedValue.contents); + var file = File3dm.FromByteArray(bytes); + var brepObject = file.Objects.Select(o => o.Geometry); + return brepObject.ToList(); + } +} diff --git a/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/Raw/BrepXToHostConverter.cs b/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/Raw/BrepXToHostConverter.cs new file mode 100644 index 000000000..d4d39b3f5 --- /dev/null +++ b/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/Raw/BrepXToHostConverter.cs @@ -0,0 +1,9 @@ +using Speckle.Converters.Common.Objects; +using Speckle.Converters.Rhino.ToHost.Helpers; + +namespace Speckle.Converters.Rhino.ToHost.Raw; + +public class BrepXToHostConverter : ITypedConverter> +{ + public List Convert(SOG.BrepX target) => RawEncodingToHost.Convert(target); +} diff --git a/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/Raw/ExtrusionXToHostConverter.cs b/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/Raw/ExtrusionXToHostConverter.cs new file mode 100644 index 000000000..713c697b1 --- /dev/null +++ b/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/Raw/ExtrusionXToHostConverter.cs @@ -0,0 +1,9 @@ +using Speckle.Converters.Common.Objects; +using Speckle.Converters.Rhino.ToHost.Helpers; + +namespace Speckle.Converters.Rhino.ToHost.Raw; + +public class ExtrusionXToHostConverter : ITypedConverter> +{ + public List Convert(SOG.ExtrusionX target) => RawEncodingToHost.Convert(target); +} diff --git a/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/Raw/SubDXToHostConverter.cs b/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/Raw/SubDXToHostConverter.cs new file mode 100644 index 000000000..19f56337f --- /dev/null +++ b/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/Raw/SubDXToHostConverter.cs @@ -0,0 +1,9 @@ +using Speckle.Converters.Common.Objects; +using Speckle.Converters.Rhino.ToHost.Helpers; + +namespace Speckle.Converters.Rhino.ToHost.Raw; + +public class SubDXToHostConverter : ITypedConverter> +{ + public List Convert(SOG.SubDX target) => RawEncodingToHost.Convert(target); +} diff --git a/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/TopLevel/BrepXToHostTopLevelConverter.cs b/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/TopLevel/BrepXToHostTopLevelConverter.cs new file mode 100644 index 000000000..08f1c6902 --- /dev/null +++ b/Converters/Rhino/Speckle.Converters.RhinoShared/ToHost/TopLevel/BrepXToHostTopLevelConverter.cs @@ -0,0 +1,35 @@ +using Speckle.Converters.Common; +using Speckle.Converters.Common.Objects; + +namespace Speckle.Converters.Rhino.ToHost.TopLevel; + +[NameAndRankValue(nameof(SOG.BrepX), NameAndRankValueAttribute.SPECKLE_DEFAULT_RANK)] +public class BrepXToHostTopLevelConverter : SpeckleToHostGeometryBaseTopLevelConverter> +{ + public BrepXToHostTopLevelConverter( + IConverterSettingsStore settingsStore, + ITypedConverter> geometryBaseConverter + ) + : base(settingsStore, geometryBaseConverter) { } +} + +[NameAndRankValue(nameof(SOG.SubDX), NameAndRankValueAttribute.SPECKLE_DEFAULT_RANK)] +public class SubDXToHostTopLevelConverter : SpeckleToHostGeometryBaseTopLevelConverter> +{ + public SubDXToHostTopLevelConverter( + IConverterSettingsStore settingsStore, + ITypedConverter> geometryBaseConverter + ) + : base(settingsStore, geometryBaseConverter) { } +} + +[NameAndRankValue(nameof(SOG.ExtrusionX), NameAndRankValueAttribute.SPECKLE_DEFAULT_RANK)] +public class ExtrusionXToHostTopLevelConverter + : SpeckleToHostGeometryBaseTopLevelConverter> +{ + public ExtrusionXToHostTopLevelConverter( + IConverterSettingsStore settingsStore, + ITypedConverter> geometryBaseConverter + ) + : base(settingsStore, geometryBaseConverter) { } +} diff --git a/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/Encoding/RawEncodingCreator.cs b/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/Encoding/RawEncodingCreator.cs new file mode 100644 index 000000000..c8475723b --- /dev/null +++ b/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/Encoding/RawEncodingCreator.cs @@ -0,0 +1,50 @@ +using Rhino; +using Rhino.FileIO; +using Speckle.Converters.Common; + +namespace Speckle.Converters.Rhino.ToSpeckle.Encoding; + +internal static class RawEncodingCreator +{ + public static SO.RawEncoding Encode(RG.GeometryBase target, RhinoDoc doc) + { + // note: this way works too, but we need to write the file to disk before reading it back out. + // using var doc = RhinoDoc.CreateHeadless(default); + // doc.ModelUnitSystem = _settingsStore.Current.Document.ModelUnitSystem; + // doc.ModelAbsoluteTolerance = _settingsStore.Current.Document.ModelAbsoluteTolerance; + // doc.ModelAngleToleranceRadians = _settingsStore.Current.Document.ModelAngleToleranceRadians; + // doc.Objects.Add(target); + + // var tempFile = TempFileProvider.GetTempFile(_speckleApplication.Slug, "3dm"); + // doc.Write3dmFile(tempFile, new FileWriteOptions() { IncludeRenderMeshes = false, WriteGeometryOnly = true, IncludeHistory = false, WriteUserData = false}); + // var fileBytes = System.Convert.ToBase64String(File.ReadAllBytes(tempFile)); + // var brepXEncoding = new SOG.BrepXEncoding() { contents = fileBytes, format = "3dm" }; + // return brepXEncoding; + + // note: this way works probably better as we don't need to write the file to disk and read it back in. + using var file = new File3dm(); + switch (target) + { + case RG.Brep b: + file.Objects.AddBrep(b); + break; + case RG.Extrusion e: + file.Objects.AddExtrusion(e); + break; + case RG.SubD d: + file.Objects.AddSubD(d); + break; + default: + throw new SpeckleConversionException($"Unsupported type for encoding: {target.GetType().FullName}"); + } + + file.Settings.ModelUnitSystem = doc.ModelUnitSystem; + file.Settings.ModelAbsoluteTolerance = doc.ModelAbsoluteTolerance; + file.Settings.ModelAngleToleranceRadians = doc.ModelAngleToleranceRadians; + + var fb = file.ToByteArray(new File3dmWriteOptions() { SaveUserData = false, Version = 7 }); + var fbString = System.Convert.ToBase64String(fb); + var bxe = new SO.RawEncoding() { contents = fbString, format = SO.RawEncodingFormats.RHINO_3DM }; + return bxe; + } +} diff --git a/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/Meshing/DisplayMeshExtractor.cs b/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/Meshing/DisplayMeshExtractor.cs new file mode 100644 index 000000000..63e9023b5 --- /dev/null +++ b/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/Meshing/DisplayMeshExtractor.cs @@ -0,0 +1,39 @@ +using Rhino.DocObjects; +using Speckle.Converters.Common; + +namespace Speckle.Converters.Rhino.ToSpeckle.Meshing; + +public static class DisplayMeshExtractor +{ + public static RG.Mesh GetDisplayMesh(RhinoObject obj) + { + // note: unsure this is nice, we get bigger meshes - we should to benchmark (conversion time vs size tradeoffs) + var renderMeshes = obj.GetMeshes(RG.MeshType.Render); + if (renderMeshes.Length == 0) + { + switch (obj) + { + case BrepObject brep: + renderMeshes = RG.Mesh.CreateFromBrep(brep.BrepGeometry, new(0.05, 0.05)); + break; + case ExtrusionObject extrusion: + renderMeshes = RG.Mesh.CreateFromBrep(extrusion.ExtrusionGeometry.ToBrep(), new(0.05, 0.05)); + break; + case SubDObject subDObject: +#pragma warning disable CA2000 + var mesh = RG.Mesh.CreateFromSubD(subDObject.Geometry as RG.SubD, 0); +#pragma warning restore CA2000 + renderMeshes = [mesh]; + break; + default: + throw new SpeckleConversionException( + $"Unsupported object for display mesh generation {obj.GetType().FullName}" + ); + } + } + + var joinedMesh = new RG.Mesh(); + joinedMesh.Append(renderMeshes); + return joinedMesh; + } +} diff --git a/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/Raw/BrepToSpeckleConverter.cs b/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/Raw/BrepToSpeckleConverter.cs index d373e10bb..e17527044 100644 --- a/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/Raw/BrepToSpeckleConverter.cs +++ b/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/Raw/BrepToSpeckleConverter.cs @@ -43,7 +43,7 @@ IConverterSettingsStore settingsStore public SOG.Brep Convert(RG.Brep target) { var tol = _settingsStore.Current.Document.ModelAbsoluteTolerance; - target.Repair(tol); + target.Repair(tol); // NOTE: for objects far-ish (not that far imho) from origin, this call nukes performance and takes ages. // POC: CNX-9276 This should come as part of the user settings in the context object. // if (PreprocessGeometry) @@ -65,6 +65,7 @@ public SOG.Brep Convert(RG.Brep target) // displayValue["renderMaterial"] = mat; // } + // Vertices, uv curves, 3d curves and surfaces List vertices = new(target.Vertices.Count); vertices.AddRange(target.Vertices.Select(v => _pointConverter.Convert(v.Location))); diff --git a/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/TopLevel/BrepObjectToSpeckleTopLevelConverter.cs b/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/TopLevel/BrepObjectToSpeckleTopLevelConverter.cs index e14a019ca..c79440bfe 100644 --- a/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/TopLevel/BrepObjectToSpeckleTopLevelConverter.cs +++ b/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/TopLevel/BrepObjectToSpeckleTopLevelConverter.cs @@ -1,6 +1,8 @@ using Rhino.DocObjects; using Speckle.Converters.Common; using Speckle.Converters.Common.Objects; +using Speckle.Converters.Rhino.ToSpeckle.Encoding; +using Speckle.Converters.Rhino.ToSpeckle.Meshing; using Speckle.Sdk.Models; namespace Speckle.Converters.Rhino.ToSpeckle.TopLevel; @@ -8,17 +10,33 @@ namespace Speckle.Converters.Rhino.ToSpeckle.TopLevel; [NameAndRankValue(nameof(BrepObject), NameAndRankValueAttribute.SPECKLE_DEFAULT_RANK)] public class BrepObjectToSpeckleTopLevelConverter : IToSpeckleTopLevelConverter { - private readonly ITypedConverter _curveConverter; + private readonly ITypedConverter _meshConverter; + private readonly IConverterSettingsStore _settingsStore; - public BrepObjectToSpeckleTopLevelConverter(ITypedConverter curveConverter) + public BrepObjectToSpeckleTopLevelConverter( + ITypedConverter meshConverter, + IConverterSettingsStore settingsStore + ) { - _curveConverter = curveConverter; + _meshConverter = meshConverter; + _settingsStore = settingsStore; } public Base Convert(object target) { - var curveObject = (BrepObject)target; - var speckleCurve = _curveConverter.Convert(curveObject.BrepGeometry); - return speckleCurve; + var brepObject = (BrepObject)target; + var brepEncoding = RawEncodingCreator.Encode(brepObject.Geometry, _settingsStore.Current.Document); + + var mesh = DisplayMeshExtractor.GetDisplayMesh(brepObject); + var displayValue = new List { _meshConverter.Convert(mesh) }; + + var bx = new SOG.BrepX() + { + displayValue = displayValue, + encodedValue = brepEncoding, + units = _settingsStore.Current.SpeckleUnits + }; + + return bx; } } diff --git a/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/TopLevel/ExtrusionObjectToSpeckleTopLevelConverter.cs b/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/TopLevel/ExtrusionObjectToSpeckleTopLevelConverter.cs index 9ea18de4b..255ed0162 100644 --- a/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/TopLevel/ExtrusionObjectToSpeckleTopLevelConverter.cs +++ b/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/TopLevel/ExtrusionObjectToSpeckleTopLevelConverter.cs @@ -1,6 +1,8 @@ using Rhino.DocObjects; using Speckle.Converters.Common; using Speckle.Converters.Common.Objects; +using Speckle.Converters.Rhino.ToSpeckle.Encoding; +using Speckle.Converters.Rhino.ToSpeckle.Meshing; using Speckle.Sdk.Models; namespace Speckle.Converters.Rhino.ToSpeckle.TopLevel; @@ -8,17 +10,33 @@ namespace Speckle.Converters.Rhino.ToSpeckle.TopLevel; [NameAndRankValue(nameof(ExtrusionObject), NameAndRankValueAttribute.SPECKLE_DEFAULT_RANK)] public class ExtrusionObjectToSpeckleTopLevelConverter : IToSpeckleTopLevelConverter { - private readonly ITypedConverter _curveConverter; + private readonly ITypedConverter _meshConverter; + private readonly IConverterSettingsStore _settingsStore; - public ExtrusionObjectToSpeckleTopLevelConverter(ITypedConverter curveConverter) + public ExtrusionObjectToSpeckleTopLevelConverter( + ITypedConverter meshConverter, + IConverterSettingsStore settingsStore + ) { - _curveConverter = curveConverter; + _meshConverter = meshConverter; + _settingsStore = settingsStore; } public Base Convert(object target) { - var curveObject = (ExtrusionObject)target; - var speckleCurve = _curveConverter.Convert(curveObject.ExtrusionGeometry.ToBrep()); - return speckleCurve; + var extrusionObject = (ExtrusionObject)target; + var extrusionEncoding = RawEncodingCreator.Encode(extrusionObject.Geometry, _settingsStore.Current.Document); + + var mesh = DisplayMeshExtractor.GetDisplayMesh(extrusionObject); + var displayValue = new List { _meshConverter.Convert(mesh) }; + + var bx = new SOG.ExtrusionX() + { + displayValue = displayValue, + encodedValue = extrusionEncoding, + units = _settingsStore.Current.SpeckleUnits + }; + + return bx; } } diff --git a/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/TopLevel/SubDObjectToSpeckleTopLevelConverter.cs b/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/TopLevel/SubDObjectToSpeckleTopLevelConverter.cs index 479ff68b2..f86839467 100644 --- a/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/TopLevel/SubDObjectToSpeckleTopLevelConverter.cs +++ b/Converters/Rhino/Speckle.Converters.RhinoShared/ToSpeckle/TopLevel/SubDObjectToSpeckleTopLevelConverter.cs @@ -1,6 +1,8 @@ using Rhino.DocObjects; using Speckle.Converters.Common; using Speckle.Converters.Common.Objects; +using Speckle.Converters.Rhino.ToSpeckle.Encoding; +using Speckle.Converters.Rhino.ToSpeckle.Meshing; using Speckle.Sdk.Models; namespace Speckle.Converters.Rhino.ToSpeckle.TopLevel; @@ -8,18 +10,33 @@ namespace Speckle.Converters.Rhino.ToSpeckle.TopLevel; [NameAndRankValue(nameof(SubDObject), NameAndRankValueAttribute.SPECKLE_DEFAULT_RANK)] public class SubDObjectToSpeckleTopLevelConverter : IToSpeckleTopLevelConverter { - private readonly ITypedConverter _brepConverter; + private readonly ITypedConverter _meshConverter; + private readonly IConverterSettingsStore _settingsStore; - public SubDObjectToSpeckleTopLevelConverter(ITypedConverter curveConverter) + public SubDObjectToSpeckleTopLevelConverter( + ITypedConverter meshConverter, + IConverterSettingsStore settingsStore + ) { - _brepConverter = curveConverter; + _meshConverter = meshConverter; + _settingsStore = settingsStore; } public Base Convert(object target) { var subDObject = (SubDObject)target; - var subD = (RG.SubD)subDObject.Geometry; - var speckleCurve = _brepConverter.Convert(subD.ToBrep()); - return speckleCurve; + var subdEncoding = RawEncodingCreator.Encode(subDObject.Geometry, _settingsStore.Current.Document); + + var mesh = DisplayMeshExtractor.GetDisplayMesh(subDObject); + var displayValue = new List { _meshConverter.Convert(mesh) }; + + var bx = new SOG.SubDX() + { + displayValue = displayValue, + encodedValue = subdEncoding, + units = _settingsStore.Current.SpeckleUnits + }; + + return bx; } } diff --git a/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json b/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json index 5ddd2cbf5..e2c78991c 100644 --- a/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json +++ b/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json @@ -342,8 +342,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -351,7 +351,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -394,18 +394,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/DUI3/Speckle.Connectors.DUI.WebView/packages.lock.json b/DUI3/Speckle.Connectors.DUI.WebView/packages.lock.json index 239c66d6f..914064d33 100644 --- a/DUI3/Speckle.Connectors.DUI.WebView/packages.lock.json +++ b/DUI3/Speckle.Connectors.DUI.WebView/packages.lock.json @@ -274,8 +274,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -283,7 +283,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -319,18 +319,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", @@ -588,8 +588,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -597,7 +597,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.158, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -633,18 +633,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/DUI3/Speckle.Connectors.DUI/Bindings/ConfigBinding.cs b/DUI3/Speckle.Connectors.DUI/Bindings/ConfigBinding.cs index 0a6b93a64..50eeb162f 100644 --- a/DUI3/Speckle.Connectors.DUI/Bindings/ConfigBinding.cs +++ b/DUI3/Speckle.Connectors.DUI/Bindings/ConfigBinding.cs @@ -37,7 +37,7 @@ JsonSerializerSettings serializerOptions public bool GetIsDevMode() #pragma warning restore CA1024 { -#if DEBUG +#if DEBUG || LOCAL return true; #else return false; diff --git a/DUI3/Speckle.Connectors.DUI/packages.lock.json b/DUI3/Speckle.Connectors.DUI/packages.lock.json index aaa08deda..b88c79359 100644 --- a/DUI3/Speckle.Connectors.DUI/packages.lock.json +++ b/DUI3/Speckle.Connectors.DUI/packages.lock.json @@ -50,9 +50,9 @@ }, "Speckle.Sdk": { "type": "Direct", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", @@ -325,8 +325,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.logging": { @@ -355,11 +355,11 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } } } diff --git a/Directory.Packages.props b/Directory.Packages.props index a94d7b062..88a142aae 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -31,12 +31,15 @@ - - - - + + + + + + + diff --git a/Sdk/Speckle.Connectors.Common/Connector.cs b/Sdk/Speckle.Connectors.Common/Connector.cs index 7b7b314b5..40c1fefc7 100644 --- a/Sdk/Speckle.Connectors.Common/Connector.cs +++ b/Sdk/Speckle.Connectors.Common/Connector.cs @@ -12,10 +12,19 @@ namespace Speckle.Connectors.Common; public static class Connector { + private sealed record LoggingDisposable(IDisposable Tracing, IDisposable Metrics) : IDisposable + { + public void Dispose() + { + Tracing.Dispose(); + Metrics.Dispose(); + } + } + public static readonly string TabName = "Speckle"; public static readonly string TabTitle = "Speckle (Beta)"; - public static IDisposable? Initialize( + public static IDisposable Initialize( this IServiceCollection serviceCollection, HostApplication application, HostAppVersion version @@ -23,36 +32,47 @@ HostAppVersion version { TypeLoader.Initialize(typeof(Base).Assembly, typeof(Point).Assembly); - var (logging, tracing) = Observability.Initialize( + var (logging, tracing, metrics) = Observability.Initialize( application.Name + " " + HostApplications.GetVersion(version), application.Slug, Assembly.GetExecutingAssembly().GetVersion(), - new( #if DEBUG || LOCAL - new SpeckleLogging(Console: true, MinimumLevel: SpeckleLogLevel.Debug), new SpeckleTracing(Console: false) + new( + new SpeckleLogging(Console: true, File: new(), MinimumLevel: SpeckleLogLevel.Debug), + new SpeckleTracing(Console: false), + new SpeckleMetrics(Console: false) + ) #else + new( new SpeckleLogging( Console: true, - Otel: new( - Endpoint: "https://seq-dev.speckle.systems/ingest/otlp/v1/logs", - Headers: new() { { "X-Seq-ApiKey", "y5YnBp12ZE1Czh4tzZWn" } } - ), + File: new(), + Otel: + [ + new( + Endpoint: "https://seq-dev.speckle.systems/ingest/otlp/v1/logs", + Headers: new() { { "X-Seq-ApiKey", "y5YnBp12ZE1Czh4tzZWn" } } + ) + ], MinimumLevel: SpeckleLogLevel.Warning ), new SpeckleTracing( Console: false, - Otel: new( - Endpoint: "https://seq-dev.speckle.systems/ingest/otlp/v1/traces", - Headers: new() { { "X-Seq-ApiKey", "y5YnBp12ZE1Czh4tzZWn" } } - ) + Otel: + [ + new( + Endpoint: "https://seq-dev.speckle.systems/ingest/otlp/v1/traces", + Headers: new() { { "X-Seq-ApiKey", "y5YnBp12ZE1Czh4tzZWn" } } + ) + ] ) -#endif ) +#endif ); serviceCollection.AddLogging(x => x.AddProvider(new SpeckleLogProvider(logging))); serviceCollection.AddSpeckleSdk(application, version, Assembly.GetExecutingAssembly().GetVersion()); serviceCollection.AddSingleton(); - return tracing; + return new LoggingDisposable(tracing, metrics); } } diff --git a/Sdk/Speckle.Connectors.Common/ConnectorActivityFactory.cs b/Sdk/Speckle.Connectors.Common/ConnectorActivityFactory.cs index b69ec0f2d..417361f59 100644 --- a/Sdk/Speckle.Connectors.Common/ConnectorActivityFactory.cs +++ b/Sdk/Speckle.Connectors.Common/ConnectorActivityFactory.cs @@ -1,11 +1,12 @@ using System.Runtime.CompilerServices; using Speckle.Connectors.Logging; +using Speckle.Sdk; using Speckle.Sdk.Common; using Speckle.Sdk.Logging; namespace Speckle.Connectors.Common; -public sealed class ConnectorActivityFactory : ISdkActivityFactory, IDisposable +public sealed class ConnectorActivityFactory(ISpeckleApplication application) : ISdkActivityFactory, IDisposable { private readonly LoggingActivityFactory _loggingActivityFactory = new(); @@ -15,7 +16,7 @@ public sealed class ConnectorActivityFactory : ISdkActivityFactory, IDisposable public ISdkActivity? Start(string? name = default, [CallerMemberName] string source = "") { - var activity = _loggingActivityFactory.Start(name, source); + var activity = _loggingActivityFactory.Start(application.ApplicationAndVersion + " " + (name ?? source)); if (activity is null) { return null; @@ -43,5 +44,7 @@ public void SetStatus(SdkActivityStatusCode code) => _ => throw new ArgumentOutOfRangeException(nameof(code), code, null) } ); + + public void InjectHeaders(Action header) => activity.InjectHeaders(header); } } diff --git a/Sdk/Speckle.Connectors.Common/ConnectorMetricsFactory.cs b/Sdk/Speckle.Connectors.Common/ConnectorMetricsFactory.cs new file mode 100644 index 000000000..c85a8ef37 --- /dev/null +++ b/Sdk/Speckle.Connectors.Common/ConnectorMetricsFactory.cs @@ -0,0 +1,34 @@ +using Speckle.Connectors.Logging; +using Speckle.Sdk.Logging; + +namespace Speckle.Connectors.Common; + +public sealed class ConnectorMetricsFactory : ISdkMetricsFactory, IDisposable +{ + private readonly LoggingMetricsFactory _loggingMetricsFactory = new(); + + public void Dispose() => _loggingMetricsFactory.Dispose(); + + public ISdkCounter CreateCounter(string name, string? unit = default, string? description = default) + where T : struct => new ConnectorCounter(_loggingMetricsFactory.CreateCounter(name, unit, description)); + + private readonly struct ConnectorCounter(LoggingCounter counter) : ISdkCounter + where T : struct + { + public void Add(T value) => counter.Add(value); + + public void Add(T value, KeyValuePair tag) => counter.Add(value, tag); + + public void Add(T value, KeyValuePair tag1, KeyValuePair tag2) => + counter.Add(value, tag1, tag2); + + public void Add( + T value, + KeyValuePair tag1, + KeyValuePair tag2, + KeyValuePair tag3 + ) => counter.Add(value, tag1, tag2, tag3); + + public void Add(T value, params KeyValuePair[] tags) => counter.Add(value, tags); + } +} diff --git a/Sdk/Speckle.Connectors.Common/Instances/LocalToGlobalMap.cs b/Sdk/Speckle.Connectors.Common/Instances/LocalToGlobalMap.cs index dbc88aea2..9e20fc111 100644 --- a/Sdk/Speckle.Connectors.Common/Instances/LocalToGlobalMap.cs +++ b/Sdk/Speckle.Connectors.Common/Instances/LocalToGlobalMap.cs @@ -4,4 +4,19 @@ namespace Speckle.Connectors.Common.Instances; -public record LocalToGlobalMap(TraversalContext TraversalContext, Base AtomicObject, List Matrix); +// Note: this was changed to a class with mutable props as in revit we need to pre-transform curves (native revit scaling does not support curves). +// public record LocalToGlobalMap(TraversalContext TraversalContext, Base AtomicObject, List Matrix); + +public class LocalToGlobalMap +{ + public LocalToGlobalMap(TraversalContext traversalContext, Base atomicObject, List matrix) + { + TraversalContext = traversalContext; + AtomicObject = atomicObject; + Matrix = matrix; + } + + public TraversalContext TraversalContext { get; set; } + public Base AtomicObject { get; set; } + public List Matrix { get; set; } +} diff --git a/Sdk/Speckle.Connectors.Common/Operations/ProxyKeys.cs b/Sdk/Speckle.Connectors.Common/Operations/ProxyKeys.cs index f5ad1b9d3..a0abff694 100644 --- a/Sdk/Speckle.Connectors.Common/Operations/ProxyKeys.cs +++ b/Sdk/Speckle.Connectors.Common/Operations/ProxyKeys.cs @@ -1,4 +1,4 @@ -namespace Speckle.Connectors.Common.Operations; +namespace Speckle.Connectors.Common.Operations; public static class ProxyKeys { @@ -7,4 +7,5 @@ public static class ProxyKeys public const string INSTANCE_DEFINITION = "instanceDefinitionProxies"; public const string GROUP = "groupProxies"; public const string PARAMETER_DEFINITIONS = "parameterDefinitions"; + public const string PROPERTYSET_DEFINITIONS = "propertySetDefinitions"; } diff --git a/Sdk/Speckle.Connectors.Common/packages.lock.json b/Sdk/Speckle.Connectors.Common/packages.lock.json index 3973c19ef..5b10bc71e 100644 --- a/Sdk/Speckle.Connectors.Common/packages.lock.json +++ b/Sdk/Speckle.Connectors.Common/packages.lock.json @@ -53,18 +53,18 @@ }, "Speckle.Objects": { "type": "Direct", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "Direct", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Sdk/Speckle.Connectors.Logging/ActivityScopeActivityProcessor.cs b/Sdk/Speckle.Connectors.Logging/ActivityScopeActivityProcessor.cs new file mode 100644 index 000000000..33d205bd1 --- /dev/null +++ b/Sdk/Speckle.Connectors.Logging/ActivityScopeActivityProcessor.cs @@ -0,0 +1,15 @@ +using System.Diagnostics; +using OpenTelemetry; + +namespace Speckle.Connectors.Logging; + +internal sealed class ActivityScopeActivityProcessor : BaseProcessor +{ + public override void OnEnd(Activity data) + { + foreach (KeyValuePair keyValuePair in ActivityScope.Tags) + { + data.SetTag(keyValuePair.Key, keyValuePair.Value); + } + } +} diff --git a/Sdk/Speckle.Connectors.Logging/ActivityScopeExtensions.cs b/Sdk/Speckle.Connectors.Logging/ActivityScopeExtensions.cs index c01121542..2cb549fef 100644 --- a/Sdk/Speckle.Connectors.Logging/ActivityScopeExtensions.cs +++ b/Sdk/Speckle.Connectors.Logging/ActivityScopeExtensions.cs @@ -1,16 +1,15 @@ -using System.Diagnostics; -using OpenTelemetry; - namespace Speckle.Connectors.Logging; public static class ActivityScope { - private static readonly AsyncLocal> s_tags = new(); - - public static IReadOnlyDictionary Tags => s_tags.Value; + private static readonly AsyncLocal> s_tags = new() { Value = new() }; + public static IReadOnlyDictionary Tags => s_tags.Value ?? []; + public static IReadOnlyList> TagsList { get; } = + new List>(s_tags.Value); public static IDisposable SetTag(string key, string value) { + s_tags.Value ??= new(); s_tags.Value[key] = value; return new TagScope(key); } @@ -20,14 +19,3 @@ private sealed class TagScope(string key) : IDisposable public void Dispose() => s_tags.Value.Remove(key); } } - -internal sealed class ActivityScopeProcessor : BaseProcessor -{ - public override void OnEnd(Activity data) - { - foreach (KeyValuePair keyValuePair in ActivityScope.Tags) - { - data.SetTag(keyValuePair.Key, keyValuePair.Value); - } - } -} diff --git a/Sdk/Speckle.Connectors.Logging/ActivityScopeLogProcessor.cs b/Sdk/Speckle.Connectors.Logging/ActivityScopeLogProcessor.cs new file mode 100644 index 000000000..857785a43 --- /dev/null +++ b/Sdk/Speckle.Connectors.Logging/ActivityScopeLogProcessor.cs @@ -0,0 +1,22 @@ +using OpenTelemetry; +using OpenTelemetry.Logs; + +namespace Speckle.Connectors.Logging; + +internal sealed class ActivityScopeLogProcessor : BaseProcessor +{ + public override void OnEnd(LogRecord data) + { + if (ActivityScope.Tags.Count > 0) + { + if (data.Attributes is null) + { + data.Attributes = ActivityScope.TagsList; + } + else if (data.Attributes.Count > 0) + { + data.Attributes = data.Attributes.Concat(ActivityScope.Tags).ToList(); + } + } + } +} diff --git a/Sdk/Speckle.Connectors.Logging/Consts.cs b/Sdk/Speckle.Connectors.Logging/Consts.cs index 2101db9e8..53d9bda08 100644 --- a/Sdk/Speckle.Connectors.Logging/Consts.cs +++ b/Sdk/Speckle.Connectors.Logging/Consts.cs @@ -1,3 +1,5 @@ +using System.Reflection; + namespace Speckle.Connectors.Logging; public static class Consts @@ -9,4 +11,27 @@ public static class Consts public const string OS_SLUG = "os.slug"; public const string RUNTIME_NAME = "runtime.name"; public const string USER_ID = "user.id"; + public const string TRACING_SOURCE = "speckle"; + + public static string GetPackageVersion(Assembly assembly) + { + // MinVer https://github.com/adamralph/minver?tab=readme-ov-file#version-numbers + // together with Microsoft.SourceLink.GitHub https://github.com/dotnet/sourcelink + // fills AssemblyInformationalVersionAttribute by + // {majorVersion}.{minorVersion}.{patchVersion}.{pre-release label}.{pre-release version}.{gitHeight}+{Git SHA of current commit} + // Ex: 1.5.0-alpha.1.40+807f703e1b4d9874a92bd86d9f2d4ebe5b5d52e4 + // The following parts are optional: pre-release label, pre-release version, git height, Git SHA of current commit + // For package version, value of AssemblyInformationalVersionAttribute without commit hash is returned. + + var informationalVersion = assembly + .GetCustomAttribute() + ?.InformationalVersion; + if (informationalVersion is null) + { + return string.Empty; + } + + var indexOfPlusSign = informationalVersion.IndexOf('+'); + return indexOfPlusSign > 0 ? informationalVersion[..indexOfPlusSign] : informationalVersion; + } } diff --git a/Sdk/Speckle.Connectors.Logging/Internal/LogBuilder.cs b/Sdk/Speckle.Connectors.Logging/Internal/LogBuilder.cs index 24b5aed65..cb7fd96fd 100644 --- a/Sdk/Speckle.Connectors.Logging/Internal/LogBuilder.cs +++ b/Sdk/Speckle.Connectors.Logging/Internal/LogBuilder.cs @@ -1,8 +1,10 @@ -using OpenTelemetry.Resources; +using System.Text; +using Microsoft.Extensions.Logging; +using OpenTelemetry.Exporter; +using OpenTelemetry.Logs; +using OpenTelemetry.Resources; using Serilog; using Serilog.Exceptions; -using Serilog.Extensions.Logging; -using Serilog.Sinks.OpenTelemetry; namespace Speckle.Connectors.Logging.Internal; @@ -15,61 +17,85 @@ public static LoggerProvider Initialize( ResourceBuilder resourceBuilder ) { - var serilogLogConfiguration = new LoggerConfiguration() - .MinimumLevel.Is(SpeckleLogLevelUtility.GetLevel(speckleLogging?.MinimumLevel ?? SpeckleLogLevel.Warning)) - .Enrich.FromLogContext() - .Enrich.WithExceptionDetails(); - - if (speckleLogging?.File is not null) + var factory = LoggerFactory.Create(loggingBuilder => { - // TODO: check if we have write permissions to the file. - var logFilePath = SpecklePathProvider.LogFolderPath(applicationAndVersion); - logFilePath = Path.Combine(logFilePath, speckleLogging.File.Path ?? "SpeckleCoreLog.txt"); - serilogLogConfiguration = serilogLogConfiguration.WriteTo.File( - logFilePath, - rollingInterval: RollingInterval.Day, - retainedFileCountLimit: 10 - ); - } + if (speckleLogging?.File is not null || speckleLogging?.Console is not null) + { + var serilogLogConfiguration = new LoggerConfiguration() + .MinimumLevel.Is(SpeckleLogLevelUtility.GetLevel(speckleLogging.MinimumLevel)) + .Enrich.FromLogContext() + .Enrich.WithExceptionDetails(); - if (speckleLogging?.Console ?? false) - { - serilogLogConfiguration = serilogLogConfiguration.WriteTo.Console(); - } + if (speckleLogging.File is not null) + { + // TODO: check if we have write permissions to the file. + var logFilePath = SpecklePathProvider.LogFolderPath(applicationAndVersion); + logFilePath = Path.Combine(logFilePath, speckleLogging.File.Path ?? "SpeckleCoreLog.txt"); + serilogLogConfiguration = serilogLogConfiguration.WriteTo.File( + logFilePath, + rollingInterval: RollingInterval.Day, + retainedFileCountLimit: 10 + ); + } - if (speckleLogging?.Otel is not null) - { - serilogLogConfiguration = InitializeOtelLogging(serilogLogConfiguration, speckleLogging.Otel, resourceBuilder); - } - var logger = serilogLogConfiguration.CreateLogger(); + if (speckleLogging.Console) + { + serilogLogConfiguration.WriteTo.Console(); + } - logger - .ForContext("applicationAndVersion", applicationAndVersion) - .ForContext("connectorVersion", connectorVersion) - .ForContext("userApplicationDataPath", SpecklePathProvider.UserApplicationDataPath()) - .ForContext("installApplicationDataPath", SpecklePathProvider.InstallApplicationDataPath) - .Information( - "Initialized logger inside {applicationAndVersion}/{connectorVersion}. Path info {userApplicationDataPath} {installApplicationDataPath}." - ); + var serilogLogger = serilogLogConfiguration.CreateLogger(); + if (speckleLogging.File is not null) + { + serilogLogger + .ForContext("applicationAndVersion", applicationAndVersion) + .ForContext("connectorVersion", connectorVersion) + .ForContext("userApplicationDataPath", SpecklePathProvider.UserApplicationDataPath()) + .ForContext("installApplicationDataPath", SpecklePathProvider.InstallApplicationDataPath) + .Information( + "Initialized logger inside {applicationAndVersion}/{connectorVersion}. Path info {userApplicationDataPath} {installApplicationDataPath}." + ); + } + + loggingBuilder.AddSerilog(serilogLogger); + } + + foreach (var otel in speckleLogging?.Otel ?? []) + { + InitializeOtelLogging(loggingBuilder, otel, resourceBuilder); + } + }); -#pragma warning disable CA2000 - return new LoggerProvider(new SerilogLoggerProvider(logger)); -#pragma warning restore CA2000 + return new LoggerProvider(factory); } - private static LoggerConfiguration InitializeOtelLogging( - LoggerConfiguration serilogLogConfiguration, + private static void InitializeOtelLogging( + ILoggingBuilder loggingBuilder, SpeckleOtelLogging speckleOtelLogging, ResourceBuilder resourceBuilder ) => - serilogLogConfiguration.WriteTo.OpenTelemetry(o => + loggingBuilder.AddOpenTelemetry(x => { - o.Protocol = OtlpProtocol.HttpProtobuf; - o.LogsEndpoint = speckleOtelLogging.Endpoint; - o.Headers = speckleOtelLogging.Headers ?? o.Headers; - o.ResourceAttributes = resourceBuilder - .Build() - .Attributes.Concat(ActivityScope.Tags) - .ToDictionary(x => x.Key, x => x.Value); + x.AddOtlpExporter(y => + { + y.Protocol = OtlpExportProtocol.HttpProtobuf; + y.Endpoint = new Uri(speckleOtelLogging.Endpoint); + var sb = new StringBuilder(); + bool appendSemicolon = false; + foreach (var kvp in speckleOtelLogging.Headers ?? []) + { + sb.Append(kvp.Key).Append('=').Append(kvp.Value); + if (appendSemicolon) + { + sb.Append(','); + } + else + { + appendSemicolon = true; + } + } + y.Headers = sb.ToString(); + }) + .AddProcessor(new ActivityScopeLogProcessor()) + .SetResourceBuilder(resourceBuilder); }); } diff --git a/Sdk/Speckle.Connectors.Logging/Internal/MetricsBuilder.cs b/Sdk/Speckle.Connectors.Logging/Internal/MetricsBuilder.cs new file mode 100644 index 000000000..daf109aaa --- /dev/null +++ b/Sdk/Speckle.Connectors.Logging/Internal/MetricsBuilder.cs @@ -0,0 +1,42 @@ +using OpenTelemetry.Exporter; +using OpenTelemetry.Metrics; +using OpenTelemetry.Resources; +using OpenTelemetry.Trace; + +namespace Speckle.Connectors.Logging.Internal; + +internal static class MetricsBuilder +{ + public static IDisposable Initialize(SpeckleMetrics? metricsConfiguration, ResourceBuilder resourceBuilder) + { + var metricsProviderBuilder = OpenTelemetry.Sdk.CreateMeterProviderBuilder().AddMeter(Consts.TRACING_SOURCE); + foreach (var metrics in metricsConfiguration?.Otel ?? []) + { + metricsProviderBuilder = metricsProviderBuilder.AddOtlpExporter(x => ProcessOptions(metrics, x)); + } + + if (metricsConfiguration?.Console ?? false) + { + metricsProviderBuilder = metricsProviderBuilder.AddConsoleExporter(); + } + + metricsProviderBuilder = metricsProviderBuilder.AddHttpClientInstrumentation().SetResourceBuilder(resourceBuilder); + + return metricsProviderBuilder.Build(); + } + + private static void ProcessOptions(SpeckleOtelMetrics metrics, OtlpExporterOptions options) + { + options.Protocol = OtlpExportProtocol.HttpProtobuf; + var headers = string.Join(",", metrics.Headers?.Select(x => x.Key + "=" + x.Value) ?? []); + if (headers.Length != 0) + { + options.Headers = headers; + } + + if (metrics.Endpoint is not null) + { + options.Endpoint = new Uri(metrics.Endpoint); + } + } +} diff --git a/Sdk/Speckle.Connectors.Logging/Internal/ResourceCreator.cs b/Sdk/Speckle.Connectors.Logging/Internal/ResourceCreator.cs index 7de798c48..22f2ab9b7 100644 --- a/Sdk/Speckle.Connectors.Logging/Internal/ResourceCreator.cs +++ b/Sdk/Speckle.Connectors.Logging/Internal/ResourceCreator.cs @@ -8,7 +8,7 @@ internal static class ResourceCreator internal static ResourceBuilder Create(string applicationAndVersion, string slug, string connectorVersion) => ResourceBuilder .CreateEmpty() - .AddService(serviceName: LoggingActivityFactory.TRACING_SOURCE, serviceVersion: connectorVersion) + .AddService(serviceName: Consts.TRACING_SOURCE, serviceVersion: connectorVersion) .AddAttributes( new List> { diff --git a/Sdk/Speckle.Connectors.Logging/Internal/TracingBuilder.cs b/Sdk/Speckle.Connectors.Logging/Internal/TracingBuilder.cs index be67b65a6..42eeb2655 100644 --- a/Sdk/Speckle.Connectors.Logging/Internal/TracingBuilder.cs +++ b/Sdk/Speckle.Connectors.Logging/Internal/TracingBuilder.cs @@ -6,25 +6,18 @@ namespace Speckle.Connectors.Logging.Internal; internal static class TracingBuilder { - public static IDisposable? Initialize(SpeckleTracing? logConfiguration, ResourceBuilder resourceBuilder) + public static IDisposable Initialize(SpeckleTracing? logConfiguration, ResourceBuilder resourceBuilder) { - var consoleEnabled = logConfiguration?.Console ?? false; - var otelEnabled = logConfiguration?.Otel?.Enabled ?? false; - if (!consoleEnabled && !otelEnabled) - { - return null; - } - var tracerProviderBuilder = OpenTelemetry .Sdk.CreateTracerProviderBuilder() - .AddSource(LoggingActivityFactory.TRACING_SOURCE); - tracerProviderBuilder = tracerProviderBuilder.AddHttpClientInstrumentation(); - if (otelEnabled) + .AddSource(Consts.TRACING_SOURCE) + .AddHttpClientInstrumentation(); + foreach (var tracing in logConfiguration?.Otel ?? []) { - tracerProviderBuilder = tracerProviderBuilder.AddOtlpExporter(x => ProcessOptions(logConfiguration!, x)); + tracerProviderBuilder = tracerProviderBuilder.AddOtlpExporter(x => ProcessOptions(tracing, x)); } - if (consoleEnabled) + if (logConfiguration?.Console ?? false) { tracerProviderBuilder = tracerProviderBuilder.AddConsoleExporter(); } @@ -32,23 +25,23 @@ internal static class TracingBuilder tracerProviderBuilder = tracerProviderBuilder .SetResourceBuilder(resourceBuilder) .SetSampler() - .AddProcessor(new ActivityScopeProcessor()); + .AddProcessor(new ActivityScopeActivityProcessor()); return tracerProviderBuilder.Build(); } - private static void ProcessOptions(SpeckleTracing logConfiguration, OtlpExporterOptions options) + private static void ProcessOptions(SpeckleOtelTracing tracing, OtlpExporterOptions options) { options.Protocol = OtlpExportProtocol.HttpProtobuf; - var headers = string.Join(",", logConfiguration.Otel?.Headers?.Select(x => x.Key + "=" + x.Value) ?? []); + var headers = string.Join(",", tracing.Headers?.Select(x => x.Key + "=" + x.Value) ?? []); if (headers.Length != 0) { options.Headers = headers; } - if (logConfiguration.Otel?.Endpoint is not null) + if (tracing.Endpoint is not null) { - options.Endpoint = new Uri(logConfiguration.Otel.Endpoint); + options.Endpoint = new Uri(tracing.Endpoint); } } } diff --git a/Sdk/Speckle.Connectors.Logging/LoggerProvider.cs b/Sdk/Speckle.Connectors.Logging/LoggerProvider.cs index 5f16f8821..bf037bf46 100644 --- a/Sdk/Speckle.Connectors.Logging/LoggerProvider.cs +++ b/Sdk/Speckle.Connectors.Logging/LoggerProvider.cs @@ -1,10 +1,14 @@ -using Serilog.Extensions.Logging; +using Microsoft.Extensions.Logging; namespace Speckle.Connectors.Logging; -public sealed class LoggerProvider(SerilogLoggerProvider provider) : IDisposable +public sealed class LoggerProvider : IDisposable { - public Logger CreateLogger(string categoryName) => new(provider.CreateLogger(categoryName)); + private readonly ILoggerFactory _provider; - public void Dispose() => provider.Dispose(); + internal LoggerProvider(ILoggerFactory provider) => _provider = provider; + + public Logger CreateLogger(string categoryName) => new(_provider.CreateLogger(categoryName)); + + public void Dispose() => _provider.Dispose(); } diff --git a/Sdk/Speckle.Connectors.Logging/LoggingActivity.cs b/Sdk/Speckle.Connectors.Logging/LoggingActivity.cs index 7fbe82a2e..d8e6073bf 100644 --- a/Sdk/Speckle.Connectors.Logging/LoggingActivity.cs +++ b/Sdk/Speckle.Connectors.Logging/LoggingActivity.cs @@ -30,4 +30,17 @@ public void SetStatus(LoggingActivityStatusCode code) => _ => throw new ArgumentOutOfRangeException(nameof(code), code, null) } ); + + public void InjectHeaders(Action header) => + DistributedContextPropagator.Current.Inject( + _activity, + header, + static (carrier, key, value) => + { + if (carrier is Action request) + { + request.Invoke(key, value); + } + } + ); } diff --git a/Sdk/Speckle.Connectors.Logging/LoggingActivityFactory.cs b/Sdk/Speckle.Connectors.Logging/LoggingActivityFactory.cs index cf99bffdd..82223f5b8 100644 --- a/Sdk/Speckle.Connectors.Logging/LoggingActivityFactory.cs +++ b/Sdk/Speckle.Connectors.Logging/LoggingActivityFactory.cs @@ -1,23 +1,21 @@ -using System.Diagnostics; +using System.Diagnostics; using System.Reflection; -using System.Runtime.CompilerServices; namespace Speckle.Connectors.Logging; public sealed class LoggingActivityFactory : IDisposable { - public const string TRACING_SOURCE = "speckle-connectors"; - private readonly ActivitySource? _activitySource = - new(TRACING_SOURCE, GetPackageVersion(Assembly.GetExecutingAssembly())); + private readonly ActivitySource _activitySource = + new(Consts.TRACING_SOURCE, Consts.GetPackageVersion(Assembly.GetExecutingAssembly())); private readonly Dictionary _tags = new(); public void SetTag(string key, object? value) => _tags[key] = value; - public LoggingActivity? Start(string? name = null, [CallerMemberName] string source = "") + public LoggingActivity? Start(string name) { //If you get a MissingManifestResourceException, Likely source or name is empty string, which is no good. - var activity = _activitySource?.StartActivity(name: name ?? source, kind: ActivityKind.Client, tags: _tags); + var activity = _activitySource.StartActivity(name: name, kind: ActivityKind.Client, tags: _tags); if (activity is null) { return null; @@ -25,27 +23,5 @@ public sealed class LoggingActivityFactory : IDisposable return new LoggingActivity(activity); } - public void Dispose() => _activitySource?.Dispose(); - - private static string GetPackageVersion(Assembly assembly) - { - // MinVer https://github.com/adamralph/minver?tab=readme-ov-file#version-numbers - // together with Microsoft.SourceLink.GitHub https://github.com/dotnet/sourcelink - // fills AssemblyInformationalVersionAttribute by - // {majorVersion}.{minorVersion}.{patchVersion}.{pre-release label}.{pre-release version}.{gitHeight}+{Git SHA of current commit} - // Ex: 1.5.0-alpha.1.40+807f703e1b4d9874a92bd86d9f2d4ebe5b5d52e4 - // The following parts are optional: pre-release label, pre-release version, git height, Git SHA of current commit - // For package version, value of AssemblyInformationalVersionAttribute without commit hash is returned. - - var informationalVersion = assembly - .GetCustomAttribute() - ?.InformationalVersion; - if (informationalVersion is null) - { - return String.Empty; - } - - var indexOfPlusSign = informationalVersion.IndexOf('+'); - return indexOfPlusSign > 0 ? informationalVersion[..indexOfPlusSign] : informationalVersion; - } + public void Dispose() => _activitySource.Dispose(); } diff --git a/Sdk/Speckle.Connectors.Logging/LoggingMetricsFactory.cs b/Sdk/Speckle.Connectors.Logging/LoggingMetricsFactory.cs new file mode 100644 index 000000000..0e66e11bc --- /dev/null +++ b/Sdk/Speckle.Connectors.Logging/LoggingMetricsFactory.cs @@ -0,0 +1,42 @@ +using System.Diagnostics.Metrics; +using System.Reflection; + +namespace Speckle.Connectors.Logging; + +public sealed class LoggingMetricsFactory : IDisposable +{ + private readonly Meter _meterSource = + new(Consts.TRACING_SOURCE, Consts.GetPackageVersion(Assembly.GetExecutingAssembly())); + + public LoggingCounter CreateCounter(string name, string? unit = null, string? description = null) + where T : struct => new(_meterSource.CreateCounter(name, unit, description)); + + public void Dispose() => _meterSource.Dispose(); +} + +public readonly struct LoggingCounter + where T : struct +{ + private readonly Counter _counter; + + internal LoggingCounter(Counter counter) + { + _counter = counter; + } + + public void Add(T value) => _counter.Add(value); + + public void Add(T value, KeyValuePair tag) => _counter.Add(value, tag); + + public void Add(T value, KeyValuePair tag1, KeyValuePair tag2) => + _counter.Add(value, tag1, tag2); + + public void Add( + T value, + KeyValuePair tag1, + KeyValuePair tag2, + KeyValuePair tag3 + ) => _counter.Add(value, tag1, tag2, tag3); + + public void Add(T value, params KeyValuePair[] tags) => _counter.Add(value, tags); +} diff --git a/Sdk/Speckle.Connectors.Logging/Observability.cs b/Sdk/Speckle.Connectors.Logging/Observability.cs index 420e6798c..59405aed4 100644 --- a/Sdk/Speckle.Connectors.Logging/Observability.cs +++ b/Sdk/Speckle.Connectors.Logging/Observability.cs @@ -4,7 +4,7 @@ namespace Speckle.Connectors.Logging; public static class Observability { - public static (LoggerProvider, IDisposable?) Initialize( + public static (LoggerProvider, IDisposable, IDisposable) Initialize( string applicationAndVersion, string slug, string connectorVersion, @@ -19,6 +19,7 @@ SpeckleObservability observability resourceBuilder ); var tracing = TracingBuilder.Initialize(observability.Tracing, resourceBuilder); - return (logging, tracing); + var metrics = MetricsBuilder.Initialize(observability.Metrics, resourceBuilder); + return (logging, tracing, metrics); } } diff --git a/Sdk/Speckle.Connectors.Logging/Speckle.Connectors.Logging.csproj b/Sdk/Speckle.Connectors.Logging/Speckle.Connectors.Logging.csproj index 2b5a3b2bb..e3100f21b 100644 --- a/Sdk/Speckle.Connectors.Logging/Speckle.Connectors.Logging.csproj +++ b/Sdk/Speckle.Connectors.Logging/Speckle.Connectors.Logging.csproj @@ -21,6 +21,5 @@ - diff --git a/Sdk/Speckle.Connectors.Logging/SpeckleObservability.cs b/Sdk/Speckle.Connectors.Logging/SpeckleObservability.cs index 9f98f5ebc..ba14a59ec 100644 --- a/Sdk/Speckle.Connectors.Logging/SpeckleObservability.cs +++ b/Sdk/Speckle.Connectors.Logging/SpeckleObservability.cs @@ -4,23 +4,56 @@ namespace Speckle.Connectors.Logging; /// Configuration object for the Speckle logging system. /// -public record SpeckleObservability(SpeckleLogging? Logging = null, SpeckleTracing? Tracing = null); +public record SpeckleObservability( + SpeckleLogging? Logging = null, + SpeckleTracing? Tracing = null, + SpeckleMetrics? Metrics = null +); public record SpeckleLogging( SpeckleLogLevel MinimumLevel = SpeckleLogLevel.Warning, bool Console = true, SpeckleFileLogging? File = null, - SpeckleOtelLogging? Otel = null -); + IEnumerable? Otel = null +) +{ + public SpeckleLogging( + SpeckleLogLevel minimumLevel = SpeckleLogLevel.Warning, + bool console = true, + SpeckleFileLogging? file = null, + SpeckleOtelLogging? otel = null + ) + : this(minimumLevel, console, file, otel is null ? null : [otel]) { } +} public record SpeckleFileLogging(string? Path = null, bool Enabled = true); -public record SpeckleOtelLogging(string Endpoint, bool Enabled = true, Dictionary? Headers = null); +public record SpeckleOtelLogging( + string? Endpoint = null, + bool Enabled = true, + Dictionary? Headers = null +); -public record SpeckleTracing(bool Console = false, SpeckleOtelTracing? Otel = null); +public record SpeckleTracing(bool Console = false, IEnumerable? Otel = null) +{ + public SpeckleTracing(bool console = true, SpeckleOtelTracing? otel = null) + : this(console, otel is null ? null : [otel]) { } +} public record SpeckleOtelTracing( string? Endpoint = null, bool Enabled = true, Dictionary? Headers = null ); + +public record SpeckleMetrics(bool Console = false, IEnumerable? Otel = null) +{ + public SpeckleMetrics(bool console = true, SpeckleOtelMetrics? otel = null) + : this(console, otel is null ? null : [otel]) { } +} + +public record SpeckleOtelMetrics( + string? Endpoint = null, + bool Enabled = true, + Dictionary? Headers = null +); diff --git a/Sdk/Speckle.Connectors.Logging/packages.lock.json b/Sdk/Speckle.Connectors.Logging/packages.lock.json index e54d19b96..21def2c52 100644 --- a/Sdk/Speckle.Connectors.Logging/packages.lock.json +++ b/Sdk/Speckle.Connectors.Logging/packages.lock.json @@ -127,17 +127,6 @@ "Serilog": "4.0.0" } }, - "Serilog.Sinks.OpenTelemetry": { - "type": "Direct", - "requested": "[4.0.0, )", - "resolved": "4.0.0", - "contentHash": "M4WKDojg8a+msY5qhNGg5PYZ9ZVelcqipkP/CrfDAOvGCZ3MYj+cGXgnTanffYyIoC2onabaOtydqW6lqT/P/w==", - "dependencies": { - "Google.Protobuf": "3.26.1", - "Grpc.Net.Client": "2.62.0", - "Serilog": "4.0.0" - } - }, "Speckle.InterfaceGenerator": { "type": "Direct", "requested": "[0.9.6, )", @@ -146,8 +135,8 @@ }, "Google.Protobuf": { "type": "Transitive", - "resolved": "3.26.1", - "contentHash": "CHZX8zXqhF/fdUtd+AYzew8T2HFkAoe5c7lbGxZY/qryAlQXckDvM5BfOJjXlMS7kyICqQTMszj4w1bX5uBJ/w==", + "resolved": "3.22.5", + "contentHash": "tTMtDZPbLxJew8pk7NBdqhLqC4OipfkZdwPuCEUNr2AoDo1siUGcxFqJK0wDewTL8ge5Cjrb16CToMPxBUHMGA==", "dependencies": { "System.Memory": "4.5.3", "System.Runtime.CompilerServices.Unsafe": "4.5.2" @@ -172,30 +161,12 @@ }, "Grpc.Core.Api": { "type": "Transitive", - "resolved": "2.62.0", - "contentHash": "q4Jj6bRZHNnE4CMLqgjiBUCKLit+tRr0simZsS2W6U++akd7CzXByeKy2tddqT68hFzP2XzceXA2YtBTfWtixA==", + "resolved": "2.44.0", + "contentHash": "FBfPMvKwT8q98T8lWa5z6nBMLdH/Mmo5g4yyYYMvbXLWDzo4beqa7CUU5QH3PKvo2X6/b+UAZ2IymXlrYG3IXg==", "dependencies": { "System.Memory": "4.5.3" } }, - "Grpc.Net.Client": { - "type": "Transitive", - "resolved": "2.62.0", - "contentHash": "C7HxLt+wWPTpPFORRHkxxtDLL+K/jXSmZBaPLhFM8AEkN0bYjklIfCwnzajn1gcbRcEETBb0WnRgHJdVzpwbCg==", - "dependencies": { - "Grpc.Net.Common": "2.62.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.1" - } - }, - "Grpc.Net.Common": { - "type": "Transitive", - "resolved": "2.62.0", - "contentHash": "eBv5I4RPWfdezGXqooU5hs3+XcfVMLk5XDlA4G/Nd9TMX78ZGrFl/lM1Ad187zgBLmH7WPAgfjKRWLBwaa1Wbw==", - "dependencies": { - "Grpc.Core.Api": "2.62.0" - } - }, "ILRepack": { "type": "Transitive", "resolved": "2.0.33", diff --git a/Sdk/Speckle.Connectors.Tests/ActivityScopeTests.cs b/Sdk/Speckle.Connectors.Tests/ActivityScopeTests.cs new file mode 100644 index 000000000..3305d84f4 --- /dev/null +++ b/Sdk/Speckle.Connectors.Tests/ActivityScopeTests.cs @@ -0,0 +1,16 @@ +using FluentAssertions; +using NUnit.Framework; + +namespace Speckle.Connectors.Tests; + +public class ActivityScopeTests +{ + [Test] + public async Task TestAsyncLocal() + { + Logging.ActivityScope.SetTag("test", "me"); + await Task.Delay(10).ConfigureAwait(false); + Logging.ActivityScope.Tags.ContainsKey("test").Should().BeTrue(); + Logging.ActivityScope.Tags["test"].Should().Be("me"); + } +} diff --git a/Sdk/Speckle.Connectors.Tests/packages.lock.json b/Sdk/Speckle.Connectors.Tests/packages.lock.json index d649fb22e..89be98716 100644 --- a/Sdk/Speckle.Connectors.Tests/packages.lock.json +++ b/Sdk/Speckle.Connectors.Tests/packages.lock.json @@ -342,8 +342,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )", - "Speckle.Sdk": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.logging": { @@ -385,18 +385,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Sdk/Speckle.Converters.Common.Tests/packages.lock.json b/Sdk/Speckle.Converters.Common.Tests/packages.lock.json index a1ee4801e..f87ed6f29 100644 --- a/Sdk/Speckle.Converters.Common.Tests/packages.lock.json +++ b/Sdk/Speckle.Converters.Common.Tests/packages.lock.json @@ -350,7 +350,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.158, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.testing": { @@ -380,18 +380,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Sdk/Speckle.Converters.Common/FileOps/TempFileProvider.cs b/Sdk/Speckle.Converters.Common/FileOps/TempFileProvider.cs new file mode 100644 index 000000000..6d627e151 --- /dev/null +++ b/Sdk/Speckle.Converters.Common/FileOps/TempFileProvider.cs @@ -0,0 +1,24 @@ +namespace Speckle.Converters.Common.FileOps; + +public static class TempFileProvider // note should be in connector, and connector should nuke its folder on startup +{ + public static string GetTempFile(string appSlug, string extension) + { + var folderPath = GetTempFolderPath(appSlug); + var filePath = Path.Combine(folderPath, $"{Guid.NewGuid():N}.{extension}"); + return filePath; + } + + public static void CleanTempFolder(string appSlug) // note, not used? + { + var folderPath = GetTempFolderPath(appSlug); + Directory.Delete(folderPath, true); + } + + private static string GetTempFolderPath(string appSlug) + { + var folderPath = Path.Combine(Path.GetTempPath(), "Speckle", appSlug); + Directory.CreateDirectory(folderPath); + return folderPath; + } +} diff --git a/Sdk/Speckle.Converters.Common/packages.lock.json b/Sdk/Speckle.Converters.Common/packages.lock.json index 0d013b54a..04a7d94ad 100644 --- a/Sdk/Speckle.Converters.Common/packages.lock.json +++ b/Sdk/Speckle.Converters.Common/packages.lock.json @@ -50,11 +50,11 @@ }, "Speckle.Objects": { "type": "Direct", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "+YwCWAlEOVU3lgTCdf5TgrQkF4wTSTjcUbino/GpvG+4uzSwzVKQbEzK7LlO6N2y0h7R2jTwpIfeIbNxWk+Ppw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.158" + "Speckle.Sdk": "3.1.0-dev.162" } }, "GraphQL.Client": { @@ -319,9 +319,9 @@ }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.158, )", - "resolved": "3.1.0-dev.158", - "contentHash": "BvDSteT6AZJhjfcaGOI6UdMhqDBelAF9unY/Kks+LUXBqCnNuST9QQdOjvpI6tmBAUIpUZ81yldm2keJuaQErg==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0",