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

如何通过代码在AnyLogic中将900个Point Node纳入集合?

在AnyLogic中通过代码批量将Point Node纳入集合

方法一:利用节点命名规则(推荐,适配你的node1-node900命名)

因为你的Point Node是按node1到node900的规律命名的,直接通过循环+名称查找的方式最高效:

  1. 先在模型中创建一个集合变量,类型设为Collection<PointNode>(命名比如pointNodes)。
  2. 在模型启动事件(比如Main的on startup)中添加以下代码:
pointNodes.clear();
for (int i = 1; i <= 900; i++) {
    // 通过名称查找节点并强制转换为PointNode类型
    PointNode node = (PointNode) findByName("node" + i);
    // 非空判断避免命名错误导致的异常
    if (node != null) {
        pointNodes.add(node);
    }
}

方法二:遍历模型元素筛选Point Node(适配任意命名场景)

如果后续节点命名规则可能变动,或者需要自动捕获所有Point Node,可以通过遍历模型元素筛选:
同样先创建Collection<PointNode>类型的集合变量,然后在启动事件中添加代码:

pointNodes.clear();
// 遍历模型中所有ModelElement,筛选出PointNode类型的元素
for (ModelElement element : getModel().getAllModelElements()) {
    // 可选:如果需要只保留node开头的节点,加上名称判断
    if (element instanceof PointNode && element.getName().startsWith("node")) {
        pointNodes.add((PointNode) element);
    }
}

注意事项

  • 确保集合变量的泛型是PointNode,避免类型转换异常。
  • 如果代码写在子Agent中,需要调整上下文,比如用main.findByName()或main.getModel()来访问主模型的元素。
  • 运行前可以通过trace(pointNodes.size())输出集合大小,验证是否成功捕获900个节点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 07:35:01