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")