Any value by type
With the <ValueType>
AnyValueByType it is possible to create a PythonPart with
de-facto completely dynamic property palette. The parameters are created as a Python list
entirely within the script in .py file. A parameter is created using the class
AnyValueByType and appended to the list. Here is
an example implementation:
<Parameter>
<Name>AnyValueByTypeList</Name>
<Text> </Text>
<Value>[_]<!--(1)!--></Value>
<ValueType>AnyValueByType</ValueType>
</Parameter>
- The parameter is initialized as an empty python list
value : List[AnyValueByType] = build_ele.AnyValueByTypeList.value
if value == []:
value.append(AnyValueByType("Integer", "Integer value", 1, min_value = "0"))
value.append(AnyValueByType("Double", "Double value", 1.5, max_value = "10"))
value.append(AnyValueByType("Length", "Length value", 2000))
value.append(AnyValueByType("CheckBox", "Checkbox", False))
value.append(AnyValueByType("StringComboBox", "Language", "German", "German|English|French|Italian"))
And this is how the result may look like:
A possible use case for this kind of parameter could be e.g., creating the palette dynamically based on data read from a file. The base data for the parameter could be read in the create mode and be transformed into the required data class. In the modification mode the data from the PythonPart are used and can be changed.