autodesk伪造提取几何RVT - > OBJ导致错误的请求错误

时间:2018-05-26 19:23:38

标签: java extract autodesk-forge

我正在尝试将查看器中所选对象的几何体提取到单独的模型中。为此,我尝试关注https://developer.autodesk.com/en/docs/model-derivative/v2/tutorials/extract-geometry-from-source-file/。但是我得到了一个错误的请求#34;尝试执行职位时出错,无法确定可能出现的问题。 我的JobPayload创建代码和调用javascript的代码如下。据我看到其他问题,人们从revit文件中提取到OBJ,但根据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")
    }

0 个答案:

没有答案