/// <summary> /// Get configuration by data model /// </summary> /// <param name="fileModel"></param> /// <returns></returns> public string[] GetConfigigurations(string filePath) { IEdmFolder5 ppoRetParentFolder; IEdmFile9 fileModelInfo = PdmExemplar.GetFileFromPath(filePath, out ppoRetParentFolder) as IEdmFile9; EdmStrLst5 cfgList = null; cfgList = fileModelInfo.GetConfigurations(); IEdmPos5 edmPos; edmPos = cfgList.GetHeadPosition(); #region fill resault array List <string> configurationResaultArray = new List <string>(); int id = 0; while (!edmPos.IsNull) { string buff = cfgList.GetNext(edmPos); if (buff.CompareTo("@") != 0) { if (buff != null) { configurationResaultArray.Add(buff); } } id++; } #endregion return(configurationResaultArray.ToArray()); }
public static bool CheckDxfExistance(IEdmVault7 vault, int IdPDM, int CurrentVersion, string fileName) { var result = true; //Get configurations var fileEdm = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, IdPDM); EdmStrLst5 cfgList = default(EdmStrLst5); cfgList = fileEdm.GetConfigurations(); string cfgName = null; IEdmPos5 pos = default(IEdmPos5); pos = cfgList.GetHeadPosition(); while (!pos.IsNull) { Exception exc; cfgName = cfgList.GetNext(pos); if (cfgName != "@") { var existDxf = Dxf.ExistDxf(IdPDM, CurrentVersion, cfgName, out exc); //Logger.Add("Проверка на DXF; \n IdPDM: " + IdPDM + "\n Name: " + fileName + "\n Version: " + CurrentVersion + "\n ConfigName: " + cfgName + "\n Exist: " + existDxf); if (!existDxf) { //return result = false; } } } return(result); }
private static bool TryGetConfigurations(IEdmFile5 file, out List <string> cfgs) { cfgs = new List <string>(); try { EdmStrLst5 cfgList = file.GetConfigurations(); IEdmPos5 pos = cfgList.GetHeadPosition(); while (!pos.IsNull) { string cfgName = cfgList.GetNext(pos); cfgs.Add(cfgName); } return(true); } catch (Exception ex) { return(false); } }
private void AddFileExecute() { #if BlockPDM OpenFileDialog ofd = new OpenFileDialog(); ofd.Multiselect = true; ofd.Filter = "Files (*.dxf,*.Pdf)|*.dxf;*.pdf"; if (ofd.ShowDialog() == true) { foreach (string fileName in ofd.FileNames) { Files.Add(new FileDataViewModel(new Document(fileName) { FileId = 1, Description = "Test" })); } } #else IEdmVault11 vault = (IEdmVault11) new EdmVault5(); EdmStrLst5 res = vault.BrowseForFile(0, (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles, "Select Files", "All Files (*.pdf,*.dxf,*.step)|*.pdf;*.dxf;*.step||", "", "", "Select Files"); if (res != null) { IEdmPos5 pos = res.GetHeadPosition(); List <string> paths = new List <string>(); IEdmBatchListing4 bli = vault.CreateUtility(EdmUtility.EdmUtil_BatchList); while (pos.IsNull) { //paths.Add(res.GetNext(pos)); bli.AddFile(res.GetNext(pos), default(DateTime), 0, 0); } string Names = "Description\nRevision"; EdmListCol[] cols = null; EdmListFile2[] files = null; bli.CreateListEx(Names, (int)EdmCreateListExFlags.Edmclef_Nothing, ref cols, null); bli.GetFiles2(ref files); foreach (var file in files) { var doc = new Document(file.mbsLockPath); doc.FileId = file.mlFileID; doc.Version = file.mlLatestVersion; doc.Revision = file.mbsRevisionName; doc.FileState = file.moCurrentState.mbsStateName; doc.Description = (file.moColumnData as object[])?[0] as string ?? "Not found"; Files.Add(new FileDataViewModel(doc)); } } //IEdmVault11 vault = (IEdmVault11)new EdmVault5(); //EdmStrLst5 res = vault.BrowseForFile(0, (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles, // "Select Files", "All Files (*.pdf,*.dxf,*.step)|*.pdf;*.dxf;*.step||", "", "", "Select Files"); //if (res != null) //{ // IEdmPos5 pos = res.GetHeadPosition(); // List<string> paths = new List<string>(); // IEdmBatchListing4 bli = vault.CreateUtility(EdmUtility.EdmUtil_BatchList); // while (pos.IsNull) // { // paths.Add(res.GetNext(pos)); // //bli.AddFile(res.GetNext(pos), default(DateTime), 0, 0); // } // string Names = "Description\nRevision"; // EdmListCol[] cols = null; // EdmListFile2[] files = null; // bli.CreateListEx(Names, (int)EdmCreateListExFlags.Edmclef_GetDrawings + (int)EdmCreateListExFlags.Edmclef_GetReferences + (int)EdmCreateListExFlags.Edmclef_ReturnReferences, ref cols, null); // bli.GetFiles2(ref files); // foreach (var file in files) // { // var doc = new Document(file.mbsLockPath); // doc.FileId = file.mlFileID; // doc.Version = file.mlLatestVersion; // doc.Revision = file.mbsRevisionName; // doc.FileState = file.moCurrentState.mbsStateName; // doc.Description = (file.moColumnData as object[])?[0] as string ?? "Not found"; // Files.Add(new FileDataViewModel(doc)); // } //} #endif }
public SldAsm GetAsmIndoFromFile(IEdmVault5 poVault, string filePath) { IEdmFolder5 opParentFolder; IEdmFile5 poFile = poVault.GetFileFromPath(filePath, out opParentFolder); if (poFile == null) { return(null); } IEdmVariableMgr5 varMgr = (IEdmVariableMgr5)poVault; if (varMgr == null) { return(null); } IEdmEnumeratorVariable5 enumVar = poFile.GetEnumeratorVariable(); if (enumVar == null) { return(null); } if (filePath == "") { return(null); } EdmStrLst5 cfgList = poFile.GetConfigurations(); SldAsm asmPrd = new SldAsm(); asmPrd.path = filePath; asmPrd.amout = 1; if (varMgr.GetVariable("代号") != null) { object tmpVar = null; IEdmPos5 pos = cfgList.GetHeadPosition(); string cfgName = null; while (!pos.IsNull) { cfgName = cfgList.GetNext(pos); enumVar.GetVar("代号", cfgName, out tmpVar); if (tmpVar == null) { continue; } if (!tmpVar.ToString().Equals("")) { break; } } if (tmpVar != null) { asmPrd.number = tmpVar.ToString(); } if (asmPrd.number.IndexOf(".") > 0 && asmPrd.number.IndexOf(".") < asmPrd.number.Length) { asmPrd.ztdm = asmPrd.number.Substring(0, asmPrd.number.IndexOf(".")); asmPrd.zjdm = asmPrd.number.Substring(asmPrd.number.IndexOf(".") + 1); } else { asmPrd.ztdm = asmPrd.zjdm = asmPrd.number; } } if (varMgr.GetVariable("名称") != null) { object tmpVar = null; IEdmPos5 pos = cfgList.GetHeadPosition(); string cfgName = null; while (!pos.IsNull) { cfgName = cfgList.GetNext(pos); enumVar.GetVar("名称", cfgName, out tmpVar); if (tmpVar == null) { continue; } if (!tmpVar.ToString().Equals("")) { break; } } if (tmpVar != null) { asmPrd.name = tmpVar.ToString(); } } if (varMgr.GetVariable("设计") != null) { object tmpVar = null; IEdmPos5 pos = cfgList.GetHeadPosition(); string cfgName = null; while (!pos.IsNull) { cfgName = cfgList.GetNext(pos); enumVar.GetVar("设计", cfgName, out tmpVar); if (tmpVar == null) { continue; } if (!tmpVar.ToString().Equals("")) { break; } } if (tmpVar != null) { asmPrd.bzr = tmpVar.ToString(); } } if (varMgr.GetVariable("设计日期") != null) { object tmpVar = null; IEdmPos5 pos = cfgList.GetHeadPosition(); string cfgName = null; while (!pos.IsNull) { cfgName = cfgList.GetNext(pos); enumVar.GetVar("设计日期", cfgName, out tmpVar); if (tmpVar == null) { continue; } if (!tmpVar.ToString().Equals("")) { break; } } if (tmpVar != null) { asmPrd.bzsj = tmpVar.ToString(); } if (asmPrd.bzsj.IndexOf(" ") >= 0) { asmPrd.bzsj = asmPrd.bzsj.Substring(0, asmPrd.bzsj.IndexOf(" ")); } } if (varMgr.GetVariable("批准") != null) { object tmpVar = null; IEdmPos5 pos = cfgList.GetHeadPosition(); string cfgName = null; while (!pos.IsNull) { cfgName = cfgList.GetNext(pos); enumVar.GetVar("批准", cfgName, out tmpVar); if (tmpVar == null) { continue; } if (!tmpVar.ToString().Equals("")) { break; } } if (tmpVar != null) { asmPrd.pzr = tmpVar.ToString(); } } if (varMgr.GetVariable("批准日期") != null) { object tmpVar = null; IEdmPos5 pos = cfgList.GetHeadPosition(); string cfgName = null; while (!pos.IsNull) { cfgName = cfgList.GetNext(pos); enumVar.GetVar("批准日期", cfgName, out tmpVar); if (tmpVar == null) { continue; } if (!tmpVar.ToString().Equals("")) { break; } } if (tmpVar != null) { asmPrd.pzsj = tmpVar.ToString(); } if (asmPrd.pzsj.IndexOf(" ") >= 0) { asmPrd.pzsj = asmPrd.pzsj.Substring(0, asmPrd.pzsj.IndexOf(" ")); } } if (varMgr.GetVariable("阶段标记") != null) { object tmpVar = null; IEdmPos5 pos = cfgList.GetHeadPosition(); string cfgName = null; while (!pos.IsNull) { cfgName = cfgList.GetNext(pos); enumVar.GetVar("阶段标记", cfgName, out tmpVar); if (tmpVar == null) { continue; } if (!tmpVar.ToString().Equals("")) { break; } } if (tmpVar != null) { asmPrd.jdbj = tmpVar.ToString(); } } if (varMgr.GetVariable("设备型号") != null) { object tmpVar = null; IEdmPos5 pos = cfgList.GetHeadPosition(); string cfgName = null; while (!pos.IsNull) { cfgName = cfgList.GetNext(pos); enumVar.GetVar("设备型号", cfgName, out tmpVar); if (tmpVar == null) { continue; } if (!tmpVar.ToString().Equals("")) { break; } } if (tmpVar != null) { asmPrd.sbxh = tmpVar.ToString(); } } if (varMgr.GetVariable("Project Name") != null) { object tmpVar = null; IEdmPos5 pos = cfgList.GetHeadPosition(); string cfgName = null; while (!pos.IsNull) { cfgName = cfgList.GetNext(pos); enumVar.GetVar("Project Name", cfgName, out tmpVar); if (tmpVar == null) { continue; } if (!tmpVar.ToString().Equals("")) { break; } } if (tmpVar != null) { asmPrd.projName = tmpVar.ToString(); } } return(asmPrd); }
public static void GetIdPdm(string path, out string fileName, out int fileIdPdm, out int currentVerison, out List <string> configs, bool getFileCopy) { fileName = null; fileIdPdm = 0; currentVerison = 0; configs = new List <string>(); try { IEdmFolder5 oFolder; var tries = 1; m1: Thread.Sleep(500); path = new FileInfo(path).FullName; var edmFile5 = edmVault5.GetFileFromPath(path, out oFolder); if (oFolder == null) { tries++; if (tries > 10) { return; } goto m1; } if (getFileCopy) { try { edmFile5.GetFileCopy(0, 0, oFolder.ID, (int)EdmGetFlag.EdmGet_RefsVerLatest); } catch (Exception exception) { Логгер.Ошибка($"Message - {exception.Message}\nPath - {path}\nStackTrace - {exception.StackTrace}", null, "GetIdPdm", "SwEpdm"); //MessageBox.Show(ex.Message + "\n" + ex.StackTrace); } } fileName = edmFile5.Name; fileIdPdm = edmFile5.ID; currentVerison = edmFile5.CurrentVersion; EdmStrLst5 list = edmFile5.GetConfigurations(); IEdmPos5 pos = default(IEdmPos5); pos = list.GetHeadPosition(); string cfgName = null; while (!pos.IsNull) { cfgName = list.GetNext(pos); if (cfgName == "@") { continue; } configs.Add(cfgName); } } catch (Exception exception) { Логгер.Ошибка($"Message - {exception.Message}\nPath - {path}\nStackTrace - {exception.StackTrace}", null, "GetIdPdm", "SwEpdm"); //MessageBox.Show(ex.Message + "\n" + ex.StackTrace); } }