1- using System ;
2- using System . Collections . Generic ;
1+ using System . Collections . Generic ;
32using System . Linq ;
4- using Autodesk . Revit . DB ;
53using Autodesk . Revit . UI ;
64using RevitDBExplorer . Domain . DataModel ;
75using RevitDBExplorer . Domain . Selectors . Base ;
@@ -17,50 +15,12 @@ internal class SnoopElementsOnScreen : ISelector
1715 public IEnumerable < SnoopableObject > Snoop ( UIApplication app )
1816 {
1917 var document = app ? . ActiveUIDocument ? . Document ;
18+ var view = document ? . ActiveView ;
19+ if ( view == null ) return null ;
2020
21- if ( document == null ) return null ;
22-
23- if ( document . ActiveView is ViewPlan viewPlan )
24- {
25- //var currentElevation = viewPlan.GenLevel.Elevation;
26- //var bottomElevation = -1000.0;
27-
28- //var viewRange = viewPlan.GetViewRange();
29- //var depthPlaneLevelId = viewRange.GetLevelId(PlanViewPlane.ViewDepthPlane);
30- //if (depthPlaneLevelId != ElementId.InvalidElementId)
31- //{
32- // var depthOffset = viewRange.GetOffset(PlanViewPlane.ViewDepthPlane);
33- // var depthLevel = document.GetElement(depthPlaneLevelId) as Level;
34- // bottomElevation = depthLevel.Elevation + depthOffset;
35- //}
36-
37- //var deltaBottom = currentElevation - bottomElevation;
38- }
39-
40- var view = app . ActiveUIDocument . ActiveGraphicalView ;
41- if ( view == null ) return null ;
42-
43- if ( view . ViewDirection . IsParallelTo ( XYZ . BasisX ) == false && view . ViewDirection . IsParallelTo ( XYZ . BasisY ) == false && view . ViewDirection . IsParallelTo ( XYZ . BasisZ ) == false )
44- return null ;
45- if ( view . RightDirection . IsParallelTo ( XYZ . BasisX ) == false && view . RightDirection . IsParallelTo ( XYZ . BasisY ) == false && view . RightDirection . IsParallelTo ( XYZ . BasisZ ) == false )
46- return null ;
47-
48- var uiViews = app . ActiveUIDocument . GetOpenUIViews ( ) ;
49- var uiView = uiViews . FirstOrDefault ( x => x . ViewId == document . ActiveView . Id ) ;
50- var zoomCorners = uiView . GetZoomCorners ( ) ;
51- var min = zoomCorners [ 0 ] ;
52- var max = zoomCorners [ 1 ] ;
21+ var elements = app . ActiveUIDocument . GetElementsOnTheScreen ( ) . Select ( x => new SnoopableObject ( document , x ) ) . ToArray ( ) ;
5322
54- var margin1 = document . ActiveView . ViewDirection * 54321 ;
55- var margin2 = margin1 . Negate ( ) ;
56-
57- min = min + margin1 . Min ( margin2 ) ;
58- max = max + margin1 . Max ( margin2 ) ;
59-
60- var outline = new Outline ( min , max ) ;
61- var collector = new FilteredElementCollector ( document , document . ActiveView . Id ) . WherePasses ( new BoundingBoxIntersectsFilter ( outline ) ) ;
62-
63- return collector . ToElements ( ) . Select ( x => new SnoopableObject ( document , x ) ) ;
64- }
23+ return elements ;
24+ }
6525 }
66- }
26+ }
0 commit comments