Object name/fr: Difference between revisions

From FreeCAD Documentation
(Created page with "Tous les objets du programme ont un object name qui les identifie de manière unique dans un Document donné.")
No edit summary
 
(36 intermediate revisions by 2 users not shown)
Line 3: Line 3:
== Introduction ==
== Introduction ==


{{TOCright}}
Tous les objets du programme ont un [[Object_name/fr|object name]] qui les identifie de manière unique dans un [[App_Document/fr|Document]] donné.


Tous les objets du programme ont un [[Object_name/fr|object name]] qui les identifie de manière unique dans un document donné.
This information applies to all objects derived from [[App_DocumentObject|App DocumentObject]] ({{incode|App::DocumentObject}} class), which essentially comprises all objects that are possible to create in a document.


Ces informations s'appliquent à tous les objets dérivés de [[App_DocumentObject/fr|App DocumentObject]] (classe {{incode|App::DocumentObject}}), qui comprend essentiellement tous les objets qu'il est possible de créer dans un document.
== Names ==


<span id="Names"></span>
There are various properties for Names:
== Les Names ==
* The {{incode|Name}} can only include simple alphanumeric characters, and the underscore, {{incode|[_0-9a-zA-Z]}}.
* The {{incode|Name}} cannot start with a number; it must start with a letter or the underscore, {{incode|[_a-zA-Z]}}.
* The {{incode|Name}} is assigned at the creation time of the object; afterwards it is no longer editable. The object can never be renamed.
* The {{incode|Name}} must be unique in the entire document. It doesn't matter if two objects are of completely different types, for example, one is a [[PartDesign_Pocket|PartDesign Pocket]] and the other is an [[Arch_Wall|Arch Wall]]. They must have different names.
* When creating an object of the same type, normally the name is increased with a sequential number, thus {{incode|Box}}, {{incode|Box001}}, {{incode|Box002}}, etc. This prevents naming collision.
* Once the object is deleted, its {{incode|Name}} becomes available to be used by a newly created object. This means that if {{incode|Box}}, {{incode|Box001}}, and {{incode|Box002}} exist, and we delete the first item, the next box created with [[Part_Box|Part Box]] will not be {{incode|Box003}}, it will be {{incode|Box}} again, because this string is available to be used once more. Notice that it is not possible to rename {{incode|Box001}} or {{incode|Box002}} to {{incode|Box}} since their names are fixed.


Il existe différentes propriétés pour les noms:
In summary, the {{incode|Name}} essentially acts like a unique identifier (UID) for an object. Since a unique {{incode|Name}} is very restrictive, all objects also have a {{incode|Label}} property which allows "renaming" the object to something more descriptive. The internal {{incode|Name}} actually remains fixed, but the user editable {{incode|Label}} can be used in most situations where the {{incode|Name}} would be used. In common usage in the program and the documentation, "renaming" means changing the {{incode|Label}} and not the actual {{incode|Name}} of the object.
* Le {{incode|Name}} ne peut contenir que des caractères alphanumériques simples et le trait de soulignement, {{incode|[_0-9a-zA-Z]}}.
* Le {{incode|Name}} ne peut pas commencer par un nombre. Il doit commencer par une lettre ou le trait de soulignement, {{incode|[_a-zA-Z]}}.
* Le {{incode|Name}} est attribué au moment de la création de l'objet ensuite, il n'est plus modifiable. L'objet ne peut jamais être renommé.
* Le {{incode|Name}} doit être unique dans tout le document. Peu importe si deux objets sont de types complètement différents, par exemple, l'un est un [[PartDesign_Pocket/fr|PartDesign Cavité]] et l'autre est un [[Arch_Wall/fr|Arch Mur]]. Ils doivent avoir des noms différents.
* Lors de la création d'un objet du même type, normalement le nom est augmenté d'un numéro séquentiel par exemple {{incode|Box}}, {{incode|Box001}}, {{incode|Box002}} etc.... Cela permet d'éviter la collusion des noms..
* Une fois l'objet supprimé, son {{incode|Name}} devient disponible pour être utilisé par un objet nouvellement créé. Cela signifie que si {{incode|Box}}, {{incode|Box001}} et {{incode|Box002}} existent et que nous supprimons le premier élément, la boîte suivante créée avec [[Part_Box/fr|Part Cube]] ne sera pas {{incode|Box003}}, ce sera à nouveau {{incode|Box}}, cette chaîne étant disponible pour être réutilisée. Notez qu'il n'est pas possible de renommer {{incode|Box001}} ou {{incode|Box002}} en {{incode|Box}} car leurs noms sont fixes.


En résumé, {{incode|Name}} agit essentiellement comme un identifiant unique (UID) pour un objet. Puisqu'un {{incode|Name}} unique est très restrictif, tous les objets ont également une propriété {{incode|Label}} qui permet de "renommer" l'objet en quelque chose de plus descriptif. Le {{incode|Name}} interne reste en fait fixe, mais le {{incode|Label}} modifiable par l'utilisateur peut être utilisé dans la plupart des situations où le {{incode|Name}} serait utilisé. Dans l'utilisation courante dans le programme et la documentation, "renommer" signifie changer le {{incode|Label}} et non le {{incode|Name}} réel de l'objet.
== Labels ==


<span id="Labels"></span>
There are various properties for Labels:
== Les Labels ==
* The {{incode|Label}} can accept any UTF8 string, including accents and spaces.

* The [[tree_view|tree view]] actually displays the {{incode|Label}} of the object, not the {{incode|Name}}. Therefore, whenever a new object is created, it is a good practice to change the {{incode|Label}} to a more descriptive string. To rename (relabel) the object, select it in the tree view and press {{KEY|F2}}, or open the context menu (right-click) and choose {{MenuCommand|Rename}}.
Il existe différentes propriétés pour les étiquettes:
* Even after an object was renamed (relabelled), the internal {{incode|Name}} will still be reported in many places, for example, in the [[status_bar|status bar]] or in the [[selection_view|selection view]], when the object is selected.
* Le {{incode|Label}} peut accepter n'importe quelle chaîne UTF8, y compris les accents et les espaces.
* Since the internal functions of the program refer to the objects by {{incode|Name}}, many dialogs will display the {{incode|Name}} first, followed by the user editable {{incode|Label}} in parentheses, for example, {{incode|Box (Extruded piece)}}.
* La [[Tree_view/fr|vue en arborescence]] affiche en fait le {{incode|Label}} de l'objet et pas le {{incode|Name}}. Par conséquent, chaque fois qu'un nouvel objet est créé, il est recommandé de remplacer {{incode|Label}} par une chaîne plus descriptive. Pour renommer l'objet, sélectionnez-le dans l'arborescence et appuyez sur {{KEY|F2}} (ou plutôt {{KEY|Return}} sur macOS), ou ouvrez le menu contextuel (clic droit) et choisissez {{MenuCommand|Rename}}.
* By default the {{incode|Label}} is unique, just like the {{incode|Name}}. However, this behavior can be changed in the [[Preferences_Editor|preferences editor]], {{MenuCommand|Edit → Preferences → General → Document → Allow duplicate object labels in one document}}. This means that in general the {{incode|Label}} is not unique in the document, and may actually be repeated. However, the recommendation is to keep the {{incode|Label}} unique, as this is probably what is most useful to identify different objects. When writing custom functions that manipulate objects, the methods should use the {{incode|Name}} of the object rather than its {{incode|Label}} to guarantee that the correct object is used.
* Même après qu'un objet a été renommé (ré-étiqueté), le {{incode|Name}} interne sera toujours déclaré à de nombreux endroits, par exemple, dans la [[Status_bar/fr|Barre d'état]] ou dans la [[Selection_view/fr|Fenêtre de sélection]] lorsque l'objet est sélectionné.
* Étant donné que les fonctions internes du programme font référence aux objets par {{incode|Name}}, de nombreuses boîtes de dialogue affichent le {{incode|Name}} en premier suivi de l'étiquette {{incode|Label}} modifiable par l'utilisateur entre parenthèses, par exemple, {{incode|Box (Extruded piece)}}.
* Par défaut, le {{incode|Label}} est unique, tout comme le {{incode|Name}}. Cependant, ce comportement peut être modifié dans [[Preferences_Editor|éditeur de préférences]], {{MenuCommand|Edition → Préférences → Général → Document → Autoriser la duplication des étiquettes dans un document}}. Cela signifie qu'en général, {{incode|Label}} n'est pas unique dans le document et peut en fait être répété. Cependant, la recommandation est de garder le {{incode|Label}} unique, car c'est probablement ce qui est le plus utile pour identifier différents objets. Lors de l'écriture de fonctions personnalisées qui manipulent des objets, les méthodes doivent utiliser le {{incode|Name}} de l'objet plutôt que son {{incode|Label}} pour garantir que l'objet correct est utilisé.
* Lors de l'utilisation des [[Expressions/fr|expressions]], par exemple, dans l'[[Property_editor/fr|Éditeur de propriétés]] ou dans une [[Spreadsheet/fr|feuille de calcul]], l'étiquette peut être référencé à l'aide de doubles crochets constitués de symboles "moins que" et "plus que".

{{Code|code=
<<Custom Label With Spaces>>.Height
<<Label may use UTF8 characters>>.Width
}}


=== Label2 ===
=== Label2 ===


Il s'agit d'une chaîne simple qui peut contenir du texte arbitraire et peut donc être utilisée pour documenter (décrire plus en détail) l'objet créé.
This property was introduced in v0.19. It is a simple string that can contain arbitrary text, and therefore can be used for documenting (describing with more detail) the created object.
* In the [[tree_view|tree view]] edit the field next to the icon, under "Description", by clicking on it and pressing {{KEY|F2}}.
* Dans la [[Tree_view/fr|vue en arborescence]], modifiez le champ à côté de l'icône, sous "Description", en cliquant dessus et en appuyant sur {{KEY|F2}} (ou plutôt {{KEY|Retour}} sur macOS).
* You can also change this property by modifying the {{incode|Label2}} attribute from the [[Python_console|Python console]].
* Vous pouvez également modifier cette propriété en modifiant l'attribut {{incode|Label2}} à partir de la [[Python_console/fr|console Python]].
* The {{PropertyData|Label2}} attribute is normally hidden in the [[property_editor|property editor]] but can be made visible by opening the context menu (right click) and selecting {{MenuCommand|Show all}}.
* L'attribut {{PropertyData|Label2}} est normalement masqué dans l'[[Property_editor/fr|éditeur de propriétés]] mais peut être rendu visible en ouvrant le menu contextuel (clic droit) et en sélectionnant {{MenuCommand|Afficher tout}}.


== Scripting ==
<span id="Scripting"></span>
== Script ==


{{Emphasis|See also:}} [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]], and [[scripted objects|scripted objects]].
{{Emphasis|Voir aussi :}} [[FreeCAD_Scripting_Basics/fr|Débuter avec les scripts]] et [[Scripted_objects/fr|Objets créés par script]].


Any object in the software is internally created with the {{incode|addObject()}} method of the document. The majority of 2D and 3D objects that the user will see in the [[3D_view|3D view]] are derived from a [[Part_Feature|Part Feature]]. In the following example, the object created is a [[Part_Box|Part Box]].
Tout objet du logiciel est créé en interne avec la méthode {{incode|addObject()}} du document. La majorité des objets 2D et 3D que l'utilisateur verra dans la [[3D_view/fr|vue 3D]] sont dérivés d'un [[Part_Feature/fr|Part Feature]]. Dans l'exemple suivant, l'objet créé est une [[Part_Box/fr|Part Box]].


{{Code|code=
{{Code|code=
Line 49: Line 60:
}}
}}


<span id="Name"></span>
=== Name ===
=== Name (Nom) ===


The {{incode|addObject}} function has two basic string arguments.
La fonction {{incode|addObject}} a deux arguments de chaîne de base.


* The first argument indicates the type of object, in this case, {{incode|"Part::Box"}}.
* Le premier argument indique le type d'objet, dans ce cas, {{incode|"Part::Box"}}.
* The second argument is a string that defines the {{incode|Name}} attribute. If it is not provided, it defaults to the same name as the class of the object, that is, {{incode|"Part__Box"}}, where the two invalid symbols, the colons {{incode|::}}, are replaced by two underscores {{incode|__}}.
* Le deuxième argument est une chaîne qui définit l'attribut {{incode|Name}}. S'il n'est pas fourni, il utilise par défaut le même nom que la classe de l'objet, c'est-à-dire {{incode|"Part__Box"}} les deux symboles invalides, les deux-points {{incode|::}}, sont remplacé par deux traits de soulignement {{incode|__}}.
** The {{incode|Name}} can only include simple alphanumeric characters, and the underscore, {{incode|[_0-9a-zA-Z]}}. If other symbols are given, these will be converted to underscores; for example, {{incode|"A+B:C*"}} is converted to {{incode|"A_B_C_"}}.
** Le {{incode|Nom}} ne peut contenir que des caractères alphanumériques simples et le trait de soulignement, {{incode|[_0-9a-zA-Z]}}. Si d'autres symboles sont donnés, ils seront convertis en traits de soulignement; par exemple, {{incode|"A+B:C*"}} est converti en {{incode|"A_B_C_"}}.
** The {{incode|Name}} cannot start with a number; it must start with a letter or the underscore, {{incode|[_a-zA-Z]}}. For example, {{incode|"123ABC"}} is converted to {{incode|"_23ABC"}}.
** Le {{incode|Name}} ne peut pas commencer par un nombre; il doit commencer par une lettre ou le trait de soulignement, {{incode|[_a-zA-Z]}}. Par exemple, {{incode|"123ABC"}} est converti en {{incode|"_23ABC"}}.
** The {{incode|Name}} is fixed at creation time; it cannot be modified afterwards.
** Le {{incode|Name}} est fixe au moment de la création; il ne peut pas être modifié par la suite.
** The {{incode|Name}} must be unique in the entire document. If the same {{incode|"Name"}} is used, a sequential number will be appended automatically so that the resulting names are unique; for example, if {{incode|"Name"}} already exists, then new objects will be called {{incode|"Name001"}}, {{incode|"Name002"}}, {{incode|"Name003"}}, etc.
** Le {{incode|Name}} doit être unique dans tout le document. Si le même {{incode|"Nom"}} est utilisé, un numéro séquentiel sera ajouté automatiquement afin que les noms résultants soient uniques; par exemple, si {{incode|"Name"}} existe déjà, les nouveaux objets seront appelés {{incode|"Name001"}}, {{incode|"Name002"}}, {{incode|"Name003"} } etc...


=== Label ===
<span id="Label"></span>
===Label (Etiquette) ===


The {{incode|Label}} is a property of the created object and can be changed to a more meaningful text.
{{Incode|Label}} est une propriété de l'objet créé et peut être changé en un texte plus significatif.
* Upon creating the object, the {{incode|Label}} is the same as the {{incode|Name}}.
* Lors de la création de l'objet, le {{incode|Label}} est le même que le {{incode|Name}}.
* However, unlike the {{incode|Name}}, the {{incode|Label}} can accept any UTF8 string, including accents and spaces.
* Cependant, contrairement au {{incode|Name}}, {{incode|Label}} peut accepter n'importe quelle chaîne UTF8 y compris les accents et les espaces.
* The {{incode|Label}} can be changed at any point in time just by assigning the desired string, <code>obj.Label = "New label"</code>
* Le {{incode|Label}} peut être modifié à tout moment en affectant simplement la chaîne souhaitée, <code>obj.Label = "New label"</code>


<span id="Getting_an_object_by_Name_or_Label"></span>
=== Getting an object by Name or Label ===
=== Accéder à un objet par Name ou Label ===


All objects in a document are data attributes of the corresponding [[App_Document|Document]] object. The attribute's name correspond to the internal {{incode|Name}} of the object.
Tous les objets d'un document sont des attributs de données de l'objet [[App_DocumentObject/fr|Document]] correspondant. Le nom de l'attribut correspond à {{incode|Name}} interne de l'objet.


{{Code|code=
{{Code|code=
Line 79: Line 93:
}}
}}


This is equivalent to using the {{incode|getObject}} method of the Document.
Cela équivaut à utiliser la méthode {{incode|getObject}} de document.
{{Code|code=
{{Code|code=
import FreeCAD as App
import FreeCAD as App
Line 88: Line 102:
}}
}}


However, it is also possible to get the object by the more descriptive {{incode|Label}}.
Cependant, il est également possible d'obtenir l'objet par {{incode|Label}} davantage descriptif.
{{Code|code=
{{Code|code=
import FreeCAD as App
import FreeCAD as App
Line 97: Line 111:
}}
}}


Given that the {{incode|Label}} is in general not unique, the {{incode|getObjectsByLabel}} method returns a list with all objects found with that {{incode|Label}}. However, if the {{incode|Label}} is unique in the document then the first element in that list should be the desired object.
Étant donné que {{incode|Label}} n'est en général pas unique, la méthode {{incode|getObjectsByLabel}} renvoie une liste avec tous les objets trouvés avec cette {{incode|Label}}. Cependant, si {{incode|Label}} est unique dans le document, le premier élément de cette liste doit être l'objet souhaité.


{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 00:31, 21 May 2023

Introduction

Tous les objets du programme ont un object name qui les identifie de manière unique dans un document donné.

Ces informations s'appliquent à tous les objets dérivés de App DocumentObject (classe App::DocumentObject), qui comprend essentiellement tous les objets qu'il est possible de créer dans un document.

Les Names

Il existe différentes propriétés pour les noms:

  • Le Name ne peut contenir que des caractères alphanumériques simples et le trait de soulignement, [_0-9a-zA-Z].
  • Le Name ne peut pas commencer par un nombre. Il doit commencer par une lettre ou le trait de soulignement, [_a-zA-Z].
  • Le Name est attribué au moment de la création de l'objet ensuite, il n'est plus modifiable. L'objet ne peut jamais être renommé.
  • Le Name doit être unique dans tout le document. Peu importe si deux objets sont de types complètement différents, par exemple, l'un est un PartDesign Cavité et l'autre est un Arch Mur. Ils doivent avoir des noms différents.
  • Lors de la création d'un objet du même type, normalement le nom est augmenté d'un numéro séquentiel par exemple Box, Box001, Box002 etc.... Cela permet d'éviter la collusion des noms..
  • Une fois l'objet supprimé, son Name devient disponible pour être utilisé par un objet nouvellement créé. Cela signifie que si Box, Box001 et Box002 existent et que nous supprimons le premier élément, la boîte suivante créée avec Part Cube ne sera pas Box003, ce sera à nouveau Box, cette chaîne étant disponible pour être réutilisée. Notez qu'il n'est pas possible de renommer Box001 ou Box002 en Box car leurs noms sont fixes.

En résumé, Name agit essentiellement comme un identifiant unique (UID) pour un objet. Puisqu'un Name unique est très restrictif, tous les objets ont également une propriété Label qui permet de "renommer" l'objet en quelque chose de plus descriptif. Le Name interne reste en fait fixe, mais le Label modifiable par l'utilisateur peut être utilisé dans la plupart des situations où le Name serait utilisé. Dans l'utilisation courante dans le programme et la documentation, "renommer" signifie changer le Label et non le Name réel de l'objet.

Les Labels

Il existe différentes propriétés pour les étiquettes:

  • Le Label peut accepter n'importe quelle chaîne UTF8, y compris les accents et les espaces.
  • La vue en arborescence affiche en fait le Label de l'objet et pas le Name. Par conséquent, chaque fois qu'un nouvel objet est créé, il est recommandé de remplacer Label par une chaîne plus descriptive. Pour renommer l'objet, sélectionnez-le dans l'arborescence et appuyez sur F2 (ou plutôt Return sur macOS), ou ouvrez le menu contextuel (clic droit) et choisissez Rename.
  • Même après qu'un objet a été renommé (ré-étiqueté), le Name interne sera toujours déclaré à de nombreux endroits, par exemple, dans la Barre d'état ou dans la Fenêtre de sélection lorsque l'objet est sélectionné.
  • Étant donné que les fonctions internes du programme font référence aux objets par Name, de nombreuses boîtes de dialogue affichent le Name en premier suivi de l'étiquette Label modifiable par l'utilisateur entre parenthèses, par exemple, Box (Extruded piece).
  • Par défaut, le Label est unique, tout comme le Name. Cependant, ce comportement peut être modifié dans éditeur de préférences, Edition → Préférences → Général → Document → Autoriser la duplication des étiquettes dans un document. Cela signifie qu'en général, Label n'est pas unique dans le document et peut en fait être répété. Cependant, la recommandation est de garder le Label unique, car c'est probablement ce qui est le plus utile pour identifier différents objets. Lors de l'écriture de fonctions personnalisées qui manipulent des objets, les méthodes doivent utiliser le Name de l'objet plutôt que son Label pour garantir que l'objet correct est utilisé.
  • Lors de l'utilisation des expressions, par exemple, dans l'Éditeur de propriétés ou dans une feuille de calcul, l'étiquette peut être référencé à l'aide de doubles crochets constitués de symboles "moins que" et "plus que".
<<Custom Label With Spaces>>.Height
<<Label may use UTF8 characters>>.Width

Label2

Il s'agit d'une chaîne simple qui peut contenir du texte arbitraire et peut donc être utilisée pour documenter (décrire plus en détail) l'objet créé.

  • Dans la vue en arborescence, modifiez le champ à côté de l'icône, sous "Description", en cliquant dessus et en appuyant sur F2 (ou plutôt Retour sur macOS).
  • Vous pouvez également modifier cette propriété en modifiant l'attribut Label2 à partir de la console Python.
  • L'attribut DonnéesLabel2 est normalement masqué dans l'éditeur de propriétés mais peut être rendu visible en ouvrant le menu contextuel (clic droit) et en sélectionnant Afficher tout.

Script

Voir aussi : Débuter avec les scripts et Objets créés par script.

Tout objet du logiciel est créé en interne avec la méthode addObject() du document. La majorité des objets 2D et 3D que l'utilisateur verra dans la vue 3D sont dérivés d'un Part Feature. Dans l'exemple suivant, l'objet créé est une Part Box.

import FreeCAD as App

doc = App.newDocument()
obj = doc.addObject("Part::Box", "Name")
obj.Label = "Custom label"

Name (Nom)

La fonction addObject a deux arguments de chaîne de base.

  • Le premier argument indique le type d'objet, dans ce cas, "Part::Box".
  • Le deuxième argument est une chaîne qui définit l'attribut Name. S'il n'est pas fourni, il utilise par défaut le même nom que la classe de l'objet, c'est-à-dire "Part__Box" où les deux symboles invalides, les deux-points ::, sont remplacé par deux traits de soulignement __.
    • Le Nom ne peut contenir que des caractères alphanumériques simples et le trait de soulignement, [_0-9a-zA-Z]. Si d'autres symboles sont donnés, ils seront convertis en traits de soulignement; par exemple, "A+B:C*" est converti en "A_B_C_".
    • Le Name ne peut pas commencer par un nombre; il doit commencer par une lettre ou le trait de soulignement, [_a-zA-Z]. Par exemple, "123ABC" est converti en "_23ABC".
    • Le Name est fixe au moment de la création; il ne peut pas être modifié par la suite.
    • Le Name doit être unique dans tout le document. Si le même "Nom" est utilisé, un numéro séquentiel sera ajouté automatiquement afin que les noms résultants soient uniques; par exemple, si "Name" existe déjà, les nouveaux objets seront appelés "Name001", "Name002", {{incode|"Name003"} } etc...

Label (Etiquette)

Label est une propriété de l'objet créé et peut être changé en un texte plus significatif.

  • Lors de la création de l'objet, le Label est le même que le Name.
  • Cependant, contrairement au Name, Label peut accepter n'importe quelle chaîne UTF8 y compris les accents et les espaces.
  • Le Label peut être modifié à tout moment en affectant simplement la chaîne souhaitée, obj.Label = "New label"

Accéder à un objet par Name ou Label

Tous les objets d'un document sont des attributs de données de l'objet Document correspondant. Le nom de l'attribut correspond à Name interne de l'objet.

import FreeCAD as App

obj1 = App.ActiveDocument.Box
obj2 = App.ActiveDocument.Box001
obj3 = App.ActiveDocument.Box002

Cela équivaut à utiliser la méthode getObject de document.

import FreeCAD as App

obj1 = App.ActiveDocument.getObject('Box')
obj2 = App.ActiveDocument.getObject('Box001')
obj3 = App.ActiveDocument.getObject('Box002')

Cependant, il est également possible d'obtenir l'objet par Label davantage descriptif.

import FreeCAD as App

obj1 = App.ActiveDocument.getObjectsByLabel("Concrete wall")[0]
obj2 = App.ActiveDocument.getObjectsByLabel("Custom parallelepiped")[0]
obj3 = App.ActiveDocument.getObjectsByLabel("Some special name for this cube__002")[0]

Étant donné que Label n'est en général pas unique, la méthode getObjectsByLabel renvoie une liste avec tous les objets trouvés avec cette Label. Cependant, si Label est unique dans le document, le premier élément de cette liste doit être l'objet souhaité.