Standard Variables (Python)¶
Standard Variables (Python)¶
1# This example shows how to read variables stored in a standard
2impact.gui.output_toolbox.clear()
3
4# Note: You should always assign impact.active_database.standard_creator
5# to a local variable
6sc = impact.active_database.standard_creator
7
8sc.standard = "FEFCO 0201"
9sc.material = impact.active_database.find_master_tool_setting( "Corrugated|B Flute", ipMasterSettingType.mstMaterial )
10
11if sc.valid:
12
13 impact.gui.output_toolbox.add("Successfully loaded standard: " + sc.description)
14
15 # you can read variables directly
16 impact.gui.output_toolbox.add("Variable L: " + str(sc.variable_settings.variables.item("L").value))
17
18 # you can iterate all variables
19 for variable in sc.variable_settings.variables:
20
21 # we need to ignore variables with an unknown type - these are text or line separators
22 if variable.variable_type != ipVariableType.vtUnknown:
23 impact.gui.output_toolbox.add("Variable Name: " + variable.name)
24 impact.gui.output_toolbox.add(" Group: " + variable.group.name)
25 impact.gui.output_toolbox.add(" Type: " + str(variable.variable_type))
26 impact.gui.output_toolbox.add(" Value: " + str(variable.value))
27 impact.gui.output_toolbox.add(" Prompt: " + variable.prompt)
28 impact.gui.output_toolbox.add(" Visible: " + str(variable.visible))
29 impact.gui.output_toolbox.add(" ReadOnly: " + str(variable.read_only))
30 impact.gui.output_toolbox.add(" IsMaterial: " + str(variable.material_variable))
31 impact.gui.output_toolbox.add(" Expression: " + str(variable.expression))
32
33 if variable.variable_type == ipVariableType.vtChoiceList:
34 impact.gui.output_toolbox.add(" ChoiceList Count: " + str(variable.choice_count))
35
36 for i in range(1, variable.choice_count + 1):
37 impact.gui.output_toolbox.add(" Choice " + str(i) + ": " + variable.choice_prompt(i))
38 impact.gui.output_toolbox.add(" Preview Layer: " + variable.choice_preview_layer(i))
39 # you can iterate all groups
40 for group in sc.variable_settings.groups:
41 impact.gui.output_toolbox.add("Group Name: " + group.name)
42 impact.gui.output_toolbox.add(" Preview Layer: " + group.preview_layer)
43 impact.gui.output_toolbox.add(" Visible: " + str(group.visible))
44 impact.gui.output_toolbox.add(" Advanced: " + str(group.advanced))
45 # you can find all visible variables of a group
46 group = None
47 try:
48 group = sc.variable_settings.groups.item("Main")
49 except Exception as exc:
50 pass
51 impact.gui.output_toolbox.add(f"Failed to create object via sc.variable_settings.groups.item(): {exc}")
52
53 if not group.isNone():
54 impact.gui.output_toolbox.add("Finding visible variables for Group: " + group.name)
55 for variable in sc.variable_settings.variables:
56 if (variable.group.name == group.name) and (variable.variable_type != ipVariableType.vtUnknown) and variable.visible:
57 impact.gui.output_toolbox.add(" Variable: " + variable.name)
58
59 # you can determine preview layers for the standard
60 impact.gui.output_toolbox.add("Preview Layer: " + sc.variable_settings.preview_layer)
61 impact.gui.output_toolbox.add("3D Preview Layer: " + sc.variable_settings.preview3_d_layer)
62
63else:
64 impact.gui.output_toolbox.add("Unable to load the standard FEF0201")