Я пытаюсь извлечь геометрию выбранных объектов в программе просмотра в отдельную модель.Для этого я пытаюсь выполнить следующие действия: https://developer.autodesk.com/en/docs/model-derivative/v2/tutorials/extract-geometry-from-source-file/. Но я получаю ошибку «400 неверных запросов» при попытке выполнить пост-работу и не могу понять, что может быть не так.Мой код для создания JobPayload и JavaScript для вызова приведены ниже.Насколько я видел другие вопросы, люди делали извлечение в OBJ из файла revit, но согласно https://developer.autodesk.com/en/docs/model-derivative/v2/overview/supported-translations/ должно быть возможно только сделать RVT в SVF.Так можно ли извлечь геометрию из файла Revit или я должен изменить его на другой тип?Другой вопрос: можно ли использовать svf для извлечения?
private JobPayload extractGeometryToOBJ(JSONObject jsonObject) {
JobPayload job = new JobPayload();
JobPayloadInput input = new JobPayloadInput();
JSONObject inputObj = jsonObject.getJSONObject("input");
input.setUrn(inputObj.getString("urn"));
JobObjOutputPayloadAdvanced advanced = new JobObjOutputPayloadAdvanced();
advanced.setExportFileStructure(ExportFileStructureEnum.SINGLE);
JSONObject advancedFormat = (JSONObject) jsonObject.getJSONObject("output").getJSONArray("formats").get(0);
JSONObject advancedFormatInfo = advancedFormat.getJSONObject("advanced");
JSONArray objectIds = advancedFormatInfo.getJSONArray("objectIds");
List objectIdList = new ArrayList();
objectIds.forEach(e -> objectIdList.add(Integer.toString((Integer) e)));
advanced.setModelGuid(advancedFormatInfo.getString("modelGuid"));
advanced.setObjectIds(objectIdList);
JobPayloadItem formats = new JobPayloadItem();
formats.setAdvanced(advanced);
formats.setType(JobPayloadItem.TypeEnum.OBJ);
formats.setViews(Arrays.asList(JobPayloadItem.ViewsEnum._3D));
JobPayloadOutput output = new JobPayloadOutput();
output.setFormats(Arrays.asList(formats));
job.setInput(input);
job.setOutput(output);
return job;
}
function getObjects(objectIds, modelGuid) {
getForgeToken(function (access_token) {
var urn = viewerApp.myDocument.myData.urn;
jQuery.post({
url: '/api/forge/modelderivative/jobs',
contentType: 'application/json',
data: JSON.stringify({
"actionType": "extractToOBJ",
"input": {
"urn": urn
},
"output": {
"formats": [{
"type": "obj",
"advanced": {
"modelGuid": modelGuid,
"objectIds": objectIds
}
}]
}}),
success: function (res) {
console.log(res);
},
error: function (err) {
console.log(err);
}
})}, "internal")
}