是否可以设置仅显示每个选定对象后代的筛选器,或者创建一个新视图来执行此操作?
发布于 2021-05-12 19:34:53
如果你所说的“选择”是指用户选择了一个或多个对象(例如,使用shift-click),然后后代将神奇地出现在每个选定对象的下方,而无需任何进一步的用户交互,答案是“否”。
但是“是”,你可以写一个DXL脚本,将它添加到“用户”菜单中,让用户选择对象并启动菜单项。该脚本可以创建一个包含所有选定对象的跳过列表,使用如下内容
Skip sk = create
Object o
Module m = current
for o in m do {
if isSelected o then put (sk, o, o)
}然后创建一个包含所需列的新视图,并使用accept和reject填充视图,如下所示
for o in entire m do {
if (find (sk, o)) {
accept o
} else {
reject o
}
}编辑:忘记了子代:-|所以,在将所有对象从跳过添加到视图后,您将需要一个递归函数来显示子对象。如下所示:
void recursive_show_objects(Object o) {
Object o2
for o2 in o do {
accept o2
recursive_show_objects (o2)
}
}
for o in sk do {
recursive_show_objects (o)
}https://stackoverflow.com/questions/67501128
复制相似问题