-
Notifications
You must be signed in to change notification settings - Fork 91
/
Copy pathremove_psets_ea.js
49 lines (37 loc) · 1.05 KB
/
remove_psets_ea.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
!INC Local Scripts.EAConstants-JScript
/*
* Script Name: remove_psets.js
* Author: Thomas Krijnen <thomas@aecgeeks.com>
*/
var psetsDeleted = 0;
var qsetsDeleted = 0;
function visitPackage(p, R) {
var P as EA.Package;
var el as EA.Element;
P = p;
Session.Output("Package: " + P.Name);
for (var i = P.Elements.Count - 1; i >= 0; --i) {
el = P.Elements.GetAt(i);
const is_pset = el.Name.toLowerCase().startsWith("pset_");
const is_qto = el.Name.toLowerCase().startsWith("qto_");
if (is_pset || is_qto) {
P.Elements.DeleteAt(i, false);
if (is_pset) {
psetsDeleted++;
} else {
qsetsDeleted++;
}
}
}
P.Elements.Refresh();
for (var i = 0; i < P.Packages.Count; ++i) {
var sub = P.Packages.GetAt(i);
visitPackage(sub, R ? R : sub);
}
}
function main() {
visitPackage(Models.GetAt(0));
Session.Output(`Removed ${psetsDeleted} psets`);
Session.Output(`Removed ${qsetsDeleted} qsets`);
}
main();