Vuforia Studio 탐색 > 프로젝트 창 > 리소스 > 경험에 CAD 메타데이터 통합
  
경험에 CAD 메타데이터 통합
이 항목에서는 지원되는 함수, 인수 및 출력의 전체 목록을 제공합니다.
이러한 API는 프라미스를 기반으로 합니다. 프라미스에 대한 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise를 참조하십시오.
전체 예제 프로젝트 파일과 경험에서 CAD 메타데이터를 사용하는 방법에 관한 단계별 자습서 지침을 이용하려면 사용 사례: 3D-Guided Service Instructions 항목을 참조하십시오.
API 함수
선언
매개 변수
설명
get(idpath, propName, categoryName)
{string|string[]} idpath - '/0/1'과 같은 id 경로, 또는 id 경로의 배열 ['/0/1', '/0/2'].
{string|string[]} propName - (선택 사항) 예: 'Display Name' 또는 ['Display Name', 'Part ID Path']
{string|string[]} categoryName - (선택 사항) 예: 'PROE Parameters'
* 
propName string []인 경우, categoryName은 일치하는 길이의 배열(또는 정의되지 않음)이어야 합니다.
지정된 idpath propName에 대한 id 경로 또는 속성 값을 나타내는 메타데이터 객체를 가져옵니다.
이 함수는 지정된 idpath를 나타내는 메타데이터 객체를 반환하거나, propName이 지정된 경우 컴포넌트에 대한 속성 값을 반환합니다.
예:
PTC.Metadata.fromId('model-1').then( (metadata) => {
var result = metadata.get('/0/6', 'Display Name')
});
getProp(propName, categoryName)
{string|string[]} propName - (선택 사항) 예: 'Display Name' 또는 ['Display Name', 'Part ID Path']
{string|string[]} categoryName - (선택 사항) 예: 'PROE Parameters'
* 
propName string []인 경우, categoryName은 일치하는 길이의 배열(또는 정의되지 않음)이어야 합니다.
이 함수는 단일 컴포넌트의 모든 문자열 속성 값을 반환하거나, 사용 가능한 데이터/컴포넌트가 없는 경우 정의되지 않습니다. 지정된 propName이 배열일 경우 값의 string[]을 반환합니다.
예:
PTC.Metadata.fromId('model-1').then( (metadata) => {
var result = metadata.get('/0/1').getProp('Display Name');
});
getCategory(categoryName)
{string} categoryName
이 함수는 지정된 카테고리의 모든 속성 이름 및 값이 포함된 객체를 반환합니다.
예:
PTC.Metadata.fromId('model-1').then( (metadata) => {
var result = metadata.get('/0/6'). getCategory ('__PV_SystemProperties');
});
getSelected(selectFunc)
{function} selectFunc - (선택 사항) 반환된 배열에 입력된 값을 제어하는 함수입니다. 함수에 idpath가 지정되고 인수 및 현재 메타 데이터가 다음과 같이 지정됩니다.
`this` function(idpath) {
return [idpath, this.get(idpath, 'Display Name')];
});
이 함수는 지정된 selectFunc로 반환되는 모든 항목의 배열을 반환하거나, selectFunc이 정의되지 않은 경우 id 경로의 string[]을 반환합니다.
예:
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 - (필수 사항)
{string} category - (선택 사항)
속성 값을 기반으로 컴포넌트를 찾습니다. 아래 findCustom을 참조하십시오.
지정된 propName 및 카테고리에 따라 컴포넌트에 대한 finder를 반환 합니다.
예:

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)
});
비교는 다음과 같습니다.
- 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 - (필수 사항)
{function} selectFunc - (선택 사항)
find를 참조하십시오.
이 함수는 사용자 지정 whereFunc를 기반으로 컴포넌트에 대한 finder를 반환합니다. 다음 예에서는 depth<2이거나 'ASM'과 같은 이름을 가진 모든 컴포넌트를 찾습니다.
예:

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);
});
지원되는 Find 연산자 함수
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)
사용 예
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", …}