Skip to content

Commit 0ac43e1

Browse files
committed
add commands to snoop: UIApplication, UIDocument, UIView
1 parent 04cc6fd commit 0ac43e1

File tree

6 files changed

+82
-4
lines changed

6 files changed

+82
-4
lines changed

sources/RevitDBExplorer/Domain/Selectors/SelectorFactory.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ public enum Selector
3232
LoadedApplications,
3333
ExternalServices,
3434
VisibleInView,
35+
UIApplication,
36+
UIDocument,
37+
UIView,
3538
}
3639

3740
internal static class SelectorFactory
@@ -71,6 +74,9 @@ private static ISelector CreateSelector(Selector selector)
7174
Selector.LoadedApplications => new SnoopLoadedApplications(),
7275
Selector.ExternalServices => new SnoopExternalServices(),
7376
Selector.VisibleInView => new SnoopVisibleInView(),
77+
Selector.UIApplication => new SnoopUIApplication(),
78+
Selector.UIDocument => new SnoopUIDocument(),
79+
Selector.UIView => new SnoopUIView(),
7480
_ => throw new NotImplementedException()
7581
}; ;
7682
return result;
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using System.Collections.Generic;
2+
using Autodesk.Revit.UI;
3+
using RevitDBExplorer.Domain.DataModel;
4+
using RevitDBExplorer.Domain.Selectors.Base;
5+
6+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
7+
8+
namespace RevitDBExplorer.Domain.Selectors
9+
{
10+
internal class SnoopUIApplication : ISelector
11+
{
12+
public InfoAboutSource Info { get; } = new("UIApplication");
13+
14+
15+
public IEnumerable<SnoopableObject> Snoop(UIApplication app)
16+
{
17+
yield return new SnoopableObject(null, app);
18+
}
19+
}
20+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using System.Collections.Generic;
2+
using Autodesk.Revit.UI;
3+
using RevitDBExplorer.Domain.DataModel;
4+
using RevitDBExplorer.Domain.Selectors.Base;
5+
6+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
7+
8+
namespace RevitDBExplorer.Domain.Selectors
9+
{
10+
internal class SnoopUIDocument : ISelector
11+
{
12+
public InfoAboutSource Info { get; } = new("UIDocument");
13+
14+
15+
public IEnumerable<SnoopableObject> Snoop(UIApplication app)
16+
{
17+
var document = app?.ActiveUIDocument;
18+
19+
if (document == null) yield break;
20+
21+
yield return new SnoopableObject(null, document);
22+
}
23+
}
24+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using System.Collections.Generic;
2+
using System.Linq;
3+
using Autodesk.Revit.UI;
4+
using RevitDBExplorer.Domain.DataModel;
5+
using RevitDBExplorer.Domain.Selectors.Base;
6+
7+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
8+
9+
namespace RevitDBExplorer.Domain.Selectors
10+
{
11+
internal class SnoopUIView : ISelector
12+
{
13+
public InfoAboutSource Info { get; } = new("UIView");
14+
15+
16+
public IEnumerable<SnoopableObject> Snoop(UIApplication app)
17+
{
18+
var views = app?.ActiveUIDocument?.GetOpenUIViews();
19+
var view = views?.Where(x => x.ViewId == app.ActiveUIDocument.ActiveGraphicalView?.Id).FirstOrDefault();
20+
21+
if (view == null) yield break;
22+
23+
yield return new SnoopableObject(null, view);
24+
}
25+
}
26+
}

sources/RevitDBExplorer/MainWindow.xaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,10 @@
143143
<MenuItem Header="Snoop application" InputGestureText="commandData.Application.Application" Click="SelectorButton_Click" Tag="Application" />
144144
<MenuItem Header="Snoop document" InputGestureText="commandData.Application.ActiveUIDocument.Document" Click="SelectorButton_Click" Tag="ActiveDocument" />
145145
<MenuItem Header="Snoop active view" InputGestureText="commandData.Application.ActiveUIDocument.Document.ActiveView" Click="SelectorButton_Click" Tag="ActiveView" />
146+
<Separator />
147+
<MenuItem Header="Snoop ui application" InputGestureText="commandData.Application" Click="SelectorButton_Click" Tag="UIApplication" />
148+
<MenuItem Header="Snoop ui document" InputGestureText="commandData.Application.ActiveUIDocument" Click="SelectorButton_Click" Tag="UIDocument" />
149+
<MenuItem Header="Snoop active ui view" InputGestureText="commandData.Application.ActiveUIDocument.GetOpenUIViews()" Click="SelectorButton_Click" Tag="UIView" />
146150
</ContextMenu>
147151
</Button.ContextMenu>
148152
</Button>

sources/RevitDBExplorer/RevitDBExplorer.csproj

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,15 +180,13 @@
180180
<None Include="..\..\RevitDBExplorer.addin">
181181
<Link>RevitDBExplorer.addin</Link>
182182
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
183-
</None>
184-
<None Include="Domain\DataModel\MembersOverrides\RebarConstraintsManager\RebarConstraintsManager_GetConstraintCandidatesForHandle.cs" />
183+
</None>
185184
<None Include="Domain\Selectors\SnoopDependentElements.cs" />
186185
</ItemGroup>
187186
<ItemGroup>
188187
<Compile Remove="obj\*.*" />
189188
</ItemGroup>
190-
<ItemGroup>
191-
<Compile Remove="Domain\DataModel\MembersOverrides\RebarConstraintsManager\RebarConstraintsManager_GetConstraintCandidatesForHandle.cs" />
189+
<ItemGroup>
192190
<Compile Remove="Domain\Selectors\SnoopDependentElements.cs" />
193191
</ItemGroup>
194192
<ItemGroup>

0 commit comments

Comments
 (0)