See also: Autogenerated API documentation (C++ documentation).
Properties are the true building blocks of FeaturePython objects. Through them, the user will be able to interact and modify your object. After creating a new FeaturePython object in your document:
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "Box")
You can get a list of the available properties by issuing:
obj.supportedProperties()
This code will create an object with internal name InternalObjectName
(automatically renamed to InternalObjectName001
and so on, if an object named InternalObjectName
already exists) and give it the user-friendly label User-friendly label
. This label will be displayed in the Tree view. Expressions can refer to this object by its label using <<User-friendly label>>
.
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
To add a property to this object, use the long form of addProperty
as shown below. FreeCAD will automatically split ThePropertyName
and display it with spaces (The Property Name
) in the Data tab of the Property editor.
obj.addProperty("App::PropertyBool", "ThePropertyName", "Subsection", "Description for tooltip")
App::PropertyBool
is the type of the property. The different types are described in more detail below.
You can also use the short form which omits the last two arguments. The subsection defaults to Base
, and the tooltip is not displayed with this form.
obj.addProperty("App::PropertyBool", "ThePropertyName")
To get or set the property, use obj.ThePropertyName
:
# set
obj.ThePropertyName = True
# get
thePropertyValue = obj.ThePropertyName
If the type of the property is App::PropertyEnumeration, the setter has a special behavior: setting a list of strings defines the cases allowed by the enumeration, setting a string selects one of these cases. To set the list of possible cases and set the current one, use:
# allowed cases
obj.ThePropertyName = ["aaa", "bbb", "ccc"]
# set
obj.ThePropertyName = "bbb"
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyAcceleration", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyAmountOfSubstance
## App::PropertyAngle
An angle property. It can contain an
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyAngle", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = 180
obj.ThePropertyName # returns 180.0 deg
obj.ThePropertyName.Value # returns 180.0
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyArea", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyBool
A boolean property. It can contain
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyBool", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = True
obj.ThePropertyName = False
obj.ThePropertyName # returns False
A property containing a list of booleans. It can contain a Python list of booleans, e.g.
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyBoolList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [True, False, True]
obj.ThePropertyName # returns [True, False, True]
obj.ThePropertyName[1] # returns False
A color property. It can contain tuple of four
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyColor", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = (0.0, 1.0, 0.5, 0.8) # (Red, Green, Blue, Transparency)
obj.ThePropertyName # returns (0.0, 1.0, 0.5, 0.8)
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyColorList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyCurrentDensity
## App::PropertyDensity
## App::PropertyDirection
Identical to [App::PropertyVectorDistance](#App:_PropertyVectorDistance.md).
## App::PropertyDissipationRate
## App::PropertyDistance
A distance property. It can contain a positive, negative or zero `distance` value. Use the \"Value\" member of the property to get the value as a float number. The value is always in mm, but in the [Property editor](Property_editor.md) is presented with units according to the preferences. For more details, see the section about [Creating a FeaturePython object and adding a property to it](#Creating.md).
[App::PropertyLength](#App:_PropertyLength.md) is a similar property that cannot contain a negative value.
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyDistance", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = 500
obj.ThePropertyName # returns "500.0 mm"
obj.ThePropertyName.Value # returns 500.0
An enumeration property. The allowed items are defined by setting the property to a list. After that, it can contain items of the given list. The list of allowed items can be changed by setting the property to a list again. For more details, see the section about Creating a FeaturePython object and adding a property to it.
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyEnumeration", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = ["Foo", "Bar", "Baz"] # set allowed items
obj.ThePropertyName = "Foo" # choose single item
obj.ThePropertyName = ["Foo", "Bar", "Quux"] # change allowed items
obj.ThePropertyName = "Quux" # choose single item
obj.ThePropertyName # returns "Quux"
As of FreeCAD 0.20, you can also group enumerations, which are displayed in the GUI using a submenu interface. To group, use the
obj.ThePropertyName = [
"Group 1 <nowiki>|</nowiki> Item A",
"Group 1 <nowiki>|</nowiki> Item B",
"Group 2 <nowiki>|</nowiki> Another item",
"Group 2 <nowiki>|</nowiki> Last item"
] # set allowed items
obj.ThePropertyName = "Group 1 <nowiki>|</nowiki> Item A" # choose single item
The GUI will display this as a menu structure:
- Group 1
- Item A
- Item B
- Group 2
- Another item
- Last item
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyExpressionEngine", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyFile
A filename property. It can contain a string indicating the path to a filename
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyFile", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyFileIncluded
A filename property that also includes the file itself into the document. The file doesn\'t get loaded into memory, it gets copied from the document archive into the document transient directory. There it is accessible for reading. You can get the transient path through
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyFileIncluded", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = "D:/file.txt"
obj.ThePropertyName # returns the path to the temporary file
A float property. It can contain a
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyFloat", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = 15.7
obj.ThePropertyName # returns 15.7
A float constraint property. It can contain a
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyFloatConstraint", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = (50.0, 0.0, 100.0, 1.0) # (Default, Start, Finish, Step)
obj.ThePropertyName # returns 50.0
A float list property. It can contain list of
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyFloatList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [12.7, 5.8, 28.6, 17.22] # It can also be an empty list.
obj.ThePropertyName # returns [12.7, 5.8, 28.6, 17.22]
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyFont", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyForce
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyForce", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyFrequency
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyFrequency", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyHeatFlux
## App::PropertyInteger
An integer property. It can contain an integer value from -2147483646 to 2147483647 included. For more details, see the section about [Creating a FeaturePython object and adding a property to it](#Creating.md).
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyInteger", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = 25
obj.ThePropertyName # returns 25
An integer constraint property. With this property you can set a default value, a minimum value, a maximum value and a step size. All values should be integers and can range from -2147483646 to 2147483647 included. For more details, see the section about Creating a FeaturePython object and adding a property to it.
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyIntegerConstraint", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = (50, 0, 100, 1) # (Default, Minimum, Maximum, Step size)
obj.ThePropertyName # returns 50
An integer list property. It can contain list of
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyIntegerList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [12, 5, 28, 17] # It can also be an empty list.
obj.ThePropertyName # returns [12, 5, 28, 17]
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyIntegerSet", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyInverseArea
## App::PropertyInverseLength
## App::PropertyInverseVolume
## App::PropertyKinematicViscosity
## App::PropertyLength
A length property. It can contain a positive or zero `length` value. Use the \"Value\" member of the property to get the value as a float number. The value is always in mm, but in the [Property editor](Property_editor.md) is presented with units according to the preferences. For more details, see the section about [Creating a FeaturePython object and adding a property to it](#Creating.md).
[App::PropertyDistance](#App:_PropertyDistance.md) is a similar property that can also contain a negative value.
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLength", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = 500
obj.ThePropertyName # returns "500.0 mm"
obj.ThePropertyName.Value # returns 500.0
A link property. It can contain link to an object. When you call this property, it will return the linked object. For more details, see the section about Creating a FeaturePython object and adding a property to it.
link_obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "LinkObjectName")
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLink", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = link_obj
obj.ThePropertyName # returns link_obj
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkChild", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLinkGlobal
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkGlobal", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLinkHidden
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkHidden", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLinkList
A link list property. It can contain list of linked objects. For more details, see the section about [Creating a FeaturePython object and adding a property to it](#Creating.md).
```python
link_obj0 = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "LinkObjectName0")
link_obj1 = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "LinkObjectName1")
link_obj2 = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "LinkObjectName2")
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [link_obj0, link_obj1, link_obj2]
obj.ThePropertyName # returns [link_obj0, link_obj1, link_obj2]
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkListChild", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLinkListGlobal
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkListGlobal", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLinkListHidden
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkListHidden", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLinkSub
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkSub", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLinkSubChild
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkSubChild", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLinkSubGlobal
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkSubGlobal", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLinkSubHidden
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkSubHidden", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLinkSubList
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkSubList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLinkSubListChild
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkSubListChild", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLinkSubListGlobal
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkSubListGlobal", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLinkSubListHidden
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkSubListHidden", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyLuminousIntensity
## App::PropertyMagneticFieldStrength
## App::PropertyMagneticFlux
## App::PropertyMagneticFluxDensity
## App::PropertyMagnetization
## App::PropertyMap
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyMap", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyMass
## App::PropertyMaterial
A material property. It can contain a FreeCAD material object. For more details, see the section about [Creating a FeaturePython object and adding a property to it](#Creating.md).
```python
import FreeCAD
material=FreeCAD.Material()
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyMaterial", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = material
obj.ThePropertyName # returns material
A material list property. It can contain list of materials. For more details, see the section about Creating a FeaturePython object and adding a property to it.
import FreeCAD
material0 = FreeCAD.Material()
material1 = FreeCAD.Material()
material2 = FreeCAD.Material()
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython","InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyMaterialList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [material0, material1, material2] # It can also be an empty list.
obj.ThePropertyName # returns [material0, material1, material2]
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyMatrix", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyPath
A path property. It can contain a string representing a path to a folder
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyPath", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyPercent
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyPercent", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyPersistentObject
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyPersistentObject", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyPlacement
A placement property. It can contain
```python
import FreeCAD
placement = FreeCAD.Placement()
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython","InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyPlacement", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = placement
obj.ThePropertyName # returns placement
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyPlacementLink", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyPlacementList
A placement list property. It can contain list of
```python
import FreeCAD
placement0 = FreeCAD.Placement()
placement1 = FreeCAD.Placement()
placement2 = FreeCAD.Placement()
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython","InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyPlacementList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [placement0, placement1, placement2]
obj.ThePropertyName # returns [placement0, placement1, placement2]
Identical to App::PropertyVectorDistance.
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyPrecision", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyPressure
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyPressure", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyPythonObject
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyPythonObject", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyQuantity
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyQuantity", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyQuantityConstraint
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyQuantityConstraint", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyRotation
## App::PropertyShearModulus
## App::PropertySpecificEnergy
## App::PropertySpecificHeat
## App::PropertySpeed
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertySpeed", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyStiffness
## App::PropertyStress
## App::PropertyString
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyString", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyStringList
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyStringList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyTemperature
## App::PropertyThermalConductivity
## App::PropertyThermalExpansionCoefficient
## App::PropertyThermalTransferCoefficient
## App::PropertyTime
## App::PropertyUltimateTensileStrength
## App::PropertyUUID
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyUUID", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyVacuumPermittivity
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyVacuumPermittivity", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyVector
A vector property. It can contain a FreeCAD
```python
import FreeCAD
vector = FreeCAD.Vector(0, -2, 5)
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyVector", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = vector
obj.ThePropertyName # returns Vector(0, -2, 5)
obj.ThePropertyName = (1, 2, 3)
obj.ThePropertyName # returns Vector(1, 2, 3)
obj.ThePropertyName.x # returns 1.0
obj.ThePropertyName.y # returns 2.0
obj.ThePropertyName.z # returns 3.0
obj.ThePropertyName.z = 6
obj.ThePropertyName # returns Vector(1, 2, 6)
obj.ThePropertyName.Length # returns 6.4031242374328485
obj.ThePropertyName.Length = 2 * obj.ThePropertyName.Length
obj.ThePropertyName # Vector (2.0, 4.0, 12.0)
A vector property that is almost identical to App::PropertyVector. The only difference is that in the Property editor the "x", "y" and "z" members of this property are presented with units according to the preferences. But internally all values are unitless and therefore in mm.
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyVectorDistance", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = (1, 2, 3)
obj.ThePropertyName # returns Vector(1, 2, 3)
obj.ThePropertyName.x # returns 1
A vector list property. It can contain list of
import FreeCAD
v0 = FreeCAD.Vector(0, 10, 0)
v1 = FreeCAD.Vector(0, 10, 0)
v2 = FreeCAD.Vector(30, -10, 0)
v3 = FreeCAD.Vector(0, -10, 0)
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython","InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyVectorList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [v0, v1, v2, v3]
obj.ThePropertyName # returns [Vector(0, 10, 0), Vector(0, 10, 0), Vector(30, -10, 0), Vector(0, -10, 0)]
obj.ThePropertyName = [v0, (1, 2, 3), v2, (4, 5, 6)]
obj.ThePropertyName # returns [Vector (0, 10, 0), Vector (1, 2, 3), Vector (30, -10, 0), Vector (4, 5, 6)]
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyVolume", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyVolumeFlowRate
## App::PropertyVolumetricThermalExpansionCoefficient
## App::PropertyWork
## App::PropertyXLink
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyXLink", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyXLinkList
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyXLinkList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyXLinkSub
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyXLinkSub", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyXLinkSubList
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyXLinkSubList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## App::PropertyYieldStrength
## App::PropertyYoungsModulus
## Mesh::PropertyCurvatureList
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Mesh::PropertyCurvatureList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## Mesh::PropertyMeshKernel
A mesh kernel property. It can contain a
```python
import Mesh
mesh = Mesh.Mesh()
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Mesh::PropertyMeshKernel", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = mesh
obj.ThePropertyName # returns mesh
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Mesh::PropertyNormalList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## Part::PropertyFilletEdges
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Part::PropertyFilletEdges", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## Part::PropertyGeometryList
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Part::PropertyGeometryList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## Part::PropertyPartShape
A part shape property. It can contain
```python
import Part
part = Part.Shape()
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Part::PropertyPartShape", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = part
obj.ThePropertyName # returns part
A
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Part::PropertyShapeHistory", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## Path::PropertyPath
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Path::PropertyPath", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## Path::PropertyTool
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Path::PropertyTool", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## Path::PropertyTooltable
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Path::PropertyTooltable", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## Sketcher::PropertyConstraintList
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Sketcher::PropertyConstraintList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## Spreadsheet::PropertyColumnWidths
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Spreadsheet::PropertyColumnWidths", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## Spreadsheet::PropertyRowHeights
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Spreadsheet::PropertyRowHeights", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## Spreadsheet::PropertySheet
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Spreadsheet::PropertySheet", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## Spreadsheet::PropertySpreadsheetQuantity
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("Spreadsheet::PropertySpreadsheetQuantity", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## TechDraw::PropertyCenterLineList
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("TechDraw::PropertyCenterLineList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## TechDraw::PropertyCosmeticEdgeList
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("TechDraw::PropertyCosmeticEdgeList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## TechDraw::PropertyCosmeticVertexList
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("TechDraw::PropertyCosmeticVertexList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
## TechDraw::PropertyGeomFormatList
A
```python
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("TechDraw::PropertyGeomFormatList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = {{TODO```"example value for setter"
obj.ThePropertyName # returns {{TODO}}"example value for getter"
}}
---
⏵ [documentation index](../README.md) > [API](Category_API.md) > [Developer Documentation](Category_Developer Documentation.md) > FeaturePython Custom Properties