cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Learn all about PTC Community Badges. Engage with PTC and see how many you can earn! X

How to get List of Items which created in Library Context, but now used in different Assembly's in Diffrent Context

vuchekar
9-Granite

How to get List of Items which created in Library Context, but now used in different Assembly's in Diffrent Context

Hi All,

I want to fetch a Item List from Library context, which items are now used in different Product/Context in Windchill.

example,

1. Part A - Created in Stranded Library, now used in "TestASM A" which is present in context "TESTPRODUCT".

How i can get this Part A - Its Orignal Context i.e. Stranded Library, now used in "TestASM A" and its respective context i.e. "TESTPRODUCT".

how i can achive this through QML/query/or java code.

Any help will be great.

Regards,

Vivek

1 REPLY 1
BhushanNehe
14-Alexandrite
(To:vuchekar)

Hi Vivek,

You can query parts from library one by one and check all the assemblies where it is used using PersistenceHelper.manager.navigate. Following example should help, let me know if his is useful.

package ext;

import wt.fc.ObjectIdentifier;

import wt.fc.Persistable;

import wt.fc.PersistenceHelper;

import wt.fc.QueryResult;

import wt.part.WTPart;

import wt.part.WTPartUsageLink;

import wt.util.WTException;

import wt.util.WTPropertyVetoException;

public class TestClass{

  public static void main(String[] args) throws WTException, WTPropertyVetoException, InterruptedException {

  ObjectIdentifier oid= ObjectIdentifier.newObjectIdentifier("wt.part.WTPart:281247");

  WTPart parentprt= (WTPart) PersistenceHelper.manager.refresh(oid);

  QueryResult links = PersistenceHelper.manager.navigate((Persistable)parentprt.getMaster(), WTPartUsageLink.USED_BY_ROLE, WTPartUsageLink.class, false );

  while (links.hasMoreElements()) {

  WTPartUsageLink object = (WTPartUsageLink) links.nextElement();

  WTPart part =(WTPart)object.getRoleAObject();

  System.out.println("Part " + parentprt.getNumber() +" is used in  part "+ part.getNumber()+" located in "+ part.getContainerName());

  }

  }

}

Regards,

Bhushan

Top Tags