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());
}
});
}
}
}
}