引用非标量数据

模拟问题中的大部分数据以数组、列表或表格形式组织,因此包含在多值变量里。

非标量数据只能通过自动化接口一次取一个值,即访问叶节点的 Value 属性。 节点的组织方式取决于:

  1. 需要多少个标识符才能定位该值;

  2. 该值所处的上下文。

例如:

  • 塔板温度分布:变量名 + 1 个附加标识符——塔板号;

  • 塔板组成分布:变量名 + 2 个附加标识符——塔板号 + 组分;

  • 反应器内反应系数:变量名 + 3 个附加标识符——反应序号 + 组分 + 子物流。

找到多值变量节点后,必须沿树向下遍历,为每一维提供标识符,才能拿到单个数值。 有些节点一次遍历只代表一个标识符;有些则代表多个。每个节点都有 Dimension 属性:

  • Dimension > 0 → 该节点有子节点;

  • Dimension 的值 = 访问其子节点所需的标识符个数;

  • 各维编号从 0 开始,到 Dimension-1 结束。

获取子节点有两种方法:

  1. 迭代器(如 VB 的 For Each)——顺序无关时最方便;

  2. Item 属性——按维提供参数:

    • 整数 Location(行号):从 0 计数的序号;

    • 字符串 Label:该维下的节点标签。

每维的有效位置/标签个数可通过集合的 RowCount 属性获得。

注意:集合不保证任何特定顺序。若必须按特定顺序访问,请用字符串 Label 定位;仅当顺序不重要时,才用 For Each 或整数序号遍历。

另请参阅:

单标识符变量访问:塔板温度分布

双标识符变量访问:塔板组成分布

三标识符变量访问:反应系数