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

如何为Design Automation WorkItem设置自定义标志以指定调用方法?

在Design Automation中调用Bundle内指定方法的实现方案

1. 先在Design Automation Activity中声明自定义标志参数

首先要确保你的Design Automation Activity里已经定义了这个自定义输入参数,否则WorkItem传参后Bundle无法接收。比如在Activity的输入列表里添加一个字符串类型的参数,命名为methodFlag(名字可自定义,只要前后保持一致即可)。

2. API端修改WorkItem,传入自定义标志

创建WorkItem时,直接在Arguments字典里新增这个自定义参数,根据业务需求传入不同的标志值(比如"Method1"或"Method2"):

public async Task RunDesignAutomation()
{
   // 根据业务逻辑确定要调用的方法标志
   string targetMethod = "Method1"; // 按需切换为"Method2"

   var workItem = new WorkItem()
   {
      ActivityId = activityName,
      Arguments = new Dictionary<string, IArgument>()
      {
          { "rvtFile",  inputFileArgument },
          { "inputJson",  inputJsonArgument },
          { "result",  outputFileArgument },
          { "onComplete", onCompleteArgument },
          // 添加自定义标志参数
          { "methodFlag", new StringArgument { Value = targetMethod } }
      }
   };
  
   await _designAutomation.CreateWorkItemAsync(workItem);
}

3. Bundle端读取标志并执行对应方法

在HandleDesignAutomationReadyEvent方法中,通过e.InputArguments获取传入的标志值,判断后调用对应方法,同时针对不同方法处理对应的inputJson:

private void HandleDesignAutomationReadyEvent(object sender, DesignAutomationReadyEventArgs e)
{
    // 获取自定义标志
    if (e.InputArguments.TryGetValue("methodFlag", out var flagArg) && flagArg is StringArgument flag)
    {
        string inputJson = ((StringArgument)e.InputArguments["inputJson"]).Value;
        
        if (flag.Value.Equals("Method1", StringComparison.OrdinalIgnoreCase))
        {
            // 解析Method1对应的JSON模型(需提前定义对应实体类)
            var method1Input = JsonConvert.DeserializeObject<Method1InputModel>(inputJson);
            Method1(method1Input);
        }
        else if (flag.Value.Equals("Method2", StringComparison.OrdinalIgnoreCase))
        {
            // 解析Method2对应的JSON模型
            var method2Input = JsonConvert.DeserializeObject<Method2InputModel>(inputJson);
            Method2(method2Input);
        }
    }
}

补充说明

  • 需提前定义Method1InputModel、Method2InputModel等实体类,确保和对应方法的参数类型匹配。
  • 如果不需要区分JSON解析逻辑,也可以直接将原始JSON字符串传入对应方法处理。

内容的提问来源于stack exchange,提问作者Oleh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 04:00:05