Properties
- class dazpy.DazProperty(client, owner_locator, property_label)[source]
Bases:
DazElementProxy for a
DzPropertyon anyDzElement.Provides typed read/write access to a single named property, including keyframe support for animated properties.
- Parameters:
- property raw_value: object
This property’s own dial value, excluding any DzERCLink contributions.
A property driven by one or more
DzERCLinkcontrollers (for example a character’s “Scale” dial fed by dozens of linked morphs) computesvalueasraw_valueplus every controller’s contribution. Reading and writingvaluein a save/restore round trip is therefore not idempotent for such properties: the captured (post-ERC) total gets written back into the raw slot on restore, and the ERC links add their contribution again on top, inflating the property a little more on every cycle.Use
raw_valueinstead ofvaluewhenever you need a snapshot/restore round trip to be exact — it reads and writes only the property’s own baseline and is unaffected by ERC links either way. For properties without ERC links,raw_valueandvalueare identical. Falls back tovaluefor property types that don’t expose a raw accessor (e.g. non-numeric properties).
- set_key(time, value)[source]
Set a keyframe for this (numeric) property.
Writes via
DzNumericProperty.setDoubleValue(tm, val)— the DazScript keyframe surface confirmed live against a running DAZ Studio instance (seedazpy.cinematics.apply_animated_shot, which uses the same call).DzProperty.setKey()/addKey(), which earlier versions of this method called, do not exist on a live property and silently wrote nothing.
- property is_animated: bool | None
Trueif this property has keyframe animation data (read-only).Implemented as
getNumKeys() > 0—DzProperty.isAnimated(), which this property called previously, does not exist on a live property and raised aScriptRuntimeErroron every access.