Anylogic 中的条件资源池

Conditional Resource Pools in Anylogic

我正在尝试制作一个 Seize 块,以根据通过该块的代理类型从不同的资源池中进行选择。

我的第一个尝试是在 Seize 块中创建资源集参数的动态引用,如图所示:

image of dynamic value in Resource set

if(agent instanceof Pala || agent instanceof Torre){
    Extensibles;
}else{
    Camabajas3e;
}

其中 ExtensiblesCamabajas3e 是资源池名称。

但我收到错误:“类型不匹配:无法从 ResourcePool 转换为 ResourcePool[][]。”

我的第二次尝试是将两个资源池都包含在列表中,而是使用参数“资源选择条件”和以下代码:

agent.vehículo==unit.vehículo 

vehículo 在流程图中的每个代理类型和资源池中的每个资源类型中都有一个参数。

但我得到错误:“vehículo connot be resolved or is not a field”但它是代理和资源中的参数。

我做错了什么?我该如何解决?

谢谢。

使用同一池的单位而不是(替代)资源发送

并在代码中写下:

(agent instanceof Pala || agent instanceof Torre) ? Extensibles : Camabajas3e

使用第二个选项,您实际上可以使用您所做的,但您需要告诉 anylogic 您的代理类型是什么..

agent.vehiculo==((ResourceType)unit).vehiculo