qin
2024-09-28 e358beb08f5be49703009b64f058ecfbcfeefbd9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using HStation.RevitDev.RevitDataExport.Service;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
 
namespace HStation.RevitDev.RevitDataExport.Utility
{
    public static class ViewHelper
    {
        private static View3D _view3d;
        public static View3D Get3dView(Document doc)
        {
            if (_view3d != null)
            {
                return _view3d;
            }
            FilteredElementCollector collector = new FilteredElementCollector(doc).OfClass(typeof(View3D));
 
            foreach (View3D v in collector)
            {
                if (!v.IsTemplate)
                {
                    return v;
                }
            }
            TaskDialog.Show("警告", "未找到三维视图,请先创建三维视图!");
            return null;
        }
 
        public static void Select(this View3D view, UIDocument _uiDoc, List<ElementId> ids)
        {
            _uiDoc.Selection.SetElementIds(ids);
            view.Zoom(_uiDoc, ids);
        }
 
        public static void Zoom(this View3D view, UIDocument _uiDoc, List<ElementId> ids)
        {
            _uiDoc.ShowElements(ids);
        }
 
        public static void OnlyShow(this View3D view, List<ElementId> ids)
        {
            if (view.IsTemporaryHideIsolateActive())
            {
                view.DisableTemporaryViewMode(TemporaryViewMode.TemporaryHideIsolate);
            }
            view.IsolateElementsTemporary(ids);
        }
    }
}