Add Database Palettes (Python)

Add Database Palettes (Python)
 1db = impact.active_database
 2drawing = impact.active_drawing
 3ot = impact.gui.output_toolbox
 4
 5ot.clear()
 6if db.settings.palettes:
 7
 8    ot.add("Database palettes are being used")
 9
10    if not drawing.isNone():
11        palettes = drawing.palettes
12
13        palName = "JG1_1.71_3.00_03109"
14        pal = None
15        try:
16            pal = palettes.item(palName)
17        except Exception as exc:
18            pass
19        impact.gui.output_toolbox.add(f"Failed to create object via palettes.item(): {exc}")
20
21        if pal.isNone():
22            pal = palettes.add_database(palName)
23
24            if not pal.isNone():
25                ot.add("Added " + pal.full_name)
26            else:
27                ot.add("Unable to locate database palette by name")
28
29        else:
30
31            ot.add("Palette " + palName + " already exists in project")
32
33        added = palettes.add_database_defaults()
34
35        if isinstance(added):
36            ot.add("Added " + len(added) - 1 + 1 + " default palettes")
37
38        added = palettes.add_database_matching("RAP_.*")
39
40        if isinstance(added):
41            ot.add("Added " + len(added) - 1 + 1 + " palettes matching regular expression")
42
43            for i in range(0, len(added) - 1 + 1):
44                ot.add( " " + added(i).full_name )
45
46        added = palettes.add_database_group("FARBE")
47
48        if isinstance(added):
49            ot.add("Added " + len(added) - 1 + 1 + " palettes for group FARBE")
50
51    else:
52
53        impact.gui.show_message(ipShowMessageType.smtError, "A drawing is required", None)
54
55else:
56
57    ot.add("Database palettes are not being used")