Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c719cfd66f | |||
| 76ea67af54 | |||
| 12c80e2d40 | |||
| c013953368 |
+7
-1
@@ -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")
|
||||
]
|
||||
)
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -126,7 +126,7 @@ internal sealed class BasicConnectorBindingRevit : IBasicConnectorBinding
|
||||
return;
|
||||
}
|
||||
|
||||
var selectedObjects = senderModelCard.SendFilter.NotNull().IdMap.NotNull().Values;
|
||||
var selectedObjects = senderModelCard.SendFilter.NotNull().SelectedObjectIds;
|
||||
|
||||
elementIds = selectedObjects
|
||||
.Select(uid => ElementIdHelper.GetElementIdFromUniqueId(activeUIDoc.Document, uid))
|
||||
|
||||
@@ -190,14 +190,16 @@ internal sealed class RevitSendBinding : RevitBaseBinding, ISendBinding
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -2,9 +2,9 @@ using Tekla.Structures.Plugins;
|
||||
|
||||
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
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Forms.Integration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
@@ -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();
|
||||
|
||||
@@ -18,8 +18,22 @@ public class SendBindingUICommands(IBrowserBridge bridge) : BasicConnectorBindin
|
||||
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,
|
||||
|
||||
Reference in New Issue
Block a user