namespace Yw { /// /// 文件转换 /// public sealed partial class BIMFaceClient { private const string _translateUrl = @"https://api.bimface.com/v2/translate";//文件转换URL private const string _translateStatusUrl = @"https://api.bimface.com/translate";//文件转换状态URL /// /// 转换 /// public async Task TranslateRvtFile(string bimfaceId, eRvtTranslateStyle translateStyle) { await GetAccessToken(); if (translateStyle == eRvtTranslateStyle.Real) { return await TranslateRvtFileToRealStyleAsync(bimfaceId); } else { return await TranslateRvtFileToRenderStyleAsync(bimfaceId); } } /// /// 转换 /// public async Task TranslateRvtFileReturnStatus(string bimfaceId, eRvtTranslateStyle translateStyle) { var response = await TranslateRvtFile(bimfaceId, translateStyle); if (response.Status == Constants.Success) { return eTranslateStatus.Success; } if (response.Status == Constants.ProcessingStatus) { return eTranslateStatus.Processing; } return eTranslateStatus.Success; } //发起转换。将RVT文件转换成真实模式的效果 private async Task TranslateRvtFileToRealStyleAsync(string bimfaceId) { var request = new TranslateRvtFileRequest(); request.Source.FileId = long.Parse(bimfaceId); request.Config.Texture = true; var data = JsonHelper.Object2Json(request); return await TranslateFileAsync(data); } //发起转换 , 将RVT文件转换成着色模式的效果 private async Task TranslateRvtFileToRenderStyleAsync(string bimfaceId) { var request = new TranslateRvtFileRequest(); request.Source.FileId = long.Parse(bimfaceId); var data = JsonHelper.Object2Json(request); return await TranslateFileAsync(data); } //文件转换 private async Task TranslateFileAsync(string data) { var url = _translateUrl; var request = new FlurlRequest(url); var header = HeaderHelper.GetHeader(_accessToken); request.WithHeader(header.Key, header.Value); var content = new StringContent(data, Encoding.UTF8, "application/json"); var response = await request.PutAsync(content); var jsonString = await response.GetStringAsync(); var result = JsonHelper.Json2Object(jsonString); result.TryThrowException(); return result.Data; } /// /// 获取文件转换状态 /// public async Task GetFileTranslateStatus(string bimfaceId) { await GetAccessToken(); return await GetFileTranslateStatusAsync(bimfaceId); } /// /// 获取文件转换状态 /// public async Task GetFileTranslateStatusReturnStatus(string bimfaceId) { var response = await GetFileTranslateStatus(bimfaceId); if (response.Status == Constants.Success) { return eTranslateStatus.Success; } if (response.Status == Constants.ProcessingStatus) { return eTranslateStatus.Processing; } return eTranslateStatus.Success; } //获取文件转换状态 private async Task GetFileTranslateStatusAsync(string bimfaceId) { var url = $"{_translateStatusUrl}?fileId={bimfaceId}"; var request = new FlurlRequest(url); var header = HeaderHelper.GetHeader(_accessToken); request.WithHeader(header.Key, header.Value); var response = await request.GetAsync(); var jsonString = await response.GetStringAsync(); var result = JsonHelper.Json2Object(jsonString); result.TryThrowException(); return result.Data; } } }