From be8f9e2b5a6f9cb23d5a18be025239d14a95ff17 Mon Sep 17 00:00:00 2001 From: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com> Date: Wed, 6 Nov 2024 13:25:22 +0000 Subject: [PATCH 1/4] Fixed test failing on german culture (#355) --- Sdk/Speckle.Connectors.Tests/ProgressDisplayManagerTests.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sdk/Speckle.Connectors.Tests/ProgressDisplayManagerTests.cs b/Sdk/Speckle.Connectors.Tests/ProgressDisplayManagerTests.cs index b99c13800..ff8cc11ff 100644 --- a/Sdk/Speckle.Connectors.Tests/ProgressDisplayManagerTests.cs +++ b/Sdk/Speckle.Connectors.Tests/ProgressDisplayManagerTests.cs @@ -1,4 +1,4 @@ -using FluentAssertions; +using FluentAssertions; using NUnit.Framework; using Speckle.Connectors.Common.Operations; using Speckle.Sdk.Transports; @@ -21,6 +21,7 @@ public void TestPercentage(long count, long? total, double? percentage) } [Test] + [SetCulture("en-GB")] [TestCase(1, 1, 6, 10, "5.00 bytes / sec")] [TestCase(1, 0, 6, 10, "0 bytes / sec")] //infinity [TestCase(1 * 1024 * 1024, 1, 6 * 1024 * 1024, 10 * 1024 * 1024, "5.00 MB / sec")] From 5d976141fc706074bcd14b1557bf298c49220785 Mon Sep 17 00:00:00 2001 From: Dogukan Karatas <61163577+dogukankaratas@users.noreply.github.com> Date: Wed, 6 Nov 2024 17:26:33 +0100 Subject: [PATCH 2/4] adds logic for rendering rebars as lines and arcs (#356) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Oğuzhan Koral <45078678+oguzhankoral@users.noreply.github.com> --- .../Helpers/DisplayValueExtractor.cs | 41 ++++++++++++++++--- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/Converters/Tekla/Speckle.Converter.Tekla2024/ToSpeckle/Helpers/DisplayValueExtractor.cs b/Converters/Tekla/Speckle.Converter.Tekla2024/ToSpeckle/Helpers/DisplayValueExtractor.cs index d2e1fbbb8..03cb8b2bc 100644 --- a/Converters/Tekla/Speckle.Converter.Tekla2024/ToSpeckle/Helpers/DisplayValueExtractor.cs +++ b/Converters/Tekla/Speckle.Converter.Tekla2024/ToSpeckle/Helpers/DisplayValueExtractor.cs @@ -1,4 +1,3 @@ -using Speckle.Converters.Common; using Speckle.Converters.Common.Objects; using Speckle.Sdk.Models; @@ -7,15 +6,18 @@ namespace Speckle.Converter.Tekla2024.ToSpeckle.Helpers; public sealed class DisplayValueExtractor { private readonly ITypedConverter _meshConverter; - private readonly IConverterSettingsStore _settingsStore; + private readonly ITypedConverter _lineConverter; + private readonly ITypedConverter _arcConverter; public DisplayValueExtractor( ITypedConverter meshConverter, - IConverterSettingsStore settingsStore + ITypedConverter lineConverter, + ITypedConverter arcConverter ) { _meshConverter = meshConverter; - _settingsStore = settingsStore; + _lineConverter = lineConverter; + _arcConverter = arcConverter; } public IEnumerable GetDisplayValue(TSM.ModelObject modelObject) @@ -38,13 +40,40 @@ public IEnumerable GetDisplayValue(TSM.ModelObject modelObject) } break; + // this is the logic to send rebars as lines and arcs case TSM.Reinforcement reinforcement: - if (reinforcement.GetSolid() is TSM.Solid reinforcementSolid) + var rebarGeometries = reinforcement.GetRebarComplexGeometries( + withHooks: true, + withoutClashes: true, + lengthAdjustments: true, + TSM.Reinforcement.RebarGeometrySimplificationTypeEnum.RATIONALIZED + ); + + foreach (TSM.RebarComplexGeometry barGeometry in rebarGeometries) { - yield return _meshConverter.Convert(reinforcementSolid); + foreach (var leg in barGeometry.Legs) + { + if (leg.Curve is TG.LineSegment legLine) + { + yield return _lineConverter.Convert(legLine); + } + else if (leg.Curve is TG.Arc legArc) + { + yield return _arcConverter.Convert(legArc); + } + } } + break; + // we can switch to volumetric using the logic below + // case TSM.Reinforcement reinforcement: + // if (reinforcement.GetSolid() is TSM.Solid reinforcementSolid) + // { + // yield return _meshConverter.Convert(reinforcementSolid); + // } + // break; + default: yield break; } From b06cf0a06b771999d570d71a68c8201478704535 Mon Sep 17 00:00:00 2001 From: KatKatKateryna <89912278+KatKatKateryna@users.noreply.github.com> Date: Wed, 6 Nov 2024 17:14:06 +0000 Subject: [PATCH 3/4] add appId (#358) --- .../ToSpeckle/Raw/GisFeatureToSpeckleConverter.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Converters/ArcGIS/Speckle.Converters.ArcGIS3/ToSpeckle/Raw/GisFeatureToSpeckleConverter.cs b/Converters/ArcGIS/Speckle.Converters.ArcGIS3/ToSpeckle/Raw/GisFeatureToSpeckleConverter.cs index ef81ab125..87ac8669b 100644 --- a/Converters/ArcGIS/Speckle.Converters.ArcGIS3/ToSpeckle/Raw/GisFeatureToSpeckleConverter.cs +++ b/Converters/ArcGIS/Speckle.Converters.ArcGIS3/ToSpeckle/Raw/GisFeatureToSpeckleConverter.cs @@ -147,7 +147,8 @@ public IGisFeature Convert((Row, string) target) return new SGIS.GisPointFeature() { geometry = new() { specklePoint }, - attributes = attributes + attributes = attributes, + applicationId = appId }; case ACG.Multipoint multipoint: From a1ff69502aeb7ce513588200e7ae42cc43e327a6 Mon Sep 17 00:00:00 2001 From: Alan Rynne Date: Wed, 6 Nov 2024 18:38:18 +0100 Subject: [PATCH 4/4] feat: CXPLA-120 Added tekla zip packaging prior to installers (#357) * feat: Added tekla zip packaging Plus tekla Icon and postbuild action refactor * fix: teaks to post build event * Make all tekla dependencies private * fix: update logo --- .gitignore | 3 +- Build/Consts.cs | 3 +- .../Assets/et_element_Speckle.bmp | Bin 0 -> 360138 bytes .../Speckle.Connector.Tekla2024.csproj | 39 ++++++++++++++---- 4 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 Connectors/Tekla/Speckle.Connector.Tekla2024/Assets/et_element_Speckle.bmp diff --git a/.gitignore b/.gitignore index 1244430f5..2646b24de 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,5 @@ tools .DS_Store *.snupkg coverage.xml -output/ \ No newline at end of file +output/ +Images/Thumbs.db diff --git a/Build/Consts.cs b/Build/Consts.cs index ef4e1a457..8fabcd0cf 100644 --- a/Build/Consts.cs +++ b/Build/Consts.cs @@ -40,7 +40,8 @@ public static class Consts new("Connectors/Autocad/Speckle.Connectors.Civil3d2024", "net48"), new("Connectors/Autocad/Speckle.Connectors.Civil3d2025", "net8.0-windows") ] - ) + ), + new("tekla-structures", [new("Connectors/Tekla/Speckle.Connector.Tekla2024", "net48")]) }; } diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/Assets/et_element_Speckle.bmp b/Connectors/Tekla/Speckle.Connector.Tekla2024/Assets/et_element_Speckle.bmp new file mode 100644 index 0000000000000000000000000000000000000000..36085a0d9ff49a0e1e4c63615f7a0961b69a0414 GIT binary patch literal 360138 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 net48 + 2024 true $(DefineConstants);TEKLA2024 - RD /S /Q "$(TargetDir)arm64\" - if EXIST "C:\Program Files\Tekla Structures\2024.0\" ( - xcopy "$(TargetDir)*.*" "C:\ProgramData\Trimble\Tekla Structures\2024.0\Environments\common\extensions\Speckle3TeklaStructures" /Y /I /E - ) - if EXIST "C:\TeklaStructures\2024.0\" ( - xcopy "$(TargetDir)*.*" "C:\TeklaStructures\2024.0\Environments\common\extensions\Speckle3TeklaStructures" /Y /I /E - ) - + + + + + + + + + + + + + + - + @@ -31,4 +46,10 @@ + + + Always + + +