Property: Difference between revisions

From FreeCAD Documentation
(→‎All properties: App::PropertyBool not Boolean)
(→‎Scripting: In general, Data properties are assigned by using the document's addProperty() method. On the other hand, View properties are normally provided automatically by the parent object from which the scripted object is derived.)
Line 74: Line 74:
}}
}}
<translate>
<translate>

In general, {{Emphasis|Data}} properties are assigned by using the document's {{incode|addProperty()}} method. On the other hand, {{Emphasis|View}} properties are normally provided automatically by the parent object from which the sripted object is derived.

For example:
* Deriving from {{incode|App::FeaturePython}} provides only 4 {{Emphasis|View}} properties: Display Mode, On Top When Selected, Show In Tree, and Visibility.
* Deriving from {{incode|Part::Feature}} provides 17 {{Emphasis|View}} properties: the previous four, but also Angular Deflection, Bounding Box, Deviation, Draw Style, Lighting, Line Color, Line Width, Point Color, Point Size, Selectable, Selection Style, Shape Color, and Transparency.



<!--T:2-->
<!--T:2-->

Revision as of 03:28, 23 September 2019

Introduction

A property is a piece of information like a number or a text string that is attached to a FreeCAD document or an object in a document. Public properties can be viewed and modified in the Property editor.

Properties play a very important role in FreeCAD. As objects in FreeCAD are "parametric", this means that their behavior is defined by their properties, and how these properties are used as input for their class methods.

All properties

Custom scripted objects can use any of the property types defined in the base system:

Bool
Float
FloatList
FloatConstraint
Angle
Distance
Integer
IntegerConstraint
Percent
Enumeration
IntegerList
String
StringList
Length
Link
LinkList
LinkSubList
Matrix
Vector
VectorList
VectorDistance
Placement
PlacementLink
Color
ColorList
Material
Path
File
FileIncluded
PartShape
FilletContour
Circle

Internally, the property name is prefixed with App::Property:

App::PropertyBool
App::PropertyFloat
App::PropertyFloatList
...

Scripting

See also: FreeCAD scripting basics

A scripted object is created first, and then properties are assigned.

obj = App.ActiveDocument.addObject("Part::Feature", "CustomObject")

obj.addProperty("App::PropertyFloat", "Velocity", "Parameter", "Body speed")
obj.addProperty("App::PropertyBool", "VelocityEnabled", "Parameter", "Enable body speed")

In general, Data properties are assigned by using the document's addProperty() method. On the other hand, View properties are normally provided automatically by the parent object from which the sripted object is derived.

For example:

  • Deriving from App::FeaturePython provides only 4 View properties: Display Mode, On Top When Selected, Show In Tree, and Visibility.
  • Deriving from Part::Feature provides 17 View properties: the previous four, but also Angular Deflection, Bounding Box, Deviation, Draw Style, Lighting, Line Color, Line Width, Point Color, Point Size, Selectable, Selection Style, Shape Color, and Transparency.


Interface Customization
Workbenches