Java autodesk forge extract geometry RVT->;OBJ导致错误的请求错误

Java autodesk forge extract geometry RVT->;OBJ导致错误的请求错误,java,extract,autodesk-forge,Java,Extract,Autodesk Forge,我正在尝试将查看器中选定对象的几何体提取到单独的模型中。为此,我尝试如下。但我在尝试执行post作业时遇到了一个“400错误请求”错误,无法判断出可能的错误。 下面给出了我创建JobPayload的代码和调用的javascript。就我看到的其他问题而言,人们从revit文件中提取了OBJ,但根据我的理解,应该只能对SVF进行RVT。那么,是否可以从revit文件中提取几何图形,或者是否应该将其更改为其他类型?另一个问题是,是否可以使用svf进行提取 private JobPayload ext

我正在尝试将查看器中选定对象的几何体提取到单独的模型中。为此,我尝试如下。但我在尝试执行post作业时遇到了一个“400错误请求”错误,无法判断出可能的错误。 下面给出了我创建JobPayload的代码和调用的javascript。就我看到的其他问题而言,人们从revit文件中提取了OBJ,但根据我的理解,应该只能对SVF进行RVT。那么,是否可以从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; } 私有作业有效负载提取GeometryTobj(JSONObject JSONObject){ JobPayload作业=新的JobPayload(); JobPayloadInput=新的JobPayloadInput(); JSONObject inputObject=JSONObject.getJSONObject(“输入”); input.setUrn(inputObj.getString(“urn”)); JobobJoutPayLoadAdvanced=新JobobJoutPayLoadAdvanced(); 高级.setExportFileStructure(ExportFileStructureEnum.SINGLE); JSONObject高级格式=(JSONObject)JSONObject.getJSONObject(“输出”).getJSONArray(“格式”).get(0); JSONObject advancedFormatInfo=advancedFormat.getJSONObject(“高级”); JSONArray objectIds=advancedFormatInfo.getJSONArray(“objectIds”); List objectIdList=new ArrayList(); forEach(e->objectdlist.add(Integer.toString((Integer)e)); 高级.setModelGuid(advancedFormatInfo.getString(“modelGuid”); 高级.setObjectId(ObjectId列表); JobPayloadItem格式=新的JobPayloadItem(); 格式.setAdvanced(高级); setType(JobPayloadItem.TypeEnum.OBJ); 格式.setview(Arrays.asList(JobPayloadItem.ViewsEnum.3D)); JobPayloadOutput=新的JobPayloadOutput(); output.setFormats(Arrays.asList(formats)); 作业.setInput(输入); 作业.setOutput(输出); 返回工作; } 函数getObjects(ObjectId,modelGuid){ getForgeToken(函数(访问令牌){ var urn=viewerApp.myDocument.myData.urn; jQuery.post({ url:“/api/forge/modelderivative/jobs”, contentType:'应用程序/json', 数据:JSON.stringify({ “actionType”:“extractToOBJ”, “输入”:{ “瓮”:瓮 }, “产出”:{ “格式”:[{ “类型”:“obj”, “高级”:{ “modelGuid”:modelGuid, “objectid”:objectid } }] }}), 成功:功能(res){ 控制台日志(res); }, 错误:函数(err){ 控制台日志(err); } })}“内部”) }
几何体提取的作业配置不需要此行
formats.setViews(Arrays.asList(JobPayloadItem.ViewsEnum._3D))
是的,
几何体提取
可以用于RVT文件,不使用Forge SDK调用API难道不累吗?注意。在执行
几何体提取
之前,您必须等待SVF翻译完成。这可能也与您的
objectID
输入有关,请检查~ 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") }