You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Revit Design Automation访问ACC模型时认证异常求助

问题分析与解决方案

核心原因

Revit Design Automation的RevitCoreConsole不会自动使用WorkItem传入的adsk3LeggedToken完成ACC登录,必须在插件代码中显式调用登录API建立认证会话。从日志里的LoginUserId为空可以确认:当前运行会话未完成用户身份认证,因此无法访问云端模型。

具体修复步骤

1. 从环境变量读取3LeggedToken

DA会自动将WorkItem中传入的adsk3LeggedToken注入到运行环境的ADSK_3LEGED_TOKEN变量中,插件需先读取该变量:

string token = Environment.GetEnvironmentVariable("ADSK_3LEGED_TOKEN");
if (string.IsNullOrEmpty(token))
{
    throw new InvalidOperationException("未获取到3LeggedToken");
}

2. 显式调用Revit登录API完成认证

在调用ConvertCloudGUIDsToCloudPath之前,必须通过Revit API完成用户登录:

Application app = sender as Application;
// 使用3LeggedToken登录到ACC
app.LoginUsing3LeggedToken(token);
// 验证登录状态
string loginUserId = app.LoginUserId;
if (string.IsNullOrEmpty(loginUserId))
{
    throw new InvalidOperationException("3LeggedToken登录失败");
}

3. 验证Token的有效性与权限

  • 确认Token包含data:read、data:write权限(覆盖ACC模型访问场景)
  • 检查Token有效期,避免运行时过期
  • 确保Token的受众(Audience)为https://developer.api.autodesk.com(DA场景下的正确配置)

4. 检查配置正确性

  • 确认WorkItem中adsk3LeggedToken字段拼写无误
  • 无需在Activity的CommandLine中传递Token,DA会自动处理环境变量注入

补充说明

日志中的Username: acesuser是DA的默认系统用户,并非你的ACC认证用户。只有通过LoginUsing3LeggedToken切换到你的认证身份后,才能正常访问ACC模型资源。

内容的提问来源于stack exchange,提问作者Peter S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:02:08