diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/Bindings/TeklaBasicConnectorBinding.cs b/Connectors/Tekla/Speckle.Connector.Tekla2024/Bindings/TeklaBasicConnectorBinding.cs new file mode 100644 index 000000000..38d1a7bf1 --- /dev/null +++ b/Connectors/Tekla/Speckle.Connector.Tekla2024/Bindings/TeklaBasicConnectorBinding.cs @@ -0,0 +1,48 @@ +using Speckle.Connectors.DUI.Bindings; +using Speckle.Connectors.DUI.Bridge; +using Speckle.Connectors.DUI.Models; +using Speckle.Connectors.DUI.Models.Card; +using Speckle.Sdk; + +namespace Speckle.Connector.Tekla2024.Bindings; + +public class TeklaBasicConnectorBinding : IBasicConnectorBinding +{ + private readonly ISpeckleApplication _speckleApplication; + private readonly DocumentModelStore _store; + public string Name => "baseBinding"; + public IBrowserBridge Parent { get; } + + public TeklaBasicConnectorBinding( + IBrowserBridge parent, + ISpeckleApplication speckleApplication, + DocumentModelStore store + ) + { + _speckleApplication = speckleApplication; + _store = store; + Parent = parent; + } + + public string GetSourceApplicationName() => _speckleApplication.Slug; + + public string GetSourceApplicationVersion() => _speckleApplication.HostApplicationVersion; + + public string GetConnectorVersion() => _speckleApplication.SpeckleVersion; + + public DocumentInfo? GetDocumentInfo() => new DocumentInfo("Test", "Test", "Test"); + + public DocumentModelStore GetDocumentState() => _store; + + public void AddModel(ModelCard model) => throw new NotImplementedException(); + + public void UpdateModel(ModelCard model) => throw new NotImplementedException(); + + public void RemoveModel(ModelCard model) => throw new NotImplementedException(); + + public void HighlightModel(string modelCardId) => throw new NotImplementedException(); + + public void HighlightObjects(List objectIds) => throw new NotImplementedException(); + + public BasicConnectorBindingCommands Commands { get; } +} diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/Bindings/TeklaSendBinding.cs b/Connectors/Tekla/Speckle.Connector.Tekla2024/Bindings/TeklaSendBinding.cs new file mode 100644 index 000000000..77c1f9977 --- /dev/null +++ b/Connectors/Tekla/Speckle.Connector.Tekla2024/Bindings/TeklaSendBinding.cs @@ -0,0 +1,27 @@ +using Speckle.Connectors.DUI.Bindings; +using Speckle.Connectors.DUI.Bridge; +using Speckle.Connectors.DUI.Models.Card.SendFilter; +using Speckle.Connectors.DUI.Settings; + +namespace Speckle.Connector.Tekla2024.Bindings; + +public class TeklaSendBinding : ISendBinding +{ + public string Name => "sendBinding"; + public IBrowserBridge Parent { get; } + + public TeklaSendBinding(IBrowserBridge parent) + { + Parent = parent; + } + + public List GetSendFilters() => []; + + public List GetSendSettings() => []; + + public Task Send(string modelCardId) => throw new NotImplementedException(); + + public void CancelSend(string modelCardId) => throw new NotImplementedException(); + + public SendBindingUICommands Commands { get; } +} diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/DevDocs/InputObjectDependency.NOT_DEPENDENT.png b/Connectors/Tekla/Speckle.Connector.Tekla2024/DevDocs/InputObjectDependency.NOT_DEPENDENT.png new file mode 100644 index 000000000..a95b73cb5 Binary files /dev/null and b/Connectors/Tekla/Speckle.Connector.Tekla2024/DevDocs/InputObjectDependency.NOT_DEPENDENT.png differ diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/HostApp/TeklaDocumentModelStore.cs b/Connectors/Tekla/Speckle.Connector.Tekla2024/HostApp/TeklaDocumentModelStore.cs new file mode 100644 index 000000000..891d0972b --- /dev/null +++ b/Connectors/Tekla/Speckle.Connector.Tekla2024/HostApp/TeklaDocumentModelStore.cs @@ -0,0 +1,17 @@ +using Speckle.Connectors.DUI.Models; +using Speckle.Newtonsoft.Json; + +namespace Speckle.Connector.Tekla2024.HostApp; + +public class TeklaDocumentModelStore : DocumentModelStore +{ + public TeklaDocumentModelStore( + JsonSerializerSettings jsonSerializerSettings + // ITopLevelExceptionHandler topLevelExceptionHandler + ) + : base(jsonSerializerSettings, true) { } + + public override void WriteToFile() { } + + public override void ReadFromFile() { } +} diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/Plugin/TeklaPlugin.cs b/Connectors/Tekla/Speckle.Connector.Tekla2024/Plugin/TeklaPlugin.cs new file mode 100644 index 000000000..493f407d5 --- /dev/null +++ b/Connectors/Tekla/Speckle.Connector.Tekla2024/Plugin/TeklaPlugin.cs @@ -0,0 +1,18 @@ +using Tekla.Structures.Plugins; + +namespace Speckle.Connector.Tekla2024.Plugin; + +[Plugin("Speckle.Connectors.Tekla")] +[PluginUserInterface("Speckle.Connector.Tekla2024.SpeckleTeklaPanelHost")] +[InputObjectDependency(InputObjectDependency.NOT_DEPENDENT)] // See DevDocs/InputObjectDependency.NOT_DEPENDENT.png +public class TeklaPlugin : PluginBase +{ +#pragma warning disable IDE1006 + public override bool Run(List Input) + { + return true; + } +#pragma warning restore IDE1006 + + public override List DefineInput() => new(); +} diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/Properties/launchSettings.json b/Connectors/Tekla/Speckle.Connector.Tekla2024/Properties/launchSettings.json new file mode 100644 index 000000000..cfcd63e10 --- /dev/null +++ b/Connectors/Tekla/Speckle.Connector.Tekla2024/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "Tekla2024": { + "commandName": "Executable", + "executablePath": "C:\\Program Files\\Tekla Structures\\2024.0\\bin\\TeklaStructures.exe" + } + } +} diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/ServiceRegistration.cs b/Connectors/Tekla/Speckle.Connector.Tekla2024/ServiceRegistration.cs new file mode 100644 index 000000000..ebbe88e7e --- /dev/null +++ b/Connectors/Tekla/Speckle.Connector.Tekla2024/ServiceRegistration.cs @@ -0,0 +1,33 @@ +using Microsoft.Extensions.DependencyInjection; +using Speckle.Connector.Tekla2024.Bindings; +using Speckle.Connector.Tekla2024.HostApp; +using Speckle.Connectors.Common; +using Speckle.Connectors.DUI; +using Speckle.Connectors.DUI.Bindings; +using Speckle.Connectors.DUI.Models; +using Speckle.Connectors.DUI.WebView; + +namespace Speckle.Connector.Tekla2024; + +public static class ServiceRegistration +{ + public static void AddTekla(this IServiceCollection serviceCollection) + { + serviceCollection.AddConnectorUtils(); + serviceCollection.AddDUI(); + serviceCollection.AddDUIView(); + + serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); + + serviceCollection.AddSingleton(); + + serviceCollection.RegisterTopLevelExceptionHandler(); + + serviceCollection.AddSingleton(sp => sp.GetRequiredService()); + serviceCollection.AddSingleton(); + + serviceCollection.AddSingleton(); + } +} diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/Speckle.Connector.Tekla2024.csproj b/Connectors/Tekla/Speckle.Connector.Tekla2024/Speckle.Connector.Tekla2024.csproj new file mode 100644 index 000000000..4dde51c83 --- /dev/null +++ b/Connectors/Tekla/Speckle.Connector.Tekla2024/Speckle.Connector.Tekla2024.csproj @@ -0,0 +1,32 @@ + + + + net48 + 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 + ) + + + + + + + + + + + + + + + + + + + diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/SpeckleTeklaPanelHost.cs b/Connectors/Tekla/Speckle.Connector.Tekla2024/SpeckleTeklaPanelHost.cs new file mode 100644 index 000000000..220cc8927 --- /dev/null +++ b/Connectors/Tekla/Speckle.Connector.Tekla2024/SpeckleTeklaPanelHost.cs @@ -0,0 +1,62 @@ +using System.Windows.Forms; +using System.Windows.Forms.Integration; +using Microsoft.Extensions.DependencyInjection; +using Speckle.Connectors.Common; +using Speckle.Connectors.DUI; +using Speckle.Connectors.DUI.WebView; +using Speckle.Sdk.Host; +using Tekla.Structures.Dialog; +using Tekla.Structures.Model; +using Tekla.Structures.Model.Operations; + +namespace Speckle.Connector.Tekla2024; + +public class SpeckleTeklaPanelHost : PluginFormBase +{ + private ElementHost Host { get; } + public Model Model { get; private set; } + + public static new ServiceProvider? Container { get; private set; } + + // TODO: private IDisposable? _disposableLogger; + + public SpeckleTeklaPanelHost() + { + var services = new ServiceCollection(); + services.Initialize(HostApplications.TeklaStructures, GetVersion()); + services.AddTekla(); + + // TODO: Add Tekla converters + + Container = services.BuildServiceProvider(); + Container.UseDUI(); // TODO: this might not needed? ISyncToThread? + + Model = new Model(); // don't know what is this.. + if (!Model.GetConnectionStatus()) + { + MessageBox.Show( + "Speckle connector connection failed. Please try again.", + "Error", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + } + var webview = Container.GetRequiredService(); + Host = new() { Child = webview, Dock = DockStyle.Fill }; + Controls.Add(Host); + Operation.DisplayPrompt("Speckle connector initialized."); + + Show(); + Activate(); + Focus(); + } + + private HostAppVersion GetVersion() + { +#if TEKLA2024 + return HostAppVersion.v2024; +#else + throw new NotImplementedException(); +#endif + } +} diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/app.config b/Connectors/Tekla/Speckle.Connector.Tekla2024/app.config new file mode 100644 index 000000000..1f0cab02a --- /dev/null +++ b/Connectors/Tekla/Speckle.Connector.Tekla2024/app.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json b/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json new file mode 100644 index 000000000..efeb30d5b --- /dev/null +++ b/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json @@ -0,0 +1,493 @@ +{ + "version": 2, + "dependencies": { + ".NETFramework,Version=v4.8": { + "Microsoft.NETFramework.ReferenceAssemblies": { + "type": "Direct", + "requested": "[1.0.3, )", + "resolved": "1.0.3", + "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", + "dependencies": { + "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3" + } + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "PolySharp": { + "type": "Direct", + "requested": "[1.14.1, )", + "resolved": "1.14.1", + "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" + }, + "Speckle.InterfaceGenerator": { + "type": "Direct", + "requested": "[0.9.6, )", + "resolved": "0.9.6", + "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" + }, + "Tekla.Structures.Dialog": { + "type": "Direct", + "requested": "[2024.0.2, )", + "resolved": "2024.0.2", + "contentHash": "VY1n7ROsUMHomHwJBYbmTt58M9qSuGqkcdWS8GTJUU5NOZsIsoS746fT7E+YBpUyP+9tyzibv4OW9vQj1sDEAA==", + "dependencies": { + "Tekla.Common.Geometry": "4.6.2", + "Tekla.Structures": "2024.0.2", + "Tekla.Structures.Catalogs": "2024.0.2", + "Tekla.Structures.Datatype": "2024.0.2", + "Tekla.Structures.Model": "2024.0.2", + "Tekla.Structures.Plugins": "2024.0.2", + "Tekla.Technology.Akit5": "5.15.0", + "Tekla.Technology.Scripting.Plugins": "5.5.0", + "Tekla.Technology.Serialization": "4.1.1", + "Trimble.Remoting": "1.0.2", + "Trimble.Technology.MsgLib": "2.2.22326" + } + }, + "Tekla.Structures.Model": { + "type": "Direct", + "requested": "[2024.0.2, )", + "resolved": "2024.0.2", + "contentHash": "GV7mqc3TX7h3QeCLmjCI8GlnbhAMYOvLMEED1TY+hpdeWtMuHxGS7GwfLgG10iUdjumqy5Qmn2VE3PIRhw5hWg==", + "dependencies": { + "Tekla.Common.Geometry": "4.6.2", + "Tekla.Structures": "2024.0.2", + "Tekla.Structures.Datatype": "2024.0.2", + "Tekla.Technology.Serialization": "4.1.1", + "Trimble.Remoting": "1.0.2" + } + }, + "Tekla.Structures.Plugins": { + "type": "Direct", + "requested": "[2024.0.2, )", + "resolved": "2024.0.2", + "contentHash": "40Dn4sAcfLJc1Gi6sK95tVz8BwmB4vvRjcZcFJ55F3HMr2mwtcJhvDQED0exlZuU3pbibjhUZaNz0/I16Mms/w==", + "dependencies": { + "Tekla.Structures": "2024.0.2", + "Tekla.Technology.Scripting.Plugins": "5.5.0", + "Tekla.Technology.Serialization": "4.1.1", + "Trimble.Remoting": "1.0.2" + } + }, + "GraphQL.Client": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", + "dependencies": { + "GraphQL.Client.Abstractions": "6.0.0", + "GraphQL.Client.Abstractions.Websocket": "6.0.0", + "System.Net.WebSockets.Client.Managed": "1.0.22", + "System.Reactive": "5.0.0" + } + }, + "GraphQL.Client.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", + "dependencies": { + "GraphQL.Primitives": "6.0.0" + } + }, + "GraphQL.Client.Abstractions.Websocket": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", + "dependencies": { + "GraphQL.Client.Abstractions": "6.0.0" + } + }, + "GraphQL.Primitives": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.CSharp": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Microsoft.Data.Sqlite": { + "type": "Transitive", + "resolved": "7.0.7", + "contentHash": "tiNmV1oPy+Z2R7Wd0bPB/FxCr8B+/5q11OpDMG751GA/YuOL7MZrBFfzv5oFRlFe08K6sjrnbrauzzGIeNrzLQ==", + "dependencies": { + "Microsoft.Data.Sqlite.Core": "7.0.7", + "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" + } + }, + "Microsoft.Data.Sqlite.Core": { + "type": "Transitive", + "resolved": "7.0.7", + "contentHash": "21FRzcJhaTrlv7kTrqr/ltFcSQM2TyuTTPhUcjO8H73od7Bb3QraNW90c7lUucNI/245XPkKZG4fp7/7OsKCSg==", + "dependencies": { + "SQLitePCLRaw.core": "2.1.4" + } + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "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.net48": { + "type": "Transitive", + "resolved": "1.0.3", + "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Mono.Cecil": { + "type": "Transitive", + "resolved": "0.11.4", + "contentHash": "IC1h5g0NeJGHIUgzM1P82ld57knhP0IcQfrYITDPXlNpMYGUrsG5TxuaWTjaeqDNQMBDNZkB8L0rBnwsY6JHuQ==" + }, + "Polly": { + "type": "Transitive", + "resolved": "7.2.3", + "contentHash": "DeCY0OFbNdNxsjntr1gTXHJ5pKUwYzp04Er2LLeN3g6pWhffsGuKVfMBLe1lw7x76HrPkLxKEFxBlpRxS2nDEQ==" + }, + "Polly.Contrib.WaitAndRetry": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==" + }, + "Polly.Extensions.Http": { + "type": "Transitive", + "resolved": "3.0.0", + "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", + "dependencies": { + "Polly": "7.1.0" + } + }, + "Speckle.DoubleNumerics": { + "type": "Transitive", + "resolved": "4.0.1", + "contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" + }, + "Speckle.Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.2", + "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" + }, + "SQLitePCLRaw.bundle_e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", + "dependencies": { + "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", + "SQLitePCLRaw.provider.dynamic_cdecl": "2.1.4" + } + }, + "SQLitePCLRaw.core": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", + "dependencies": { + "System.Memory": "4.5.3" + } + }, + "SQLitePCLRaw.lib.e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" + }, + "SQLitePCLRaw.provider.dynamic_cdecl": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "ZsaKKhgYF9B1fvcnOGKl3EycNAwd9CRWX7v0rEfuPWhQQ5Jjpvf2VEHahiLIGHio3hxi3EIKFJw9KvyowWOUAw==", + "dependencies": { + "SQLitePCLRaw.core": "2.1.4" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.ComponentModel.Annotations": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "UxYQ3FGUOtzJ7LfSdnYSFd7+oEv6M8NgUatatIN2HxNtDdlcvFAf+VIq4Of9cDMJEJC0aSRv/x898RYhB4Yppg==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.Net.WebSockets.Client.Managed": { + "type": "Transitive", + "resolved": "1.0.22", + "contentHash": "WqEOxPlXjuZrIjUtXNE9NxEfU/n5E35iV2PtoZdJSUC4tlrqwHnTee+wvMIM4OUaJWmwrymeqcgYrE0IkGAgLA==", + "dependencies": { + "System.Buffers": "4.4.0", + "System.Numerics.Vectors": "4.4.0" + } + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Reactive": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "System.Reflection.Emit.Lightweight": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "a4OLB4IITxAXJeV74MDx49Oq2+PsF6Sml54XAFv+2RyWwtDBcabzoxiiJRhdhx+gaohLh4hEGCLQyBozXoQPqA==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "Tekla.Common.Geometry": { + "type": "Transitive", + "resolved": "4.6.2", + "contentHash": "5+jJDmzC363ys51JbrQap0LdtflTpSJVpW9oUQbtlem+SBcwrFQkA16xg3ddKv6tQ0iMXwPe7DP0PbV+Qj9GMw==" + }, + "Tekla.Structures": { + "type": "Transitive", + "resolved": "2024.0.2", + "contentHash": "m7URRYK7sEzumr/+TJRNd4q2nutF9qMUbIIPmbr36cbaKiBGW0xxAgveTL8+7kkDqodhAGyUTVai5gOtvYi2SQ==", + "dependencies": { + "Tekla.Common.Geometry": "4.6.2", + "Tekla.Technology.Serialization": "4.1.1", + "Trimble.Remoting": "1.0.2" + } + }, + "Tekla.Structures.Catalogs": { + "type": "Transitive", + "resolved": "2024.0.2", + "contentHash": "1VUbPKtzTUMwUP21jqN+c1gLEtxi31+KYPis/n2Plty2k5Zj4gM3Q428KhjMgyHOoc7bWJX/kjfUQBCYuhqAsQ==", + "dependencies": { + "Tekla.Common.Geometry": "4.6.2", + "Tekla.Structures": "2024.0.2", + "Tekla.Structures.Datatype": "2024.0.2", + "Tekla.Structures.Model": "2024.0.2", + "Tekla.Technology.Serialization": "4.1.1", + "Trimble.Remoting": "1.0.2" + } + }, + "Tekla.Structures.Datatype": { + "type": "Transitive", + "resolved": "2024.0.2", + "contentHash": "LtLUtkYuni+R1F0UAPXWmgjAPBZORabG+/2YVOhJBj6+0x6Fg0PxgDtABNMNniN7A7BFXaYQRI/fuP35VL8BFQ==" + }, + "Tekla.Technology.Akit5": { + "type": "Transitive", + "resolved": "5.15.0", + "contentHash": "Rzw7m2aZE1AzzN4/wYqUU3UcEcGL4pUi4T6KUVjP3dfsckkeYu5nw8ZGB2L2yATZRPTjTItKQrG/jcsApT2TNw==" + }, + "Tekla.Technology.Scripting.Plugins": { + "type": "Transitive", + "resolved": "5.5.0", + "contentHash": "tuPQlV/hJHHRrY6LH0FMxVtmjs6TUw0u4WaXbd4GVbj9YAyJyiZCA2Q1YeOmy6rs2IoCyGivURaZsSkdg/5JPA==", + "dependencies": { + "Mono.Cecil": "0.11.4" + } + }, + "Tekla.Technology.Serialization": { + "type": "Transitive", + "resolved": "4.1.1", + "contentHash": "C++1hdVfSmoB+0M5cFvXxmLzVl3azi0CiI3owLZt4vHWI+EgYWEGMAlCk6ED4zfhR2FzT9VLu4RCFDHvopTERw==", + "dependencies": { + "System.Reflection.Emit.Lightweight": "4.7.0" + } + }, + "Trimble.Remoting": { + "type": "Transitive", + "resolved": "1.0.2", + "contentHash": "vwaLu07qxgUaSt5FRaR0xrH+6OuVTibfrOYoCVta/NmdA2XZlAqAF8/pIkBITRTqpY8Z8uBhV+mYfVfr+oevcg==", + "dependencies": { + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "Tekla.Technology.Serialization": "4.1.1" + } + }, + "Trimble.Technology.Msglib": { + "type": "Transitive", + "resolved": "2.2.22326", + "contentHash": "I5sYxv7i4J5ZpK/1ELvJMGn3DzVEBq1S0dTyE0JQjo/bIHBmuuy3HSY2YrYCWcRPC2WsNv8t+TiAGzWCGrPs3Q==", + "dependencies": { + "Trimble.Technology.Rkit": "2.2.22312" + } + }, + "Trimble.Technology.Rkit": { + "type": "Transitive", + "resolved": "2.2.22312", + "contentHash": "OMwJAhps/tnmV99suab65b7Ex+H9mebbdNRaHwogPEwCRefWUr7/WaA4p43nfb+FxmBFO5FtudN3EEarggTSow==" + }, + "speckle.connectors.common": { + "type": "Project", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", + "Speckle.Connectors.Logging": "[1.0.0, )", + "Speckle.Objects": "[3.1.0-dev.146, )", + "Speckle.Sdk": "[3.1.0-dev.146, )" + } + }, + "speckle.connectors.dui": { + "type": "Project", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", + "Speckle.Connectors.Common": "[1.0.0, )", + "Speckle.Sdk": "[3.1.0-dev.146, )", + "System.Threading.Tasks.Dataflow": "[6.0.0, )" + } + }, + "speckle.connectors.dui.webview": { + "type": "Project", + "dependencies": { + "Microsoft.Web.WebView2": "[1.0.1938.49, )", + "Speckle.Connectors.DUI": "[1.0.0, )" + } + }, + "speckle.connectors.logging": { + "type": "Project" + }, + "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.Objects": { + "type": "CentralTransitive", + "requested": "[3.1.0-dev.146, )", + "resolved": "3.1.0-dev.146", + "contentHash": "xuv5LaU6j8ODGHyClHbbK78bOJid8LGuwfVcEega1q3sYwmLWOWIDP9lO0QA1tyctE+2CZDH3sOUChleAFC4fg==", + "dependencies": { + "Speckle.Sdk": "3.1.0-dev.146" + } + }, + "Speckle.Sdk": { + "type": "CentralTransitive", + "requested": "[3.1.0-dev.146, )", + "resolved": "3.1.0-dev.146", + "contentHash": "vNaWJkt7/xcIH/CraOrEumGn8A6gAlyl1RHfRI8B8qAGylSlEhuvuBSatS1gUPI35p9omO63yYQFKaIKEIsa3Q==", + "dependencies": { + "GraphQL.Client": "6.0.0", + "Microsoft.CSharp": "4.7.0", + "Microsoft.Data.Sqlite": "7.0.7", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Logging": "2.2.0", + "Polly": "7.2.3", + "Polly.Contrib.WaitAndRetry": "1.1.1", + "Polly.Extensions.Http": "3.0.0", + "Speckle.DoubleNumerics": "4.0.1", + "Speckle.Newtonsoft.Json": "13.0.2" + } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[6.0.0, )", + "resolved": "6.0.0", + "contentHash": "+tyDCU3/B1lDdOOAJywHQoFwyXIUghIaP2BxG79uvhfTnO+D9qIgjVlL/JV2NTliYbMHpd6eKDmHp2VHpij7MA==" + } + } + } +} \ No newline at end of file diff --git a/Directory.Packages.props b/Directory.Packages.props index 61b6f781d..c05959b34 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -20,6 +20,9 @@ + + + diff --git a/Local.sln b/Local.sln index 7becde7cc..3e877e6fc 100644 --- a/Local.sln +++ b/Local.sln @@ -160,6 +160,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Speckle.Connectors.Common", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Speckle.Converters.Common.Tests", "Sdk\Speckle.Converters.Common.Tests\Speckle.Converters.Common.Tests.csproj", "{13225611-10EE-41BB-9198-C88D6E978DA6}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tekla", "Tekla", "{AB1AD13B-163E-45F8-8F96-52A921501FA0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Speckle.Connector.Tekla2024", "Connectors\Tekla\Speckle.Connector.Tekla2024\Speckle.Connector.Tekla2024.csproj", "{8077B6A7-86BD-4E87-8B23-6D168D0E14D9}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Local|Any CPU = Local|Any CPU @@ -245,6 +249,8 @@ Global {3747C01B-343E-4425-A973-4D9D181BE468}.Local|Any CPU.Build.0 = Local|Any CPU {13225611-10EE-41BB-9198-C88D6E978DA6}.Local|Any CPU.ActiveCfg = Local|Any CPU {13225611-10EE-41BB-9198-C88D6E978DA6}.Local|Any CPU.Build.0 = Local|Any CPU + {8077B6A7-86BD-4E87-8B23-6D168D0E14D9}.Local|Any CPU.ActiveCfg = Debug|Any CPU + {8077B6A7-86BD-4E87-8B23-6D168D0E14D9}.Local|Any CPU.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -315,6 +321,8 @@ Global {38497468-6B28-4F8F-A9E0-3167E90DDD89} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} {3747C01B-343E-4425-A973-4D9D181BE468} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} {13225611-10EE-41BB-9198-C88D6E978DA6} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} + {AB1AD13B-163E-45F8-8F96-52A921501FA0} = {42826721-9A18-4762-8BA9-F1429DD5C5B1} + {8077B6A7-86BD-4E87-8B23-6D168D0E14D9} = {AB1AD13B-163E-45F8-8F96-52A921501FA0} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {EE253116-7070-4E9A-BCE8-2911C251B8C8} diff --git a/Speckle.Connectors.sln b/Speckle.Connectors.sln index b08e0767a..7e77609da 100644 --- a/Speckle.Connectors.sln +++ b/Speckle.Connectors.sln @@ -155,6 +155,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.Tests", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.Logging", "Sdk\Speckle.Connectors.Logging\Speckle.Connectors.Logging.csproj", "{8098BAFC-DF1C-4AFA-A93E-08121E6D09D4}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tekla", "Tekla", "{696086E4-D8CC-4FE0-A9B3-5F10B9089B55}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Speckle.Connector.Tekla2024", "Connectors\Tekla\Speckle.Connector.Tekla2024\Speckle.Connector.Tekla2024.csproj", "{2319C00F-B268-4E4C-9F88-6B379E2BBD22}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Converters.Common.Tests", "Sdk\Speckle.Converters.Common.Tests\Speckle.Converters.Common.Tests.csproj", "{9EF292C6-1333-4502-AD9C-224D99847185}" EndProject Global @@ -311,6 +315,10 @@ Global {8098BAFC-DF1C-4AFA-A93E-08121E6D09D4}.Debug|Any CPU.Build.0 = Debug|Any CPU {8098BAFC-DF1C-4AFA-A93E-08121E6D09D4}.Release|Any CPU.ActiveCfg = Release|Any CPU {8098BAFC-DF1C-4AFA-A93E-08121E6D09D4}.Release|Any CPU.Build.0 = Release|Any CPU + {2319C00F-B268-4E4C-9F88-6B379E2BBD22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2319C00F-B268-4E4C-9F88-6B379E2BBD22}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2319C00F-B268-4E4C-9F88-6B379E2BBD22}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2319C00F-B268-4E4C-9F88-6B379E2BBD22}.Release|Any CPU.Build.0 = Release|Any CPU {9EF292C6-1333-4502-AD9C-224D99847185}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9EF292C6-1333-4502-AD9C-224D99847185}.Debug|Any CPU.Build.0 = Debug|Any CPU {9EF292C6-1333-4502-AD9C-224D99847185}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -384,6 +392,8 @@ Global {9D66EDE4-AFC2-4F00-B40C-A7E878A2972F} = {B2BF1FAE-D0F4-4961-84CB-A00D3CABD236} {5B9A550A-9314-4E91-884E-E54960F589FB} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} {8098BAFC-DF1C-4AFA-A93E-08121E6D09D4} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} + {696086E4-D8CC-4FE0-A9B3-5F10B9089B55} = {42826721-9A18-4762-8BA9-F1429DD5C5B1} + {2319C00F-B268-4E4C-9F88-6B379E2BBD22} = {696086E4-D8CC-4FE0-A9B3-5F10B9089B55} {9EF292C6-1333-4502-AD9C-224D99847185} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution