Aller au contenu
weSkelDOCUMENTATION
Documentation/Référence API/ContainerBase

ContainerBase

Métadonnées et plugs communs aux containers, aux sets et à la branche DAG.

ClassAPI 2.0Base
objectNodeDGNodeContainerBase
from weSkel.src.core.node.abstract.container_base.lib import ContainerBase

Dans Maya ou dans un script Python exécuté par Maya / mayapy initialisé, avec weSkel accessible. L’import de om n’est nécessaire que pour manipuler les types OpenMaya dans votre propre code.

Élément Valeur
Classe ContainerBase
Module weSkel.src.core.node.abstract.container_base.lib
Parent direct DGNode
Descendants directs représentés DAGNode, ObjectSet
Membres propres 0 propriétés Python + 21 propriétés de specs ; 0 méthodes définies ou redéfinies ici.

Les membres des parents restent disponibles. Chaque rubrique propose des tableaux repliables par classe parente, avec un lien vers le contrat complet. Les méthodes privées et les mécanismes standard Python ne font pas partie de cet inventaire.

Signature : ContainerBase(node) → ContainerBase ou une sous-classe compatible déjà enregistrée.

Paramètre Types acceptés Défaut
node str, om.MObject, om.MObjectHandle, om.MFnDependencyNode Obligatoire

Enveloppe un nœud existant ou prépare un wrapper si le nom est introuvable ; ne crée aucun nœud. Pour un autre wrapper, passer other.mobject. Le registre partagé conserve l’identité et peut renvoyer le wrapper concret existant. Une entrée incompatible peut lever TypeError, et un conflit d’identité RuntimeError.

Propriétés Python définies sur cette classe. om désigne maya.api.OpenMaya. Les propriétés issues des specs sont détaillées dans la section suivante.

Aucune propriété Python supplémentaire : cette classe ajoute les propriétés de specs ci-dessous et hérite des propriétés de ses parents.

Propriétés héritées de 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é.
Propriétés héritées de 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 noms Python et Maya sont reproduits exactement. Type déclaré, retour Python et défaut déclaré sont des informations différentes. Le défaut d’une spec n’est pas nécessairement la valeur live d’un nœud, ni une valeur automatiquement écrite à sa création.

Les retours ci-dessous décrivent les descriptors de cette classe ; les observations live utilisent un network, un container, un transform, un mesh ou un skinCluster selon la classe. Certains plugs dépendent du type concret. Une sous-classe peut redéfinir un membre et ses possibilités d’écriture. Les noms de proxies identifient le résultat actuel : ne pas importer leurs classes privées.

Forme Utilisation
_ValuePlugProxy .value lit la valeur ; .plug donne un Plug, .mplug un MPlug.
IndexedPathProxy Objet d’accès indexé. Sa résolution présente des limites au checkpoint documenté : les fiches donnent des alternatives vérifiées avec node.plugs[...].
Flags / écriture stored, input, output, connectable décrivent le contrat de replay. Ils ne garantissent pas qu’un plug natif soit modifiable dans son état courant.

Pour une écriture dont il faut vérifier l’échec, utiliser explicitement le Plug et contrôler le résultat live : certains setters de descriptors peuvent mémoriser la valeur sans propager une erreur d’écriture Maya.

Propriété Plug Maya Retour
black_box blackBox _ValuePlugProxy · .value: bool
border_connections borderConnections list[str]
creator creator _ValuePlugProxy · .value: str
creation_date creationDate _ValuePlugProxy · .value: str
custom_treatment customTreatment _ValuePlugProxy · .value: str
hyper_layout hyperLayout None
icon_name iconName _ValuePlugProxy · .value: str
is_collapsed isCollapsed _ValuePlugProxy · .value: bool
is_hierarchical_connection isHierarchicalConnection TypedArrayProxy
rmb_command rmbCommand _ValuePlugProxy · .value: str
template_name templateName _ValuePlugProxy · .value: str
template_path templatePath _ValuePlugProxy · .value: str
template_version templateVersion _ValuePlugProxy · .value: int
container_type containerType _ValuePlugProxy · .value: str
ui_treatment uiTreatment _ValuePlugProxy · .value: int
view_mode viewMode _ValuePlugProxy · .value: int
view_name viewName _ValuePlugProxy · .value: str
published_node_info publishedNodeInfo ArrayCompoundProxy
published_node publishedNodeInfo[].publishedNode IndexedPathProxy
is_hierarchical_node publishedNodeInfo[].isHierarchicalNode IndexedPathProxy
published_node_type publishedNodeInfo[].publishedNodeType IndexedPathProxy

node.black_boxLecture / écriture

Présentation du container en boîte noire dans Maya.

Élément Type / comportement
Chemin Maya déclaré blackBox
Retour de la propriété _ValuePlugProxy · .value: bool
Type déclaré par la spec numeric:bool
Défaut déclaré False
Flags input, output, connectable, stored
Lire la valeur node.black_box.value
Affectation node.black_box = value

node.border_connectionsConnexions

Données de connexions à la frontière du container.

Élément Type / comportement
Chemin Maya déclaré borderConnections
Retour de la propriété list[str]
Type déclaré par la spec array:message
Défaut déclaré ()
Flags array, input, output, connectable

La liste retournée n’est pas un inventaire garanti des nœuds connectés. Inspecter les sources et destinations via node.plugs[...] pour connaître les connexions réelles.

node.creatorLecture / écriture

Métadonnée de créateur du container.

Élément Type / comportement
Chemin Maya déclaré creator
Retour de la propriété _ValuePlugProxy · .value: str
Type déclaré par la spec typed:string
Défaut déclaré ''
Flags input, output, connectable, stored
Lire la valeur node.creator.value
Affectation node.creator = value

node.creation_dateLecture / écriture

Métadonnée de date de création.

Élément Type / comportement
Chemin Maya déclaré creationDate
Retour de la propriété _ValuePlugProxy · .value: str
Type déclaré par la spec typed:string
Défaut déclaré ''
Flags input, output, connectable, stored
Lire la valeur node.creation_date.value
Affectation node.creation_date = value

node.custom_treatmentLecture / écriture

Traitement personnalisé du container.

Élément Type / comportement
Chemin Maya déclaré customTreatment
Retour de la propriété _ValuePlugProxy · .value: str
Type déclaré par la spec typed:string
Défaut déclaré ''
Flags input, output, connectable, stored
Lire la valeur node.custom_treatment.value
Affectation node.custom_treatment = value

node.hyper_layoutConnexions

Connexion au layout de l’Hypergraph.

Élément Type / comportement
Chemin Maya déclaré hyperLayout
Retour de la propriété None
Type déclaré par la spec message
Défaut déclaré None
Flags input, output, connectable, hidden

Le setter du descriptor lève AttributeError. Gérer les connexions avec node.plugs[...] ; cette propriété ne renvoie pas le nœud connecté.

node.icon_nameLecture / écriture

Nom d’icône associé au container.

Élément Type / comportement
Chemin Maya déclaré iconName
Retour de la propriété _ValuePlugProxy · .value: str
Type déclaré par la spec typed:string
Défaut déclaré ''
Flags input, output, connectable, stored
Lire la valeur node.icon_name.value
Affectation node.icon_name = value

node.is_collapsedLecture / écriture

État replié du container dans les vues Maya.

Élément Type / comportement
Chemin Maya déclaré isCollapsed
Retour de la propriété _ValuePlugProxy · .value: bool
Type déclaré par la spec numeric:bool
Défaut déclaré False
Flags input, output, connectable, stored, hidden
Lire la valeur node.is_collapsed.value
Affectation node.is_collapsed = value

node.is_hierarchical_connectionLecture / écriture

Indicateurs de connexions hiérarchiques.

Élément Type / comportement
Chemin Maya déclaré isHierarchicalConnection
Retour de la propriété TypedArrayProxy
Type déclaré par la spec array:numeric:bool
Défaut déclaré ()
Flags array, input, output, stored, hidden
Accès au plug node.is_hierarchical_connection.plug
Élément logique node.is_hierarchical_connection.element_plug(i).value

node.rmb_commandLecture / écriture

Commande de menu contextuel associée au container.

Élément Type / comportement
Chemin Maya déclaré rmbCommand
Retour de la propriété _ValuePlugProxy · .value: str
Type déclaré par la spec typed:string
Défaut déclaré ''
Flags input, output, stored
Lire la valeur node.rmb_command.value
Affectation node.rmb_command = value

node.template_nameLecture / écriture

Nom du template du container.

Élément Type / comportement
Chemin Maya déclaré templateName
Retour de la propriété _ValuePlugProxy · .value: str
Type déclaré par la spec typed:string
Défaut déclaré ''
Flags input, output, connectable, stored
Lire la valeur node.template_name.value
Affectation node.template_name = value

node.template_pathLecture / écriture

Chemin du template du container.

Élément Type / comportement
Chemin Maya déclaré templatePath
Retour de la propriété _ValuePlugProxy · .value: str
Type déclaré par la spec typed:string
Défaut déclaré ''
Flags input, output, connectable, stored
Lire la valeur node.template_path.value
Affectation node.template_path = value

node.template_versionLecture / écriture

Version du template du container.

Élément Type / comportement
Chemin Maya déclaré templateVersion
Retour de la propriété _ValuePlugProxy · .value: int
Type déclaré par la spec numeric:int
Défaut déclaré 0
Flags input, output, connectable, stored
Lire la valeur node.template_version.value
Affectation node.template_version = value

node.container_typeLecture / écriture

Métadonnée de type du container.

Élément Type / comportement
Chemin Maya déclaré containerType
Retour de la propriété _ValuePlugProxy · .value: str
Type déclaré par la spec typed:string
Défaut déclaré ''
Flags input, output, connectable, stored
Lire la valeur node.container_type.value
Affectation node.container_type = value

node.ui_treatmentLecture / écriture

Mode de présentation du container.

Élément Type / comportement
Chemin Maya déclaré uiTreatment
Retour de la propriété _ValuePlugProxy · .value: int
Type déclaré par la spec enum
Défaut déclaré 0
Flags input, output, connectable, stored
Lire la valeur node.ui_treatment.value
Affectation node.ui_treatment = value

node.view_modeLecture / écriture

Mode de vue du container.

Élément Type / comportement
Chemin Maya déclaré viewMode
Retour de la propriété _ValuePlugProxy · .value: int
Type déclaré par la spec enum
Défaut déclaré 2
Flags input, output, connectable, stored
Lire la valeur node.view_mode.value
Affectation node.view_mode = value

node.view_nameLecture / écriture

Nom de la vue du container.

Élément Type / comportement
Chemin Maya déclaré viewName
Retour de la propriété _ValuePlugProxy · .value: str
Type déclaré par la spec typed:string
Défaut déclaré ''
Flags input, output, connectable, stored
Lire la valeur node.view_name.value
Affectation node.view_name = value

node.published_node_infoAccès structuré

Tableau des informations sur les nœuds publiés.

Élément Type / comportement
Chemin Maya déclaré publishedNodeInfo
Retour de la propriété ArrayCompoundProxy
Type déclaré par la spec array:compound
Défaut déclaré None
Flags array, input, output, connectable, hidden
Accès au plug node.published_node_info.plug

La propriété renvoie une structure. Modifier un enfant explicite ou utiliser les opérations du Plug ; ne pas remplacer le proxy par une affectation Python.

node.published_nodeAccès limité

Connexion vers le nœud publié à un indice donné.

Élément Type / comportement
Chemin Maya déclaré publishedNodeInfo[].publishedNode
Retour de la propriété IndexedPathProxy
Type déclaré par la spec message
Défaut déclaré None
Flags input, output, connectable
Indices 1 indice(s) logique(s), dans l’ordre des [] du chemin Maya.
Alternative vérifiée · retourne un Plug node.plugs["publishedNodeInfo"][i1]["publishedNode"]

Limite actuelle : la résolution du descriptor échoue avec AttributeError sur le cas vérifié. Utiliser le chemin explicite ci-dessus et ses indices logiques. Le Plug permet ensuite de lire .value ou de gérer les connexions.

node.is_hierarchical_nodeAccès limité

Indicateur hiérarchique d’un nœud publié.

Élément Type / comportement
Chemin Maya déclaré publishedNodeInfo[].isHierarchicalNode
Retour de la propriété IndexedPathProxy
Type déclaré par la spec numeric:bool
Défaut déclaré False
Flags input, output, stored, hidden
Indices 1 indice(s) logique(s), dans l’ordre des [] du chemin Maya.
Alternative vérifiée · retourne un Plug node.plugs["publishedNodeInfo"][i1]["isHierarchicalNode"]

Limite actuelle : la résolution du descriptor échoue avec AttributeError sur le cas vérifié. Utiliser le chemin explicite ci-dessus et ses indices logiques. Le Plug permet ensuite de lire .value ou de gérer les connexions.

node.published_node_typeAccès limité

Type déclaré d’un nœud publié.

Élément Type / comportement
Chemin Maya déclaré publishedNodeInfo[].publishedNodeType
Retour de la propriété IndexedPathProxy
Type déclaré par la spec typed:string
Défaut déclaré ''
Flags input, output, stored, hidden
Indices 1 indice(s) logique(s), dans l’ordre des [] du chemin Maya.
Alternative vérifiée · retourne un Plug node.plugs["publishedNodeInfo"][i1]["publishedNodeType"]

Limite actuelle : la résolution du descriptor échoue avec AttributeError sur le cas vérifié. Utiliser le chemin explicite ci-dessus et ses indices logiques. Le Plug permet ensuite de lire .value ou de gérer les connexions.

Specs héritées de 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.

Aucune nouvelle méthode publique sur cette classe. Utiliser les méthodes héritées ci-dessous ; la présence d’une base abstraite ne fournit pas un nouveau type Maya créable.

Méthodes héritées de DGNode7
Méthode Retour Description
create None Crée le nœud s’il est absent ; ne fait rien s’il existe déjà.
delete None Déconnecte les connexions live, détache le wrapper puis supprime le nœud.
snapshot DGSnapshot Capture et mémorise un dictionnaire d’identité et d’état SVD selon les specs.
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.
finalize None Applique toutes les sources, puis les valeurs libres, puis les destinations ; le dispatch FSET activé suit ces phases.
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.
Méthodes héritées de 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 Type Valeur / rôle
NODE_TYPE str | None ""
SPEC_LAYERS list[SpecLayer] Layers du parent + get_container_base_specs_all

Attributs définis ou redéfinis ici. NODE_REGISTRY est hérité de Node. COMPATIBLE_MAYA_FN_TYPES est hérité ; pour une classe avec NODE_TYPE explicite, son utilisation dépend aussi de la politique de compatibilité décrite dans le constructeur.

Les types ContainerBaseSnapshot exportés par ces modules sont des descriptions TypedDict, pas des classes à instancier pour effectuer une capture. Utiliser node.snapshot().

Point Comportement
Identité Le wrapper suit l’objet Maya ; un remplacement portant le même nom n’est pas le même nœud.
Lecture Lecture live prioritaire ; vérifier exists avant les opérations natives.
Specs Décrivent les plugs existants ; n’ajoutent pas automatiquement d’attributs Maya.
Exemples La démonstration crée et supprime uniquement ses propres nœuds nommés avec un suffixe aléatoire.

Exemple autonome pour le Script Editor Python de Maya. Pour l’exécuter depuis mayapy, initialiser maya.standalone avant ce bloc et le fermer ensuite, comme dans la référence Node.

from uuid import uuid4
from weSkel.src.core.node.abstract.container_base.lib import ContainerBase
from weSkel.src.core.node.dg.object_set.lib import ObjectSet
node = ObjectSet("api_container_" + uuid4().hex[:8])
try:
node.create()
assert ContainerBase(node.mobject) is node
node.creator = "API example"
assert node.creator.value == "API example"
print("ContainerBase: inherited metadata OK")
finally:
node.delete(snapshot=False)

Résultat attendu : ContainerBase: inherited metadata OK. Les nœuds de démonstration sont supprimés dans le finally.

Référence du checkpoint SDK 87c3486. Inventaire et exemples vérifiés sur les sources sous Maya 2025.3 et 2026.3 ; cela ne valide pas le package compilé.