遍历模型中的所有组件

walk through all components in model

我有一个相当大的模型,其中的组件按层次分组,大约有 3 层深。如果我能够递归地遍历我的组件并列出输入和输出,以及所有选项值,并根据我的喜好格式化所有这些数据,这样我就可以用它制作一份漂亮的报告,这对我很有用。

在给定的组上调用 list_inputs() 和 list_outputs() 有点像我想要的那样,因为它打印出输入和输出,但是如果你在一个大的group 你无法在页面上获得彼此相邻的单个组件的输入和输出。

我可能可以逆向工程 list_inputs() 是如何工作的,但想知道是否有简单的方法来做到这一点。

如您所述,list_inputs and list_outputs are both methods defined on the System class。认为这些方法确实按组件对它们的 print-outs 进行分组,但挑战在于您首先获得所有输入,然后是所有输出。您无法轻松地同时看到单个组件的输入和输出。

这两种方法都可以通过设置 out_stream=None 来关闭它们的打印,并且您可以手动解析它们中的每一种 returns a list of variable data。不过,这可能无法为您提供所需的格式。

如果您想手动递归层次结构并编写自己的自定义报告方法,那么您应该在系统(即组件和组)上查看以下方法:

这些,再加上从 list_inputslist_outputs 返回的数据,应该可以满足您的需求。