from weSkel.src.core.node.dg.object_set.lib import ObjectSetÀ exécuter dans Maya ou dans un processus mayapy initialisé. L’import om n’est nécessaire que si votre script utilise des types OpenMaya.
Ensembles Maya : ajout, retrait, lecture et capture des membres.
from weSkel.src.core.node.dg.object_set.lib import ObjectSetÀ exécuter dans Maya ou dans un processus mayapy initialisé. L’import om n’est nécessaire que si votre script utilise des types OpenMaya.
| Élément | Valeur |
|---|---|
| Classe | ObjectSet |
| Module | weSkel.src.core.node.dg.object_set.lib |
| Type Maya | objectSet |
| Parent direct | ContainerBase |
| Inventaire | Membres définis ou redéfinis ici ; les membres hérités sont regroupés par parent dans chaque rubrique. |
Signature : ObjectSet(node) → ObjectSet.
| Paramètre | Type accepté | Défaut |
|---|---|---|
node |
str | om.MObject | om.MObjectHandle | om.MFnDependencyNode | om.MFnSet |
Obligatoire |
Enveloppe un nœud existant ou prépare un wrapper pour un nom absent ; ne crée pas le nœud. Utiliser create() séparément. Un objet ou type incompatible peut lever TypeError. L’identité partagée peut renvoyer un wrapper compatible déjà enregistré.
Propriétés Python définies ou redéfinies ici. L : lecture seule ; L/E : setter disponible, avec les restrictions précisées dans la fiche. Les types om.* appartiennent à maya.api.OpenMaya.
| Propriété | Type retourné | Accès |
|---|---|---|
mfn_set |
Optional[om.MFnSet] |
L |
members |
om.MSelectionList |
L/E |
flatten |
bool |
L/E |
Function set natif du set live, ou None si indisponible.
| Élément | Type / comportement |
|---|---|
| Retour | Optional[om.MFnSet] |
| Type observé sur géométrie live | MFnSet |
Membres live sous forme de om.MSelectionList ; valeur préparée en mémoire sans nœud live.
| Élément | Type / comportement |
|---|---|
| Retour | om.MSelectionList |
| Type observé sur géométrie live | MSelectionList |
| Valeur du setter | om.MSelectionList |
Avant toute initialisation des membres, le getter peut renvoyer None, malgré son annotation. Le setter remplace les membres en deux étapes (vidage, puis ajout), sans transaction de rollback.
Active la lecture récursive des sets imbriqués via la propriété members. Ne modifie pas la scène à lui seul.
| Élément | Type / comportement |
|---|---|
| Retour | bool |
| Type observé sur géométrie live | bool |
| Valeur du setter | bool |
DGNode15| Propriété | Type retourné | Accès | Description |
|---|---|---|---|
dep_fn |
om.MFnDependencyNode |
L | Function set live ; objet non attaché si le nœud est absent. |
uuid |
str | None |
L | UUID live, ou dernière valeur mémorisée si elle reste disponible. |
name |
str | None |
L/E | Nom live, sinon nom mémorisé. |
absolute_name |
str | None |
L | Nom absolu de namespace renvoyé par MFnDependencyNode.absoluteName() ; None sans nœud. |
stripped_name |
str | None |
L/E | Nom sans namespace, ou None si aucun nom. |
namespace |
str | None |
L/E | Namespace normalisé comme a:b ; None à la racine. |
plugs |
Plugs | None |
L | Gestionnaire des plugs du nœud live ; None sinon. |
is_valid_dep_fn |
bool |
L | Compatibilité du function set avec le MObject courant. |
is_default_node |
bool |
L | Indique un nœud par défaut de Maya ; False sans nœud. |
is_from_referenced_file |
bool |
L | Indique un nœud issu d’un fichier référencé ; False sans nœud. |
is_locked |
bool |
L/E | Verrouillage du nœud, distinct des locks de plugs. |
is_shared |
bool |
L | État partagé renvoyé par Maya ; False sans nœud. |
plugin_name |
str | None |
L | Nom du plugin Maya associé, éventuellement chaîne vide ; None sans nœud. |
affect_animation |
bool |
L | Résultat de MFnDependencyNode.affectsAnimation() ; False sans nœud. |
type |
str | None |
L/E | Type natif live ou type mémorisé. |
Node10| Propriété | Type retourné | Accès | Description |
|---|---|---|---|
mobject |
om.MObject |
L/E | Objet Maya live, ou objet nul. |
mobject_handle |
om.MObjectHandle |
L/E | Handle associé au nœud. |
api_type |
int | None |
L | Identifiant du type API Maya. |
api_type_str |
str |
L | Nom du type API, par exemple "kTime". |
exists |
bool |
L | Le wrapper possède actuellement un nœud live. |
is_null |
bool |
L | L’objet Maya retourné est nul. |
is_alive |
bool |
L | L’objet existe avec un handle valide et vivant. |
is_valid_handle |
bool |
L | Validité du handle mémorisé. |
is_dag_node |
bool |
L | Compatibilité avec om.MFn.kDagNode. |
hash_code |
int |
L | Hash du handle Maya. |
Les defaults et flags ci-dessous sont les déclarations des specs, pas une garantie de valeur live. Un descriptor peut renvoyer un proxy : .value lit sa valeur ; .plug donne accès au Plug. Les noms des proxies décrivent le résultat, sans demander d’importer des classes privées. Les types observés proviennent d’un cas de contrôle ; une entrée géométrique non connectée peut notamment valoir None.
Pour une écriture dont il faut vérifier l’échec, utiliser explicitement le Plug et contrôler le résultat live. Les setters de descriptors ne propagent pas tous les échecs natifs.
| Propriété | Plug Maya | Retour |
|---|---|---|
annotation |
annotation |
_ValuePlugProxy · .value: str |
dn_set_members |
dnSetMembers |
list |
dag_set_members |
dagSetMembers |
list |
edge_only_set |
edgeOnlySet |
_ValuePlugProxy · .value: bool |
edit_points_only_set |
editPointsOnlySet |
_ValuePlugProxy · .value: bool |
facets_only_set |
facetsOnlySet |
_ValuePlugProxy · .value: bool |
group_nodes |
groupNodes |
list |
is_layer |
isLayer |
_ValuePlugProxy · .value: bool |
member_wireframe_color |
memberWireframeColor |
_ValuePlugProxy · .value: int |
partition |
partition |
None |
renderable_only_set |
renderableOnlySet |
_ValuePlugProxy · .value: bool |
used_by |
usedBy |
list |
vertices_only_set |
verticesOnlySet |
_ValuePlugProxy · .value: bool |
Accès au plug natif annotation.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | annotation |
| Retour de la propriété | _ValuePlugProxy · .value: str |
| Type déclaré | typed:string |
| Défaut déclaré | '' |
| Flags | input, output, stored |
| Lecture | node.annotation.value |
| Affectation du descriptor | node.annotation = value |
Accès au plug natif dnSetMembers.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | dnSetMembers |
| Retour de la propriété | list |
| Type déclaré | array:typed:generic |
| Défaut déclaré | () |
| Flags | array, input, connectable |
Accès au plug natif dagSetMembers.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | dagSetMembers |
| Retour de la propriété | list |
| Type déclaré | array:typed:generic |
| Défaut déclaré | () |
| Flags | array, input, connectable |
Accès au plug natif edgeOnlySet.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | edgeOnlySet |
| Retour de la propriété | _ValuePlugProxy · .value: bool |
| Type déclaré | numeric:bool |
| Défaut déclaré | False |
| Flags | input, output, stored |
| Lecture | node.edge_only_set.value |
| Affectation du descriptor | node.edge_only_set = value |
Accès au plug natif editPointsOnlySet.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | editPointsOnlySet |
| Retour de la propriété | _ValuePlugProxy · .value: bool |
| Type déclaré | numeric:bool |
| Défaut déclaré | False |
| Flags | input, output, stored |
| Lecture | node.edit_points_only_set.value |
| Affectation du descriptor | node.edit_points_only_set = value |
Accès au plug natif facetsOnlySet.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | facetsOnlySet |
| Retour de la propriété | _ValuePlugProxy · .value: bool |
| Type déclaré | numeric:bool |
| Défaut déclaré | False |
| Flags | input, output, stored |
| Lecture | node.facets_only_set.value |
| Affectation du descriptor | node.facets_only_set = value |
Accès au plug natif groupNodes.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | groupNodes |
| Retour de la propriété | list |
| Type déclaré | array:typed:message |
| Défaut déclaré | () |
| Flags | array, input, connectable |
Accès au plug natif isLayer.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | isLayer |
| Retour de la propriété | _ValuePlugProxy · .value: bool |
| Type déclaré | numeric:bool |
| Défaut déclaré | False |
| Flags | input, output, stored |
| Lecture | node.is_layer.value |
| Affectation du descriptor | node.is_layer = value |
Accès au plug natif memberWireframeColor.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | memberWireframeColor |
| Retour de la propriété | _ValuePlugProxy · .value: int |
| Type déclaré | numeric:short |
| Défaut déclaré | -1 |
| Flags | input, output, connectable, stored |
| Lecture | node.member_wireframe_color.value |
| Affectation du descriptor | node.member_wireframe_color = value |
Accès au plug natif partition.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | partition |
| Retour de la propriété | None |
| Type déclaré | message |
| Défaut déclaré | None |
| Flags | input, output, connectable |
Le setter du descriptor refuse l’affectation ; utiliser les opérations de connexion du Plug.
Accès au plug natif renderableOnlySet.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | renderableOnlySet |
| Retour de la propriété | _ValuePlugProxy · .value: bool |
| Type déclaré | numeric:bool |
| Défaut déclaré | False |
| Flags | input, output, stored |
| Lecture | node.renderable_only_set.value |
| Affectation du descriptor | node.renderable_only_set = value |
Accès au plug natif usedBy.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | usedBy |
| Retour de la propriété | list |
| Type déclaré | array:typed:message |
| Défaut déclaré | () |
| Flags | array, input, output, connectable |
Accès au plug natif verticesOnlySet.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | verticesOnlySet |
| Retour de la propriété | _ValuePlugProxy · .value: bool |
| Type déclaré | numeric:bool |
| Défaut déclaré | False |
| Flags | input, output, stored |
| Lecture | node.vertices_only_set.value |
| Affectation du descriptor | node.vertices_only_set = value |
ContainerBase21| Propriété | Plug Maya | Retour | Description |
|---|---|---|---|
black_box |
blackBox |
_ValuePlugProxy · .value: bool |
Présentation du container en boîte noire dans Maya. |
border_connections |
borderConnections |
list[str] |
Données de connexions à la frontière du container. |
creator |
creator |
_ValuePlugProxy · .value: str |
Métadonnée de créateur du container. |
creation_date |
creationDate |
_ValuePlugProxy · .value: str |
Métadonnée de date de création. |
custom_treatment |
customTreatment |
_ValuePlugProxy · .value: str |
Traitement personnalisé du container. |
hyper_layout |
hyperLayout |
None |
Connexion au layout de l’Hypergraph. |
icon_name |
iconName |
_ValuePlugProxy · .value: str |
Nom d’icône associé au container. |
is_collapsed |
isCollapsed |
_ValuePlugProxy · .value: bool |
État replié du container dans les vues Maya. |
is_hierarchical_connection |
isHierarchicalConnection |
TypedArrayProxy |
Indicateurs de connexions hiérarchiques. |
rmb_command |
rmbCommand |
_ValuePlugProxy · .value: str |
Commande de menu contextuel associée au container. |
template_name |
templateName |
_ValuePlugProxy · .value: str |
Nom du template du container. |
template_path |
templatePath |
_ValuePlugProxy · .value: str |
Chemin du template du container. |
template_version |
templateVersion |
_ValuePlugProxy · .value: int |
Version du template du container. |
container_type |
containerType |
_ValuePlugProxy · .value: str |
Métadonnée de type du container. |
ui_treatment |
uiTreatment |
_ValuePlugProxy · .value: int |
Mode de présentation du container. |
view_mode |
viewMode |
_ValuePlugProxy · .value: int |
Mode de vue du container. |
view_name |
viewName |
_ValuePlugProxy · .value: str |
Nom de la vue du container. |
published_node_info |
publishedNodeInfo |
ArrayCompoundProxy |
Tableau des informations sur les nœuds publiés. |
published_node |
publishedNodeInfo[].publishedNode |
IndexedPathProxy |
Connexion vers le nœud publié à un indice donné. |
is_hierarchical_node |
publishedNodeInfo[].isHierarchicalNode |
IndexedPathProxy |
Indicateur hiérarchique d’un nœud publié. |
published_node_type |
publishedNodeInfo[].publishedNodeType |
IndexedPathProxy |
Type déclaré d’un nœud publié. |
DGNode6| Propriété | Plug Maya | Retour | Description |
|---|---|---|---|
message |
message |
None |
Plug de message du nœud ; sert aux connexions, sans valeur numérique. |
frozen |
frozen |
_ValuePlugProxy · .value: bool |
État natif de gel de l’évaluation. |
is_historically_interesting |
isHistoricallyInteresting |
_ValuePlugProxy · .value: int |
Niveau d’intérêt du nœud dans l’historique Maya. |
bin_membership |
binMembership |
_ValuePlugProxy · .value: str |
Appartenance aux bins Maya. |
caching_enabled |
caching |
_ValuePlugProxy · .value: bool |
Activation du cache natif du nœud. |
caching_node_state |
nodeState |
_ValuePlugProxy · .value: int |
État d’évaluation natif nodeState. |
| Méthode | Retour |
|---|---|
create |
None |
snapshot |
ObjectSetSnapshot |
finalize |
None |
get_members |
om.MSelectionList |
clear_members |
None |
add_members |
None |
add_member |
None |
remove_members |
None |
remove_member |
None |
is_member |
bool |
Crée le set avec la sélection préparée, puis rejoue une éventuelle capture mémorisée. Ne fait rien si le set existe déjà.
| Élément | Type / comportement |
|---|---|
| Retour | None |
Capture un dictionnaire d’état SVD et ajoute les champs spécifiques de la classe. Mémorise cette capture sur le wrapper ; ce n’est pas une sauvegarde complète de scène.
| Élément | Type / comportement |
|---|---|
| Retour | ObjectSetSnapshot |
profile |
str · défaut : 'rig' |
Les membres sont enregistrés par noms de nœuds, sans indices de composants ni chemins d’instances complets. Le round-trip documenté concerne des objets entiers.
Rejoue la capture parente, restaure flatten et remplace les membres depuis les noms mémorisés.
| Élément | Type / comportement |
|---|---|
| Retour | None |
snapshot |
Optional[Mapping[str, Any]] · défaut : None |
**kwargs |
Any · défaut : — |
Rejoue d’abord la capture parente, puis résout les noms des membres, restaure flatten et remplace la sélection. Un nom introuvable peut interrompre le parcours après des changements déjà appliqués.
Lit les membres du set live, en incluant les membres des sets imbriqués si flatten=True. Renvoie une sélection vide sans set live.
| Élément | Type / comportement |
|---|---|
| Retour | om.MSelectionList |
flatten |
Optional[bool] · défaut : False |
Vide le set live et la liste mémorisée ; ne supprime pas les objets membres.
| Élément | Type / comportement |
|---|---|
| Retour | None |
Ajoute les objets au set live. Sans set live, remplace la sélection préparée par les objets fournis.
| Élément | Type / comportement |
|---|---|
| Retour | None |
selection_list |
om.MSelectionList | Sequence[MemberLike] · défaut : — |
Sans nœud live, les appels successifs remplacent la sélection préparée au lieu de l’accumuler. Créer le set avant des ajouts successifs. Les conversions de MSelectionList retombent sur les objets : ne pas supposer la préservation des sélections de composants.
Ajoute un objet en déléguant à add_members([member]).
| Élément | Type / comportement |
|---|---|
| Retour | None |
member |
str | om.MObject | om.MObjectHandle | om.MFnDependencyNode | om.MDagPath | om.MFnDagNode · défaut : — |
Retire les objets fournis de la sélection et du set live ; ne supprime pas les nœuds.
| Élément | Type / comportement |
|---|---|
| Retour | None |
selection_list |
om.MSelectionList | Sequence[MemberLike] · défaut : — |
Retire un objet s’il est présent ; ne supprime pas le nœud.
| Élément | Type / comportement |
|---|---|
| Retour | None |
member |
str | om.MObject | om.MObjectHandle | om.MFnDependencyNode | om.MDagPath | om.MFnDagNode · défaut : — |
Teste la présence de l’objet dans la sélection de membres, par identité MObject.
| Élément | Type / comportement |
|---|---|
| Retour | bool |
member |
str | om.MObject | om.MObjectHandle | om.MFnDependencyNode | om.MDagPath | om.MFnDagNode · défaut : — |
DGNode4| Méthode | Retour | Description |
|---|---|---|
delete |
None |
Déconnecte les connexions live, détache le wrapper puis supprime le nœud. |
snapshot_svd |
SVDSnapshot |
Capture Source / Value / Destinations pour la liste demandée. |
svd |
SVDView |
Renvoie une vue live en lecture seule de la source, de la valeur et des destinations ; ce n’est pas une capture figée. |
clear_attr_cache |
None |
Vide le cache d’attributs de cette instance ; ne supprime aucun nœud et ne vide pas le registre global de wrappers. |
Node2| Méthode | Retour | Description |
|---|---|---|
has_fn(fn_type) |
bool |
Tester la compatibilité avec un function set Maya. |
clear_node_registry() |
None |
Détacher les wrappers enregistrés et vider leur registre partagé. |
| Attribut | Valeur / composition |
|---|---|
NODE_TYPE |
'objectSet' |
SPEC_LAYERS |
get_dg_specs_all, get_container_base_specs_all, get_object_set_specs_all |
NODE_REGISTRY et les autres attributs de classe non redéfinis restent hérités. Les types Snapshot exportés décrivent des dictionnaires ; utiliser node.snapshot() pour effectuer une capture.
| Point | Comportement |
|---|---|
| Identité | Un nœud recréé sous le même nom est un nouvel objet Maya. |
| Création et géométrie | Le constructeur ne crée rien ; appeler create() avant les opérations live. |
| Capture | Les snapshots peuvent contenir des objets Maya ; ne pas supposer un JSON prêt à exporter ni une reconstruction complète de géométrie. |
members |
Avant toute initialisation des membres, le getter peut renvoyer None, malgré son annotation. Le setter remplace les membres en deux étapes (vidage, puis ajout), sans transaction de rollback. |
add_members |
Sans nœud live, les appels successifs remplacent la sélection préparée au lieu de l’accumuler. Créer le set avant des ajouts successifs. Les conversions de MSelectionList retombent sur les objets : ne pas supposer la préservation des sélections de composants. |
snapshot |
Les membres sont enregistrés par noms de nœuds, sans indices de composants ni chemins d’instances complets. Le round-trip documenté concerne des objets entiers. |
finalize |
Rejoue d’abord la capture parente, puis résout les noms des membres, restaure flatten et remplace la sélection. Un nom introuvable peut interrompre le parcours après des changements déjà appliqués. |
Exemple autonome pour le Script Editor Python de Maya. Dans mayapy, initialiser maya.standalone avant ce bloc. La démonstration crée ses propres nœuds et les supprime dans le finally.
from uuid import uuid4from weSkel.src.core.node.dg.object_set.lib import ObjectSetfrom weSkel.src.core.node.dag.transform.lib import Transform
suffix = uuid4().hex[:8]node = ObjectSet("api_set_" + suffix)member = Transform("api_set_member_" + suffix)try: member.create() node.create() node.add_member(member.mobject) assert node.is_member(member.mobject) assert node.get_members().length() == 1 state = node.snapshot() node.clear_members() assert node.get_members().length() == 0 node.finalize(state) assert node.is_member(member.mobject) node.remove_member(member.mobject) assert not node.is_member(member.mobject) assert member.exists print("ObjectSet: membership and snapshot replay OK")finally: node.delete(snapshot=False) member.delete(snapshot=False)Résultat attendu : ObjectSet: membership and snapshot replay OK.
Checkpoint SDK 87c3486. Inventaire des membres et lectures de contrôle vérifiés sous Maya 2025.3 et 2026.3 ; exemple exécuté dans les deux versions. Les méthodes ne sont pas toutes couvertes par cet exemple. Les limites indiquées restent présentes dans les sources ; le package compilé n’est pas validé par ces contrôles.