FreeCAD Logo FreeCAD 1.0
  • English Afrikaans Arabic Belarusian Catalan Czech German Greek Spanish Spanish Basque Finnish Filipino French Galician Croatian Hungarian Indonesian Italian Japanese Kabyle Korean Lithuanian Dutch Norwegian Bokmal Polish Portuguese Portuguese Romanian Russian Slovak Slovenian Serbian Swedish Turkish Ukrainian Valencian Vietnamese Chinese Chinese
  • Features
  • Download
  • Blog
  • Documentation
    Documentation index Getting started Users documentation The FreeCAD manual Workbenches documentation Python coding documentation C++ coding documentation Tutorials Frequently asked questions Privacy policy About FreeCAD
  • Contribute
    How to help Sponsor Report a bug Make a pull request Jobs and funding Contribution guidelines Developers handbook Translations
  • Community
    Code of conduct Forum The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Calendar
  • ♥ Donate

Donate

$
SEPA Information
Please set up your SEPA bank transfer to:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Bank agency: BNP Paribas Fortis
Address: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!

Introduction

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

Creating a FeaturePython object and adding a property to it

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 View.

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"

introduced in 1.0: The enum_vals argument of the addProperty function can also be used to define the enumeration cases.

introduced in 1.0: The full signature of the function is:

obj.addProperty(type: string, name: string, group="", doc="", attr=0, read_only=False, hidden=False, enum_vals=[])
  • type: Property type.
  • name: Property name.
  • group: Property subsection.
  • doc: Tooltip.
  • attr: Attribute, see Scripted objects.
  • read_only: See idem.
  • hidden: See idem.
  • enum_vals: Enumeration values (list of string), only relevant if type is App::PropertyEnumeration.

App::PropertyAcceleration

A Template:TODOacceleration property. It can contain Template:TODO"allowed type and/or values". 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::PropertyAcceleration", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyAmountOfSubstance

App::PropertyAngle

An angle property. It can contain an angle value. You can use "Value" variable to get float variable. 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::PropertyAngle", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = 180
obj.ThePropertyName # returns 180.0 deg
obj.ThePropertyName.Value # returns 180.0

App::PropertyArea

A Template:TODOarea property. It can contain Template:TODO"allowed type and/or values". 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::PropertyArea", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyBool

A boolean property. It can contain True and False. 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::PropertyBool", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = True
obj.ThePropertyName = False
obj.ThePropertyName # returns False

App::PropertyBoolList

A property containing a list of booleans. It can contain a Python list of booleans, e.g. [True, False, True]. 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::PropertyBoolList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [True, False, True]
obj.ThePropertyName    # returns [True, False, True]
obj.ThePropertyName[1] # returns False

App::PropertyColor

A color property. It can contain tuple of four float values. Each item can take values between 0.0 and 1.0. You can set red, green and blue values. Also you can set step transparency too. 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::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)

App::PropertyColorList

A Template:TODOcolorList property. It can contain Template:TODO"allowed type and/or values". 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::PropertyColorList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyCurrentDensity

introduced in 0.21

App::PropertyDensity

App::PropertyDirection

Identical to App::PropertyVectorDistance.

App::PropertyDissipationRate

introduced in 0.21

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 View 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.

App::PropertyLength is a similar property that cannot contain a negative value.

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

App::PropertyDynamicViscosity

introduced in 0.21

App::PropertyElectricalCapacitance

introduced in 0.21

App::PropertyElectricalConductance

introduced in 0.21

App::PropertyElectricalConductivity

introduced in 0.21

App::PropertyElectricalInductance

introduced in 0.21

App::PropertyElectricalResistance

introduced in 0.21

App::PropertyElectricCharge

introduced in 0.21

App::PropertyElectricCurrent

introduced in 0.21

App::PropertyElectricPotential

App::PropertyEnumeration

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"

introduced in 1.0: The enum_vals argument of the addProperty function can also be used to define the enumeration cases. See above.

introduced in 0.20: It is possible to group enumerations, which are displayed in the GUI using a submenu interface. To group, use the | character (vertical pipe) as a separator, e.g.:

obj.ThePropertyName = [
    "Group 1 | Item A", 
    "Group 1 | Item B", 
    "Group 2 | Another item", 
    "Group 2 | Last item"
] # set allowed items
obj.ThePropertyName = "Group 1 | 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

App::PropertyExpressionEngine

A Template:TODOexpressionEngine property. It can contain Template:TODO"allowed type and/or values". 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::PropertyExpressionEngine", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyFile

A filename property. It can contain a string indicating the path to a filename Template:TODO:(Does it allow relative paths or absolute paths or both?). 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::PropertyFile", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template: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 getDocTransientPath(). As input, the property accepts a string containing the path to the original file. The property returns the path to the temporary file in the transient directory. For more details, see this example from the Arch Workbench.

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

App::PropertyFloat

A float property. It can contain a float value. 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::PropertyFloat", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = 15.7
obj.ThePropertyName # returns 15.7

App::PropertyFloatConstraint

A float constraint property. It can contain a float value. By using this property you can set start and finish values. Also you can set step interval too. 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::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

App::PropertyFloatList

A float list property. It can contain list of float values. 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::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]

App::PropertyFont

A Template:TODOfont property. It can contain Template:TODO"allowed type and/or values". 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::PropertyFont", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyForce

A Template:TODOforce property. It can contain Template:TODO"allowed type and/or values". 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::PropertyForce", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyFrequency

A Template:TODOfrequency property. It can contain Template:TODO"allowed type and/or values". 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::PropertyFrequency", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyHeatFlux

introduced in 0.21

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.

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

App::PropertyIntegerConstraint

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

App::PropertyIntegerList

An integer list property. It can contain list of integer values. 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::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]

App::PropertyIntegerSet

A Template:TODOintegerSet property. It can contain Template:TODO"allowed type and/or values". 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::PropertyIntegerSet", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyInverseArea

introduced in 0.21

App::PropertyInverseLength

introduced in 0.21

App::PropertyInverseVolume

introduced in 0.21

App::PropertyKinematicViscosity

introduced in 0.21

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 View 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.

App::PropertyDistance is a similar property that can also contain a negative value.

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

App::PropertyLink

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

App::PropertyLinkChild

A Template:TODOlinkChild property. It can contain Template:TODO"allowed type and/or values". 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::PropertyLinkChild", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyLinkGlobal

A Template:TODOlinkGlobal property. It can contain Template:TODO"allowed type and/or values". 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::PropertyLinkGlobal", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyLinkHidden

A Template:TODOlinkHidden property. It can contain Template:TODO"allowed type and/or values". 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::PropertyLinkHidden", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template: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.

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]

App::PropertyLinkListChild

A Template:TODOlinkListChild property. It can contain Template:TODO"allowed type and/or values". 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::PropertyLinkListChild", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyLinkListGlobal

A Template:TODOlinkListGlobal property. It can contain Template:TODO"allowed type and/or values". 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::PropertyLinkListGlobal", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyLinkListHidden

A Template:TODOlinkListHidden property. It can contain Template:TODO"allowed type and/or values". 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::PropertyLinkListHidden", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyLinkSub

A LinkSub is a list of two elements: the first is a reference to a document object, the second a string or a list of strings indicating the internal name(s) of subelement(s). For more details, see the section about Creating a FeaturePython object and adding a property to it.

doc = FreeCAD.ActiveDocument
box = doc.addObject("Part::Box", "Box")

obj = doc.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkSub", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [box, ["Vertex1", "Vertex2"]]

doc.recompute()

App::PropertyLinkSubChild

A Template:TODOlinkSubChild property. It can contain Template:TODO"allowed type and/or values". 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::PropertyLinkSubChild", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyLinkSubGlobal

A Template:TODOlinkSubGlobal property. It can contain Template:TODO"allowed type and/or values". 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::PropertyLinkSubGlobal", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyLinkSubHidden

A Template:TODOlinkSubHidden property. It can contain Template:TODO"allowed type and/or values". 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::PropertyLinkSubHidden", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyLinkSubList

A LinkSubList is a list of tuples. Each tuple contains two elements: the first is a reference to a document object, the second a string or a list of strings indicating the internal name(s) of subelement(s). For more details, see the section about Creating a FeaturePython object and adding a property to it.

doc = FreeCAD.ActiveDocument
box = doc.addObject("Part::Box", "Box")
cyl = doc.addObject("Part::Cylinder", "Cylinder")

obj = doc.addObject("App::FeaturePython", "InternalObjectName")
obj.Label = "User-friendly label"
obj.addProperty("App::PropertyLinkSubList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [(box, ["Vertex1", "Vertex2"]), (cyl, "Edge1")]

doc.recompute()

App::PropertyLinkSubListChild

A Template:TODOlinkSubListChild property. It can contain Template:TODO"allowed type and/or values". 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::PropertyLinkSubListChild", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyLinkSubListGlobal

A Template:TODOlinkSubListGlobal property. It can contain Template:TODO"allowed type and/or values". 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::PropertyLinkSubListGlobal", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyLinkSubListHidden

A Template:TODOlinkSubListHidden property. It can contain Template:TODO"allowed type and/or values". 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::PropertyLinkSubListHidden", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyLuminousIntensity

introduced in 0.21

App::PropertyMagneticFieldStrength

introduced in 0.21

App::PropertyMagneticFlux

introduced in 0.21

App::PropertyMagneticFluxDensity

introduced in 0.21

App::PropertyMagnetization

introduced in 0.21

App::PropertyMap

A Template:TODOmap property. It can contain Template:TODO"allowed type and/or values". 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::PropertyMap", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyMass

introduced in 0.21

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.

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

App::PropertyMaterialList

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]

App::PropertyMatrix

A Template:TODOmatrix property. It can contain Template:TODO"allowed type and/or values". 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::PropertyMatrix", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyPath

A path property. It can contain a string representing a path to a folder Template:TODO:(does it also allow paths to files? does it allow relative or absolute paths or both?). 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::PropertyPath", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyPercent

A Template:TODOpercent property. It can contain Template:TODO"allowed type and/or values". 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::PropertyPercent", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyPersistentObject

A Template:TODOpersistentObject property. It can contain Template:TODO"allowed type and/or values". 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::PropertyPersistentObject", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyPlacement

A placement property. It can contain placement object. For more details, see the section about Creating a FeaturePython object and adding a property to it.

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

App::PropertyPlacementLink

A Template:TODOplacementLink property. It can contain Template:TODO"allowed type and/or values". 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::PropertyPlacementLink", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyPlacementList

A placement list property. It can contain list of placements. For more details, see the section about Creating a FeaturePython object and adding a property to it.

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]

App::PropertyPosition

Identical to App::PropertyVectorDistance.

App::PropertyPower

introduced in 0.21

App::PropertyPrecision

A Template:TODOprecision property. It can contain Template:TODO"allowed type and/or values". 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::PropertyPrecision", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyPressure

A Template:TODOpressure property. It can contain Template:TODO"allowed type and/or values". 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::PropertyPressure", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyPythonObject

A Template:TODOpythonObject property. It can contain Template:TODO"allowed type and/or values". 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::PropertyPythonObject", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyQuantity

A Template:TODOquantity property. It can contain Template:TODO"allowed type and/or values". 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::PropertyQuantity", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyQuantityConstraint

A Template:TODOquantityConstraint property. It can contain Template:TODO"allowed type and/or values". 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::PropertyQuantityConstraint", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyRotation

App::PropertyShearModulus

introduced in 0.21

App::PropertySpecificEnergy

introduced in 0.21

App::PropertySpecificHeat

introduced in 0.21

App::PropertySpeed

A Template:TODOspeed property. It can contain Template:TODO"allowed type and/or values". 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::PropertySpeed", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyStiffness

App::PropertyStress

introduced in 0.21

App::PropertyString

A Template:TODOstring property. It can contain Template:TODO"allowed type and/or values". 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::PropertyString", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyStringList

A Template:TODOstringList property. It can contain Template:TODO"allowed type and/or values". 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::PropertyStringList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyTemperature

introduced in 0.21

App::PropertyThermalConductivity

introduced in 0.21

App::PropertyThermalExpansionCoefficient

introduced in 0.21

App::PropertyThermalTransferCoefficient

introduced in 0.21

App::PropertyTime

introduced in 0.21

App::PropertyUltimateTensileStrength

introduced in 0.21

App::PropertyUUID

A Template:TODOuUID property. It can contain Template:TODO"allowed type and/or values". 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::PropertyUUID", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyVacuumPermittivity

A Template:TODOvacuumPermittivity property. It can contain Template:TODO"allowed type and/or values". 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::PropertyVacuumPermittivity", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyVector

A vector property. It can contain a FreeCAD vector object. The value can set by supplying a vector or a tuple. For more details, see the section about Creating a FeaturePython object and adding a property to it.

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)

App::PropertyVectorDistance

A vector property that is almost identical to App::PropertyVector. The only difference is that in the Property View 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

App::PropertyVectorList

A vector list property. It can contain list of vectors. The value can set by supplying a list of vectors and/or tuples. For more details, see the section about Creating a FeaturePython object and adding a property to it.

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

introduced in 0.21

App::PropertyVelocity

introduced in 0.21

App::PropertyVolume

A Template:TODOvolume property. It can contain Template:TODO"allowed type and/or values". 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::PropertyVolume", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyVolumeFlowRate

introduced in 0.21

App::PropertyVolumetricThermalExpansionCoefficient

introduced in 0.21

App::PropertyWork

introduced in 0.21

App::PropertyXLink

A Template:TODOxLink property. It can contain Template:TODO"allowed type and/or values". 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::PropertyXLink", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyXLinkList

A Template:TODOxLinkList property. It can contain Template:TODO"allowed type and/or values". 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::PropertyXLinkList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyXLinkSub

A Template:TODOxLinkSub property. It can contain Template:TODO"allowed type and/or values". 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::PropertyXLinkSub", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyXLinkSubList

A Template:TODOxLinkSubList property. It can contain Template:TODO"allowed type and/or values". 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::PropertyXLinkSubList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

App::PropertyYieldStrength

introduced in 0.21

App::PropertyYoungsModulus

introduced in 0.21

Mesh::PropertyCurvatureList

A Template:TODOcurvatureList property. It can contain Template:TODO"allowed type and/or values". 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("Mesh::PropertyCurvatureList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

Mesh::PropertyMeshKernel

A mesh kernel property. It can contain a mesh object. For more details, see the section about Creating a FeaturePython object and adding a property to it.

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

Mesh::PropertyNormalList

A Template:TODOnormalList property. It can contain Template:TODO"allowed type and/or values". 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("Mesh::PropertyNormalList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

Part::PropertyFilletEdges

A Template:TODOfilletEdges property. It can contain Template:TODO"allowed type and/or values". 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("Part::PropertyFilletEdges", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

Part::PropertyGeometryList

A Template:TODOgeometryList property. It can contain Template:TODO"allowed type and/or values". 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("Part::PropertyGeometryList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

Part::PropertyPartShape

A part shape property. It can contain shape object. For more details, see the section about Creating a FeaturePython object and adding a property to it.

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

Part::PropertyShapeHistory

A Template:TODOshapeHistory property. It can contain Template:TODO"allowed type and/or values". 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("Part::PropertyShapeHistory", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

Path::PropertyPath

A Template:TODOpath property. It can contain Template:TODO"allowed type and/or values". 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("Path::PropertyPath", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

Path::PropertyTool

A Template:TODOtool property. It can contain Template:TODO"allowed type and/or values". 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("Path::PropertyTool", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

Path::PropertyTooltable

A Template:TODOtooltable property. It can contain Template:TODO"allowed type and/or values". 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("Path::PropertyTooltable", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

Sketcher::PropertyConstraintList

A Template:TODOconstraintList property. It can contain Template:TODO"allowed type and/or values". 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("Sketcher::PropertyConstraintList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

Spreadsheet::PropertyColumnWidths

A Template:TODOcolumnWidths property. It can contain Template:TODO"allowed type and/or values". 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("Spreadsheet::PropertyColumnWidths", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

Spreadsheet::PropertyRowHeights

A Template:TODOrowHeights property. It can contain Template:TODO"allowed type and/or values". 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("Spreadsheet::PropertyRowHeights", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

Spreadsheet::PropertySheet

A Template:TODOsheet property. It can contain Template:TODO"allowed type and/or values". 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("Spreadsheet::PropertySheet", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

Spreadsheet::PropertySpreadsheetQuantity

A Template:TODOspreadsheetQuantity property. It can contain Template:TODO"allowed type and/or values". 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("Spreadsheet::PropertySpreadsheetQuantity", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

TechDraw::PropertyCenterLineList

A Template:TODOcenterLineList property. It can contain Template:TODO"allowed type and/or values". 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("TechDraw::PropertyCenterLineList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

TechDraw::PropertyCosmeticEdgeList

A Template:TODOcosmeticEdgeList property. It can contain Template:TODO"allowed type and/or values". 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("TechDraw::PropertyCosmeticEdgeList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

TechDraw::PropertyCosmeticVertexList

A Template:TODOcosmeticVertexList property. It can contain Template:TODO"allowed type and/or values". 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("TechDraw::PropertyCosmeticVertexList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

TechDraw::PropertyGeomFormatList

A Template:TODOgeomFormatList property. It can contain Template:TODO"allowed type and/or values". 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("TechDraw::PropertyGeomFormatList", "ThePropertyName", "Subsection", "Description for tooltip")
obj.ThePropertyName = [[:Template:TODO]]"example value for setter"
obj.ThePropertyName # returns [[:Template:TODO]]"example value for getter"

This page is retrieved from https://wiki.freecad.org/FeaturePython_Custom_Properties

Get in touch!
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© The FreeCAD Team. Homepage image credits (top to bottom): ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

This project is supported by: , KiCad Services Corp. and other sponsors

GitHubImprove this page on GitHub