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
}
}