123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- using Autodesk.Revit.UI;
- using SAGA.MBI.Model;
- using SAGA.RevitUtils.Extends;
- using SAGA.RevitUtils.Windows;
- using WPG.Data;
- using Visibility = System.Windows.Visibility;
- namespace SAGA.MBI.WinView.ModeInfoMaintenance
- {
- /// <summary>
- /// WinModeInfoMaintenance.xaml 的交互逻辑
- /// </summary>
- public partial class WinModeInfoMaintenanceForSpace:WinBase
- {
- private WinModeInfoMaintenanceForSpace()
- {
- InitializeComponent();
- this.Loaded += WinModeInfoMaintenance_Loaded;
- this.Closing += WinModeInfoMaintenance_Closing;
- }
- private void WinModeInfoMaintenance_Loaded(object sender, RoutedEventArgs e)
- {
- SwitchGridVisible();
- }
- /// <summary>
- /// 关闭窗体时,取消Idling事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void WinModeInfoMaintenance_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- this.Hide() ;
- e.Cancel = true;
- EquipmentInfo?.StopWatch();
- }
- private static WinModeInfoMaintenanceForSpace curWindow;
- public static WinModeInfoMaintenanceForSpace GetWindow()
- {
- //WinModeInfoMaintenanceForSpace mw = null;
- //foreach (Window w in Application.Current.Windows)
- //{
- // if (w is WinModeInfoMaintenanceForSpace space)
- // {
- // mw = space;
- // }
- //}
- //if (mw == null)
- //{
- // mw = new WinModeInfoMaintenanceForSpace();
- // mw.Show();
- //}
- //else
- //{
- // mw.Visibility = System.Windows.Visibility.Visible;
- //}
- return curWindow ?? (curWindow = curWindow ?? (curWindow = new WinModeInfoMaintenanceForSpace()));
- }
- public MRevitEquipBase EquipmentInfo { get; set; }
- public new void Show(MRevitEquipBase equipmentInfo)
- {
- EquipmentInfo?.StopWatch();
- EquipmentInfo = equipmentInfo;
- this.DataContext = EquipmentInfo;
- WindowShow();
- }
- /// <summary>
- /// 切换显示的界面
- /// </summary>
- private void SwitchGridVisible()
- {
- SetAllCollapsed();
- if (null != EquipmentInfo?.Id) {
- GridHas.Visibility = Visibility.Visible;
- LoadHasData();
- }
- else if (EquipmentInfo is MBeacon beacon) {
- beacon.Name = "信标";
- GridNone.Visibility = Visibility.Visible;
- CompositeItem item = NullPWGInstace.GetUnknownBeaconItems(EquipmentInfo);
- myWPG.Instance = item;
- }
- else if (EquipmentInfo is MISpace space) {
- space.Name = "元空间";
- GridNone.Visibility = Visibility.Visible;
- CompositeItem item = NullPWGInstace.GetUnknownSpaceItems(EquipmentInfo?.BimID);
- myWPG.Instance = item;
- }
- else if (EquipmentInfo is MEquipment equip) {
- equip.Name = equip.Family.EquipmentTypes[0].Name;
- //部件和设备
- GridNone.Visibility = Visibility.Visible;
- LoadNoneData();
- }
- else if (EquipmentInfo is MEquipmentPart part) {
- part.Name = part.Family.EquipmentTypes[0].Name;
- //部件和设备
- GridNone.Visibility = Visibility.Visible;
- LoadNoneData();
- }
- else {
- //无法识别的模型
- GridNull.Visibility = Visibility.Visible;
- CompositeItem item = NullPWGInstace.GetUnknowItems(EquipmentInfo?.BimID);
- myWPGNull.Instance = item;
- }
- }
- /// <summary>
- /// 设置所有不可见
- /// </summary>
- private void SetAllCollapsed()
- {
- GridNull.Visibility = Visibility.Collapsed;
- GridNone.Visibility = Visibility.Collapsed;
- GridHas.Visibility = Visibility.Collapsed;
- }
- /// <summary>
- /// 显示窗体
- /// </summary>
- private void WindowShow()
- {
- if (this.Visibility != Visibility.Visible)
- {
- base.Show();
- // ExecuteCmd.ExecuteCommandOnce(
- // () =>
- // {
- // ExternalDataWrapper.Current.UiApp.Idling += IdlingEditInstance.EditInstance_Idling;
- // return Result.Succeeded;
- // }
- // , () => { return Result.Succeeded; });
- }
- SwitchGridVisible();
- EquipmentInfo.BeginWatch();
- }
- /// <summary>
- /// 加载没有数据的项
- /// </summary>
- private void LoadNoneData()
- {
- CompositeItem item = NullPWGInstace.GetItems(EquipmentInfo?.BimID);
- myWPG.Instance = item;
- }
- /// <summary>
- /// 加载数据的项
- /// </summary>
- private void LoadHasData()
- {
- EquipmentInfo.SetPropertyGridValue();
- myWPGHas.Instance = EquipmentInfo.CompositeItem;
- }
- public void Hide()
- {
- base.Hide();
- this.Visibility = Visibility.Collapsed;
- }
- }
- }
|