Anylogic如何在自定义Agent内部引用顶层Main代理
AnyLogic自定义资源代理无法引用Main容器问题解决
问题说明
- 建模环境为AnyLogic 8.1,通过流程建模库在Main容器中搭建业务流程
- 资源池
ResourcePool配置了1个永久驻留的自定义代理,负责搬运物料,不会进出流程模型 - 需求为给该自定义代理添加状态图,判断其是否到达Main中的某个Queue模块
- 实际操作中发现自定义代理的状态图内无法直接引用Main,调用
get_Main()、main均无效,也没有默认生成的指向Main的引用标识
可行解决方案
在自定义代理内添加指向Main实例的引用变量即可解决,操作步骤如下:
- 进入自定义代理的编辑界面,新建一个变量,变量类型选择项目内的
Main类型,不需要设置默认值 - 在自定义代理的初始化逻辑处给该变量赋值:可以在资源池的「资源初始化」代码块中写
[你定义的变量名] = main;,也可以写在自定义代理的「启动时」动作中 - 完成配置后,在自定义代理的状态图内就可以通过该变量访问Main中的所有元素,比如要访问Main内名为
materialQueue的Queue模块,写法为[你定义的变量名].materialQueue
内容的提问来源于stack exchange,提问作者UltimateMC
相关产品推荐
相关产品推荐

