/* ==============================================================================
* 功能描述: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
}
}