在Autodesk Forge中,转换和后处理作业可以被执行多次,但是新的执行会覆盖之前的执行结果。下面是一个包含代码示例的解决方法:
ModelDerivativeClient
类中的Translate
方法来启动转换作业。以下是一个示例代码:using Autodesk.Forge;
using Autodesk.Forge.Model;
public async Task StartTranslation(string fileId)
{
string[] fileUris = new string[] { $"urn:adsk.objects:os.object:{bucketKey}/{fileId}" };
JobPayload job = new JobPayload()
{
Input = new JobPayloadInput()
{
Uris = fileUris
},
Output = new JobPayloadOutput()
{
Formats = new List()
{
new JobPayloadOutputFormats()
{
Type = "svf",
Views = new List() { "2d", "3d" }
}
}
}
};
DerivativesApi derivative = new DerivativesApi();
derivative.Configuration.AccessToken = accessToken;
dynamic jobPosted = await derivative.TranslateAsync(job);
return jobPosted;
}
ModelDerivativeClient
类中的GetManifest
方法来获取转换作业的状态。以下是一个示例代码:public async Task GetTranslationStatus(string jobId)
{
DerivativesApi derivative = new DerivativesApi();
derivative.Configuration.AccessToken = accessToken;
dynamic manifest = await derivative.GetManifestAsync(jobId);
return manifest;
}
ModelDerivativeClient
类中的GetMetadata
方法来获取转换后的文件的元数据。以下是一个示例代码:public async Task GetMetadata(string urn)
{
DerivativesApi derivative = new DerivativesApi();
derivative.Configuration.AccessToken = accessToken;
dynamic metadata = await derivative.GetMetadataAsync(urn);
return metadata;
}
通过调用上述方法,你可以启动转换作业,获取转换作业的状态,并获取转换后的文件的元数据。请注意,这些示例代码是使用C#编写的,你需要根据你使用的编程语言进行相应的调整。