Navigation dans Vuforia Studio > Volet Projet > Ressources > Intégration des métadonnées CAO dans une expérience
  
Intégration des métadonnées CAO dans une expérience
Cette rubrique fournit une liste complète des fonctions prises en charge, de leurs arguments et de leurs sorties.
Ces API sont basées sur Promise. Pour plus d'informations sur Promise, consultez la page https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Promise.
Pour accéder aux exemples complets de fichiers de projet et d'instructions étape par étape sur l'utilisation des métadonnées CAO dans une expérience, consultez la rubrique Cas d'utilisation : 3D-Guided Service Instructions.
Fonctions API
Déclaration
Paramètres
Description
get (idpath, propName, categoryName)
{string|string[]} idpath : chemin d'ID, par ex. '/0/1', ou tableau de chemins d'ID, par ex. ['/0/1', '/0/2'].
{string|string[]} propName : (facultatif) Exemple : 'Display Name' ou ['Display Name', 'Part ID Path']
{string|string[]} categoryName : (facultatif) Exemple : 'PROE Parameters'
* 
Si propName est string [], alors categoryName doit aussi être un tableau de longueur correspondante (ou non définie).
Obtient un objet de métadonnées représentant le chemin d'ID ou les valeurs de propriété pour les idpath et propName spécifiés.
Cette fonction renvoie l'objet de métadonnées représentant l'idpath spécifié, ou si le propName est spécifié, la valeur de la propriété sur le composant.
Exemple :
PTC.Metadata.fromId('model-1').then( (metadata) => {
var result = metadata.get('/0/6', 'Display Name')
});
getProp (propName, categoryName)
{string|string[]} propName : (facultatif) Exemple : 'Display Name' ou ['Display Name', 'Part ID Path']
{string|string[]} categoryName : (facultatif) Exemple : 'PROE Parameters'
* 
Si propName est string [], alors categoryName doit aussi être un tableau de longueur correspondante (ou non définie).
Cette fonction renvoie toutes les valeurs de propriété de type chaîne d'un composant unique ou des valeurs non définies si aucune donnée ou aucun composant n'est disponible. Si le propName spécifié est un tableau, elle renvoie une chaîne (string[]) de valeurs.
Exemple :
PTC.Metadata.fromId('model-1').then( (metadata) => {
var result = metadata.get('/0/1').getProp('Display Name');
});
getCategory (categoryName)
{string} categoryName
Cette fonction renvoie un objet avec tous les noms de propriété et leurs valeurs de la catégorie spécifiée.
Exemple :
PTC.Metadata.fromId('model-1').then( (metadata) => {
var result = metadata.get('/0/6'). getCategory ('__PV_SystemProperties');
});
getSelected (selectFunc)
{function} selectFunc : (facultatif) fonction qui contrôle les valeurs figurant dans le tableau renvoyé. Le idpath spécifié est transmis à la fonction, ainsi qu'un argument et les métadonnées actuelles, sous la forme suivante :
`this` function(idpath) {
return [idpath, this.get(idpath, 'Display Name')];
});
Cette fonction renvoie un tableau des données renvoyées par le selectFunc spécifié, ou si selectFunc n'est pas défini, elle renvoie la chaîne (string[]) des chemins d'ID.
Exemple :
PTC.Metadata.fromId('model-1').then( (metadata) => {
var selectFunc = function(idpath) {
return metadata.get(idpath, 'Display Name');
}
var result = metadata.getSelected(selectFunc);
});
find (propName, category)
{string} propName : (obligatoire)
{string} category : (facultatif)
Recherche des composants en fonction des valeurs de propriété. Voir aussi findCustom ci-dessous.
Renvoie un outil de recherche pour les composants en fonction du propName spécifié et de la catégorie.
Exemple :

PTC.Metadata.fromId('model-1').then( (metadata) => {
var displayName = metadata.find('Display Name').like('BOLT');
});
PTC.Metadata.fromId('model-1').then( (metadata) => {
var result = metadata.find('Part Depth').lessThan(3).find('Display Name').like('PRT');
});

PTC.Metadata.fromId('model-1').then( (metadata) => {
var selectFunc = function(idpath) {
return metadata.get(idpath, 'Display Name')
var result = metadata.find('Part Depth').greaterThan(4, selectFunc)
});
La comparaison peut se présenter ainsi :
- startsWith,like,sameAs,unlike : string comparison
- equal,notequal,greaterThanEq,lessThanEq,lessThan,greaterThan : numeric comparison
- in,out : numeric range comparison
- before,after : date/time comparison
findCustom (whereFunc, selectFunc)
{function} whereFunc : (obligatoire)
{function} selectFunc : (facultatif)
Voir aussi find ci-dessus.
Cette fonction renvoie la recherche de composants basée sur la whereFuncpersonnalisée. L'exemple suivant recherche tous les composants contenant depth<2 ou portant un nom tel que 'ASM'.
Exemple :

PTC.Metadata.fromId('model-1').then( (metadata) => {
var whereFunc = function(idpath) {
const depth = metadata.get(idpath, 'Part Depth')
const name = metadata.get(idpath, 'Display Name')
return parseFloat(depth) >= 4 || (name && name.search('ASM') >= 0)
}
var result = metadata.findCustom(whereFunc);
});
Fonctions d'opérateurs de recherche prises en charge
startsWith (propValue, selectFunc)
not (propValue, selectFunc)
sameAs (propValue, selectFunc)
like (propValue, selectFunc)
unlike (propValue, selectFunc)
equal (propValue, selectFunc)
notEqual (propValue, selectFunc)
lessThanEq (propValue, selectFunc)
greaterThanEq (propValue, selectFunc)
lessThan (propValue, selectFunc)
greatThan (propValue, selectFunc)
in (min, max, selectFunc)
out (min, max, selectFunc)
before (propValue, selectFunc)
after (propValue, selectFunc)
findCustom (whereFunc, selectFunc)
Exemples d'utilisation
PTC.Metadata.fromId('model-1').then (metadata) => {
metadata.get('/0/6', 'Display Name')
=> "BLOWER.ASM"
metadata.get('/0/6'). getCategory ('__PV_SystemProperties')
=> {Component Name: "BLOWER.ASM", Display Name: "BLOWER.ASM", OL File Name: "", Part Depth: "3", Part ID: "6", …}
metadata.find('Display Name').like('PRT')
=> {id: "model-1", _friendlyName: "Display Name like PRT", _selectedPaths: Array(26)}
metadata.find('Display Name').like('PRT').find('Part Depth').in(0,3)
=> {id: "model-1", _friendlyName: "Display Name like PRT AND Part Depth in 0-3", _selectedPaths: Array(10)}
var meta = metadata.find('Part Depth').greaterThan(4);
meta.getSelected();
=>["/0", "/0/1", "/0/1/2", "/0/6"]
var selectFunc = function(idpath) {
return metadata.get(idpath, 'Display Name');
}
meta.getSelected(selectFunc);
=> ["PISTON.PRT", "PISTON_PIN.PRT", "CONNECTING_ROD.PRT"]
metadata.find('Part Depth').greaterThan(4).getSelected(selectFunc)
=> ["PISTON.PRT", "PISTON_PIN.PRT", "CONNECTING_ROD.PRT"]
var selectFunc = function(idpath) {
return metadata.get(idpath, 'Display Name');
}
metadata.find('Part Depth').greaterThan(4, selectFunc)
=> ["PISTON.PRT", "PISTON_PIN.PRT", "CONNECTING_ROD.PRT"]
var selectFunc = function(idpath) {return metadata.get(idpath, 'Display Name');}
metadata.find('Part Depth').greaterThan(4, selectFunc)
=> ["PISTON.PRT", "PISTON_PIN.PRT", "CONNECTING_ROD.PRT"]
var selectFunc = function(idpath) {return metadata.get(idpath, 'Display Name');}
metadata.find('Display Name').like('PISTON', selectFunc)
=> ["PISTON.ASM", "PISTON.PRT", "PISTON_PIN.PRT"]

var whereFunc = function(idpath) {
const depth = metadata.get(idpath, 'Part Depth')
const name = metadata.get(idpath, 'Display Name')
return parseFloat(depth) > 4 || (name && name.search('PISTON') >= 0)
}
var selectFunc = function(idpath) {return metadata.get(idpath, 'Display Name');}
metadata.findCustom(whereFunc,selectFunc)
=>["PISTON.ASM", "PISTON.PRT", "PISTON_PIN.PRT", "CONNECTING_ROD.PRT"]
var selectFunc = function(idpath) {
return metadata.get(idpath).getCategory('__PV_SystemProperties');
}
metadata.find('Part Depth').greaterThan(4, selectFunc)
=> (3) [{…}, {…}, {…}]
0: {Component Name: "PISTON.PRT", Display Name: "PISTON.PRT", OL File Name: "l-Creo 3D_0_ac-40_asm_5.ol" …}
1: {Component Name: "PISTON_PIN.PRT", Display Name: "PISTON_PIN.PRT", OL File Name: "l-Creo 3D_0_ac-40_asm_6.ol",…}
2: {Component Name: "CONNECTING_ROD.PRT", Display Name: "CONNECTING_ROD.PRT", OL File Name: "l-Creo 3D_0_ac-40_asm_7.ol", …}