namespace Yw.WinFrmUI { /// /// BIMFACE辅助类 /// public class BimfaceHelper { #region 文件Token /// /// 获取ViewToken /// /// bimfaceId /// 模型类型 /// public static async Task GetViewToken(string bimfaceId, Yw.BIMFace.eModelIdType modelIdType = eModelIdType.fileId) { var bimfaceClient = Yw.BIMFaceClient.Instance(ConfigHelper.AppKey, ConfigHelper.AppSecret); return await bimfaceClient.GetViewToken(bimfaceId, modelIdType); } #endregion #region 上传文件 /// /// 上传文件 /// /// 文件全路径 /// 文件名称 /// BimfaceId public static async Task UploadFile(string fullFilePath, string fileName = null) { if (!File.Exists(fullFilePath)) { return default; } var bimfaceClient = Yw.BIMFaceClient.Instance(ConfigHelper.AppKey, ConfigHelper.AppSecret); var bimfaceId = await bimfaceClient.UploadFileExByPolicy(fullFilePath, fileName); return bimfaceId; } #endregion #region 文件转换 /// /// 转换rvt文件 /// /// bimfaceId /// 转换样式 /// 转换状态 public static async Task TranslateRvtFile(long bimfaceId, eRvtTranslateStyle translateStyle = eRvtTranslateStyle.Real) { var bimfaceClient = Yw.BIMFaceClient.Instance(ConfigHelper.AppKey, ConfigHelper.AppSecret); var fileStatus = await bimfaceClient.TranslateRvtFileReturnStatus(bimfaceId.ToString(), translateStyle); return fileStatus; } /// /// 转换rvt文件 /// /// bimfaceId /// 转换样式 /// 转换状态 public static async Task TranslateRvtFile(string bimfaceId, eRvtTranslateStyle translateStyle = eRvtTranslateStyle.Real) { var bimfaceClient = Yw.BIMFaceClient.Instance(ConfigHelper.AppKey, ConfigHelper.AppSecret); var fileStatus = await bimfaceClient.TranslateRvtFileReturnStatus(bimfaceId, translateStyle); return fileStatus; } /// /// 获取文件转换状态 /// /// bimfaceId /// 转换状态 public static async Task GetFileTranslateStatus(long bimfaceId) { var bimfaceClient = Yw.BIMFaceClient.Instance(ConfigHelper.AppKey, ConfigHelper.AppSecret); var fileStatus = await bimfaceClient.GetFileTranslateStatusReturnStatus(bimfaceId.ToString()); return fileStatus; } /// /// 等待文件转换状态直到成功 /// /// bimfaceId /// 轮询毫秒 /// public static async Task WaitFileTranslateStatusUntilSuccess(long bimfaceId, int polling) { var bimfaceClient = Yw.BIMFaceClient.Instance(ConfigHelper.AppKey, ConfigHelper.AppSecret); var fileStatus = await bimfaceClient.GetFileTranslateStatusReturnStatus(bimfaceId.ToString()); if (fileStatus == eTranslateStatus.Processing) { await Task.Run(async () => { while (fileStatus == eTranslateStatus.Processing) { Thread.Sleep(polling); fileStatus = await bimfaceClient.GetFileTranslateStatusReturnStatus(bimfaceId.ToString()); } }); } } /// /// 等待文件转换状态直到成功 /// /// bimfaceId /// 轮询毫秒 /// public static async Task WaitFileTranslateStatusUntilSuccess(string bimfaceId, int polling) { var bimfaceClient = Yw.BIMFaceClient.Instance(ConfigHelper.AppKey, ConfigHelper.AppSecret); var fileStatus = await bimfaceClient.GetFileTranslateStatusReturnStatus(bimfaceId); if (fileStatus == eTranslateStatus.Processing) { await Task.Run(async () => { while (fileStatus == eTranslateStatus.Processing) { Thread.Sleep(polling); fileStatus = await bimfaceClient.GetFileTranslateStatusReturnStatus(bimfaceId); } }); } } #endregion #region 文件删除 /// /// 删除 /// /// bimfaceId /// 模型类型 /// public static async Task Delete(long bimfaceId, Yw.BIMFace.eModelIdType modelIdType = eModelIdType.fileId) { var bimfaceClient = Yw.BIMFaceClient.Instance(ConfigHelper.AppKey, ConfigHelper.AppSecret); return await bimfaceClient.Delete(bimfaceId.ToString(), modelIdType); } /// /// 删除 /// /// bimfaceId /// 模型类型 /// public static async Task Delete(string bimfaceId, Yw.BIMFace.eModelIdType modelIdType = eModelIdType.fileId) { var bimfaceClient = Yw.BIMFaceClient.Instance(ConfigHelper.AppKey, ConfigHelper.AppSecret); return await bimfaceClient.Delete(bimfaceId, modelIdType); } #endregion #region 文件获取 /// /// 获取文件构件id列表 /// public static async Task> GetFileComponentIds(string bimfaceId) { var bimfaceClient = Yw.BIMFaceClient.Instance(ConfigHelper.AppKey, ConfigHelper.AppSecret); return await bimfaceClient.GetFileComponentIds(bimfaceId); } /// /// 获取文件构件id列表 /// public static async Task> GetFileComponentIds(long bimfaceId) { return await GetFileComponentIds(bimfaceId.ToString()); } #endregion } }