如何调用为抽象概念的具体实例配置的任何生成器规则?
How to invoke whatever generator rule is configured for a concrete instance of an abstract concept?
我有一组概念节点 Command
,我正在使用 $LOOP$
宏对其进行迭代。 Command
是一个抽象的概念。我已经为具体的子概念定义了模板和缩减规则,例如 Outline
:
template tpl_Outline
input Outline
...
和
reduction rules:
[concept Outline ] --> tpl_Outline
[inheritors false ]
[condition <always>]
问题: 我如何从 $LOOP$
宏内部为 concrete 概念调用适当的生成器规则节点只知道是抽象类型 Command
?
[编辑] 由于建议的答案特定于循环元素集合,如果没有循环,我将如何做同样的事情?即如何触发给定节点(例如当前节点的某个子节点)的配置规则。
注意 1: 我试过只使用 $LOOP$[null]
,希望元素节点能够通过适当的规则自动处理,但结果只是 null
s 在输出中。
注 2: 我试过 $LOOP[$COPY_SRC$[null]]
,但结果是
textgen error: 'No textgen for Draw.structure.Outline' in [actualArgument] Outline null[847086916111387210] in Draw.sandbox@0
[编辑 2]这实际上是一个可行的解决方案。有用的可能是使缓存无效(只是 重建项目 不起作用).
注3:之前我是使用模板开关根据具体概念调用合适的模板,现在想支持自定义扩展Command
所以我无法再创建详尽的模板开关。
尝试使用 $COPY_SRCL$(L 在这里代表循环),这个宏是专为您的情况而设计的。
此外,模板开关是可扩展的
关于您的 Build --> Rebuild Project 问题:有时 File --> Invalidate caches 可以帮助解决此类问题。
我有一组概念节点 Command
,我正在使用 $LOOP$
宏对其进行迭代。 Command
是一个抽象的概念。我已经为具体的子概念定义了模板和缩减规则,例如 Outline
:
template tpl_Outline
input Outline
...
和
reduction rules:
[concept Outline ] --> tpl_Outline
[inheritors false ]
[condition <always>]
问题: 我如何从 $LOOP$
宏内部为 concrete 概念调用适当的生成器规则节点只知道是抽象类型 Command
?
[编辑] 由于建议的答案特定于循环元素集合,如果没有循环,我将如何做同样的事情?即如何触发给定节点(例如当前节点的某个子节点)的配置规则。
注意 1: 我试过只使用 $LOOP$[null]
,希望元素节点能够通过适当的规则自动处理,但结果只是 null
s 在输出中。
注 2: 我试过 $LOOP[$COPY_SRC$[null]]
,但结果是
textgen error: 'No textgen for Draw.structure.Outline' in [actualArgument] Outline null[847086916111387210] in Draw.sandbox@0
[编辑 2]这实际上是一个可行的解决方案。有用的可能是使缓存无效(只是 重建项目 不起作用).
注3:之前我是使用模板开关根据具体概念调用合适的模板,现在想支持自定义扩展Command
所以我无法再创建详尽的模板开关。
尝试使用 $COPY_SRCL$(L 在这里代表循环),这个宏是专为您的情况而设计的。 此外,模板开关是可扩展的
关于您的 Build --> Rebuild Project 问题:有时 File --> Invalidate caches 可以帮助解决此类问题。