namespace Yw.WinFrmUI { /// /// BIMFACE辅助类 /// public class BimfaceHelper { /// /// 上传文件 /// /// 文件全路径 /// BimfaceId public static async Task UploadFile(string fullFilePath) { if (!File.Exists(fullFilePath)) { return default; } var bimfaceClient = Yw.BIMFaceClient.Instance(ConfigHelper.AppKey, ConfigHelper.AppSecret); var bimfaceId = await bimfaceClient.UploadFileExByPolicy(fullFilePath); return bimfaceId; } /// /// 转换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; } /// /// 获取文件转换状态 /// /// 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()); } }); } } } }