Salome HOME
Merge branch 'python_parametric_api' of https://git.salome-platform.org/git/modules...
[modules/shaper.git] / src / PythonAPI / model / parameter / parameter.py
1 """Parameter Interface
2 Author: Sergey Pokhodenko
3 Copyright (C) 2014-20xx CEA/DEN, EDF R&D
4 """
5
6 from model.roots import Interface
7
8
9 def addParameter(part, *args):
10     """Add a Parameter feature to the Part and return Parameter.
11
12     Pass all args to Parameter __init__ function.
13     """
14     assert(args)
15     feature = part.addFeature("Parameter")
16     return Parameter(feature, *args)
17
18
19 class Parameter(Interface):
20     """Interface class for Parameter feature.
21
22     Parameter(feature) -> feature interface without initialization
23     Parameter(feature, variable, expression) ->
24         feature interface initialized from arguments:
25         - variable -- variable name
26         - expression -- Python expression
27     """
28
29     def __init__(self, feature, *args):
30         """x.__init__(...) initializes x; see x.__class__.__doc__ for signature"""
31         Interface.__init__(self, feature)
32         assert(self._feature.getKind() == "Parameter")
33
34         self._variable = self._feature.data().string("variable")
35         self._expression = self._feature.data().string("expression")
36
37         assert(self._variable)
38         assert(self._expression)
39
40         if not args:
41             return
42
43         assert(len(args) == 2)
44         self.setName(args[0])
45         self.setExpression(args[1])
46
47         self.execute()
48         pass
49
50     def setName(self, name):
51         """Modify variable name attribute of the feature.
52
53         See __init__.
54         """
55         self._fillAttribute(self._name, name)
56         pass
57
58     def setExpression(self, expression):
59         """Modify expression attribute of the feature.
60
61         See __init__.
62         """
63         self._fillAttribute(self._expression, expression)
64         pass