try { Session curSession = pfcGlobal.GetProESession(); String startModelDir = "C:\\ptc\\local\\creo\\start_models\\"; String startModel = "mmg_part_solid.prt"; // could be an assembly or part template model ModelDescriptor desc = null; curSession.GetCurrentWindow().Activate(); desc = pfcModel.ModelDescriptor_CreateFromFileName(startModel); desc.SetPath (startModelDir); Model em = curSession.RetrieveModelWithOpts(desc,pfcSession.RetrieveModelOptions_Create()); Model am = em.CopyAndRetrieve("test_new.prt" ,null); //New part to be named would go here am.Display(); JOptionPane.showMessageDialog(null, "Done"); } catch (jxthrowable x){ JOptionPane.showMessageDialog(null, x.getMessage()"\n"+x.getStackTrace()); }