Compare commits

..

1 Commits

Author SHA1 Message Date
Claire Kuang 2cb7211734 Merge pull request #1009 from specklesystems/dev
.NET Build and Publish / build-windows (push) Has been cancelled
.NET Build and Publish / build-linux (push) Has been cancelled
.NET Build and Publish / deploy-installers (push) Has been cancelled
dev to main
2025-07-30 12:42:01 +01:00
123 changed files with 1190 additions and 2732 deletions
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -292,7 +292,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -336,18 +336,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -357,14 +357,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -292,7 +292,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -336,18 +336,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -357,14 +357,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -293,7 +293,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -337,18 +337,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -358,14 +358,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -210,9 +210,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -244,7 +244,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -288,18 +288,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -307,14 +307,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
},
"net8.0-windows7.0/win-x64": {
@@ -210,9 +210,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -244,7 +244,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -288,18 +288,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -307,14 +307,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
},
"net8.0-windows7.0/win-x64": {
@@ -3,15 +3,6 @@
<PropertyGroup Label="Globals">
<ProjectGuid>{41BC679F-887F-44CF-971D-A5502EE87DB0}</ProjectGuid>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Local|AnyCPU' ">
<OutputPath>bin\Local\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\Release\</OutputPath>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"
Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')"/>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props"/>
@@ -268,9 +268,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -302,7 +302,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -346,18 +346,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -367,14 +367,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -268,9 +268,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -302,7 +302,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -346,18 +346,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -367,14 +367,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -268,9 +268,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -302,7 +302,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -346,18 +346,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -367,14 +367,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -219,9 +219,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -254,7 +254,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -298,18 +298,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -317,14 +317,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
},
"net8.0-windows7.0/win-x64": {
@@ -219,9 +219,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -254,7 +254,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -298,18 +298,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -317,14 +317,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
},
"net8.0-windows7.0/win-x64": {
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -285,7 +285,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.etabs21": {
@@ -335,18 +335,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -356,14 +356,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -210,9 +210,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -236,7 +236,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.etabs22": {
@@ -286,18 +286,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -305,14 +305,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -285,7 +285,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.navisworks2020": {
@@ -337,18 +337,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -358,14 +358,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
},
".NETFramework,Version=v4.8/win-x64": {
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -285,7 +285,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.navisworks2021": {
@@ -337,18 +337,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -358,14 +358,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
},
".NETFramework,Version=v4.8/win-x64": {
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -285,7 +285,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.navisworks2022": {
@@ -337,18 +337,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -358,14 +358,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
},
".NETFramework,Version=v4.8/win-x64": {
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -285,7 +285,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.navisworks2023": {
@@ -337,18 +337,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -358,14 +358,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
},
".NETFramework,Version=v4.8/win-x64": {
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -285,7 +285,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.navisworks2024": {
@@ -337,18 +337,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -358,14 +358,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
},
".NETFramework,Version=v4.8/win-x64": {
@@ -265,9 +265,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -291,7 +291,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.navisworks2025": {
@@ -337,18 +337,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -358,14 +358,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
},
".NETFramework,Version=v4.8/win-x64": {
@@ -266,9 +266,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -292,7 +292,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.navisworks2026": {
@@ -339,18 +339,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -360,14 +360,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
},
".NETFramework,Version=v4.8/win-x64": {
@@ -73,7 +73,6 @@ public class NavisworksSendBinding : ISendBinding
new IncludeInternalPropertiesSetting(false),
new ConvertHiddenElementsSetting(false),
new PreserveModelHierarchySetting(false),
new RevitCategoryMappingSetting(false)
];
public async Task Send(string modelCardId) =>
@@ -94,8 +93,7 @@ public class NavisworksSendBinding : ISendBinding
visualRepresentationMode: _toSpeckleSettingsManagerNavisworks.GetVisualRepresentationMode(modelCard),
convertHiddenElements: _toSpeckleSettingsManagerNavisworks.GetConvertHiddenElements(modelCard),
includeInternalProperties: _toSpeckleSettingsManagerNavisworks.GetIncludeInternalProperties(modelCard),
preserveModelHierarchy: _toSpeckleSettingsManagerNavisworks.GetPreserveModelHierarchy(modelCard),
mappingToRevitCategories: _toSpeckleSettingsManagerNavisworks.GetMappingToRevitCategories(modelCard)
preserveModelHierarchy: _toSpeckleSettingsManagerNavisworks.GetPreserveModelHierarchy(modelCard)
)
);
@@ -1,12 +0,0 @@
using Speckle.Connectors.DUI.Settings;
namespace Speckle.Connector.Navisworks.Operations.Send.Settings;
public class RevitCategoryMappingSetting(bool value) : ICardSetting
{
public string? Id { get; set; } = "mappingToRevitCategories";
public string? Title { get; set; } = "Map to Revit Categories";
public string? Type { get; set; } = "boolean";
public List<string>? Enum { get; set; }
public object? Value { get; set; } = value;
}
@@ -18,7 +18,6 @@ public class ToSpeckleSettingsManagerNavisworks : IToSpeckleSettingsManagerNavis
private readonly Dictionary<string, bool?> _convertHiddenElementsCache = [];
private readonly Dictionary<string, bool?> _includeInternalPropertiesCache = [];
private readonly Dictionary<string, bool?> _preserveModelHierarchyCache = [];
private readonly Dictionary<string, bool?> _revitCategoryMappingCache = [];
public ToSpeckleSettingsManagerNavisworks(ISendConversionCache sendConversionCache)
{
@@ -79,28 +78,6 @@ public class ToSpeckleSettingsManagerNavisworks : IToSpeckleSettingsManagerNavis
return origin;
}
public bool GetMappingToRevitCategories(SenderModelCard modelCard)
{
if (modelCard == null)
{
throw new ArgumentNullException(nameof(modelCard));
}
var value = modelCard.Settings?.FirstOrDefault(s => s.Id == "mappingToRevitCategories")?.Value as bool?;
var returnValue = value != null && value.NotNull();
if (_revitCategoryMappingCache.TryGetValue(modelCard.ModelCardId.NotNull(), out var previousValue))
{
if (previousValue != returnValue)
{
EvictCacheForModelCard(modelCard);
}
}
_revitCategoryMappingCache[modelCard.ModelCardId] = returnValue;
return returnValue;
}
public bool GetConvertHiddenElements(SenderModelCard modelCard)
{
if (modelCard == null)
@@ -25,11 +25,10 @@
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\GeometryNodeMerger.cs"/>
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\NavisworksHierarchyBuilder.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\NavisworksRootObjectBuilder.cs"/>
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\Settings\ConvertHiddenElementsSetting.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\Settings\ConvertHiddenEleementsSetting.cs"/>
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\Settings\IncludeInternalPropertiesSetting.cs"/>
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\Settings\OriginModeSetting.cs"/>
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\Settings\PreserveModelHierarchySetting.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\Settings\RevitCategoryMapping.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\Settings\ToSpeckleSettingsManagerNavisworks.cs"/>
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\Settings\VisualRepresentationSetting.cs"/>
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\Filters\NavisworksSelectionFilter.cs"/>
@@ -281,9 +281,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -306,7 +306,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.revit2022": {
@@ -351,11 +351,11 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Revit.API": {
@@ -366,9 +366,9 @@
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -378,14 +378,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -281,9 +281,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -306,7 +306,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.revit2023": {
@@ -351,11 +351,11 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Revit.API": {
@@ -366,9 +366,9 @@
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -378,14 +378,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -281,9 +281,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -306,7 +306,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.revit2024": {
@@ -351,11 +351,11 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Revit.API": {
@@ -366,9 +366,9 @@
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -378,14 +378,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -226,9 +226,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -251,7 +251,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.revit2025": {
@@ -296,11 +296,11 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Revit.API": {
@@ -311,9 +311,9 @@
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -321,14 +321,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
},
"net8.0-windows7.0/win-x64": {
@@ -219,9 +219,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -244,7 +244,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.revit2026": {
@@ -280,11 +280,11 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Revit.API": {
@@ -295,9 +295,9 @@
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -305,14 +305,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
},
"net8.0-windows7.0/win-x64": {
@@ -38,10 +38,6 @@ public class RevitThreadContext : ThreadContext
return default;
}
});
if (ex is OperationCanceledException operation)
{
throw operation;
}
if (ex is not null)
{
throw new SpeckleRevitTaskException(ex);
@@ -65,10 +61,6 @@ public class RevitThreadContext : ThreadContext
return default;
}
});
if (ex is OperationCanceledException operation)
{
throw operation;
}
if (ex is not null)
{
throw new SpeckleRevitTaskException(ex);
@@ -112,11 +104,6 @@ public class RevitThreadContext : ThreadContext
ex = e;
}
});
if (ex is OperationCanceledException operation)
{
throw operation;
}
if (ex is not null)
{
throw new SpeckleRevitTaskException(ex);
@@ -325,9 +325,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.logging": {
@@ -337,7 +337,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.rhino7": {
@@ -382,18 +382,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -403,14 +403,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -325,9 +325,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.logging": {
@@ -337,7 +337,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.rhino8": {
@@ -382,18 +382,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -403,14 +403,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -22,7 +22,7 @@ public class SpeckleOperationWizard
public Account? SelectedAccount { get; private set; }
public List<Account>? Accounts { get; }
public LimitedWorkspace? SelectedWorkspace { get; private set; }
public Workspace? SelectedWorkspace { get; private set; }
public Project? SelectedProject { get; private set; }
public Model? SelectedModel { get; private set; }
public Version? SelectedVersion { get; private set; }
@@ -416,17 +416,13 @@ public class SpeckleOperationWizard
{
return;
}
using IClient client = _clientFactory.Create(SelectedAccount);
var activeWorkspace = client.ActiveUser.GetActiveWorkspace().Result;
LimitedWorkspace? selectedWorkspace =
Workspace? selectedWorkspace =
SelectedWorkspace
?? activeWorkspace
?? (WorkspaceMenuHandler.Workspaces?.items.Count > 0 ? WorkspaceMenuHandler.Workspaces?.items[0] : null);
SelectedWorkspace = selectedWorkspace;
WorkspaceMenuHandler.RedrawMenuButton(SelectedWorkspace);
}
@@ -3,9 +3,9 @@ using Speckle.Sdk.Api.GraphQL.Models;
namespace Speckle.Connectors.GrasshopperShared.Components.Operations.Wizard;
public class WorkspaceSelectedEventArgs(LimitedWorkspace? model) : EventArgs
public class WorkspaceSelectedEventArgs(Workspace? model) : EventArgs
{
public LimitedWorkspace? SelectedWorkspace { get; } = model;
public Workspace? SelectedWorkspace { get; } = model;
}
public class WorkspaceMenuHandler
@@ -15,7 +15,7 @@ public class WorkspaceMenuHandler
public bool IsPersonalProjects { get; set; }
private SearchToolStripMenuItem? _searchItem;
private readonly Func<Task> _createWorkspace;
private LimitedWorkspace? SelectedWorkspace { get; set; }
private Workspace? SelectedWorkspace { get; set; }
public ResourceCollection<Workspace>? Workspaces { get; set; }
public Bitmap? Logo { get; private set; }
@@ -103,7 +103,7 @@ public class WorkspaceMenuHandler
);
}
private void OnWorkspaceSelected(LimitedWorkspace? workspace)
private void OnWorkspaceSelected(Workspace? workspace)
{
IsPersonalProjects = workspace == null;
_menu?.Close();
@@ -112,7 +112,7 @@ public class WorkspaceMenuHandler
WorkspaceSelected?.Invoke(this, new WorkspaceSelectedEventArgs(workspace));
}
public void RedrawMenuButton(LimitedWorkspace? workspace)
public void RedrawMenuButton(Workspace? workspace)
{
var suffix = WorkspaceContextMenuButton.Enabled
? "Left-click to select another workspace."
@@ -33,12 +33,11 @@ public class PriorityLoader : GH_AssemblyPriority
public static IServiceScope CreateScopeForActiveDocument()
{
// NOTE: introduction of AddVisualizationProperties setting not accounted for in GH, hence hardcoded as true (i.e. "as before")
var scope = Container.CreateScope();
var rhinoConversionSettingsFactory = scope.ServiceProvider.GetRequiredService<IRhinoConversionSettingsFactory>();
scope
.ServiceProvider.GetRequiredService<IConverterSettingsStore<RhinoConversionSettings>>()
.Initialize(rhinoConversionSettingsFactory.Create(RhinoDoc.ActiveDoc, true));
.Initialize(rhinoConversionSettingsFactory.Create(RhinoDoc.ActiveDoc));
return scope;
}
@@ -306,9 +306,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -341,7 +341,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.rhino7": {
@@ -401,18 +401,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -422,14 +422,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
},
"System.Resources.Extensions": {
"type": "CentralTransitive",
@@ -306,9 +306,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -341,7 +341,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"speckle.converters.rhino8": {
@@ -401,18 +401,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -422,14 +422,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
},
"System.Resources.Extensions": {
"type": "CentralTransitive",
@@ -1,370 +0,0 @@
{
"version": 2,
"dependencies": {
"net8.0-windows7.0": {
"Microsoft.NETFramework.ReferenceAssemblies": {
"type": "Direct",
"requested": "[1.0.3, )",
"resolved": "1.0.3",
"contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies.net461": "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=="
},
"RhinoCommon": {
"type": "Direct",
"requested": "[8.21.25188.17001, )",
"resolved": "8.21.25188.17001",
"contentHash": "Wo6JXheyDBvilyIwDY6xZCQJC4170jzAlTSlMgh8yokUY+vYyCl4KJVXZofIOynNt/xx5wLqb2On5gZZekXR6w==",
"dependencies": {
"System.Drawing.Common": "7.0.0"
}
},
"RhinoWindows": {
"type": "Direct",
"requested": "[8.21.25188.17001, )",
"resolved": "8.21.25188.17001",
"contentHash": "9zqCorcLRBeiW/j1RTwUS4E7bnZetAdA9WDdtd/AQccjOpxdtw76wdN+ciyQ6qslseWkwZ9qSBeh7QaM800Ntw==",
"dependencies": {
"RhinoCommon": "[8.21.25188.17001]"
}
},
"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.Data.Sqlite": {
"type": "Transitive",
"resolved": "7.0.5",
"contentHash": "KGxbPeWsQMnmQy43DSBxAFtHz3l2JX8EWBSGUCvT3CuZ8KsuzbkqMIJMDOxWtG8eZSoCDI04aiVQjWuuV8HmSw==",
"dependencies": {
"Microsoft.Data.Sqlite.Core": "7.0.5",
"SQLitePCLRaw.bundle_e_sqlite3": "2.1.4"
}
},
"Microsoft.Data.Sqlite.Core": {
"type": "Transitive",
"resolved": "7.0.5",
"contentHash": "FTerRmQPqHrCrnoUzhBu+E+1DNGwyrAMLqHkAqOOOu5pGfyMOj8qQUBxI/gDtWtG11p49UxSfWmBzRNlwZqfUg==",
"dependencies": {
"SQLitePCLRaw.core": "2.1.4"
}
},
"Microsoft.Extensions.Configuration": {
"type": "Transitive",
"resolved": "2.2.0",
"contentHash": "nOP8R1mVb/6mZtm2qgAJXn/LFm/2kMjHDAg/QJLFG6CuWYJtaD3p1BwQhufBVvRzL9ceJ/xF0SQ0qsI2GkDQAA==",
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "2.2.0"
}
},
"Microsoft.Extensions.Configuration.Abstractions": {
"type": "Transitive",
"resolved": "2.2.0",
"contentHash": "65MrmXCziWaQFrI0UHkQbesrX5wTwf9XPjY5yFm/VkgJKFJ5gqvXRoXjIZcf2wLi5ZlwGz/oMYfyURVCWbM5iw==",
"dependencies": {
"Microsoft.Extensions.Primitives": "2.2.0"
}
},
"Microsoft.Extensions.Configuration.Binder": {
"type": "Transitive",
"resolved": "2.2.0",
"contentHash": "vJ9xvOZCnUAIHcGC3SU35r3HKmHTVIeHzo6u/qzlHAqD8m6xv92MLin4oJntTvkpKxVX3vI1GFFkIQtU3AdlsQ==",
"dependencies": {
"Microsoft.Extensions.Configuration": "2.2.0"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"type": "Transitive",
"resolved": "2.2.0",
"contentHash": "f9hstgjVmr6rmrfGSpfsVOl2irKAgr1QjrSi3FgnS7kulxband50f2brRLwySAQTADPZeTdow0mpSMcoAdadCw=="
},
"Microsoft.Extensions.Options": {
"type": "Transitive",
"resolved": "2.2.0",
"contentHash": "UpZLNLBpIZ0GTebShui7xXYh6DmBHjWM8NxGxZbdQh/bPZ5e6YswqI+bru6BnEL5eWiOdodsXtEz3FROcgi/qg==",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0",
"Microsoft.Extensions.Primitives": "2.2.0",
"System.ComponentModel.Annotations": "4.5.0"
}
},
"Microsoft.Extensions.Primitives": {
"type": "Transitive",
"resolved": "2.2.0",
"contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==",
"dependencies": {
"System.Memory": "4.5.1",
"System.Runtime.CompilerServices.Unsafe": "4.5.1"
}
},
"Microsoft.NETFramework.ReferenceAssemblies.net461": {
"type": "Transitive",
"resolved": "1.0.3",
"contentHash": "AmOJZwCqnOCNp6PPcf9joyogScWLtwy0M1WkqfEQ0M9nYwyDD7EX9ZjscKS5iYnyvteX7kzSKFCKt9I9dXA6mA=="
},
"Microsoft.SourceLink.Common": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw=="
},
"Microsoft.Win32.SystemEvents": {
"type": "Transitive",
"resolved": "7.0.0",
"contentHash": "2nXPrhdAyAzir0gLl8Yy8S5Mnm/uBSQQA7jEsILOS1MTyS7DbmV1NgViMtvV1sfCD1ebITpNwb1NIinKeJgUVQ=="
},
"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.ComponentModel.Annotations": {
"type": "Transitive",
"resolved": "4.5.0",
"contentHash": "UxYQ3FGUOtzJ7LfSdnYSFd7+oEv6M8NgUatatIN2HxNtDdlcvFAf+VIq4Of9cDMJEJC0aSRv/x898RYhB4Yppg=="
},
"System.Drawing.Common": {
"type": "Transitive",
"resolved": "7.0.0",
"contentHash": "KIX+oBU38pxkKPxvLcLfIkOV5Ien8ReN78wro7OF5/erwcmortzeFx+iBswlh2Vz6gVne0khocQudGwaO1Ey6A==",
"dependencies": {
"Microsoft.Win32.SystemEvents": "7.0.0"
}
},
"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.Runtime.CompilerServices.Unsafe": {
"type": "Transitive",
"resolved": "4.5.1",
"contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw=="
},
"speckle.connectors.common": {
"type": "Project",
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1-rc.1, )",
"Speckle.Sdk": "[3.5.1-rc.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1-rc.1, )"
}
},
"speckle.connectors.dui": {
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Connectors.Common": "[1.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.converters.common": {
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1-rc.1, )"
}
},
"speckle.converters.rhino8": {
"type": "Project",
"dependencies": {
"Speckle.Converters.Common": "[1.0.0, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
"type": "CentralTransitive",
"requested": "[2.2.0, )",
"resolved": "2.2.0",
"contentHash": "MZtBIwfDFork5vfjpJdG5g8wuJFt7d/y3LOSVVtDK/76wlbtz6cjltfKHqLx2TKVqTj5/c41t77m1+h20zqtPA==",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0"
}
},
"Microsoft.Extensions.Logging": {
"type": "CentralTransitive",
"requested": "[2.2.0, )",
"resolved": "2.2.0",
"contentHash": "Nxqhadc9FCmFHzU+fz3oc8sFlE6IadViYg8dfUdGzJZ2JUxnCsRghBhhOWdM4B2zSZqEc+0BjliBh/oNdRZuig==",
"dependencies": {
"Microsoft.Extensions.Configuration.Binder": "2.2.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0",
"Microsoft.Extensions.Logging.Abstractions": "2.2.0",
"Microsoft.Extensions.Options": "2.2.0"
}
},
"Microsoft.Extensions.Logging.Abstractions": {
"type": "CentralTransitive",
"requested": "[2.2.0, )",
"resolved": "2.2.0",
"contentHash": "B2WqEox8o+4KUOpL7rZPyh6qYjik8tHi2tN8Z9jZkHzED8ElYgZa/h6K+xliB435SqUcWT290Fr2aa8BtZjn8A=="
},
"Microsoft.Web.WebView2": {
"type": "CentralTransitive",
"requested": "[1.0.1938.49, )",
"resolved": "1.0.1938.49",
"contentHash": "z8KnFnaTYzhA/ZnyRX0qGfS1NU5ZBJeClAH64F0fVDvdDJTvME7xl6zTJ0Jlfe1BtL3C0NH9xTy64shg2baKdw=="
},
"Speckle.DoubleNumerics": {
"type": "CentralTransitive",
"requested": "[4.1.0, )",
"resolved": "4.1.0",
"contentHash": "20DtS+FsDRsOD9+AU3TwNFZ0qrKo5f6f7B5ZR9wStsIHHHC9k7DpjbCvuNtmnSjx54MD+TJC7wV2f5iyGVPj1A=="
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1-rc.1, )",
"resolved": "3.5.1-rc.1",
"contentHash": "kkHlYdOdTuky7BvyU3fRayS5P/3E3EDQ6yBbwWqQqjGN3c/fozqI+20Xm87KJrkMb/9XpMfQxMfZX1n4UN80sA==",
"dependencies": {
"Speckle.Sdk": "3.5.1-rc.1"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1-rc.1, )",
"resolved": "3.5.1-rc.1",
"contentHash": "ZyNQI1IyWSAQ4Xc72v0WOeXon9BwtpIiw6wCIT7GrRjymSe5jXW/qMpG3YpBMccGPljCDZJFDmd87fKnWNRt3w==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
"Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0",
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1-rc.1"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1-rc.1, )",
"resolved": "3.5.1-rc.1",
"contentHash": "zDaocTPBFl2M5NkMsE9VqTLgbY7wy/MrE21JMBqOOcxHVtwDNOlSY9npBWDy8aAUEl6eJEKPoQr2B3Zd/RmJ9g=="
}
},
"net8.0-windows7.0/win-x64": {
"Microsoft.Win32.SystemEvents": {
"type": "Transitive",
"resolved": "7.0.0",
"contentHash": "2nXPrhdAyAzir0gLl8Yy8S5Mnm/uBSQQA7jEsILOS1MTyS7DbmV1NgViMtvV1sfCD1ebITpNwb1NIinKeJgUVQ=="
},
"SQLitePCLRaw.lib.e_sqlite3": {
"type": "Transitive",
"resolved": "2.1.4",
"contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg=="
},
"System.Drawing.Common": {
"type": "Transitive",
"resolved": "7.0.0",
"contentHash": "KIX+oBU38pxkKPxvLcLfIkOV5Ien8ReN78wro7OF5/erwcmortzeFx+iBswlh2Vz6gVne0khocQudGwaO1Ey6A==",
"dependencies": {
"Microsoft.Win32.SystemEvents": "7.0.0"
}
},
"Microsoft.Web.WebView2": {
"type": "CentralTransitive",
"requested": "[1.0.1938.49, )",
"resolved": "1.0.1938.49",
"contentHash": "z8KnFnaTYzhA/ZnyRX0qGfS1NU5ZBJeClAH64F0fVDvdDJTvME7xl6zTJ0Jlfe1BtL3C0NH9xTy64shg2baKdw=="
}
}
}
}
@@ -1,394 +0,0 @@
using Rhino;
using Rhino.DocObjects;
using Rhino.DocObjects.Tables;
using Speckle.Connectors.DUI.Bindings;
using Speckle.Connectors.DUI.Bridge;
using Speckle.Connectors.DUI.Models;
using Speckle.Connectors.Rhino.HostApp;
using Speckle.Connectors.Rhino.Mapper.Revit;
namespace Speckle.Connectors.Rhino.Bindings;
/// <summary>
/// Binding for managing Rhino object mappings to Revit categories.
/// </summary>
public class RhinoMapperBinding : IBinding
{
private const string MAPPINGS_CHANGED_EVENT = "mappingsChanged";
private const string LAYERS_CHANGED_EVENT = "layersChanged";
private readonly DocumentModelStore _store;
private readonly IAppIdleManager _idleManager;
private readonly IBasicConnectorBinding _basicConnectorBinding;
private readonly ITopLevelExceptionHandler _topLevelExceptionHandler;
private readonly RevitMappingResolver _revitMappingResolver;
private readonly RhinoLayerHelper _rhinoLayerHelper;
private readonly RhinoObjectHelper _rhinoObjectHelper;
public string Name => "revitMapperBinding";
public IBrowserBridge Parent { get; }
public RhinoMapperBinding(
DocumentModelStore store,
IAppIdleManager idleManager,
IBrowserBridge parent,
IBasicConnectorBinding basicConnectorBinding,
ITopLevelExceptionHandler topLevelExceptionHandler,
RevitMappingResolver revitMappingResolver,
RhinoLayerHelper rhinoLayerHelper,
RhinoObjectHelper rhinoObjectHelper
)
{
_store = store;
_idleManager = idleManager;
Parent = parent;
_basicConnectorBinding = basicConnectorBinding;
_topLevelExceptionHandler = topLevelExceptionHandler;
_revitMappingResolver = revitMappingResolver;
_rhinoLayerHelper = rhinoLayerHelper;
_rhinoObjectHelper = rhinoObjectHelper;
// Subscribe to Rhino events so we know about changes
// Events fire on delete, undo delete, add and modify objects
RhinoDoc.DeleteRhinoObject += OnObjectChanged;
RhinoDoc.UndeleteRhinoObject += OnObjectChanged;
RhinoDoc.AddRhinoObject += OnObjectChanged;
RhinoDoc.ModifyObjectAttributes += OnObjectAttributesChanged;
// Subscribe to layer events so we know about layer changes
RhinoDoc.LayerTableEvent += OnLayerTableEvent;
// Subscribe to document changes to refresh mappings when switching documents
_store.DocumentChanged += OnDocumentChanged;
}
#region UI Methods - General
/// <summary>
/// Gets list of available layers for the UI dropdown.
/// </summary>
public LayerOption[] GetAvailableLayers()
{
var doc = RhinoDoc.ActiveDoc;
if (doc == null)
{
return [];
}
return doc
.Layers.Where(layer => !layer.IsDeleted)
.Select(layer => new LayerOption(layer.Id.ToString(), _rhinoLayerHelper.GetFullLayerPath(layer)))
.OrderBy(layer => layer.Name)
.ToArray();
}
/// <summary>
/// Selects/highlights specific objects in Rhino.
/// </summary>
public async Task HighlightObjects(string[] objectIds) => await _basicConnectorBinding.HighlightObjects(objectIds);
#endregion
#region UI Methods - Object Mapping Methods
/// <summary>
/// Assigns selected objects to a specific Revit category.
/// </summary>
public void AssignObjectsToCategory(string[] objectIds, string categoryValue)
{
foreach (var objectIdString in objectIds)
{
// NOTE: should we be checking if key already exists?
// For POC, straightforward set on object
var rhinoObject = _rhinoObjectHelper.GetRhinoObject(objectIdString);
var attrs = rhinoObject?.Attributes.Duplicate();
attrs?.SetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY, categoryValue);
RhinoDoc.ActiveDoc.Objects.ModifyAttributes(rhinoObject, attrs, true);
}
// Trigger single update after all changes
_idleManager.SubscribeToIdle(nameof(NotifyMappingsChanged), NotifyMappingsChanged);
}
/// <summary>
/// Removes category assignments from specific objects.
/// </summary>
public void ClearObjectsCategoryAssignment(string[] objectIds)
{
foreach (var objectIdString in objectIds)
{
var rhinoObject = _rhinoObjectHelper.GetRhinoObject(objectIdString);
var attrs = rhinoObject?.Attributes.Duplicate();
attrs?.DeleteUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY);
RhinoDoc.ActiveDoc.Objects.ModifyAttributes(rhinoObject, attrs, true);
}
// Trigger single update after all changes
_idleManager.SubscribeToIdle(nameof(NotifyMappingsChanged), NotifyMappingsChanged);
}
/// <summary>
/// Removes all category assignments in the doc.
/// </summary>
public void ClearAllObjectsCategoryAssignments()
{
foreach (var rhinoObject in RhinoDoc.ActiveDoc.Objects)
{
if (!string.IsNullOrEmpty(rhinoObject.Attributes.GetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY)))
{
var attrs = rhinoObject.Attributes.Duplicate();
attrs.DeleteUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY);
RhinoDoc.ActiveDoc.Objects.ModifyAttributes(rhinoObject, attrs, true);
}
}
// Trigger single update
_idleManager.SubscribeToIdle(nameof(NotifyMappingsChanged), NotifyMappingsChanged);
}
/// <summary>
/// Gets all current mappings to show in the UI table.
/// </summary>
/// <returns></returns>
public CategoryMapping[] GetCurrentObjectsMappings()
{
var mappedObjects = RhinoDoc
.ActiveDoc.Objects.Where(obj =>
!string.IsNullOrEmpty(obj.Attributes.GetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY))
)
.GroupBy(obj => obj.Attributes.GetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY))
.Select(group => new CategoryMapping(
group.Key,
group.Key,
group.Select(obj => obj.Id.ToString()).ToArray(),
group.Count()
))
.ToArray();
return mappedObjects;
}
/// <summary>
/// Gets category mappings for specific object IDs.
/// </summary>
public string[] GetCategoryMappingsForObjects(string[] objectIds) =>
objectIds
.Select(id =>
_rhinoObjectHelper.GetRhinoObject(id)?.Attributes.GetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY)
)
.Where(category => category != null)
.Cast<string>()
.Distinct()
.ToArray();
#endregion
#region UI Methods - Layer Mapping Methods
/// <summary>
/// Assigns selected layers to a specific Revit category.
/// </summary>
public void AssignLayerToCategory(string[] layerIds, string categoryValue)
{
foreach (var layerId in layerIds)
{
var layer = _rhinoLayerHelper.GetLayer(layerId);
layer?.SetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY, categoryValue);
}
// Trigger single update
_idleManager.SubscribeToIdle(nameof(NotifyMappingsChanged), NotifyMappingsChanged);
}
/// <summary>
/// Removes category assignments from specific layer(s).
/// </summary>
public void ClearLayerCategoryAssignment(string[] layerIds)
{
foreach (var layerId in layerIds)
{
// NOTE: clear user string by setting to null. Layer has not DeleteUserString() method 🙄
var layer = _rhinoLayerHelper.GetLayer(layerId);
layer?.SetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY, null);
}
// Trigger single update
_idleManager.SubscribeToIdle(nameof(NotifyMappingsChanged), NotifyMappingsChanged);
}
/// <summary>
/// Removes all layer category assignments in the doc.
/// </summary>
public void ClearAllLayerCategoryAssignments()
{
foreach (var layer in RhinoDoc.ActiveDoc.Layers)
{
if (!string.IsNullOrEmpty(layer.GetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY)))
{
// NOTE: clear user string by setting to null. Layer has not DeleteUserString() method 🙄
layer.SetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY, null);
}
}
// Trigger single update
_idleManager.SubscribeToIdle(nameof(NotifyMappingsChanged), NotifyMappingsChanged);
}
/// <summary>
/// Gets all current layer mappings to show in the UI table.
/// Layers with the same category mapping are grouped together.
/// </summary>
public LayerCategoryMapping[] GetCurrentLayerMappings()
{
var mappedLayers = RhinoDoc
.ActiveDoc.Layers.Where(layer =>
!layer.IsDeleted && !string.IsNullOrEmpty(layer.GetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY))
)
.GroupBy(layer => layer.GetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY))
.Select(group => new LayerCategoryMapping(
group.Key,
group.Key,
group.Select(layer => layer.Id.ToString()).ToArray(),
group.Select(layer => _rhinoLayerHelper.GetFullLayerPath(layer)).ToArray(),
group.Count()
))
.ToArray();
return mappedLayers;
}
/// <summary>
/// Gets category mappings for specific layer IDs.
/// </summary>
public string[] GetCategoryMappingsForLayers(string[] layerIds) =>
layerIds
.Select(id => _rhinoLayerHelper.GetLayer(id)?.GetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY))
.Where(category => !string.IsNullOrEmpty(category))
.Cast<string>()
.Distinct()
.ToArray();
public string[] GetEffectiveObjectsForLayerMapping(string[] layerIds, string categoryValue) =>
_revitMappingResolver.GetEffectiveObjectsForLayerMapping(layerIds, categoryValue);
#endregion
#region Event Handling
/// <summary>
/// Called when objects are added, deleted, or undeleted in Rhino.
/// </summary>
private void OnObjectChanged(object? sender, RhinoObjectEventArgs e)
{
if (!_store.IsDocumentInit)
{
return;
}
var rhinoObject = e.TheObject;
if (!string.IsNullOrEmpty(rhinoObject.Attributes.GetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY)))
{
_idleManager.SubscribeToIdle(nameof(NotifyMappingsChanged), NotifyMappingsChanged);
}
}
/// <summary>
/// Called when object attributes are modified in Rhino.
/// </summary>
/// <remarks>
/// Includes detection for when objects move between layers with mappings.
/// </remarks>
private void OnObjectAttributesChanged(object? sender, RhinoModifyObjectAttributesEventArgs e)
{
if (!_store.IsDocumentInit)
{
return;
}
var rhinoObject = e.RhinoObject;
// check if mapping user string changed (added, removed, or modified)
var oldMapping = e.OldAttributes.GetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY);
var newMapping = rhinoObject.Attributes.GetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY);
bool mappingChanged = !string.Equals(oldMapping, newMapping, StringComparison.Ordinal);
// check if layer change affects mappings
bool hasOldLayerMapping = _rhinoLayerHelper.HasLayerMapping(e.OldAttributes.LayerIndex);
bool hasNewLayerMapping = _rhinoLayerHelper.HasLayerMapping(rhinoObject.Attributes.LayerIndex);
// refresh if mapping changed OR layer change affects mapped layers
if (mappingChanged || hasOldLayerMapping || hasNewLayerMapping)
{
_idleManager.SubscribeToIdle(nameof(NotifyMappingsChanged), NotifyMappingsChanged);
}
}
/// <summary>
/// Called when the document changes (e.g., switching to a different Rhino model).
/// Refreshes the mappings table and defined layers to reflect the new document's state.
/// </summary>
private void OnDocumentChanged(object? sender, EventArgs e)
{
if (!_store.IsDocumentInit)
{
return;
}
// Refresh mappings for the new document
_idleManager.SubscribeToIdle(nameof(NotifyMappingsChanged), NotifyMappingsChanged);
// Refresh layer list for the new document
_idleManager.SubscribeToIdle(nameof(NotifyLayersChanged), NotifyLayersChanged);
}
/// <summary>
/// Called when layer table events occur in Rhino.
/// Refreshes layer list when layer structure changes.
/// </summary>
/// <remarks>
/// Layer mapping changes are handled by OnObjectAttributesChanged
/// </remarks>
private void OnLayerTableEvent(object? sender, LayerTableEventArgs e) =>
_topLevelExceptionHandler.CatchUnhandled(() =>
{
if (!_store.IsDocumentInit)
{
return;
}
// Refresh layer list for structural changes
if (
e.EventType == LayerTableEventType.Added
|| e.EventType == LayerTableEventType.Deleted
|| e.EventType == LayerTableEventType.Modified
)
{
_idleManager.SubscribeToIdle(nameof(NotifyLayersChanged), NotifyLayersChanged);
}
// Refresh mappings when layers are deleted or modified
// This ensures that mappings table updates when mapped layers are removed
if (e.EventType == LayerTableEventType.Deleted || e.EventType == LayerTableEventType.Modified)
{
_idleManager.SubscribeToIdle(nameof(NotifyMappingsChanged), NotifyMappingsChanged);
}
});
/// <summary>
/// Sends updated mappings to the frontend.
/// </summary>
private void NotifyMappingsChanged()
{
var currentMappings = GetCurrentObjectsMappings();
Parent.Send(MAPPINGS_CHANGED_EVENT, currentMappings);
}
/// <summary>
/// Sends updated layer list to the frontend.
/// </summary>
private void NotifyLayersChanged()
{
var availableLayers = GetAvailableLayers();
Parent.Send(LAYERS_CHANGED_EVENT, availableLayers);
}
#endregion
}
@@ -24,7 +24,6 @@ public class RhinoReceiveBinding(
public async Task Receive(string modelCardId)
{
// NOTE: introduction of AddVisualizationProperties setting not accounted for in receive pipeline, hence hardcoded as true (i.e. "as before")
using var manager = receiveOperationManagerFactory.Create();
await manager.Process(
Commands,
@@ -32,7 +31,7 @@ public class RhinoReceiveBinding(
(sp, card) =>
{
sp.GetRequiredService<IConverterSettingsStore<RhinoConversionSettings>>()
.Initialize(rhinoConversionSettingsFactory.Create(RhinoDoc.ActiveDoc, true));
.Initialize(rhinoConversionSettingsFactory.Create(RhinoDoc.ActiveDoc));
},
async (modelName, processor) =>
{
@@ -13,9 +13,7 @@ using Speckle.Connectors.DUI.Models;
using Speckle.Connectors.DUI.Models.Card;
using Speckle.Connectors.DUI.Models.Card.SendFilter;
using Speckle.Connectors.DUI.Settings;
using Speckle.Connectors.Rhino.HostApp;
using Speckle.Connectors.Rhino.Operations.Send.Filters;
using Speckle.Connectors.Rhino.Operations.Send.Settings;
using Speckle.Converters.Common;
using Speckle.Converters.Rhino;
using Speckle.Sdk.Common;
@@ -31,13 +29,11 @@ public sealed class RhinoSendBinding : ISendBinding
private readonly DocumentModelStore _store;
private readonly ICancellationManager _cancellationManager;
private readonly ISendConversionCache _sendConversionCache;
private readonly ToSpeckleSettingsManager _toSpeckleSettingsManager;
private readonly ILogger<RhinoSendBinding> _logger;
private readonly IRhinoConversionSettingsFactory _rhinoConversionSettingsFactory;
private readonly ITopLevelExceptionHandler _topLevelExceptionHandler;
private readonly IAppIdleManager _idleManager;
private readonly ISendOperationManagerFactory _sendOperationManagerFactory;
private readonly RhinoLayerHelper _rhinoLayerHelper;
/// <summary>
/// Used internally to aggregate the changed objects' id. Objects in this list will be reconverted.
@@ -63,25 +59,21 @@ public sealed class RhinoSendBinding : ISendBinding
IBrowserBridge parent,
ICancellationManager cancellationManager,
ISendConversionCache sendConversionCache,
ToSpeckleSettingsManager toSpeckleSettingsManager,
ILogger<RhinoSendBinding> logger,
IRhinoConversionSettingsFactory rhinoConversionSettingsFactory,
ITopLevelExceptionHandler topLevelExceptionHandler,
ISendOperationManagerFactory sendOperationManagerFactory,
RhinoLayerHelper rhinoLayerHelper
ISendOperationManagerFactory sendOperationManagerFactory
)
{
_store = store;
_idleManager = idleManager;
_cancellationManager = cancellationManager;
_sendConversionCache = sendConversionCache;
_toSpeckleSettingsManager = toSpeckleSettingsManager;
_logger = logger;
_rhinoConversionSettingsFactory = rhinoConversionSettingsFactory;
Parent = parent;
_topLevelExceptionHandler = topLevelExceptionHandler;
_sendOperationManagerFactory = sendOperationManagerFactory;
_rhinoLayerHelper = rhinoLayerHelper;
Commands = new SendBindingUICommands(parent); // POC: Commands are tightly coupled with their bindings, at least for now, saves us injecting a factory.
PreviousUnitSystem = RhinoDoc.ActiveDoc.ModelUnitSystem;
SubscribeToRhinoEvents();
@@ -279,9 +271,9 @@ public sealed class RhinoSendBinding : ISendBinding
}
public List<ISendFilter> GetSendFilters() =>
[new RhinoSelectionFilter() { IsDefault = true }, new RhinoLayersFilter(_rhinoLayerHelper)];
[new RhinoSelectionFilter() { IsDefault = true }, new RhinoLayersFilter()];
public List<ICardSetting> GetSendSettings() => [new AddVisualizationProperties(false)];
public List<ICardSetting> GetSendSettings() => [];
public async Task Send(string modelCardId)
{
@@ -290,14 +282,9 @@ public sealed class RhinoSendBinding : ISendBinding
await manager.Process(
Commands,
modelCardId,
(sp, card) =>
(sp, _) =>
sp.GetRequiredService<IConverterSettingsStore<RhinoConversionSettings>>()
.Initialize(
_rhinoConversionSettingsFactory.Create(
RhinoDoc.ActiveDoc,
_toSpeckleSettingsManager.GetAddVisualizationPropertiesSetting(card)
)
),
.Initialize(_rhinoConversionSettingsFactory.Create(RhinoDoc.ActiveDoc)),
card =>
{
return Task.FromResult<IReadOnlyList<RhinoObject>>(
@@ -1,6 +1,5 @@
using Rhino;
using Rhino.DocObjects;
using Speckle.Connectors.Rhino.Mapper.Revit;
using Speckle.Sdk;
namespace Speckle.Connectors.Rhino.HostApp.Properties;
@@ -10,24 +9,12 @@ namespace Speckle.Connectors.Rhino.HostApp.Properties;
/// </summary>
public class PropertiesExtractor
{
private readonly RevitMappingResolver _revitMappingResolver;
public PropertiesExtractor(RevitMappingResolver revitMappingResolver)
{
_revitMappingResolver = revitMappingResolver;
}
public Dictionary<string, object?> GetProperties(RhinoObject rhObject)
{
Dictionary<string, object?> properties = new();
var userStrings = rhObject.Attributes.GetUserStrings();
foreach (string? key in userStrings.AllKeys)
foreach (var key in userStrings.AllKeys)
{
if (key == null)
{
continue;
}
try
{
if (key == "$block-instance-original-object-id$") // skip: this seems to be an invisible user string that shows up on block instances
@@ -35,7 +22,7 @@ public class PropertiesExtractor
continue;
}
if (userStrings[key]?.StartsWith("%<") ?? false)
if (userStrings[key].StartsWith("%<"))
{
var value = RhinoApp.ParseTextField(userStrings[key], rhObject, null);
properties[key] = value;
@@ -50,16 +37,6 @@ public class PropertiesExtractor
properties[key] = userStrings[key];
}
// NOTE: if no mapping was found on the object, check layer(s) recursively
if (!properties.ContainsKey(RevitMappingConstants.CATEGORY_USER_STRING_KEY))
{
var layerMapping = _revitMappingResolver.SearchLayerHierarchyForMapping(rhObject);
if (!string.IsNullOrEmpty(layerMapping))
{
properties[RevitMappingConstants.CATEGORY_USER_STRING_KEY] = layerMapping;
}
}
return properties;
}
}
@@ -54,7 +54,7 @@ public class RhinoGroupBaker
Dictionary<string, IReadOnlyCollection<string>> applicationIdMap
)
{
if (applicationIdMap.TryGetValue(oldObjId, out IReadOnlyCollection<string>? value))
if (applicationIdMap.TryGetValue(oldObjId, out IReadOnlyCollection<string> value))
{
return value;
}
@@ -1,134 +0,0 @@
using Rhino;
using Rhino.DocObjects;
using Speckle.Connectors.Rhino.Mapper.Revit;
namespace Speckle.Connectors.Rhino.HostApp;
/// <summary>
/// Helper class for common Rhino layer and object operations.
/// Consolidates layer utilities to eliminate duplication across the codebase.
/// </summary>
public class RhinoLayerHelper
{
/// <summary>
/// Gets list of available layers for UI dropdowns.
/// </summary>
public LayerOption[] GetAvailableLayers()
{
var doc = RhinoDoc.ActiveDoc;
if (doc == null)
{
return [];
}
return doc
.Layers.Where(layer => !layer.IsDeleted)
.Select(layer => new LayerOption(layer.Id.ToString(), GetFullLayerPath(layer)))
.OrderBy(layer => layer.Name)
.ToArray();
}
/// <summary>
/// Gets the full layer path with / delimiter
/// </summary>
public string GetFullLayerPath(Layer layer)
{
string fullPath = layer.Name;
Guid parentIndex = layer.ParentLayerId;
while (parentIndex != Guid.Empty)
{
Layer? parentLayer = RhinoDoc.ActiveDoc.Layers.FindId(parentIndex);
if (parentLayer == null)
{
break;
}
fullPath = parentLayer.Name + "/" + fullPath; // use "/" delimiter
parentIndex = parentLayer.ParentLayerId;
}
return fullPath;
}
/// <summary>
/// Converts a string layer ID to a Layer.
/// </summary>
/// <returns>Layer if found and valid, null otherwise</returns>
public Layer? GetLayer(string layerIdString) =>
Guid.TryParse(layerIdString, out var layerId) ? RhinoDoc.ActiveDoc.Layers.FindId(layerId) : null;
/// <summary>
/// Helper to check if a layer (by index) has a category mapping.
/// </summary>
/// <remarks>
/// This is arguably a very specific method pertaining to mapper and maybe shouldn't be in this class?
/// </remarks>
public bool HasLayerMapping(int layerIndex)
{
if (layerIndex < 0 || layerIndex >= RhinoDoc.ActiveDoc.Layers.Count)
{
return false;
}
var layer = RhinoDoc.ActiveDoc.Layers[layerIndex];
return !string.IsNullOrEmpty(layer.GetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY));
}
/// <summary>
/// Gets all RhinoObjects in the specified layer and all its child layers recursively.
/// </summary>
public IEnumerable<RhinoObject> GetObjectsInLayerHierarchy(Layer rootLayer)
{
var allObjects = new List<RhinoObject>();
var layersToSearch = GetLayerAndAllChildren(rootLayer);
foreach (var layer in layersToSearch)
{
var objectsOnLayer = RhinoDoc.ActiveDoc.Objects.FindByLayer(layer);
allObjects.AddRange(objectsOnLayer);
}
return allObjects;
}
/// <summary>
/// Gets the specified layer and all its child layers recursively.
/// </summary>
public IEnumerable<Layer> GetLayerAndAllChildren(Layer rootLayer)
{
// Return the root layer itself
yield return rootLayer;
// Get all child layers recursively
foreach (var childLayer in GetAllChildLayers(rootLayer))
{
yield return childLayer;
}
}
/// <summary>
/// Recursively gets all child layers of the specified parent layer.
/// </summary>
public IEnumerable<Layer> GetAllChildLayers(Layer parentLayer)
{
var doc = RhinoDoc.ActiveDoc;
if (doc?.Layers == null)
{
yield break;
}
// Find all direct child layers
var directChildren = doc.Layers.Where(layer => layer.ParentLayerId == parentLayer.Id);
foreach (var childLayer in directChildren)
{
// Return the direct child
yield return childLayer;
// Recursively get grandchildren
foreach (var grandChild in GetAllChildLayers(childLayer))
{
yield return grandChild;
}
}
}
}
@@ -14,7 +14,6 @@ namespace Speckle.Connectors.Rhino.HostApp;
/// </summary>
public class RhinoLayerUnpacker
{
private readonly RhinoLayerHelper _rhinoLayerHelper;
private readonly Dictionary<int, Collection> _layerCollectionCache = new();
private static readonly string s_pathSeparator =
@@ -25,11 +24,6 @@ public class RhinoLayerUnpacker
#endif
private static readonly string[] s_pathSeparatorSplit = [s_pathSeparator];
public RhinoLayerUnpacker(RhinoLayerHelper rhinoLayerHelper)
{
_rhinoLayerHelper = rhinoLayerHelper;
}
/// <summary>
/// Use this method to get all of the layers that correspond to collection created in the root collection.
/// </summary>
@@ -37,16 +31,20 @@ public class RhinoLayerUnpacker
/// <exception cref="SpeckleException">Throws when a layer could not be retrieved from a stored collection application id</exception>
public IEnumerable<Layer> GetUsedLayers()
{
var currentDoc = RhinoDoc.ActiveDoc; // POC: too much right now to interface around
foreach (string layerId in _layerCollectionCache.Values.Select(o => o.applicationId ?? string.Empty).ToList())
{
var layer = _rhinoLayerHelper.GetLayer(layerId);
if (layer != null)
if (Guid.TryParse(layerId, out Guid layerGuid))
{
yield return layer;
}
else if (Guid.TryParse(layerId, out _))
{
throw new SpeckleException($"Could not retrieve layer with guid: {layerId}.");
if (currentDoc.Layers.FindId(layerGuid) is Layer layer)
{
yield return layer;
}
else
{
throw new SpeckleException($"Could not retrieve layer with guid: {layerId}.");
}
}
else
{
@@ -1,17 +0,0 @@
using Rhino;
using Rhino.DocObjects;
namespace Speckle.Connectors.Rhino.HostApp;
/// <summary>
/// Helper class for common Rhino object operations.
/// </summary>
public class RhinoObjectHelper
{
/// <summary>
/// Converts a string object ID to a RhinoObject.
/// </summary>
/// <returns>RhinoObject if found and valid, null otherwise</returns>
public RhinoObject? GetRhinoObject(string objectIdString) =>
Guid.TryParse(objectIdString, out var objectId) ? RhinoDoc.ActiveDoc.Objects.FindId(objectId) : null;
}
@@ -1,11 +0,0 @@
namespace Speckle.Connectors.Rhino.Mapper.Revit;
/// <summary>
/// Represents a group of objects that are all assigned to the same category.
/// </summary>
public record CategoryMapping(
string CategoryValue,
string CategoryLabel,
IReadOnlyList<string> ObjectIds,
int ObjectCount
);
@@ -1,12 +0,0 @@
namespace Speckle.Connectors.Rhino.Mapper.Revit;
/// <summary>
/// Represents layers that are all assigned to the same category.
/// </summary>
public record LayerCategoryMapping(
string CategoryValue,
string CategoryLabel,
IReadOnlyList<string> LayerIds,
IReadOnlyList<string> LayerNames,
int LayerCount
);
@@ -1,6 +0,0 @@
namespace Speckle.Connectors.Rhino.Mapper.Revit;
/// <summary>
/// Represents a layer option for the UI dropdown.
/// </summary>
public record LayerOption(string Id, string Name);
@@ -1,10 +0,0 @@
namespace Speckle.Connectors.Rhino.Mapper.Revit;
/// <summary>
/// Shared constants for the Rhino-to-Revit mapping system.
/// Centralizes string constant(s) to avoid duplication across three using classes.
/// </summary>
public static class RevitMappingConstants
{
public const string CATEGORY_USER_STRING_KEY = "builtInCategory";
}
@@ -1,113 +0,0 @@
using Rhino;
using Rhino.DocObjects;
using Speckle.Connectors.Rhino.HostApp;
namespace Speckle.Connectors.Rhino.Mapper.Revit;
/// <summary>
/// Responsible for resolving category mappings from layer hierarchy.
/// Used by the send pipeline to resolve mappings during property extraction.
/// </summary>
/// <remarks>
/// This gets called when no mapping found on the object level.
/// </remarks>
public class RevitMappingResolver
{
private readonly RhinoLayerHelper _rhinoLayerHelper;
public RevitMappingResolver(RhinoLayerHelper rhinoLayerHelper)
{
_rhinoLayerHelper = rhinoLayerHelper;
}
/// <summary>
/// Gets all objects that would effectively receive the specified layer mapping during send.
/// Takes into account hierarchical resolution - only returns objects that would actually
/// resolve to this specific category value through the layer hierarchy.
/// </summary>
public string[] GetEffectiveObjectsForLayerMapping(string[] layerIds, string categoryValue)
{
var effectiveObjects = new List<string>();
foreach (var layerId in layerIds)
{
var layer = _rhinoLayerHelper.GetLayer(layerId);
if (layer == null)
{
continue;
}
// Get all objects in this layer and its child layers
var allObjectsInHierarchy = _rhinoLayerHelper.GetObjectsInLayerHierarchy(layer);
foreach (var obj in allObjectsInHierarchy)
{
// Since we're in Layer mode, objects don't have direct mappings
// Check what category this object would actually resolve to through layer hierarchy
var resolvedCategory = SearchLayerHierarchyForMapping(obj);
// Only include if it resolves to THIS specific category
if (resolvedCategory == categoryValue)
{
effectiveObjects.Add(obj.Id.ToString());
}
}
}
return effectiveObjects.ToArray();
}
/// <summary>
/// Traverses layer hierarchy, returns first mapping found or null
/// </summary>
public string? SearchLayerHierarchyForMapping(RhinoObject rhinoObject)
{
// NOTE: we agreed on a hierarchical resolution strategy:
// - Object-level mappings have highest precedence
// - Layer-level mappings are fallback when no object mapping exists
// - Traverses layer hierarchy and stops at first mapping found
var layer = GetLayerByIndex(rhinoObject.Attributes.LayerIndex);
while (layer != null)
{
var layerMapping = layer.GetUserString(RevitMappingConstants.CATEGORY_USER_STRING_KEY);
if (!string.IsNullOrEmpty(layerMapping))
{
return layerMapping; // returns first mapping found
}
// move to parent layer
layer = GetParentLayer(layer);
}
return null;
}
/// <summary>
/// Gets a layer by its index from the active doc.
/// </summary>
private Layer? GetLayerByIndex(int layerIndex)
{
var doc = RhinoDoc.ActiveDoc;
if (doc?.Layers == null || layerIndex < 0 || layerIndex >= doc.Layers.Count)
{
return null;
}
return doc.Layers[layerIndex];
}
/// <summary>
/// Gets the parent layer of the given layer.
/// </summary>
private Layer? GetParentLayer(Layer layer)
{
if (layer.ParentLayerId == Guid.Empty)
{
return null; // no parent layer
}
var doc = RhinoDoc.ActiveDoc;
return doc?.Layers?.FindId(layer.ParentLayerId);
}
}
@@ -2,14 +2,11 @@ using Rhino;
using Rhino.DocObjects;
using Speckle.Connectors.DUI.Models.Card.SendFilter;
using Speckle.Connectors.DUI.Utils;
using Speckle.Connectors.Rhino.HostApp;
namespace Speckle.Connectors.Rhino.Operations.Send.Filters;
public class RhinoLayersFilter : DiscriminatedObject, ISendFilter
{
private readonly RhinoLayerHelper _rhinoLayerHelper;
public string Id { get; set; } = "rhinoLayers";
public string Name { get; set; } = "Layers";
public string Type { get; set; } = "Select";
@@ -22,10 +19,7 @@ public class RhinoLayersFilter : DiscriminatedObject, ISendFilter
public List<SendFilterSelectItem> SelectedItems { get; set; }
public List<SendFilterSelectItem> Items => GetFilterItems();
public RhinoLayersFilter(RhinoLayerHelper rhinoLayerHelper)
{
_rhinoLayerHelper = rhinoLayerHelper;
}
public RhinoLayersFilter() { }
public List<string> RefreshObjectIds()
{
@@ -38,11 +32,14 @@ public class RhinoLayersFilter : DiscriminatedObject, ISendFilter
foreach (var item in SelectedItems)
{
Layer? layer = _rhinoLayerHelper.GetLayer(item.Id);
if (layer != null)
if (Guid.TryParse(item.Id, out Guid layerId))
{
var objectIds = doc.Objects.FindByLayer(layer).Select(obj => obj.Id.ToString());
SelectedObjectIds.AddRange(objectIds);
Layer layer = doc.Layers.FindId(layerId);
if (layer != null)
{
var objectIds = doc.Objects.FindByLayer(layer).Select(obj => obj.Id.ToString());
SelectedObjectIds.AddRange(objectIds);
}
}
}
@@ -62,10 +59,28 @@ public class RhinoLayersFilter : DiscriminatedObject, ISendFilter
{
if (!layer.IsDeleted)
{
filterItems.Add(new SendFilterSelectItem(layer.Id.ToString(), _rhinoLayerHelper.GetFullLayerPath(layer)));
filterItems.Add(new SendFilterSelectItem(layer.Id.ToString(), GetFullLayerPath(layer)));
}
}
return filterItems;
}
private string GetFullLayerPath(Layer layer)
{
string fullPath = layer.Name;
Guid parentIndex = layer.ParentLayerId;
while (parentIndex != Guid.Empty)
{
Layer parentLayer = RhinoDoc.ActiveDoc.Layers.FindId(parentIndex);
if (parentLayer == null)
{
break;
}
fullPath = parentLayer.Name + "/" + fullPath;
parentIndex = parentLayer.ParentLayerId;
}
return fullPath;
}
}
@@ -1,12 +0,0 @@
using Speckle.Connectors.DUI.Settings;
namespace Speckle.Connectors.Rhino.Operations.Send.Settings;
public class AddVisualizationProperties(bool value) : ICardSetting
{
public string? Id { get; set; } = "addVisualizationProperties";
public string? Title { get; set; } = "Add visualization properties for meshes (will increase model size)";
public string? Type { get; set; } = "boolean";
public object? Value { get; set; } = value;
public List<string>? Enum { get; set; }
}
@@ -1,38 +0,0 @@
using Speckle.Connectors.Common.Caching;
using Speckle.Connectors.DUI.Models.Card;
using Speckle.Sdk.Common;
namespace Speckle.Connectors.Rhino.Operations.Send.Settings;
public class ToSpeckleSettingsManager
{
private readonly ISendConversionCache _sendConversionCache;
private readonly Dictionary<string, bool?> _addVisualizationPropertiesCache = [];
public ToSpeckleSettingsManager(ISendConversionCache sendConversionCache)
{
_sendConversionCache = sendConversionCache;
}
public bool GetAddVisualizationPropertiesSetting(SenderModelCard modelCard)
{
var value = modelCard.Settings?.First(s => s.Id == "addVisualizationProperties").Value as bool?;
var returnValue = value != null && value.NotNull();
if (_addVisualizationPropertiesCache.TryGetValue(modelCard.ModelCardId.NotNull(), out bool? previousValue))
{
if (previousValue != returnValue)
{
EvictCacheForModelCard(modelCard);
}
}
_addVisualizationPropertiesCache[modelCard.ModelCardId] = returnValue;
return returnValue;
}
private void EvictCacheForModelCard(SenderModelCard modelCard)
{
var objectIds = modelCard.SendFilter != null ? modelCard.SendFilter.NotNull().SelectedObjectIds : [];
_sendConversionCache.EvictObjects(objectIds);
}
}
@@ -17,10 +17,8 @@ using Speckle.Connectors.Rhino.Bindings;
using Speckle.Connectors.Rhino.Filters;
using Speckle.Connectors.Rhino.HostApp;
using Speckle.Connectors.Rhino.HostApp.Properties;
using Speckle.Connectors.Rhino.Mapper.Revit;
using Speckle.Connectors.Rhino.Operations.Receive;
using Speckle.Connectors.Rhino.Operations.Send;
using Speckle.Connectors.Rhino.Operations.Send.Settings;
using Speckle.Connectors.Rhino.Plugin;
using Speckle.Sdk.Models.GraphTraversal;
@@ -36,10 +34,10 @@ public static class ServiceRegistration
serviceCollection.AddSingleton<PlugIn>(SpeckleConnectorsRhinoPlugin.Instance);
serviceCollection.AddSingleton<Command>(SpeckleConnectorsRhinoCommand.Instance);
serviceCollection.AddDUI<DefaultThreadContext, RhinoDocumentStore>();
serviceCollection.AddDUIView();
}
serviceCollection.AddConnectors();
serviceCollection.AddDUIView();
// Register bindings
serviceCollection.AddSingleton<IBinding, TestBinding>();
@@ -52,15 +50,11 @@ public static class ServiceRegistration
serviceCollection.AddSingleton<IBinding, RhinoSelectionBinding>();
serviceCollection.AddSingleton<IBinding, RhinoSendBinding>();
serviceCollection.AddSingleton<IBinding, RhinoReceiveBinding>();
serviceCollection.AddSingleton<IBinding, RhinoMapperBinding>();
// register send filters
serviceCollection.AddScoped<ISendFilter, RhinoSelectionFilter>();
serviceCollection.AddScoped<IHostObjectBuilder, RhinoHostObjectBuilder>();
// register send settings
serviceCollection.AddScoped<ToSpeckleSettingsManager>();
// register send conversion cache
serviceCollection.AddSingleton<ISendConversionCache, SendConversionCache>();
serviceCollection.AddSingleton<IAppIdleManager, RhinoIdleManager>();
@@ -92,11 +86,6 @@ public static class ServiceRegistration
serviceCollection.AddScoped<RhinoColorUnpacker>();
serviceCollection.AddScoped<PropertiesExtractor>();
serviceCollection.AddScoped<RevitMappingResolver>();
// register helpers
serviceCollection.AddScoped<RhinoLayerHelper>();
serviceCollection.AddScoped<RhinoObjectHelper>();
// operation progress manager
serviceCollection.AddSingleton<IOperationProgressManager, OperationProgressManager>();
@@ -18,25 +18,15 @@
</ItemGroup>
<ItemGroup>
<Compile Include="$(MSBuildThisFileDirectory)Bindings\RhinoBasicConnectorBinding.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bindings\RhinoMapperBinding.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bindings\RhinoReceiveBinding.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bindings\RhinoSendBinding.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bindings\RhinoSelectionBinding.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Extensions\AttributeExtensions.cs" />
<Compile Include="$(MSBuildThisFileDirectory)HostApp\Properties\PropertiesExtractor.cs" />
<Compile Include="$(MSBuildThisFileDirectory)HostApp\RhinoIdleManager.cs" />
<Compile Include="$(MSBuildThisFileDirectory)HostApp\RhinoLayerHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)HostApp\RhinoObjectHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)HostApp\RhinoUtils.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mapper\Revit\LayerCategoryMapping.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mapper\Revit\LayerOption.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mapper\Revit\CategoryMapping.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mapper\Revit\RevitMappingConstants.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mapper\Revit\RevitMappingResolver.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\Filters\RhinoSelectionFilter.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\Filters\RhinoLayersFilter.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\Settings\AddVisualizationProperties.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Operations\Send\Settings\ToSpeckleSettingsManager.cs" />
<Compile Include="$(MSBuildThisFileDirectory)RhinoEvents.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Registration\ServiceRegistration.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Extensions\BoundingBox.cs" />
@@ -325,9 +325,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -360,7 +360,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"LibTessDotNet": {
@@ -410,18 +410,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -431,14 +431,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -406,9 +406,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -441,7 +441,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"LibTessDotNet": {
@@ -491,18 +491,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -512,14 +512,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -406,9 +406,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -441,7 +441,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"LibTessDotNet": {
@@ -491,18 +491,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -512,14 +512,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -258,7 +258,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -287,18 +287,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -308,14 +308,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -258,7 +258,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -287,18 +287,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -308,14 +308,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -285,7 +285,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -329,18 +329,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -350,14 +350,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -210,9 +210,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -236,7 +236,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -280,18 +280,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -299,14 +299,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -210,9 +210,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -236,7 +236,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -280,18 +280,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -299,14 +299,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -258,7 +258,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -287,18 +287,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -308,14 +308,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -209,7 +209,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -238,18 +238,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -257,14 +257,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -267,7 +267,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -296,18 +296,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -317,14 +317,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -267,7 +267,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -296,18 +296,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -317,14 +317,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -267,7 +267,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -296,18 +296,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -317,14 +317,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -219,9 +219,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -245,7 +245,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -289,18 +289,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -308,14 +308,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -219,9 +219,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -245,7 +245,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -289,18 +289,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -308,14 +308,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -278,7 +278,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -316,18 +316,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -337,14 +337,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -278,7 +278,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -316,18 +316,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -337,14 +337,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -278,7 +278,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -316,18 +316,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -337,14 +337,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -278,7 +278,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -316,18 +316,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -337,14 +337,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -278,7 +278,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -316,18 +316,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -337,14 +337,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -259,9 +259,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -278,7 +278,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -316,18 +316,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -337,14 +337,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -260,9 +260,9 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )",
"Speckle.Connectors.Logging": "[1.0.0, )",
"Speckle.Objects": "[3.5.1, )",
"Speckle.Sdk": "[3.5.1, )",
"Speckle.Sdk.Dependencies": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )",
"Speckle.Sdk": "[3.4.6, )",
"Speckle.Sdk.Dependencies": "[3.4.8, )"
}
},
"speckle.connectors.dui": {
@@ -279,7 +279,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -317,18 +317,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -338,14 +338,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.8",
"contentHash": "bNpJc2NBvjtJmdYS3xb6Fv4eqI/xZ2URXfWeXUFaWPMfC1QXLTjlK6iFriQk9ptLwr/dt4UPDPYYHOBynY1f2A=="
}
}
}
@@ -1,182 +0,0 @@
using static Speckle.Converter.Navisworks.Helpers.PropertyHelpers;
namespace Speckle.Converter.Navisworks.ToSpeckle;
public sealed class RevitBuiltInCategoryExtractor
{
private const int ANCESTOR_AND_SELF_COUNT = 4; // It seems like this is the maximum depth found needed in practice
private const string REVIT_CAT_GROUP = "LcRevitData_Element";
private const string REVIT_CAT_NAME = "LcRevitPropertyElementCategory";
internal const string DEFAULT_DICT_KEY = "builtInCategory";
/// <summary>
/// Attempts to map a Navisworks/Revit display category from the given model item or its ancestors
/// to a known Revit built-in category constant (e.g., "OST_Walls").
/// </summary>
internal static bool TryGetBuiltInCategory(
NAV.ModelItem item,
out string mapped,
int maxDepth = ANCESTOR_AND_SELF_COUNT
)
{
mapped = string.Empty;
// Look up the category value, starting at this item and walking up to maxDepth ancestors
var v = FindRevitCategoryInHierarchy(item, maxDepth);
if (v == null)
{
return false;
}
var name = ConvertPropertyValue(v, "")?.ToString();
if (string.IsNullOrWhiteSpace(name))
{
return false;
}
name = name?.Trim();
// Map display name to OST_* built-in category constant
var builtInCategory = DisplayNameToRevitBuiltInCategory(name);
if (string.Equals(builtInCategory, name, StringComparison.OrdinalIgnoreCase))
{
return false; // no mapping
}
mapped = builtInCategory;
return true;
}
/// <summary>
/// Walks up the model item hierarchy to find the first Revit element category property.
/// </summary>
private static NAV.VariantData? FindRevitCategoryInHierarchy(NAV.ModelItem modelItem, int maxDepth)
{
var current = modelItem;
// Walk up the model item hierarchy to find the first matching Revit category property
for (int i = 0; i < maxDepth && current != null; i++, current = current.Parent)
{
var val = current.PropertyCategories.FindPropertyByName(REVIT_CAT_GROUP, REVIT_CAT_NAME)?.Value;
if (val != null)
{
return val;
}
}
// No category property found in self or ancestors
return null;
}
// Mapping of Navisworks/Revit display category names (from the importer)
// to Revit BuiltInCategory constants. Case-insensitive.
// Note: Some mapped categories are not assignable via Revit DirectShape;
// the receiver will ignore them and apply its own fallback.
private static readonly Dictionary<string, string> s_revitCatMap =
new(StringComparer.OrdinalIgnoreCase)
{
// Architectural
["Walls"] = "OST_Walls",
["Floors"] = "OST_Floors",
["Roofs"] = "OST_Roofs",
["Ceilings"] = "OST_Ceilings",
["Doors"] = "OST_Doors",
["Windows"] = "OST_Windows",
["Curtain Panels"] = "OST_CurtainWallPanels",
["Curtain Wall Mullions"] = "OST_CurtainWallMullions",
["Wall Sweeps"] = "OST_Cornices",
["Hardscape"] = "OST_Hardscape",
["Site"] = "OST_Site",
["Parking"] = "OST_Parking",
["Toposolid"] = "OST_Toposolid",
["Levels"] = "OST_Levels",
["Lines"] = "OST_Lines",
["Center line"] = "OST_CenterLines",
["Center Line"] = "OST_CenterLines",
// Stairs & Railings
["Stairs"] = "OST_Stairs",
["Supports"] = "OST_Stairs",
["Runs"] = "OST_Stairs",
["Railings"] = "OST_StairsRailing",
["Handrails"] = "OST_RailingHandRail",
["Landings"] = "OST_StairsLandings",
["Vertical Circulation"] = "OST_VerticalCirculation",
// Structural
["Structural Connections"] = "OST_StructConnections",
["Structural Foundations"] = "OST_StructuralFoundation",
["Structural Columns"] = "OST_StructuralColumns",
["Structural Framing"] = "OST_StructuralFraming",
["Structural Loads"] = "OST_Loads",
["Structural Rebar"] = "OST_Rebar",
["Structural Fabric Areas"] = "OST_FabricAreas",
["Structural Fabric Reinforcement"] = "OST_FabricReinforcement",
["Boundary Conditions"] = "OST_BoundaryConditions",
["Slab Edges"] = "OST_EdgeSlab",
["Fascias"] = "OST_Fascia",
["Roof Soffits"] = "OST_RoofSoffit",
// MEP - HVAC
["Air Terminals"] = "OST_DuctTerminal",
["Duct Fittings"] = "OST_DuctFitting",
["Ducts"] = "OST_DuctCurves",
["Flex Ducts"] = "OST_FlexDuctCurves",
["Duct Accessories"] = "OST_DuctAccessory",
["Mechanical Equipment"] = "OST_MechanicalEquipment",
// MEP - Plumbing
["Plumbing Fixtures"] = "OST_PlumbingFixtures",
["Plumbing Equipment"] = "OST_PlumbingEquipment",
["Pipe Accessories"] = "OST_PipeAccessory",
["Pipe Fittings"] = "OST_PipeFitting",
["Pipes"] = "OST_PipeCurves",
["Flex Pipes"] = "OST_FlexPipeCurves",
["Pipe Insulations"] = "OST_PipeInsulations",
// MEP - Electrical
["Electrical Equipment"] = "OST_ElectricalEquipment",
["Electrical Fixtures"] = "OST_ElectricalFixtures",
["Lighting Fixtures"] = "OST_LightingFixtures",
["Lighting Devices"] = "OST_LightingDevices",
["Data Devices"] = "OST_DataDevices",
["Communication Devices"] = "OST_CommunicationDevices",
// MEP - Conduits & Cable Trays
["Conduit Fittings"] = "OST_ConduitFitting",
["Conduits"] = "OST_Conduit",
["Conduit Accessories"] = "OST_ConduitAccessory",
["Cable Tray Fittings"] = "OST_CableTrayFitting",
["Cable Trays"] = "OST_CableTray",
// Equipment & Furniture
["Casework"] = "OST_Casework",
["Specialty Equipment"] = "OST_SpecialityEquipment",
["Food Service Equipment"] = "OST_FoodServiceEquipment",
["Furniture"] = "OST_Furniture",
["Generic Models"] = "OST_GenericModel",
["Planting"] = "OST_Planting",
["Entourage"] = "OST_Entourage",
// Separations & Rooms
["<Space Separation>"] = "OST_MEPSpaceSeparationLines",
["<Room Separation>"] = "OST_RoomSeparationLines",
["Rooms"] = "OST_Rooms",
// Misc
["Ramps"] = "OST_Ramps"
};
/// <summary>
/// Maps a Navisworks/Revit display category name to a Revit BuiltInCategory.
/// Assumes importer emits canonical names. Case-insensitive lookup.
/// Returns the original name when no mapping exists.
/// </summary>
private static string DisplayNameToRevitBuiltInCategory(string displayName) =>
string.IsNullOrEmpty(displayName)
? displayName
: s_revitCatMap.TryGetValue(displayName, out var builtInCategory)
? builtInCategory
: displayName;
}
@@ -1,8 +1,4 @@
using Speckle.Converter.Navisworks.Helpers;
using Speckle.Converter.Navisworks.Settings;
using Speckle.Converters.Common;
namespace Speckle.Converter.Navisworks.ToSpeckle.PropertyHandlers;
namespace Speckle.Converter.Navisworks.ToSpeckle.PropertyHandlers;
/// <summary>
/// Handles property assignment with hierarchy merging for objects that require ancestor properties.
@@ -10,26 +6,14 @@ namespace Speckle.Converter.Navisworks.ToSpeckle.PropertyHandlers;
public class HierarchicalPropertyHandler(
PropertySetsExtractor propertySetsExtractor,
ModelPropertiesExtractor modelPropertiesExtractor,
ClassPropertiesExtractor classPropertiesExtractor,
IConverterSettingsStore<NavisworksConversionSettings> settingsStore
ClassPropertiesExtractor classPropertiesExtractor
) : BasePropertyHandler(propertySetsExtractor, modelPropertiesExtractor)
{
private static string PseudoClassPropertiesKey => "_pseudoClassProperties";
private readonly bool _mapRevit = settingsStore.Current.User.RevitCategoryMapping;
private string PseudoClassPropertiesKey => "_pseudoClassProperties";
public override Dictionary<string, object?> GetProperties(NAV.ModelItem modelItem)
{
var propertyDict = classPropertiesExtractor.GetClassProperties(modelItem) ?? [];
// Interop-lite mapping for Revit built-in categories
if (_mapRevit && RevitBuiltInCategoryExtractor.TryGetBuiltInCategory(modelItem, out var builtInCategory))
{
PropertyHelpers.AddPropertyIfNotNullOrEmpty(
propertyDict,
RevitBuiltInCategoryExtractor.DEFAULT_DICT_KEY,
builtInCategory
);
}
var propertyDict = classPropertiesExtractor.GetClassProperties(modelItem) ?? new Dictionary<string, object?>();
var hierarchy = GetObjectHierarchy(modelItem);
var propertyCollection = new Dictionary<string, Dictionary<string, HashSet<object?>>>();
@@ -35,13 +35,8 @@ public static class PropertyHelpers
}
};
internal static dynamic? ConvertPropertyValue(NAV.VariantData? value, string units)
internal static dynamic? ConvertPropertyValue(NAV.VariantData value, string units)
{
if (value == null)
{
return null;
}
if (s_typeHandlers.TryGetValue(value.DataType, out var handler))
{
return handler(value, units);
@@ -59,12 +54,10 @@ public static class PropertyHelpers
/// <param name="baseObject">The object to which the property is to be added. Can be either a Base object or a Dictionary.</param>
/// <param name="propertyName">The name of the property to add.</param>
/// <param name="value">The value of the property.</param>
internal static void AddPropertyIfNotNullOrEmpty(object baseObject, string propertyName, object? value)
internal static void AddPropertyIfNotNullOrEmpty(object baseObject, string propertyName, object value)
{
switch (value)
{
case null:
break; // Do not add null values
case string stringValue:
{
if (!string.IsNullOrEmpty(stringValue))
@@ -24,6 +24,5 @@ public record User(
RepresentationMode VisualRepresentationMode, // Specifies the visual representation mode.
bool CoalescePropertiesFromFirstObjectAncestor, // Whether to merge properties from the first object ancestor.
bool ExcludeProperties, // Whether to exclude properties from the output.
bool PreserveModelHierarchy, // Whether to maintain the full model hierarchy during conversion.
bool RevitCategoryMapping // Optional mapping to Revit categories (if applicable).
bool PreserveModelHierarchy // Whether to maintain the full model hierarchy during conversion.
);
@@ -45,8 +45,7 @@ public class NavisworksConversionSettingsFactory : INavisworksConversionSettings
RepresentationMode visualRepresentationMode,
bool convertHiddenElements,
bool includeInternalProperties,
bool preserveModelHierarchy,
bool mappingToRevitCategories
bool preserveModelHierarchy
)
{
_convertHiddenElements = convertHiddenElements;
@@ -87,8 +86,7 @@ public class NavisworksConversionSettingsFactory : INavisworksConversionSettings
VisualRepresentationMode: visualRepresentationMode,
CoalescePropertiesFromFirstObjectAncestor: false, // Not yet exposed in the UI
ExcludeProperties: false, // Not yet exposed in the UI
PreserveModelHierarchy: preserveModelHierarchy,
RevitCategoryMapping: mappingToRevitCategories
PreserveModelHierarchy: preserveModelHierarchy
)
);
}
@@ -13,7 +13,6 @@
<Compile Include="$(MSBuildThisFileDirectory)DataExtractors\DisplayValueExtractor.cs" />
<Compile Include="$(MSBuildThisFileDirectory)DataExtractors\ModelPropertiesExtractor.cs" />
<Compile Include="$(MSBuildThisFileDirectory)DataExtractors\PropertySetsExtractor.cs" />
<Compile Include="$(MSBuildThisFileDirectory)DataExtractors\RevitBuiltInCategoryExtractor.cs" />
<Compile Include="$(MSBuildThisFileDirectory)DataHandlers\BasePropertyHandler.cs" />
<Compile Include="$(MSBuildThisFileDirectory)DataHandlers\HierarchicalPropertyHandler.cs" />
<Compile Include="$(MSBuildThisFileDirectory)DataHandlers\IPropertyHandler.cs" />
@@ -258,7 +258,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -287,18 +287,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -308,14 +308,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -258,7 +258,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -287,18 +287,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -308,14 +308,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -258,7 +258,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -287,18 +287,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -308,14 +308,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -209,7 +209,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -238,18 +238,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -257,14 +257,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -209,7 +209,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -238,18 +238,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Data.Sqlite": "7.0.5",
@@ -257,14 +257,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -2,6 +2,7 @@ using Speckle.Converters.Common;
using Speckle.Converters.Common.Objects;
using Speckle.Converters.RevitShared.Settings;
using Speckle.DoubleNumerics;
using Speckle.Objects.Data;
using Speckle.Sdk.Common;
using Speckle.Sdk.Models;
using Speckle.Sdk.Models.Extensions;
@@ -34,15 +35,12 @@ public class LocalToGlobalToDirectShapeConverter
// NOTE: previously, builtInCategory was on the atomicObject level. this was subsequently moved to properties
string? category = null;
// NOTE: no longer limited to DataObject since the introduction of mapper
// The change from `if (target.atomicObject is DataObject dataObject)` is very hacky, but nothing else to do for now
// TODO: better define prop interfaces for different applications
if (
target.atomicObject["properties"] is Dictionary<string, object?> properties
&& properties.TryGetValue("builtInCategory", out var builtInCategory)
)
if (target.atomicObject is DataObject dataObject)
{
category = builtInCategory?.ToString();
if (dataObject.properties.TryGetValue("builtInCategory", out var builtInCategory))
{
category = builtInCategory?.ToString();
}
}
var dsCategory = DB.BuiltInCategory.OST_GenericModel;
@@ -11,7 +11,7 @@ public class ClassPropertiesExtractor
{
private readonly IConverterSettingsStore<RevitConversionSettings> _converterSettings;
private readonly Dictionary<int, string> _worksetCache = new();
private readonly Dictionary<DB.WorksetId, string> _worksetCache = new();
public ClassPropertiesExtractor(IConverterSettingsStore<RevitConversionSettings> converterSettings)
{
@@ -41,24 +41,20 @@ public class ClassPropertiesExtractor
Dictionary<string, object?> elementProperties =
new()
{
{ "elementId", element.Id.ToString() },
{ "elementId", element.Id.ToString()! },
{ "builtInCategory", element.Category?.GetBuiltInCategory().ToString() },
{ "worksetId", element.WorksetId?.ToString() }
{ "worksetId", element.WorksetId.ToString() }
};
int? worksetId = element.WorksetId?.IntegerValue;
if (worksetId is not null)
// get workset name
if (!_worksetCache.TryGetValue(element.WorksetId, out var worksetName))
{
// get workset name
if (!_worksetCache.TryGetValue(worksetId.Value, out var worksetName))
{
DB.Workset workset = _converterSettings.Current.Document.GetWorksetTable().GetWorkset(element.WorksetId);
worksetName = workset.Name;
_worksetCache[worksetId.Value] = worksetName;
}
elementProperties.Add("worksetName", worksetName);
DB.Workset workset = _converterSettings.Current.Document.GetWorksetTable().GetWorkset(element.WorksetId);
worksetName = workset.Name;
_worksetCache[element.WorksetId] = worksetName;
}
elementProperties.Add("worksetName", worksetName);
return elementProperties;
}
}
@@ -258,7 +258,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -287,18 +287,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -308,14 +308,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -258,7 +258,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )",
"Speckle.Objects": "[3.5.1, )"
"Speckle.Objects": "[3.4.6, )"
}
},
"Microsoft.Extensions.Logging": {
@@ -287,18 +287,18 @@
},
"Speckle.Objects": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "pBFTwdc49aQgE6Sho/9uYoqRRnkRyqEp9Sg+xBKWJ2i+XdKts91n//GgolUT2i9Xh46MJiZXgezWQx3ne6kr7w==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "JjCdW+gUWq7u1Tb5SlLaFCIYfmrMA9HbUzCdlSPDzyJkPuJFhwK3qKDwe4ggrAs7DuNuBhqL/VKCr/J29Wh2ng==",
"dependencies": {
"Speckle.Sdk": "3.5.1"
"Speckle.Sdk": "3.4.6"
}
},
"Speckle.Sdk": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "J//TnVqZ+RzvMoRu0x3HjVb+7rnYTRMCLQ0bN05fagl0UwyHYrc+Lwn19eyTPMnRoAQIFPXIdZjb2Yk7fyd0FA==",
"requested": "[3.4.6, )",
"resolved": "3.4.6",
"contentHash": "YBa/RuwvBbymjWGv7sD2TwMSLhSjz3GYPOGVJtZzBZvev/zDQNZozvIlre+Lk7xpT2KPdH1FRfLkPWyW+qonMA==",
"dependencies": {
"GraphQL.Client": "6.0.0",
"Microsoft.Bcl.AsyncInterfaces": "5.0.0",
@@ -308,14 +308,14 @@
"Microsoft.Extensions.Logging": "2.2.0",
"Speckle.DoubleNumerics": "4.1.0",
"Speckle.Newtonsoft.Json": "13.0.2",
"Speckle.Sdk.Dependencies": "3.5.1"
"Speckle.Sdk.Dependencies": "3.4.6"
}
},
"Speckle.Sdk.Dependencies": {
"type": "CentralTransitive",
"requested": "[3.5.1, )",
"resolved": "3.5.1",
"contentHash": "jNFvbO0CVzBKSGAPtN2J20aixChyqVetLSU/4TwjVERY8UJdbhbvoxYIalaBZoTSIXdQoHshNC7Ul1o6+vTCcA=="
"requested": "[3.4.8, )",
"resolved": "3.4.6",
"contentHash": "UHWMZ8zQt3wF3gXfPpEKe3T8Pxo4ZRN1LOp+vZnsnohO8HKt2gNfAY2to2YRnTXnybEKsgqzIJLe372EoIQJHg=="
}
}
}
@@ -5,9 +5,4 @@ namespace Speckle.Converters.Rhino;
/// <summary>
/// Represents the settings used for Rhino and Grasshopper conversions.
/// </summary>
public record RhinoConversionSettings(
RhinoDoc Document,
string SpeckleUnits,
bool ModelFarFromOrigin,
bool AddVisualizationProperties
);
public record RhinoConversionSettings(RhinoDoc Document, string SpeckleUnits, bool ModelFarFromOrigin);
@@ -12,13 +12,8 @@ public class RhinoConversionSettingsFactory(
{
public RhinoConversionSettings Current => settingsStore.Current;
public RhinoConversionSettings Create(RhinoDoc document, bool addVisualizationProperties) =>
new(
document,
unitsConverter.ConvertOrThrow(RhinoDoc.ActiveDoc.ModelUnitSystem),
ModelFarFromOrigin(),
addVisualizationProperties
);
public RhinoConversionSettings Create(RhinoDoc document) =>
new(document, unitsConverter.ConvertOrThrow(RhinoDoc.ActiveDoc.ModelUnitSystem), ModelFarFromOrigin());
/// <summary>
/// Quick check whether any of the objects in the scene might be located too far from origin and cause precision issues during meshing.
@@ -16,7 +16,7 @@ public class ArcToHostConverter : ITypedConverter<SOG.Arc, RG.Arc>, ITypedConver
)
{
_pointConverter = pointConverter;
_intervalConverter = intervalConverter;
this._intervalConverter = intervalConverter;
}
/// <summary>
@@ -1,64 +0,0 @@
using Rhino.DocObjects;
using Speckle.Converters.Common.Objects;
using Speckle.Sdk.Common.Exceptions;
namespace Speckle.Converters.Rhino.ToHost.Raw;
public class TextEntityToHostConverter : ITypedConverter<SA.Text, RG.TextEntity>
{
private readonly ITypedConverter<SOG.Plane, RG.Plane> _planeConverter;
public TextEntityToHostConverter(ITypedConverter<SOG.Plane, RG.Plane> planeConverter)
{
_planeConverter = planeConverter;
}
public RG.TextEntity Convert(SA.Text target)
{
RG.TextEntity result =
new()
{
Plane = _planeConverter.Convert(target.plane),
PlainText = target.value,
TextHeight = target.height,
TextOrientation = target.screenOriented ? TextOrientation.InView : TextOrientation.InPlane,
// text class does not have a scale prop.
// Scale is built in to the text height on publish, therefore a factor of 1 is always used here.
DimensionScale = 1.0,
TextHorizontalAlignment = GetTextHorizontalAlignment(target.alignmentH),
TextVerticalAlignment = GetTextVerticalAlignment(target.alignmentV),
};
// only set the max width if target has a non-null value.
// otherwise this will result in incorrectly wrapped text
if (target.maxWidth is double maxWidth)
{
result.FormatWidth = maxWidth;
result.TextIsWrapped = true;
}
return result;
}
private TextHorizontalAlignment GetTextHorizontalAlignment(SA.AlignmentHorizontal alignment)
{
return alignment switch
{
SA.AlignmentHorizontal.Left => TextHorizontalAlignment.Left,
SA.AlignmentHorizontal.Center => TextHorizontalAlignment.Center,
SA.AlignmentHorizontal.Right => TextHorizontalAlignment.Right,
_ => throw new ConversionException($"Unexpected horizontal alignment value found on text: {alignment}")
};
}
private TextVerticalAlignment GetTextVerticalAlignment(SA.AlignmentVertical alignment)
{
return alignment switch
{
SA.AlignmentVertical.Top => TextVerticalAlignment.Top,
SA.AlignmentVertical.Center => TextVerticalAlignment.Middle,
SA.AlignmentVertical.Bottom => TextVerticalAlignment.Bottom,
_ => throw new ConversionException($"Unexpected vertical alignment value found on text: {alignment}")
};
}
}
@@ -1,15 +0,0 @@
using Speckle.Converters.Common;
using Speckle.Converters.Common.Objects;
using Speckle.Converters.Rhino;
namespace Speckle.Converter.Rhino.ToHost.TopLevel;
[NameAndRankValue(typeof(SA.Text), NameAndRankValueAttribute.SPECKLE_DEFAULT_RANK)]
public class TextObjectToHostTopLevelConverter : SpeckleToHostGeometryBaseTopLevelConverter<SA.Text, RG.TextEntity>
{
public TextObjectToHostTopLevelConverter(
IConverterSettingsStore<RhinoConversionSettings> settingsStore,
ITypedConverter<SA.Text, RG.TextEntity> conversion
)
: base(settingsStore, conversion) { }
}
@@ -80,6 +80,14 @@ public class MeshToSpeckleConverter : ITypedConverter<RG.Mesh, SOG.Mesh>
}
}
var textureCoordinates = new double[target.TextureCoordinates.Count * 2];
x = 0;
foreach (var textureCoord in target.TextureCoordinates)
{
textureCoordinates[x++] = textureCoord.X;
textureCoordinates[x++] = textureCoord.Y;
}
var colors = new int[target.VertexColors.Count];
x = 0;
foreach (var c in target.VertexColors)
@@ -87,27 +95,13 @@ public class MeshToSpeckleConverter : ITypedConverter<RG.Mesh, SOG.Mesh>
colors[x++] = c.ToArgb();
}
// NOTE: textureCoordinates and vertexNormals will be empty array when setting is false
double[] textureCoordinates = [];
double[] vertexNormals = [];
if (_settingsStore.Current.AddVisualizationProperties)
var vertexNormals = new double[target.Normals.Count * 3];
x = 0;
foreach (var n in target.Normals)
{
textureCoordinates = new double[target.TextureCoordinates.Count * 2];
x = 0;
foreach (var textureCoord in target.TextureCoordinates)
{
textureCoordinates[x++] = textureCoord.X;
textureCoordinates[x++] = textureCoord.Y;
}
vertexNormals = new double[target.Normals.Count * 3];
x = 0;
foreach (var n in target.Normals)
{
vertexNormals[x++] = n.X;
vertexNormals[x++] = n.Y;
vertexNormals[x++] = n.Z;
}
vertexNormals[x++] = n.X;
vertexNormals[x++] = n.Y;
vertexNormals[x++] = n.Z;
}
double volume = target.IsClosed ? target.Volume() : 0;
@@ -115,11 +109,11 @@ public class MeshToSpeckleConverter : ITypedConverter<RG.Mesh, SOG.Mesh>
return new SOG.Mesh
{
vertices = [.. vertexCoordinates],
vertices = new(vertexCoordinates),
faces = faces,
colors = [.. colors],
textureCoordinates = [.. textureCoordinates], // this will be empty array when setting is false
vertexNormals = [.. vertexNormals], // this will be empty array when setting is false
colors = new(colors),
textureCoordinates = new(textureCoordinates),
vertexNormals = new(vertexNormals),
units = _settingsStore.Current.SpeckleUnits,
volume = volume,
bbox = bbox

Some files were not shown because too many files have changed in this diff Show More