/* ============================================================================== * 功能描述:MEquipment * 创 建 者:Garrett * 创建日期:2018/3/27 15:39:12 * ==============================================================================*/ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Drawing; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using Autodesk.Revit.DB; using CEFSharpWpf; using Newtonsoft.Json.Linq; using SAGA.DotNetUtils; using SAGA.DotNetUtils.Extend; using SAGA.DotNetUtils.Logger; using SAGA.DotNetUtils.Others; using SAGA.DotNetUtils.WPF; using SAGA.MBI.Common; using SAGA.MBI.DataArrange; using SAGA.MBI.JsonConvert; using SAGA.MBI.RequestData; using SAGA.MBI.Tools; using SAGA.MBI.WinView.ModeInfoMaintenance; using SAGA.RevitUtils.Extends; using WPG.Data; using WPG.UserControls; namespace SAGA.MBI.Model { /// /// MEquipment /// public class MEquipmentPart : MRevitEquipBase { public MEquipmentPart(string floorId, string bimMId) { this.FloorId = floorId; this.BimID = bimMId; ServirceImages = new ObservableCollection(); } #region AttachProperty /// /// 关联的设备 /// public MRevitEquipBase MEquipment { get; set; } #endregion #region CloudProperty private string m_Name; [Description("EquipName")] public string Name { get { return m_Name; } set { m_Name = value; NotifyPropertyChanged("Name"); } } private string m_LocalId; [Description("EquipLocalID")] public string LocalId { get { return m_LocalId; } set { m_LocalId = value; NotifyPropertyChanged("LocalId"); NotifyPropertyChanged("CADID"); } } private string m_LocalName; [Description("EquipLocalName")] public string LocalName { get { return m_LocalName; } set { m_LocalName = value; NotifyPropertyChanged("LocalName"); NotifyPropertyChanged("CADID"); } } private string m_CADID; [Description("CADID")] public string CADID { get { return MBIElementUtils.GetCADID(LocalId, LocalName); } } #endregion Model #region VirtualMethod public override string ToString() { string result = this.LocalName; if (result.IsNotNullEmpty()) return result; result = this.Name; if (result.IsNotNullEmpty()) return result; return "未知"; } public override bool AddObject() { if (MEquipment == null) { Log4Net.Info($"部件 {BimID} 无关联的设备,Add操作失败"); return false; } return EquipmentPartConvert.AddEquipmentPart(this); } public override bool DelObject() { if (Id.IsNullOrEmpty()) return false; var rlt = new RltEquipInSpace(this.Id, null) { Operator = DocumentChangedOperator.Delete }; rlt.DelObject(); //删除设备所在楼层 var rltequipinfloor = new RltEquipinFloor(this.Id, null) { Operator = DocumentChangedOperator.Delete }; rltequipinfloor.AddorUpdateObject(); return EquipmentPartConvert.DelEquipmentPart(this.Id); } /// /// 信息点维护的固定参数 /// /// public override CompositeItem SetFixedProperty() { return PWGInstace.SetFixedProperty(this); } /// /// 从Revit读取需要的参数 /// public override void ReadRevitParamter(Element elem, bool isSubjectToMode = false) { base.ReadRevitParamter(elem); this.LocalId = LocalId.IsNullOrEmpty() ? elem.GetParameterString(RevitBuiltInParameter.EquipLocalID) : LocalId; this.LocalName = LocalName.IsNullOrEmpty() ? elem.GetParameterString(RevitBuiltInParameter.EquipLocalName) : LocalName; } #endregion #region BindingCommand /// /// 查看详细信息 /// /// [Command] public void ShowDetail(object param) { try { var url = $"{MBIConst.Html5DetailLocalHost}details?perjectId={MBIControl.ProjectCur.Id}&secret={MBIControl.ProjectCur.Password}&FmId={this.Id}&type=0&code={EquipClassCode}"; //var url = "www.baidu.com"; var win = WinBrowser.Instance; win.Width = 1233; win.Height = 902; win.Show(url); } catch (Exception e) { MessageShowBase.Show(e); } } public bool CanShowDetail(object param) { return true; } #endregion } }