如何将节点定义为到达点和目的点

How to define nodes as arrival points and destination points

这可能是一个简单的问题,但我不明白。 在我的模型中,我想根据真实数据创建订单,在这个真实数据中有一个起始位置,我将它们设置为数据库中订单代理的参数值,见下图:

Database anylogic

Parameters order agent

现在我想在源代码块让订单到达部门,这个名字和订单的字符串参数完全一样,所以我这样做了:

Source part

但是它说,无法从字符串转换为inode,所以我的问题是我如何键入他将字符串名称转换为具有完全相同名称的节点的语法,因为部门节点也称为Departement1等.

提前致谢!

我本来想把这个答案作为评论,因为我仍然是 AnyLogic 的相对初学者,我相信还有更优雅的方法,但由于缺乏声誉,这里是:

您可以使用 INode.getName() 获取 INode 对象名称的 String 值,如此处所述:https://anylogic.help/api/com/anylogic/engine/markup/INode.html#getName()

之后只需要创建一个包含您的节点的列表,创建一个遍历该列表并使用 name/node 对填充 Map 的函数。

然后您可以使用代理中的另一个函数将相应的节点分配给代理中的变量,并使用它来动态定义它们的到达位置。

假设您已经创建了名称为 col_nodeNameMatch 的地图,然后您将执行如下操作:

for (INode n : col_nodes) {
    if (n.getName().equals(departement)){
         col_nodeNameMatch.put(departement, n);
         break;
    }
}

后面每次agent需要找到它的到达节点:

v_arrivalNode = col_nodeNameMatch.get(departement);

感谢 Stuart 提出的使用地图更有效的建议。