Property group
PropertyGroup
¶
Bases: PropertyBase
The PropertyGroup object represents a group of properties. It can contain
Property objects and other PropertyGroup objects. Property groups can
be nested to provide a parent-child hierarchy, with a Layer object at the
top (root) down to a single Property object, such as the mask feather of
the third mask. To traverse the group hierarchy, use [PropertyBase][] methods
and attributes; see PropertyBase.propertyGroup(). For examples of how to
access properties and property groups, see [PropertyBase][] object.
Example
Info
PropertyGroup is a subclass of [PropertyBase][]. All methods and
attributes of [PropertyBase][] are available when working with
PropertyGroup.
Info
PropertyGroup is a base class for Layer and MaskPropertyGroup.
PropertyGroup attributes and methods are available when working with
layer or mask groups.
See: https://ae-scripting.docsforadobe.dev/property/propertygroup/
Attributes¶
can_set_enabled
¶
can_set_enabled: bool
True if the enabled attribute value can be set.
This is True for all layers, effect property groups, shape
vector groups, text path options, and the Layer Styles group
and its individual styles. Read-only.
elided
¶
elided: bool
When True, the property is not shown in the UI. An elided
property is still present in the timeline but hidden from view.
Read-only.
enabled
¶
enabled = ChunkField[bool](
"_tdsb",
"enabled",
default=True,
validate=_validate_enabled,
)
Corresponds to the setting of the eyeball icon. Read / Write.
is_modified
¶
is_modified: bool
True if any child property is modified.
For indexed groups (such as Effects or Masks parades), the group is considered modified when it has any children - adding items to an indexed group is itself a modification. Shape vector groups (value) follow the same rule.
match_name
¶
match_name: str
A special name for the property used to build unique naming paths. The match name is not displayed, but you can refer to it in scripts. Every property has a unique match-name identifier. Read-only.
num_properties
¶
num_properties: int
The number of child properties in this group.
Equivalent to ExtendScript PropertyGroup.numProperties.
parent_property
¶
parent_property: PropertyGroup | None
The parent [PropertyGroup][] of this property, or None for
top-level layer property groups. Read-only.
properties
¶
properties: list[Property | PropertyGroup]
List of properties in this group. Read-only.
property_depth
¶
property_depth: int
The number of levels of parent groups between this property and the containing layer. The value is 0 for a layer. Read-only.
property_index
¶
property_index: int | None
The 0-based position of this property within its parent group.
Returns None for layers (property depth 0).
Warning
Unlike ExtendScript (1-based), this uses Python's 0-based
convention so that group.properties[prop.property_index]
works directly.
Read-only.
property_type
¶
property_type: PropertyType
The type of this property. One of PropertyType.PROPERTY,
PropertyType.NAMED_GROUP, or PropertyType.INDEXED_GROUP.
Read-only.
selected
¶
selected: bool
When True, the property is selected. Read / Write.
Note
Property selection is stored in the .aep binary format but very complex.
Parsed projects report False for now.
Functions¶
add_property
¶
add_property(name: str) -> Property | PropertyGroup
Create and return a new property with the specified name, and add it to this group.
Indexed groups (and, as a named-group exception, the text
animator Properties pool) support adding properties; see
can_add_property. Accepted names cover every ExtendScript
addable family: mask atoms (ADBE Mask Atom / Mask), the
expression controls including the Dropdown Menu Control (e.g.
ADBE Slider Control / Slider Control, ADBE Dropdown
Control), shape elements on a contents group (e.g.
ADBE Vector Shape - Rect, ADBE Vector Group), text
selectors (e.g. ADBE Text Selector / Range Selector), text
animators (ADBE Text Animator / Animator), and animator
properties from the fixed pool (e.g. ADBE Text Position 3D /
Position).
Note
Unlike ExtendScript, adding a property does not invalidate existing references to the group's other properties.
Parameters:
-
name(str) –The display name or match name of the property to add.
Raises:
-
ValueError–If a property with this name cannot be added to this group.
add_variable_font_axis
¶
Create and return a Property for a variable font axis, and add it to this group.
Mirrors ExtendScript PropertyGroup.addVariableFontAxis(). Can
only be called on the ADBE Text Animator Properties group
within a text animator. The axis binds to the first free of the
8 ADBE Text VF Axis slots; calling it again with an already
active tag returns the existing property.
The axis bounds, default value, and display name are read from
the variable font file with fontTools (After Effects reads them
from the installed font; the project file does not store a font
path). Pass font_file explicitly, or leave it None to locate
the installed font from the text document's font family.
Note
This functionality was added in After Effects 26.0.
Parameters:
-
axis_tag(str) –The 4-character tag identifying the variable font axis (e.g.
wght,wdth,slnt,ital,opsz). -
font_file(str | None, default:None) –Optional path to the variable font file. When
None, the font is located in the OS font directories by the text document's font family.
Raises:
-
ValueError–If this group is not a text animator Properties group, the font cannot be located or is not a variable font,
axis_tagis not one of the font's axes, or all 8 axis slots are in use.
can_add_property
¶
Check whether a property with the given name can be added.
Returns True if this group is an indexed group and name is
a valid match name or display name for the group type. For the
Effect Parade, the expression controls py_aep can create plus
any effect already defined in the project (LIST:EfdG) are
accepted.
Parameters:
-
name(str) –A match name or display name to check.
duplicate
¶
duplicate() -> PropertyBase
Duplicate this property within its parent group.
The duplicate is inserted immediately after the original. Only valid for children of indexed groups (see [PropertyType][]).
Returns:
-
PropertyBase–The newly created [PropertyBase][].
Raises:
-
ValueError–If this property is not in an indexed group.
move_to
¶
move_to(new_index: int) -> None
Move this property to a new 0-based index within its parent group.
Only valid for children of indexed groups.
Parameters:
-
new_index(int) –The target 0-based position.
Raises:
-
ValueError–If this property is not in an indexed group.
-
IndexError–If
new_indexis out of range.
property
¶
property(key: int | str) -> Property | PropertyGroup
remove
¶
Remove this property from its parent group.
Only valid for children of indexed groups (effects, masks, shape contents, text animators).
Raises:
-
ValueError–If this property is not in an indexed group.