Saving Projects2 (Python)¶
Saving Projects2 (Python)¶
1impact.gui.output_toolbox.clear()
2drawing = impact.active_drawing
3database = impact.active_database
4
5if not drawing.isNone():
6
7 if drawing.drawing_type == ipDrawingType.dtProject:
8 saveOpts = impact.creator.drawing_save_options()
9 dbItem = drawing.database_item
10
11 # Here, if ONE_UP.OU_CADNUM is required, these should fail and report OU_CADNUM is missing.
12 # or if there is an existing project having same D_CODENUM, this should fail and report duplicate.
13 if dbItem.isNone():
14 folder = None
15 try:
16 folder = database.projects.find("COMTests")
17 except Exception as exc:
18 pass
19 impact.gui.output_toolbox.add(f"Failed to create object via database.projects.find(): {exc}")
20 drawing.database_values.save("D_GROUP", folder.key)
21 drawing.database_values.save("D_CUSTOMER", "3")
22 drawing.activelayer.database_values.save("OU_CADNUM", "")
23 drawing.activelayer.database_values.save("LAYERS.L_NAME", "a")
24 drawing.database_values.save("D_CODENUM", "P071429")
25 drawing.save_as2(saveOpts)
26 else:
27 drawing.activelayer.database_values.save("OU_CADNUM", "")
28 drawing.save2(saveOpts)
29
30 if saveOpts.error_type == ipDrawingSaveErrorType.seNone:
31 impact.gui.output_toolbox.add("Successfully saved '" + drawing.full_name + "'")
32 elif saveOpts.error_type == ipDrawingSaveErrorType.seUnknown:
33 impact.gui.output_toolbox.add("Unable to save " + drawing.full_name + " - unknown error")
34 else:
35
36 impact.gui.output_toolbox.add("Unable to save " + drawing.full_name)
37 columns = saveOpts.error_column_names
38
39 if saveOpts.error_layer.isNone():
40 objName = "in project data:"
41 else:
42 objName = "in " + saveOpts.error_layer.layer_type + " layer '" + saveOpts.error_layer.full_name + "' data:"
43
44 if saveOpts.error_type == ipDrawingSaveErrorType.seDuplicateData:
45 impact.gui.output_toolbox.add("Duplicate value " + objName)
46 else:
47 impact.gui.output_toolbox.add("Missing values " + objName)
48
49 for column in columns:
50 impact.gui.output_toolbox.add(" " + column)
51
52else:
53 impact.gui.output_toolbox.add("Current drawing is not a project")