如何使用新的 RVT->SVF Model Derivative 参数来生成额外的内容,包括房间和空间?

Posted

技术标签:

【中文标题】如何使用新的 RVT->SVF Model Derivative 参数来生成额外的内容,包括房间和空间?【英文标题】:How to use the new RVT->SVF Model Derivative parameter to generates additional content, including rooms and spaces? 【发布时间】:2021-03-15 12:36:27 【问题描述】:

我在 Forge 中关注这个 https://learnforge.autodesk.io/#/ 教程,下面是我的 modelderivative.js 文件。 我正在尝试使用新的 RVT->SVF 模型导数参数来生成其他内容,包括房间和空间。 它说我需要将 generateMasterViews 参数设置为 true。它也要求 x-ads-force 为真。 有谁知道怎么弄?????????

const express = require('express');
const 
    DerivativesApi,
    JobPayload,
    JobPayloadInput,
    JobPayloadOutput,
    JobSvfOutputPayload
 = require('forge-apis');
 
const  getClient, getInternalToken  = require('./common/oauth');
 
let router = express.Router();
 
// Middleware for obtaining a token for each request.
router.use(async (req, res, next) => 
    const token = await getInternalToken();
    req.oauth_token = token;
    req.oauth_client = getClient();
    next();
);
 
// POST /api/forge/modelderivative/jobs - submits a new translation job for given object URN.
// Request body must be a valid JSON in the form of  "objectName": "<translated-object-urn>" .
router.post('/jobs', async (req, res, next) => 
    let job = new JobPayload();
    job.input = new JobPayloadInput();
    job.input.urn = req.body.objectName;
    job.output = new JobPayloadOutput([
        new JobSvfOutputPayload()
    ]);
    job.output.formats[0].type = 'svf';
    job.output.formats[0].views = ['2d', '3d'];
    try 
        // Submit a translation job using [DerivativesApi](https://github.com/Autodesk-Forge/forge-api-nodejs-client/blob/master/docs/DerivativesApi.md#translate).
        await new DerivativesApi().translate(job, , req.oauth_client, req.oauth_token);
        res.status(200).end();
     catch(err) 
        next(err);
    
);
 
module.exports = router;

【问题讨论】:

【参考方案1】:

根据您提出问题的方式,我假设您已经看过这篇文章: https://forge.autodesk.com/blog/new-rvt-svf-model-derivative-parameter-generates-additional-content-including-rooms-and-spaces

这有一个示例请求正文,显示例如如何“输出”部分应如下所示:

"output": 
  "formats": [
    "type": "svf",
    "views": [
      "2d",
      "3d"
    ],
    "advanced": 
      "generateMasterViews": true
    
  ]

从这里您可以看到“advanced”需要添加到与“type”相同的级别,因此您需要将其添加到您的代码中:

job.output.formats[0].advanced = generateMasterViews: true;

如果您将鼠标悬停在 translate() 函数上方,则会出现一个信息弹出窗口 - 如下所示: ​​​

从中可以看出,您可以将 xAdsForce: true 添加到输入选项中。 这会将 x-ads-force 标头添加到请求中。 所以你会像这样调用 translate()

await new DerivativesApi().translate(job, xAdsForce: true, req.oauth_client, req.oauth_token);

【讨论】:

【参考方案2】:

是的,所有详细信息都可以在https://forge.autodesk.com/blog/new-rvt-svf-model-derivative-parameter-generates-additional-content-including-rooms-and-spaces 找到,希望对您有所帮助。

【讨论】:

以上是关于如何使用新的 RVT->SVF Model Derivative 参数来生成额外的内容,包括房间和空间?的主要内容,如果未能解决你的问题,请参考以下文章

|欧特克锻造 |将 RVT 导出到多个 3D 视图中

在 forge 查看器中编辑 revit 文件

在脱机伪造查看器中打开本地保存的svf文件的问题

使用 Model Derivative api 的 BIM 360 设计能够看到 SVF2

如何从 PathName 获取 Project Guid 和 Model Guid?

Autodesk forge SVF2 dbid