Skip to content

Commit

Permalink
Merge pull request #383 from specklesystems/dev
Browse files Browse the repository at this point in the history
Update `release/3.0.0` with changes from `dev`
  • Loading branch information
AlanRynne authored Nov 12, 2024
2 parents 92435ce + 76ea67a commit c719cfd
Show file tree
Hide file tree
Showing 8 changed files with 56 additions and 24 deletions.
8 changes: 7 additions & 1 deletion Build/Consts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,13 @@ public static class Consts
new("Connectors/Autocad/Speckle.Connectors.Civil3d2025", "net8.0-windows")
]
),
new("tekla-structures", [new("Connectors/Tekla/Speckle.Connector.Tekla2024", "net48")])
new(
"tekla-structures",
[
new("Connectors/Tekla/Speckle.Connector.Tekla2023", "net48"),
new("Connectors/Tekla/Speckle.Connector.Tekla2024", "net48")
]
)
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ await _apiContext
return;
}

var selectedObjects = senderModelCard.SendFilter.NotNull().IdMap.NotNull().Values;
var selectedObjects = senderModelCard.SendFilter.NotNull().SelectedObjectIds;

elementIds = selectedObjects
.Select(uid => ElementIdHelper.GetElementIdFromUniqueId(activeUIDoc.Document, uid))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,14 +190,16 @@ private async Task<List<Element>> RefreshElementsOnSender(SenderModelCard modelC

if (modelCard.SendFilter is not null && modelCard.SendFilter.IdMap is not null)
{
var newSelectedObjectIds = new List<string>();
foreach (Element element in elements)
{
modelCard.SendFilter.IdMap[element.Id.ToString()] = element.UniqueId;
newSelectedObjectIds.Add(element.UniqueId);
}

// We update the state on the UI SenderModelCard to prevent potential inconsistencies between hostApp IdMap in sendfilters.
await Commands
.SetFilterObjectIds(modelCard.ModelCardId.NotNull(), modelCard.SendFilter.IdMap)
.SetFilterObjectIds(modelCard.ModelCardId.NotNull(), modelCard.SendFilter.IdMap, newSelectedObjectIds)
.ConfigureAwait(false);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,6 @@
<Reference Include="WindowsFormsIntegration" />
</ItemGroup>

<ItemGroup>
<None Update="Assets\et_element_Speckle.bmp">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>

<Import Project="..\Speckle.Connector.TeklaShared\Speckle.Connectors.TeklaShared.projitems" Label="Shared" />

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,6 @@
<Reference Include="WindowsFormsIntegration" />
</ItemGroup>

<ItemGroup>
<None Update="Assets\et_element_Speckle.bmp">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>

<Import Project="..\Speckle.Connector.TeklaShared\Speckle.Connectors.TeklaShared.projitems" Label="Shared" />

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

namespace Speckle.Connector.Tekla2024.Plugin;

[Plugin("Speckle (Beta)")]
[Plugin("Speckle")]
[PluginUserInterface("Speckle.Connector.Tekla2024.SpeckleTeklaPanelHost")]
[InputObjectDependency(InputObjectDependency.NOT_DEPENDENT)] // See DevDocs/InputObjectDependency.NOT_DEPENDENT.png
[InputObjectDependency(InputObjectDependency.NOT_DEPENDENT)]
public class TeklaPlugin : PluginBase
{
#pragma warning disable IDE1006
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.Integration;
using Microsoft.Extensions.DependencyInjection;
Expand All @@ -15,17 +16,38 @@ 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;
private static readonly List<SpeckleTeklaPanelHost> s_instances = new();

public SpeckleTeklaPanelHost()
{
this.Text = "Speckle (Beta)";
this.Name = "Speckle (Beta)";
//TODO: Add Speckle icon
// TODO: Add thumbnail to connector

// CNX-790: Needs to be solved
string version = GetVersion().ToString()[1..]; // removes the 'v' from version
string resourcePath = $"Speckle.Connector.Tekla{version}.Resources.et_element_Speckle.bmp";
using (
Bitmap bmp = new Bitmap(
GetType().Assembly.GetManifestResourceStream(resourcePath)
?? throw new InvalidOperationException($"Could not find resource: {resourcePath}")
)
)
{
this.Icon = Icon.FromHandle(bmp.GetHicon());
}

// adds instances to tracking list
s_instances.Add(this);

if (s_instances.Count > 1)
{
var firstInstance = s_instances[0];
s_instances.RemoveAt(0);
// hides the first instance if there is more than one
firstInstance.Hide();
}

var services = new ServiceCollection();
services.Initialize(HostApplications.TeklaStructures, GetVersion());
services.AddTekla();
Expand Down
18 changes: 16 additions & 2 deletions DUI3/Speckle.Connectors.DUI/Bindings/SendBindingUICommands.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,22 @@ public async Task RefreshSendFilters() =>
public async Task SetModelsExpired(IEnumerable<string> expiredModelIds) =>
await Bridge.Send(SET_MODELS_EXPIRED_UI_COMMAND_NAME, expiredModelIds).ConfigureAwait(false);

public async Task SetFilterObjectIds(string modelCardId, Dictionary<string, string> idMap) =>
await Bridge.Send(SET_ID_MAP_COMMAND_NAME, new { modelCardId, idMap }).ConfigureAwait(false);
public async Task SetFilterObjectIds(
string modelCardId,
Dictionary<string, string> idMap,
List<string> newSelectedObjectIds
) =>
await Bridge
.Send(
SET_ID_MAP_COMMAND_NAME,
new
{
modelCardId,
idMap,
newSelectedObjectIds
}
)
.ConfigureAwait(false);

public async Task SetModelSendResult(
string modelCardId,
Expand Down

0 comments on commit c719cfd

Please sign in to comment.