【问题标题】:How to dynamically change the capacity of a Static Resource in AnyLogic如何在 AnyLogic 中动态改变静态资源的容量
【发布时间】:2020-10-03 02:43:02
【问题描述】:

我正在急诊室使用 AnyLogic 模拟。部门负责人想要测试添加护士、治疗室等的好处。这很容易,以便他们可以通过 GUI 动态更改护士的数量,因为这是一种“移动”资源类型。但是,如何动态更改绑定到特定网络节点的静态资源类型(如 ED-rooms)?

我并不是要动态创建资源池。但我想控制将使用的现有资源池的一部分。当前容量是 13 个房间,我希望这个从 13 到 28 个不等

使用 get_Capacity(n) 适用于非静态资源,例如护士等。但是当我将 .set_Capacity(n) 用于静态资源时,我收到以下错误:

"(这里的ECRoom指的是急诊室的房间):java.lang.RuntimeException: root.ECRoom:容量定义类型应该是'Direct'来支持这个操作"

【问题讨论】:

  • 好吧。你没有将你的容量定义为直接的,所以改变它......你将使用 set_capacity(n)

标签: simulation anylogic


【解决方案1】:

最简单的方法是预先定义几个 ResourcePool 元素,其中静态 ED 房间链接到他们将使用的任何节点。

然后,将它们的正常容量设置为零,并且仅在用户需要时将其更改为某个非零值。

如果您只是需要在运行时更改容量,myResourcePool.set_Capacity(someNumber) 是您的朋友:)

(动态创建资源池、主节点等都是可能的,但完全不同的游戏)

【讨论】:

  • 我并不是要动态创建资源池。但这是将使用的现有资源池的一部分。目前的容量是 13 个房间,我希望这个从 13 到 28 不等。
  • 是的,.set_Capacity(n) 适用于非静态资源,例如护士等。但是当我 .set_Capacity(n) 用于静态资源时,我收到以下错误(ECRoom 在这里指的是房间在急诊室):java.lang.RuntimeException:root.ECRoom:容量定义类型应为“直接”以支持此操作
  • 啊,总是告诉我们错误和你已经尝试过的,为我们节省了大量时间;-)。另请参阅stackoverflow.com/help/how-to-ask
  • 在这种情况下,请使用我的其他建议 :)
  • 贡献者@Oao——在一个可能会被删除的答案中——建议在事件操作表达式中应该是.set_capacity(n)而不是.set_Capacity(n)。我不能说这是否正确,但想把它放在那里以防万一值得考虑。
猜你喜欢
  • 2020-09-17
  • 2019-06-28
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 2020-02-20
  • 2010-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多