namespace HStation.WinFrmUI
{
public partial class ViewXhsProjectBimfacePage : DocumentPage
{
public ViewXhsProjectBimfacePage()
{
InitializeComponent();
this.PageTitle.Caption = "模型视图";
this.PageTitle.HeaderSvgImage = this.svgImg32[0];
this.PageTitle.SvgImageSize = new Size(24, 24);
}
private XhsProjectStdDto _project = null;
///
/// 绑定数据
///
/// 项目id
public async Task SetBindingData(long projectId)
{
_project = await new BLL.XhsProjectStd().GetByID(projectId);
this.PageTitle.Caption = $"{_project?.Name}\n模型视图";
}
///
/// 绑定数据
///
/// 项目
public void SetBindingData(HStation.Dto.XhsProjectStdDto project)
{
_project = project;
this.PageTitle.Caption = $"{_project?.Name}\n模型视图";
}
///
/// 初始化数据源
///
public override async void InitialDataSource()
{
base.InitialDataSource();
this.bimfaceInterop3dContainer1.LoadCompletedEvent += BimfaceInterop3dContainer1_LoadCompletedEvent;
await this.bimfaceInterop3dContainer1.InitialContainer();
}
///
/// 页面加载完成后触发
///
private async void BimfaceInterop3dContainer1_LoadCompletedEvent()
{
if (_project == null)
{
return;
}
var projectSite = await new BLL.XhsProjectSiteStd().GetDefaultByProjectID(_project.ID);
if (projectSite == null)
{
return;
}
var relation = await new Yw.BLL.BimfaceFileRelationStd()
.GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, projectSite.ID, Yw.Bimface.Purpose.Simulation);
if (relation == null)
{
return;
}
var bimfaceFile = await new Yw.BLL.BimfaceFileStd().GetByID(relation.BimfaceFileID);
if (bimfaceFile == null)
{
return;
}
var viewToken = await BimfaceHelper.GetViewToken(bimfaceFile.BimfaceId);
if (string.IsNullOrEmpty(viewToken))
{
return;
}
await this.bimfaceInterop3dContainer1.LoadView(viewToken);
}
}
}