Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update release/3.0.0 branch with changes from dev #304

Merged
merged 83 commits into from
Oct 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
6defdbe
wip: better rhino > revit brep support
didimitrie Sep 24, 2024
2bf6c83
adds units to object params
clairekuang Sep 25, 2024
fa31283
Chore(revit): Refactor material cache to ToHost ToSpeckle singletons …
oguzhankoral Sep 25, 2024
7a3013d
Merge branch 'dev' into claire/cnx-540-store-units-next-to-values
clairekuang Sep 25, 2024
df1b972
sends integer values as string when non-integer (#281)
clairekuang Sep 25, 2024
7f6029d
fix: Removes some properties from the .targets file and puts them int…
AlanRynne Sep 26, 2024
2bb5585
Jedd/cxpla 84 add commit context to receive trace (#248)
JR-Morgan Sep 26, 2024
9f402e8
CXPLA-89: Replace AutomaticallyUseReferenceAssemblyPackages with nuge…
AlanRynne Sep 26, 2024
b086d16
Feat(tekla): plugin structure and bind UI (#282)
oguzhankoral Sep 26, 2024
6115620
Try to pass log info to serilog without rendering the log statement (…
adamhathcock Sep 26, 2024
79b907f
Merge branch 'dev' into claire/cnx-540-store-units-next-to-values
oguzhankoral Sep 27, 2024
7bf287f
wip
didimitrie Sep 27, 2024
5b2ab8b
Merge branch 'dev' into dim/brep-exp
didimitrie Sep 27, 2024
b821a15
Merge pull request #280 from specklesystems/claire/cnx-540-store-unit…
didimitrie Sep 27, 2024
4333bfb
wip: revit materials hack for painting post conversion
didimitrie Sep 27, 2024
f9bcb47
Merge branch 'dev' into dim/brep-exp
oguzhankoral Sep 30, 2024
9edba5d
Dev mode active in Local env
oguzhankoral Sep 30, 2024
bce9ed7
Create direct shape definitions
oguzhankoral Sep 30, 2024
aaf6759
Accounts config to keep latest user selected account persistent on UI
oguzhankoral Sep 30, 2024
0eb2b86
Clean up on host object builder
oguzhankoral Oct 1, 2024
07ded49
Fix the transform object
oguzhankoral Oct 1, 2024
e0e6f41
Format
oguzhankoral Oct 1, 2024
896de43
Clean up
oguzhankoral Oct 2, 2024
7df01df
More cleanup
oguzhankoral Oct 2, 2024
e7d165d
Bake single group for received version
oguzhankoral Oct 2, 2024
27f9599
Remove invalid chars from group name
oguzhankoral Oct 2, 2024
48396e7
Fix pre-existing parent group id in the list of ids to delete
oguzhankoral Oct 2, 2024
b9bb8d5
Remove unused file
oguzhankoral Oct 2, 2024
b338f77
Format
oguzhankoral Oct 3, 2024
7300d53
Merge pull request #288 from specklesystems/oguzhan/cnx-549-set-selec…
didimitrie Oct 7, 2024
2e70c24
Merge pull request #289 from specklesystems/oguzhan/brep-exp
didimitrie Oct 7, 2024
311963f
added elementId
bimgeek Oct 7, 2024
ae162e3
fix: clears direct shape lib to fix second receive and catches objs w…
didimitrie Oct 7, 2024
7144d81
feat(dui3): pinns created groups
didimitrie Oct 8, 2024
7d2f5a4
feat: adds userland controllable transaction names
didimitrie Oct 8, 2024
9780cb6
feat: minor cleanup
didimitrie Oct 8, 2024
41da92e
feat: faster mesh scaling
didimitrie Oct 8, 2024
c7665a7
feat: adds fallback checking in importer and assign materials
didimitrie Oct 8, 2024
23fbe10
fix: removes fallback for meshes due to performance reasons
didimitrie Oct 8, 2024
0f09a15
fix: improves performance for fallback scenarios
didimitrie Oct 8, 2024
63ae8e3
fix: adds back support for non-instanced curves
didimitrie Oct 8, 2024
704a75a
feat(civil): adds basic element converter and fixes DI (#292)
clairekuang Oct 9, 2024
3028e9e
Asyicify `ExecuteScriptAsync` calls (#240)
JR-Morgan Oct 9, 2024
794af5e
fix: adds whatever support we can for curves inside blocks
didimitrie Oct 9, 2024
ddaf329
Merge branch 'dev' into dim/brep-exp
didimitrie Oct 9, 2024
685da9a
chore: package locks push
didimitrie Oct 9, 2024
48b4be6
add await (#294)
KatKatKateryna Oct 9, 2024
c7eee14
Merge branch 'dev' into dim/brep-exp
didimitrie Oct 9, 2024
e153eeb
chore: formatting
didimitrie Oct 9, 2024
eed7f91
chore: more formatting
didimitrie Oct 9, 2024
460719e
Clean up attributes for logs/traces and user id correlation (#285)
adamhathcock Oct 10, 2024
bbd4bee
fix: adds using statements to correctly dispose at end of the scope
didimitrie Oct 10, 2024
56d0eb0
ArcGIS GroupLayers (#293)
KatKatKateryna Oct 10, 2024
c251db7
update sdk reference
adamhathcock Oct 10, 2024
d3f3228
fix test references
adamhathcock Oct 10, 2024
9f0b083
Merge pull request #295 from specklesystems/fix-brep-revamp
didimitrie Oct 10, 2024
1074932
fix: review comments
didimitrie Oct 10, 2024
027a550
Merge branch 'dev' into bilal/cnx-569-element-id-not-set
didimitrie Oct 10, 2024
fe6e195
Merge branch 'dev' into dim/brep-exp
didimitrie Oct 10, 2024
c2caeb5
fix: CNX-567
didimitrie Oct 10, 2024
a95e7cc
fix: CNX-556
didimitrie Oct 10, 2024
0d584bb
fix: CNX-559
didimitrie Oct 10, 2024
ed2d3ed
AsyncLocal in activity scope needs proper initialization (#298)
adamhathcock Oct 11, 2024
77af0b4
Merge branch 'dev' into dimitrie/cnx-510-revit-parameter-exports-perf…
didimitrie Oct 11, 2024
8c34416
feat(civil3d): adds property sets and parts data to all civil objects…
clairekuang Oct 11, 2024
102a7cb
fix: fmt
didimitrie Oct 11, 2024
bd4b565
Fix activity scope (#299)
adamhathcock Oct 11, 2024
b840988
Merge branch 'dev' into dim/brep-exp
didimitrie Oct 11, 2024
ec1f137
Merge branch 'dev' into dimitrie/cnx-510-revit-parameter-exports-perf…
didimitrie Oct 11, 2024
491490c
fix: CNX-565 and CNX-564
didimitrie Oct 11, 2024
51550c9
feat: adds support for assembly structure (CNX-570)
didimitrie Oct 11, 2024
9804acd
feat: makes material quantities a map (used to a be a list)
didimitrie Oct 11, 2024
98a7064
Merge branch 'dev' into bilal/cnx-569-element-id-not-set
didimitrie Oct 11, 2024
650022e
chore: adds comment
didimitrie Oct 11, 2024
dca2438
chore: fmt
didimitrie Oct 11, 2024
188f23f
Merge pull request #290 from specklesystems/bilal/cnx-569-element-id-…
didimitrie Oct 11, 2024
1e53700
Merge branch 'dev' into dimitrie/cnx-510-revit-parameter-exports-perf…
clairekuang Oct 12, 2024
0a27fc1
Merge pull request #300 from specklesystems/dimitrie/cnx-510-revit-pa…
didimitrie Oct 12, 2024
de167cd
Merge branch 'dev' into dim/brep-exp
didimitrie Oct 14, 2024
0c5b5ed
Merge pull request #278 from specklesystems/dim/brep-exp
didimitrie Oct 14, 2024
4f04e9e
Use Metrics in Connectors (#296)
adamhathcock Oct 14, 2024
5fb3616
feat(civil3d): adds all properties for sites, catchments, surfaces, a…
clairekuang Oct 14, 2024
da0a35a
added `store_artifacts` input to build installers trigger (#303)
AlanRynne Oct 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ jobs:
needs: build
env:
IS_TAG_BUILD: ${{ github.ref_type == 'tag' }}
IS_RELEASE_BRANCH: ${{ startsWith(github.ref_name, 'release/') || github.ref_name == 'main'}}
steps:
- name: 🔫 Trigger Build Installers
uses: ALEEF02/[email protected]
Expand All @@ -57,7 +58,7 @@ jobs:
workflow: Build Installers
repo: specklesystems/connector-installers
token: ${{ secrets.CONNECTORS_GH_TOKEN }}
inputs: '{ "run_id": "${{ github.run_id }}", "version": "${{ needs.build.outputs.version }}", "public_release": ${{ env.IS_TAG_BUILD }} }'
inputs: '{ "run_id": "${{ github.run_id }}", "version": "${{ needs.build.outputs.version }}", "public_release": ${{ env.IS_TAG_BUILD }}, "store_artifacts": ${{ env.IS_RELEASE_BRANCH }} }'
ref: main
wait-for-completion: true
wait-for-completion-interval: 10s
Expand Down
14 changes: 14 additions & 0 deletions Build/packages.lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,15 @@
"System.Threading.Tasks.Dataflow": "8.0.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, )",
Expand Down Expand Up @@ -73,6 +82,11 @@
"resolved": "17.10.4",
"contentHash": "wyABaqY+IHCMMSTQmcc3Ca6vbmg5BaEPgicnEgpll+4xyWZWlkQqUwafweUd9VAhBb4jqplMl6voUHQ6yfdUcg=="
},
"Microsoft.NETFramework.ReferenceAssemblies.net461": {
"type": "Transitive",
"resolved": "1.0.3",
"contentHash": "AmOJZwCqnOCNp6PPcf9joyogScWLtwy0M1WkqfEQ0M9nYwyDD7EX9ZjscKS5iYnyvteX7kzSKFCKt9I9dXA6mA=="
},
"Microsoft.SourceLink.Common": {
"type": "Transitive",
"resolved": "8.0.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,23 +76,19 @@ public async Task Receive(string modelCardId)
.ServiceProvider.GetRequiredService<ReceiveOperation>()
.Execute(
modelCard.GetReceiveInfo("ArcGIS"), // POC: get host app name from settings? same for GetSendInfo
cancellationToken,
(status, progress) =>
_operationProgressManager.SetModelProgress(
Parent,
modelCardId,
new ModelCardProgress(modelCardId, status, progress),
cancellationToken
)
_operationProgressManager.CreateOperationProgressEventHandler(Parent, modelCardId, cancellationToken),
cancellationToken
)
.ConfigureAwait(false);

modelCard.BakedObjectIds = receiveOperationResults.BakedObjectIds.ToList();
Commands.SetModelReceiveResult(
modelCardId,
receiveOperationResults.BakedObjectIds,
receiveOperationResults.ConversionResults
);
await Commands
.SetModelReceiveResult(
modelCardId,
receiveOperationResults.BakedObjectIds,
receiveOperationResults.ConversionResults
)
.ConfigureAwait(false);
}
catch (OperationCanceledException)
{
Expand All @@ -104,7 +100,7 @@ public async Task Receive(string modelCardId)
catch (Exception ex) when (!ex.IsFatal()) // UX reasons - we will report operation exceptions as model card error. We may change this later when we have more exception documentation
{
_logger.LogModelCardHandledError(ex);
Commands.SetModelError(modelCardId, ex);
await Commands.SetModelError(modelCardId, ex).ConfigureAwait(false);
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
using ArcGIS.Desktop.Mapping;
using ArcGIS.Desktop.Mapping.Events;
using Speckle.Connectors.ArcGIS.Utils;
using Speckle.Connectors.DUI.Bindings;
using Speckle.Connectors.DUI.Bridge;

namespace Speckle.Connectors.ArcGIS.Bindings;

public class ArcGISSelectionBinding : ISelectionBinding
{
private readonly MapMembersUtils _mapMemberUtils;
public string Name => "selectionBinding";
public IBrowserBridge Parent { get; }

public ArcGISSelectionBinding(IBrowserBridge parent)
public ArcGISSelectionBinding(IBrowserBridge parent, MapMembersUtils mapMemberUtils)
{
_mapMemberUtils = mapMemberUtils;
Parent = parent;
var topLevelHandler = parent.TopLevelExceptionHandler;

Expand Down Expand Up @@ -52,14 +55,8 @@ public SelectionInfo GetSelection()
List<MapMember> allNestedMembers = new();
foreach (MapMember member in selectedMembers)
{
if (member is GroupLayer group)
{
GetLayersFromGroup(group, allNestedMembers);
}
else
{
allNestedMembers.Add(member);
}
var layerMapMembers = _mapMemberUtils.UnpackMapLayers(selectedMembers);
allNestedMembers.AddRange(layerMapMembers);
}

List<string> objectTypes = allNestedMembers
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Speckle.Connectors.ArcGIS.Filters;
using Speckle.Connectors.ArcGIS.Utils;
using Speckle.Connectors.Common.Caching;
using Speckle.Connectors.Common.Cancellation;
using Speckle.Connectors.Common.Operations;
Expand Down Expand Up @@ -54,6 +55,7 @@ public sealed class ArcGISSendBinding : ISendBinding

private List<FeatureLayer> SubscribedLayers { get; set; } = new();
private List<StandaloneTable> SubscribedTables { get; set; } = new();
private readonly MapMembersUtils _mapMemberUtils;

public ArcGISSendBinding(
DocumentModelStore store,
Expand All @@ -64,7 +66,8 @@ public ArcGISSendBinding(
ISendConversionCache sendConversionCache,
IOperationProgressManager operationProgressManager,
ILogger<ArcGISSendBinding> logger,
IArcGISConversionSettingsFactory arcGisConversionSettingsFactory
IArcGISConversionSettingsFactory arcGisConversionSettingsFactory,
MapMembersUtils mapMemberUtils
)
{
_store = store;
Expand All @@ -76,6 +79,7 @@ IArcGISConversionSettingsFactory arcGisConversionSettingsFactory
_logger = logger;
_topLevelExceptionHandler = parent.TopLevelExceptionHandler;
_arcGISConversionSettingsFactory = arcGisConversionSettingsFactory;
_mapMemberUtils = mapMemberUtils;

Parent = parent;
Commands = new SendBindingUICommands(parent);
Expand All @@ -89,22 +93,32 @@ IArcGISConversionSettingsFactory arcGisConversionSettingsFactory
private void SubscribeToArcGISEvents()
{
LayersRemovedEvent.Subscribe(
a => _topLevelExceptionHandler.CatchUnhandled(() => GetIdsForLayersRemovedEvent(a)),
a =>
_topLevelExceptionHandler.FireAndForget(async () => await GetIdsForLayersRemovedEvent(a).ConfigureAwait(false)),
true
);

StandaloneTablesRemovedEvent.Subscribe(
a => _topLevelExceptionHandler.CatchUnhandled(() => GetIdsForStandaloneTablesRemovedEvent(a)),
a =>
_topLevelExceptionHandler.FireAndForget(
async () => await GetIdsForStandaloneTablesRemovedEvent(a).ConfigureAwait(false)
),
true
);

MapPropertyChangedEvent.Subscribe(
a => _topLevelExceptionHandler.CatchUnhandled(() => GetIdsForMapPropertyChangedEvent(a)),
a =>
_topLevelExceptionHandler.FireAndForget(
async () => await GetIdsForMapPropertyChangedEvent(a).ConfigureAwait(false)
),
true
); // Map units, CRS etc.

MapMemberPropertiesChangedEvent.Subscribe(
a => _topLevelExceptionHandler.CatchUnhandled(() => GetIdsForMapMemberPropertiesChangedEvent(a)),
a =>
_topLevelExceptionHandler.FireAndForget(
async () => await GetIdsForMapMemberPropertiesChangedEvent(a).ConfigureAwait(false)
),
true
); // e.g. Layer name

Expand Down Expand Up @@ -181,28 +195,31 @@ private void SubscribeToAnyDataSourceChange(Table layerTable)
{
RowCreatedEvent.Subscribe(
(args) =>
{
OnRowChanged(args);
},
Parent.TopLevelExceptionHandler.FireAndForget(async () =>
{
await OnRowChanged(args).ConfigureAwait(false);
}),
layerTable
);
RowChangedEvent.Subscribe(
(args) =>
{
OnRowChanged(args);
},
Parent.TopLevelExceptionHandler.FireAndForget(async () =>
{
await OnRowChanged(args).ConfigureAwait(false);
}),
layerTable
);
RowDeletedEvent.Subscribe(
(args) =>
{
OnRowChanged(args);
},
Parent.TopLevelExceptionHandler.FireAndForget(async () =>
{
await OnRowChanged(args).ConfigureAwait(false);
}),
layerTable
);
}

private void OnRowChanged(RowChangedEventArgs args)
private async Task OnRowChanged(RowChangedEventArgs args)
{
if (args == null || MapView.Active == null)
{
Expand Down Expand Up @@ -241,60 +258,38 @@ private void OnRowChanged(RowChangedEventArgs args)
}
}

RunExpirationChecks(false);
await RunExpirationChecks(false).ConfigureAwait(false);
}

private void GetIdsForLayersRemovedEvent(LayerEventsArgs args)
private async Task GetIdsForLayersRemovedEvent(LayerEventsArgs args)
{
foreach (Layer layer in args.Layers)
{
ChangedObjectIds[layer.URI] = 1;
}
RunExpirationChecks(true);
await RunExpirationChecks(true).ConfigureAwait(false);
}

private void GetIdsForStandaloneTablesRemovedEvent(StandaloneTableEventArgs args)
private async Task GetIdsForStandaloneTablesRemovedEvent(StandaloneTableEventArgs args)
{
foreach (StandaloneTable table in args.Tables)
{
ChangedObjectIds[table.URI] = 1;
}
RunExpirationChecks(true);
}

private void AddChangedNestedObjectIds(GroupLayer group)
{
ChangedObjectIds[group.URI] = 1;
foreach (var member in group.Layers)
{
if (member is GroupLayer subGroup)
{
AddChangedNestedObjectIds(subGroup);
}
else
{
ChangedObjectIds[member.URI] = 1;
}
}
await RunExpirationChecks(true).ConfigureAwait(false);
}

private void GetIdsForMapPropertyChangedEvent(MapPropertyChangedEventArgs args)
private async Task GetIdsForMapPropertyChangedEvent(MapPropertyChangedEventArgs args)
{
foreach (Map map in args.Maps)
{
foreach (MapMember member in map.Layers)
List<MapMember> allMapMembers = _mapMemberUtils.GetAllMapMembers(map);
foreach (MapMember member in allMapMembers)
{
if (member is GroupLayer group)
{
AddChangedNestedObjectIds(group);
}
else
{
ChangedObjectIds[member.URI] = 1;
}
ChangedObjectIds[member.URI] = 1;
}
}
RunExpirationChecks(false);
await RunExpirationChecks(false).ConfigureAwait(false);
}

private void GetIdsForLayersAddedEvent(LayerEventsArgs args)
Expand All @@ -316,7 +311,7 @@ private void GetIdsForStandaloneTablesAddedEvent(StandaloneTableEventArgs args)
}
}

private void GetIdsForMapMemberPropertiesChangedEvent(MapMemberPropertiesChangedEventArgs args)
private async Task GetIdsForMapMemberPropertiesChangedEvent(MapMemberPropertiesChangedEventArgs args)
{
// don't subscribe to all events (e.g. expanding group, changing visibility etc.)
bool validEvent = false;
Expand Down Expand Up @@ -344,7 +339,7 @@ private void GetIdsForMapMemberPropertiesChangedEvent(MapMemberPropertiesChanged
{
ChangedObjectIds[member.URI] = 1;
}
RunExpirationChecks(false);
await RunExpirationChecks(false).ConfigureAwait(false);
}
}

Expand Down Expand Up @@ -417,13 +412,7 @@ public async Task Send(string modelCardId)
.Execute(
mapMembers,
modelCard.GetSendInfo("ArcGIS"), // POC: get host app name from settings? same for GetReceiveInfo
(status, progress) =>
_operationProgressManager.SetModelProgress(
Parent,
modelCardId,
new ModelCardProgress(modelCardId, status, progress),
cancellationToken
),
_operationProgressManager.CreateOperationProgressEventHandler(Parent, modelCardId, cancellationToken),
cancellationToken
)
.ConfigureAwait(false);
Expand All @@ -432,7 +421,9 @@ public async Task Send(string modelCardId)
})
.ConfigureAwait(false);

Commands.SetModelSendResult(modelCardId, sendResult.RootObjId, sendResult.ConversionResults);
await Commands
.SetModelSendResult(modelCardId, sendResult.RootObjId, sendResult.ConversionResults)
.ConfigureAwait(false);
}
catch (OperationCanceledException)
{
Expand All @@ -444,7 +435,7 @@ public async Task Send(string modelCardId)
catch (Exception ex) when (!ex.IsFatal()) // UX reasons - we will report operation exceptions as model card error. We may change this later when we have more exception documentation
{
_logger.LogModelCardHandledError(ex);
Commands.SetModelError(modelCardId, ex);
await Commands.SetModelError(modelCardId, ex).ConfigureAwait(false);
}
}

Expand All @@ -453,7 +444,7 @@ public async Task Send(string modelCardId)
/// <summary>
/// Checks if any sender model cards contain any of the changed objects. If so, also updates the changed objects hashset for each model card - this last part is important for on send change detection.
/// </summary>
private void RunExpirationChecks(bool idsDeleted)
private async Task RunExpirationChecks(bool idsDeleted)
{
var senders = _store.GetSenders();
List<string> expiredSenderIds = new();
Expand All @@ -479,7 +470,7 @@ private void RunExpirationChecks(bool idsDeleted)
}
}

Commands.SetModelsExpired(expiredSenderIds);
await Commands.SetModelsExpired(expiredSenderIds).ConfigureAwait(false);
ChangedObjectIds = new();
}
}
Loading
Loading