Navigieren in Vuforia Studio > Fensterbereich "Projekt" > Ressourcen > CAD-Metadaten in ein Erlebnis integrieren
  
CAD-Metadaten in ein Erlebnis integrieren
Dieses Thema enthält eine vollständige Liste der unterstützten Funktionen, deren Argumente und Ausgaben.
Diese APIs basieren auf Zusagen. Weitere Informationen zu Zusagen finden Sie unter: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise.
Schrittweise Anweisungen für Tutorials zur Verwendung von CAD-Metadaten in einem Erlebnis sowie Zugriff auf die vollständigen Beispiel-Projektdateien erhalten Sie in Anwendungsfall: 3D-Guided Service Instructions.
API-Funktionen
Deklaration
Parameter
Beschreibung
get (idpath, propName, categoryName)
{string|string[]} idpath – ID-Pfad, wie z.B. '/0/1', oder ein Array von ID-Pfaden ['/0/1', '/0/2'].
{string|string[]} propName – (Optional) Beispielsweise 'Display Name' oder ['Display Name', 'Part ID Path']
{string|string[]} categoryName – (Optional) Beispielsweise 'PROE Parameters'.
* 
Ist propName string [], dann muss categoryName ebenfalls ein Array übereinstimmender Länge (oder nicht definiert) sein.
Ruft ein Metadatenobjekt ab, das den ID-Pfad oder die Eigenschaftswerte für die angegebenen Parameter idpath und propName darstellt.
Diese Funktion gibt das Metadatenobjekt zurück, welches den angegebenen Parameter idpath darstellt, oder, falls propName angegeben ist, dann den Wert der Eigenschaft auf der Komponente.
Beispiel:
PTC.Metadata.fromId('model-1').then( (metadata) => {
var result = metadata.get('/0/6', 'Display Name')
});
getProp (propName, categoryName)
{string|string[]} propName – (Optional) Beispielsweise 'Display Name' oder ['Display Name', 'Part ID Path']
{string|string[]} categoryName – (Optional) Beispielsweise 'PROE Parameters'.
* 
Ist propName string [], dann muss categoryName ebenfalls ein Array übereinstimmender Länge (oder nicht definiert) sein.
Diese Funktion gibt alle Zeichenfolgen-Eigenschaftswerte aus einer einzelnen Komponente oder nicht definiert zurück, wenn keine Daten/Komponenten verfügbar sind. Ist der angegebene Parameter propName ein Array, wird ein string[] von Werten zurückgegeben.
Beispiel:
PTC.Metadata.fromId('model-1').then( (metadata) => {
var result = metadata.get('/0/1').getProp('Display Name');
});
getCategory (categoryName)
{string} categoryName
Diese Funktion gibt ein Objekt mit allen Eigenschaftsnamen und -Werten aus der angegebenen Kategorie zurück.
Beispiel:
PTC.Metadata.fromId('model-1').then( (metadata) => {
var result = metadata.get('/0/6'). getCategory ('__PV_SystemProperties');
});
getSelected (selectFunc)
{function} selectFunc – (Optional) Funktion, welche die in das zurückgegebene Array eingefügten Werte steuert. Für diese Funktion wird ein idpath angegeben sowie ein Argument und aktuelle Metadaten:
`this` function(idpath) {
return [idpath, this.get(idpath, 'Display Name')];
});
Diese Funktion gibt ein Array aller Elemente, die von dem angegebenen Parameter selectFunc zurückgegeben wurden, zurück. Sollte selectFunc nicht definiert sein, so wird ein string[] von ID-Pfaden zurückgegeben.
Beispiel:
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 – (Erforderlich)
{string} category – (Optional)
Sucht Komponenten basierend auf Eigenschaftswerten. Siehe auch findCustom.
Gibt einen Finder für Komponenten basierend auf dem angegebenen Parameter propName und der Kategorie zurück.
Beispiel:

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)
});
Der Vergleich kann wie folgt lauten:
- 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 – (Erforderlich)
{function} selectFunc – (Optional)
Siehe auch find oben.
Diese Funktion gibt einen Finder für Komponenten basierend auf dem benutzerdefinierten Parameter whereFunc zurück. Das folgende Beispiel findet alle Komponenten mit depth<2 oder hat einen Namen wie z.B. 'ASM'.
Beispiel:

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);
});
Unterstützte Suchoperatoren-Funktionen
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)
Verwendungsbeispiele
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", …}