要检测模型协调冲突,您可以使用Autodesk Forge的Design Automation API和Model Coordination API,使用以下代码片段:
Design Automation API:
const designAutomation = new Autodesk.Forge.DesignAutomation('v3', true);
const workItemsApi = new Autodesk.Forge.WorkItemsApi();
const appBundleApi = new Autodesk.Forge.AppBundleApi();
const activityApi = new Autodesk.Forge.ActivityApi();
//create an AppBundle
const appBundleSpec = {
id: "testApp",
engine: "Autodesk.AutoCAD+23",
description: "test app bundle"
};
appBundleApi.postAppBundle(appBundleSpec)
.then(function(appBundle) {
console.log("AppBundle created with ID: " + appBundle.id);
//create an Activity
const activitySpec ={
id: "testActivity",
appbundles: [appBundleSpec.id],
engine: "Autodesk.AutoCAD+23",
description: "test activity"
};
activityApi.postActivity(activitySpec)
.then(function(activity) {
console.log("Activity created with ID: " + activity.id);
//create a WorkItem
const workItemsSpec = {
activityId: activity.id,
arguments: {
input: {
url: 'input url or your model with path'
},
output: {
url: 'output url or path'
}
}
};
workItemsApi.postWorkItem(workItemsSpec)
.then(function(workItem) {
console.log("WorkItem created with ID: " + workItem.id);
//check the status of the WorkItem
checkWorkItemStatus(workItem.id);
});
});
});
function checkWorkItemStatus(id) {
workItemsApi.getWorkItem(id)
.then(function(workItem) {
if(workItem.status === 'success') {
//your model is successfully processed
}
else if(workItem.status === 'failed') {
//there is some issue with your model processing
}
else {
//model is being processed
setTimeout(checkWorkItemStatus(id), 2000); //check the workitem status every 2 seconds
}