public SpcoRepresentation(DbElement scom, DbElement equipment, Text text) { Scom = scom; _equipment = equipment; Sdte = text.Sdte; MatxtTextElement = text.MatxtElement(equipment); Stype = text.Stype(equipment); FirstSeleTans = text.TypeTans(equipment); DBElementCollection ptcas = new DBElementCollection(Scom.Owner, new TypeFilter(DbElementTypeInstance.PTCAR)); foreach (DbElement ptca in ptcas) { if (ptca.GetAsString(DbAttributeInstance.NUMB) == "1") { var t = ptca.GetAsString(DbAttributeInstance.PBOR); t = t.Replace("(", string.Empty); t = t.Replace("'", string.Empty); t = t.Replace(")", string.Empty); PBore1 = double.Parse(t); } else if (ptca.GetAsString(DbAttributeInstance.NUMB) == "2") { var t = ptca.GetAsString(DbAttributeInstance.PBOR); t = t.Replace("(", string.Empty); t = t.Replace("'", string.Empty); t = t.Replace(")", string.Empty); PBore2 = double.Parse(t); } } }
private List <DbElement> CollectStructuralItems() { List <DbElement> dbElementList = new List <DbElement>(); DbElement element = CurrentElement.get_Element(); DbElementType[] dbElementTypeArray = new DbElementType[7] { (DbElementType)DbElementTypeInstance.SCTN, (DbElementType)DbElementTypeInstance.PANEL, (DbElementType)DbElementTypeInstance.GENSEC, (DbElementType)DbElementTypeInstance.FLOOR, (DbElementType)DbElementTypeInstance.GWALL, (DbElementType)DbElementTypeInstance.STWALL, (DbElementType)DbElementTypeInstance.WALL }; DBElementCollection elementCollection = new DBElementCollection(element); elementCollection.set_IncludeRoot(true); elementCollection.set_Filter((BaseFilter) new TypeFilter(dbElementTypeArray)); DBElementEnumerator enumerator = (DBElementEnumerator)elementCollection.GetEnumerator(); while (enumerator.MoveNext()) { dbElementList.Add((DbElement)enumerator.get_Current()); } return(dbElementList); }
public double ExecuteCmd() { try { //System.Diagnostics.Debugger.Launch(); DateTime date=CurrentElement.Element.GetDateTime(DbAttributeInstance.LASTM); System.Windows.Forms.MessageBox.Show(date.ToShortTimeString()); Command cmd = Command.CreateCommand(""); cmd.CommandString = "$p parkmaker2"; cmd.RunInPdms(); //Collection문 DBElementCollection collection = new DBElementCollection(CurrentElement.Element); collection.IncludeRoot = true; Kcs_ui.MessageNoConfirm("멍멍1"); Kcs_ui.MessageNoConfirm(CurrentElement.Element.Owner.GetAsString(DbAttributeInstance.NAME)); //collection.Filter = new TypeFilter(DbElementTypeInstance.DEPT); foreach (DbElement entry in collection) { Kcs_ui.MessageNoConfirm(entry.GetAsString(DbAttributeInstance.NAME)); } //PML Command실행. } catch (Exception ee) { Console.WriteLine("오류발생"); } return 10.0; }
public static DbElement First(this DBElementCollection collection) { foreach (DbElement item in collection) { return(item); } return(default(DbElement)); }
public DbElement MatxtElement(DbElement equipment) { var possbileMatxts = new DBElementCollection(equipment.Owner, new AndFilter(new TypeFilter(DbElementTypeInstance.TEXT), new AttributeStringFilter(DbAttributeInstance.PURP, FilterOperator.Equals, "MTXT"))); return(possbileMatxts.First()); }
public IEnumerable <DbElement> GetEquipmentsInZone(DbElement zone) { TypeFilter equipment = new TypeFilter(DbElementTypeInstance.EQUIPMENT); DBElementCollection elements = new DBElementCollection(zone, equipment); foreach (DbElement element in elements) { yield return(element); } }
public static int Count(this DBElementCollection collection) { int i = 0; foreach (var item in collection) { i++; } return(i); }
private void button1_Click(object sender, EventArgs e) { if (_toogleValue) { var elements = DesignProxy.GetHashtable("MEMBERS"); // foreach (DictionaryEntry i in elements) { //string tt = "$p" + i.Key.ToString() + i.Value.ToString(); string tt = "$p" + i.Value.ToString(); Aveva.Pdms.Utilities.CommandLine.Command.CreateCommand(tt).RunInPdms(); } } textBox1.Text = CurrentElement.Element.ToString(); //заполнить лист listBox1.Items.Clear(); //если се бран if (CurrentElement.Element.GetElementType().Equals(DbElementTypeInstance.BRANCH)) { //AttributeRefFilter ownerfilter = new AttributeRefFilter(DbAttributeInstance.OWNER, DbElement.GetElement("/" + branmembers.ToString())); AttributeRefFilter ownerfilter = new AttributeRefFilter(DbAttributeInstance.OWNER, DbElement.GetElement(CurrentElement.Element.RefNo())); var collection = new DBElementCollection(CurrentElement.Element, ownerfilter); foreach (DbElement element in collection) { //if (element.GetElementType().Equals(DbElementTypeInstance.TUBING)) //{ // listBox1.Items.Add(element); //} listBox1.Items.Add(element); } } else { //филтр по имени владельца TypeFilter BranFilt = new TypeFilter(DbElementTypeInstance.BRANCH); var BraColl = new DBElementCollection(CurrentElement.Element, BranFilt); foreach (DbElement branmembers in BraColl) { listBox1.Items.Add("BRAN: " + branmembers); //AttributeRefFilter ownerfilter = new AttributeRefFilter(DbAttributeInstance.OWNER, DbElement.GetElement("/" + branmembers.ToString())); AttributeRefFilter ownerfilter = new AttributeRefFilter(DbAttributeInstance.OWNER, DbElement.GetElement(branmembers.RefNo())); var collection = new DBElementCollection(branmembers, ownerfilter); foreach (DbElement element in collection) { //if (element.GetElementType().Equals(DbElementTypeInstance.TUBING)) //{ // listBox1.Items.Add(element); //} listBox1.Items.Add(element); } } } ////////////////// }
public void run() { DbElement Outfit_Elements = MDB.CurrentMDB.GetFirstWorld(Aveva.Pdms.Database.DbType.Design); DbElementType[] dbtype = new DbElementType[] { DbElementTypeInstance.PIPE }; TypeFilter filter = new TypeFilter(dbtype); AndFilter finalfilter = new AndFilter(); AttributeStringFilter filter2 = new AttributeStringFilter(DbAttribute.GetDbAttribute("Name"), FilterOperator.Equals, "/babo"); finalfilter.Add(filter); finalfilter.Add(filter2); DBElementCollection spwl_collects = new DBElementCollection(Outfit_Elements, finalfilter); Console.WriteLine("스펙월드갯수:" + spwl_collects.Cast <DbElement>().Count()); int speccnt = 0; List <DbElement> working_dbelement = new List <DbElement>(); foreach (DbElement element in spwl_collects) { //element.Delete(); DbCopyOption dd = new DbCopyOption(); //dd.ToName="/bbboa"; //DbElement de= element.CreateCopyHierarchyAfter(CurrentElement.Element, dd); //de.InsertBefore(CurrentElement.Element); DbElement xx = DbElement.GetElement("/xx1"); CurrentElement.Element.InsertAfterLast(xx); //de.InsertAfterLast(element.Owner); ////Console.WriteLine("스펙월드]" + spwl.GetAsString(DbAttributeInstance.NAME)); //foreach (DbElement spec in spwl.Members()) //{ // //spec.CreateLast(DbElementType.GetElementType("Sele")); // string specname = spec.GetAsString(DbAttributeInstance.NAME); // if (specname.Substring(1, 2) == "/*") // continue; // working_dbelement.Add(spec); // speccnt++; // //Console.WriteLine(" -->스펙]"+spec.GetAsString(DbAttributeInstance.NAME)); //} } //MDB.CurrentMDB.GetWork(); }
private DBElementCollection Get_Element_Collection(DbElement Outfit_Elements, DbElementType [] dbtypes, string search_txt, string modulename) { DBElementCollection result_collection = null; try { TypeFilter filter = new TypeFilter(dbtypes); AndFilter finalfilter = new AndFilter(); AttributeStringFilter filter2 = null; AttributeRefFilter filter3 = null; if (search_txt.StartsWith("*") && search_txt.EndsWith("*")) { filter2 = new AttributeStringFilter(DbAttribute.GetDbAttribute("NamN"), FilterOperator.EndsWith, search_txt.Replace("*", "")); } else if (search_txt.EndsWith("*") && !search_txt.StartsWith("*")) { filter2 = new AttributeStringFilter(DbAttribute.GetDbAttribute("NamN"), FilterOperator.StartsWith, search_txt.Replace("*", "")); } else if (search_txt.StartsWith("*") && search_txt.EndsWith("*")) { filter2 = new AttributeStringFilter(DbAttribute.GetDbAttribute("NamN"), FilterOperator.Contains, search_txt.Replace("*", "")); } else { filter2 = new AttributeStringFilter(DbAttribute.GetDbAttribute("NamN"), FilterOperator.Equals, search_txt.Replace("*", "")); } if (modulename.Trim() != "") { filter3 = new AttributeRefFilter(DbAttributeInstance.OWNER, FilterOperator.Equals, DbElement.GetElement("/" + modulename)); finalfilter.Add(filter3); } finalfilter.Add(filter); finalfilter.Add(filter2); result_collection = new DBElementCollection(Outfit_Elements, finalfilter); } catch (Exception ee) { Console.WriteLine("오류"); } return(result_collection); }
public IEnumerable <DbElement> BuildableElementsInEquipment(DbElement equipment) { TypeFilter box = new TypeFilter(DbElementTypeInstance.BOX); TypeFilter cone = new TypeFilter(DbElementTypeInstance.CONE); TypeFilter cylinder = new TypeFilter(DbElementTypeInstance.CYLINDER); TypeFilter dish = new TypeFilter(DbElementTypeInstance.DISH); TypeFilter extr = new TypeFilter(DbElementTypeInstance.EXTRUSION); OrFilter orFilter = new OrFilter(new BaseFilter[] { box, cone, cylinder, dish, extr }); DBElementCollection elements = new DBElementCollection(equipment, orFilter); foreach (DbElement element in elements) { yield return(element); } }
public DBElementCollection ElementCollectionOfZones() { TypeFilter zoneFilter = new TypeFilter(DbElementTypeInstance.ZONE); AttributeStringFilter valueFilter = new AttributeStringFilter(DbAttributeInstance.FUNC, FilterOperator.Equals, "modelcatalogue"); AndFilter af = new AndFilter(zoneFilter, valueFilter); DBElementCollection zones = new DBElementCollection(DbType.Design, af); foreach (DbElement item in zones) { Console.WriteLine(item.GetAsString(DbAttributeInstance.FUNC)); } Console.WriteLine(zones.Count()); return(zones); }
public void AddSpco(SpcoRepresentation spcoRepre) { // TODO: implement better SPCO naming strategy Console.WriteLine("SpecManager.AddSpco"); if (spcoRepre.Stype == string.Empty || spcoRepre.PBore1 == 0) { Console.WriteLine($"## Invalid input for:{spcoRepre.Sdte.GetString(DbAttributeInstance.DTXR)}"); Console.WriteLine($"Stype cannot be empty and is: {spcoRepre.Stype}"); Console.WriteLine($"Bore cannot be 0 and is : {spcoRepre.PBore1}"); return; } var spcoName = Spec.Name() + spcoRepre.Name; if (spcoName.Length > 50) { spcoName = Spec.Name() + spcoRepre.Name.Substring(Spec.Name().Length); } DBElementCollection spcos = new DBElementCollection(Spec, new AttributeRefFilter(DbAttributeInstance.CATR, spcoRepre.Scom)); DbElement spco; if (spcos.Count() > 0) { spco = spcos.First(); } else { spco = BoreSele(spcoRepre.PBore1).CreateLast(DbElementTypeInstance.SPCOMPONENT); } // TODO: do something much better. with the spco name. maybe stype + size + dtxr??? try { spco.SetAttribute(DbAttributeInstance.NAME, spcoName); } catch { for (int i = 0; i < 100; i++) { try { spco.SetAttribute(DbAttributeInstance.NAME, spcoName + i.ToString()); } catch { } } } spco.SetAttribute(DbAttributeInstance.TANS, spcoRepre.Stype); spco.SetAttribute(DbAttributeInstance.CATR, spcoRepre.Scom); PMLCommander.RunPMLCommand(spco, "DETR", spcoRepre.Sdte.FullName(), out string error); PMLCommander.RunPMLCommand(spco, "MATXT", spcoRepre.Smte.FullName(), out error); }
public string TypeTans(DbElement equipment) { var possbileTypes = new DBElementCollection(equipment.Owner, new AndFilter(new TypeFilter(DbElementTypeInstance.TEXT), new AttributeStringFilter(DbAttributeInstance.PURP, FilterOperator.Equals, "TYPE"))); var text = possbileTypes.First(); if (text.IsValid) { return(text.GetAsString(DbAttributeInstance.STEX)); } else { return("VALV"); } }
private List <DbElement> CollectPrimitiveItems() { List <DbElement> dbElementList = new List <DbElement>(); try { DbElement element = CurrentElement.get_Element(); DbElementType[] dbElementTypeArray = new DbElementType[17] { (DbElementType)DbElementTypeInstance.BOX, (DbElementType)DbElementTypeInstance.CYLINDER, (DbElementType)DbElementTypeInstance.SLCYLINDER, (DbElementType)DbElementTypeInstance.RTORUS, (DbElementType)DbElementTypeInstance.CTORUS, (DbElementType)DbElementTypeInstance.POHEDRON, (DbElementType)DbElementTypeInstance.SNOUT, (DbElementType)DbElementTypeInstance.PYRAMID, (DbElementType)DbElementTypeInstance.POLYHEDRON, (DbElementType)DbElementTypeInstance.DISH, (DbElementType)DbElementTypeInstance.CONE, (DbElementType)DbElementTypeInstance.PCLAMP, (DbElementType)DbElementTypeInstance.HELEMENT, (DbElementType)DbElementTypeInstance.EXTRUSION, (DbElementType)DbElementTypeInstance.NOZZLE, (DbElementType)DbElementTypeInstance.SCLAMP, (DbElementType)DbElementTypeInstance.REVOLUTION }; DBElementCollection elementCollection = new DBElementCollection(element); elementCollection.set_IncludeRoot(true); elementCollection.set_Filter((BaseFilter) new TypeFilter(dbElementTypeArray)); DBElementEnumerator enumerator = (DBElementEnumerator)elementCollection.GetEnumerator(); while (enumerator.MoveNext()) { DbElement current = (DbElement)enumerator.get_Current(); if (Tools.CheckLevel(current, 6)) { dbElementList.Add(current); } } } catch (Exception ex) { HierarchyItem.Log.Error((object)("Error collecting primitives :" + ex.Message)); } return(dbElementList); }
private void initialiseGrid() { //Add a default set if there are no user defined columns Hashtable atts = new Hashtable(); atts[1.0] = "Name"; atts[2.0] = "Type"; atts[3.0] = "Owner"; //Add a default set if there are no user defined columns Hashtable titles = new Hashtable(); titles[1.0] = "Name of Item"; titles[2.0] = "Type of Item"; titles[3.0] = "Owner of Item"; //Get Design World DbElement worldElement = MDB.CurrentMDB.GetFirstWorld(Aveva.Pdms.Database.DbType.Design); //Find all Equipment elements TypeFilter filter = new TypeFilter(DbElementTypeInstance.EQUIPMENT); DBElementCollection coll = new DBElementCollection(worldElement, filter); //Collect the items Hashtable items = new Hashtable(); int i = 1; foreach (DbElement ele in coll) { items.Add((double)i, ele); i++; } //Set Grid Name string tableName = "Example Grid"; //Create a data source and bind it to the Grid Control NetDataSource dataSource; dataSource = new NetDataSource(tableName, atts, titles, items); this.netGridControl1.BindToDataSource(dataSource); //Display the default PDMS graphical icons in the grid with the equipment item names this.netGridControl1.setNameColumnImage(); }
public IEnumerable <DbElement> GetAllCylinders() { DBElementCollection zones = ElementCollectionOfZones(); TypeFilter equiFilter = new TypeFilter(DbElementTypeInstance.EQUIPMENT); foreach (DbElement zone in zones) { DBElementCollection equipments = new DBElementCollection(zone, equiFilter); foreach (DbElement equi in equipments) { DBElementCollection cylinders = new DBElementCollection(equi, new TypeFilter(DbElementTypeInstance.CYLINDER)); foreach (DbElement cyli in cylinders) { yield return(cyli); } } } }
private List <DbElement> GetElements(DbElement root, AndFilter filter) { List <DbElement> dbElementList = new List <DbElement>(); IEnumerator enumerator = new DBElementCollection(root, (BaseFilter)filter).GetEnumerator(); try { while (enumerator.MoveNext()) { DbElement current = (DbElement)enumerator.Current; dbElementList.Add(current); } } finally { (enumerator as IDisposable)?.Dispose(); } return(dbElementList); }
private void btnModelInsert_Click(object sender, EventArgs e) { //Drawlist 정의하고 추가하는 부분 var drawListManager = DrawListManager.Instance; var currentCursor = Cursor.Current; Cursor.Current = Cursors.WaitCursor; drawListManager.BeginUpdate(); var currentDrawList = drawListManager.CurrentDrawList; DbElement Outfit_Elements = MDB.CurrentMDB.GetFirstWorld(Aveva.Pdms.Database.DbType.Design); DbElementType[] dbtypes = new DbElementType[] { DbElementTypeInstance.PIPE }; if (checkPipe.Checked) { dbtypes = new DbElementType[] { DbElementTypeInstance.PIPE }; DBElementCollection pipe_collection = Get_Element_Collection(Outfit_Elements, dbtypes, txt_pipe_name.Text, txt_pipe_module.Text); currentDrawList.Add(pipe_collection.Cast <DbElement>().ToArray()); } if (checkStru.Checked) { dbtypes = new DbElementType[] { DbElementTypeInstance.STRUCTURE }; DBElementCollection stru_collection = Get_Element_Collection(Outfit_Elements, dbtypes, txt_stru_name.Text, txt_stru_module.Text); currentDrawList.Add(stru_collection.Cast <DbElement>().ToArray()); } if (checkEquip.Checked) { dbtypes = new DbElementType[] { DbElementTypeInstance.EQUIPMENT }; DBElementCollection equip_collection = Get_Element_Collection(Outfit_Elements, dbtypes, txt_equip_name.Text, txt_equip_module.Text); currentDrawList.Add(equip_collection.Cast <DbElement>().ToArray()); } drawListManager.EndUpdate(); currentDrawList.VisibleAll(); Cursor.Current = currentCursor; }
internal DbElement Update(DbElement scom, DbElement equipment) { var cate = scom.Owner; foreach (var member in cate.Members()) { if (member.ElementType == DbElementTypeInstance.PTSET || member.ElementType == DbElementTypeInstance.GMSET || member.ElementType == DbElementTypeInstance.DTSET) { member.Delete(); } } DbElement ptse = cate.Create(1, DbElementTypeInstance.PTSET); DbElement gmse = cate.Create(1, DbElementTypeInstance.GMSET); DbElement dtse = cate.Create(1, DbElementTypeInstance.DTSET); scom.SetAttribute(DbAttributeInstance.PTRE, ptse); scom.SetAttribute(DbAttributeInstance.GMRE, gmse); scom.SetAttribute(DbAttributeInstance.DTRE, dtse); scom.SetAttribute(DbAttributeInstance.DESC, equipment.Name()); var possbileTypes = new DBElementCollection(equipment, new AndFilter(new TypeFilter(DbElementTypeInstance.TEXT), new AttributeStringFilter(DbAttributeInstance.PURP, FilterOperator.Equals, "TYPE"))); var text = possbileTypes.First(); if (text != null && text.IsValid) { scom.SetAttribute(DbAttributeInstance.GTYP, text.GetAsString(DbAttributeInstance.STEX)); } else { scom.SetAttribute(DbAttributeInstance.GTYP, "VALV"); } Element = cate; return(scom); }
public Hashtable GetVolumeWithinElement(string elementname, Hashtable dbtypeArray, Boolean completelycover) { //DbElementType[] dbtypes = new DbElementType[] { DbElementTypeInstance.PSPOOL }; string samplerow = ((string)dbtypeArray[1.0]); List<DbElementType> dbtypeslist = new List<DbElementType>(); foreach (var item in dbtypeArray.Keys) { dbtypeslist.Add(DbElementType.GetElementType(dbtypeArray[item].ToString())); } DbElementType[] dbtypes = dbtypeslist.ToArray(); DbElement Outfit_Elements = MDB.CurrentMDB.GetFirstWorld(Aveva.Pdms.Database.DbType.Design); DBElementCollection result_collection = null; TypeFilter filter = new TypeFilter(dbtypes); AndFilter finalfilter = new AndFilter(); InVolumeFilter volfilter = new InVolumeFilter(CurrentElement.Element,dbtypes, true); finalfilter.Add(filter); finalfilter.Add(volfilter); result_collection = new DBElementCollection(Outfit_Elements, finalfilter); Hashtable resultHs = new Hashtable(); double idx = 1.0; foreach (DbElement item in result_collection) { resultHs.Add(idx, item.GetAsString(DbAttributeInstance.NAME)); idx = idx + 1.0; } return resultHs; }
//Create and iterate through collections public static void Run() { //Scan Nozzles below equi TypeFilter filt = new TypeFilter(DbElementTypeInstance.NOZZLE); DBElementCollection collection = new DBElementCollection(Example.Instance.mEqui, filt); DbAttribute att = DbAttributeInstance.FLNN; foreach (DbElement ele in collection) { Console.WriteLine(ele.GetAsString(att)); } //Scan branches below site DBElementCollection coll = new DBElementCollection(Example.Instance.mSite); coll.IncludeRoot = true; coll.Filter = new TypeFilter(DbElementTypeInstance.BRANCH); DBElementEnumerator iter = (DBElementEnumerator)coll.GetEnumerator(); while (iter.MoveNext()) { Console.WriteLine(iter.Current.ToString()); } }
public void DefineMatxt(DbElement cata) { DbElement sect = cata.Members().SingleOrDefault(s => s.GetString(DbAttributeInstance.DESC) == "MaterialContainer"); if (sect == null || sect.IsValid == false) { sect = cata.CreateLast(DbElementTypeInstance.SECTION); sect.SetAttributeValue(DbAttributeInstance.DESC, "MaterialContainer"); } var smtes = new DBElementCollection(sect, new AndFilter(new TypeFilter(DbElementTypeInstance.SMTEXT), new AttributeStringFilter(DbAttributeInstance.MTXX, FilterOperator.Equals, Matxt))); var smte = smtes.First(); if (smte == null || !smte.IsValid) { smte = sect.CreateFirst(DbElementTypeInstance.SMTEXT); smte.SetAttribute(DbAttributeInstance.XTEX, Matxt); } Smte = smte; }
private List <DbElement> CollectPjoiItems() { List <DbElement> dbElementList = new List <DbElement>(); DbElement element = CurrentElement.get_Element(); DbElementType[] dbElementTypeArray = new DbElementType[1] { (DbElementType)DbElementTypeInstance.PJOINT }; DBElementCollection elementCollection = new DBElementCollection(element); elementCollection.set_IncludeRoot(true); elementCollection.set_Filter((BaseFilter) new TypeFilter(dbElementTypeArray)); DBElementEnumerator enumerator = (DBElementEnumerator)elementCollection.GetEnumerator(); while (enumerator.MoveNext()) { dbElementList.Add((DbElement)enumerator.get_Current()); } return(dbElementList); }
public IEnumerable <Buildable> GetBuildables(DbElement owner) { TypeFilter box = new TypeFilter(DbElementTypeInstance.BOX); TypeFilter cone = new TypeFilter(DbElementTypeInstance.CONE); TypeFilter cylinder = new TypeFilter(DbElementTypeInstance.CYLINDER); TypeFilter dish = new TypeFilter(DbElementTypeInstance.DISH); TypeFilter extr = new TypeFilter(DbElementTypeInstance.EXTRUSION); TypeFilter nozz = new TypeFilter(DbElementTypeInstance.NOZZLE); TypeFilter ctorus = new TypeFilter(DbElementTypeInstance.CTORUS); TypeFilter pyramid = new TypeFilter(DbElementTypeInstance.PYRAMID); OrFilter orFilter = new OrFilter(new BaseFilter[] { box, cone, cylinder, dish, extr, nozz, ctorus, pyramid }); DBElementCollection elements = new DBElementCollection(owner, orFilter); foreach (DbElement element in elements) { yield return(Converter.ElementToBuildable(element)); } }
private void btn_CE_Click(object sender, EventArgs e) { DbElement CE = CurrentElement.Element; TypeFilter filter = new TypeFilter(DbElementTypeInstance.ATTACHMENT); DBElementCollection coll = new DBElementCollection(CE, filter); List <NameRef> listNR = new List <NameRef>(); foreach (DbElement de in coll) { NameRef nr = new NameRef(de.ToString(), de.RefNo()); //nr.Name = de.ToString(); //int[] rn = de.RefNo(); //foreach (int r in rn) //{ // nr.Ref+=r.ToString()+"/"; //} //nr.Ref.TrimEnd('/'); listNR.Add(nr); } ComBox_ATTA.DataSource = listNR; ComBox_ATTA.DisplayMember = "Name"; //ComBox_ATTA.ValueMember = "Ref"; BindHS(); }
//Create and iterate through collections public static void Run() { //Scan Nozzles below equi TypeFilter filt = new TypeFilter(DbElementTypeInstance.NOZZLE); DBElementCollection collection = new DBElementCollection(Example.Instance.mEqui, filt); DbAttribute att = DbAttributeInstance.FLNN; foreach (DbElement ele in collection) { Console.WriteLine(ele.GetAsString(att)); } //Scan branches below site DBElementCollection coll = new DBElementCollection(Example.Instance.mSite); coll.IncludeRoot = true; coll.Filter = new TypeFilter(DbElementTypeInstance.BRANCH); DBElementEnumerator iter = (DBElementEnumerator)coll.GetEnumerator(); while (iter.MoveNext()) { Console.WriteLine(iter.Current.ToString()); } }
private void initialiseGrid() { //Add a default set if there are no user defined columns Hashtable atts = new Hashtable(); atts[1.0] = "Name"; atts[2.0] = "Type"; atts[3.0] = "Owner"; //Add a default set if there are no user defined columns Hashtable titles = new Hashtable(); titles[1.0] = "Name of Item"; titles[2.0] = "Type of Item"; titles[3.0] = "Owner of Item"; //Get Design World DbElement worldElement = MDB.CurrentMDB.GetFirstWorld(Aveva.Pdms.Database.DbType.Design); //Find all Equipment elements TypeFilter filter = new TypeFilter(DbElementTypeInstance.EQUIPMENT); DBElementCollection coll = new DBElementCollection(worldElement, filter); //Collect the items Hashtable items = new Hashtable(); int i = 1; foreach (DbElement ele in coll) { items.Add((double)i, ele); i++; } //Set Grid Name string tableName = "Example Grid"; //Create a data source and bind it to the Grid Control NetDataSource dataSource; dataSource = new NetDataSource(tableName, atts, titles, items); this.netGridControl1.BindToDataSource(dataSource); //Display the default PDMS graphical icons in the grid with the equipment item names this.netGridControl1.setNameColumnImage(); }
private void CreateSpecification(string connstr, string query, string dept) { OdbcConnection conn = new OdbcConnection(connstr); OdbcCommand cmd = new OdbcCommand(query, conn); DataTable dt = new DataTable(); OdbcDataAdapter da = new OdbcDataAdapter(cmd); da.Fill(dt); string comp_ref_query = "select * from STD_PDST_COMP_REF_AM"; cmd.CommandText = comp_ref_query; DataTable comp_ref_dt = new DataTable(); da.SelectCommand = cmd; da.Fill(comp_ref_dt); DbElement Outfit_Elements = MDB.CurrentMDB.GetFirstWorld(Aveva.Pdms.Database.DbType.Catalogue); DbElementType[] dbtype = new DbElementType[] { DbElementTypeInstance.SPWLD }; TypeFilter filter = new TypeFilter(dbtype); AndFilter finalfilter = new AndFilter(); AttributeStringFilter filter2 = new AttributeStringFilter(DbAttribute.GetDbAttribute("Description"), FilterOperator.Equals, "HMD_PIPE_SPEC"); finalfilter.Add(filter); finalfilter.Add(filter2); DBElementCollection spwl_collects = new DBElementCollection(Outfit_Elements, finalfilter); Console.WriteLine("스펙갯수:" + spwl_collects.Cast <DbElement>().Count()); //dt.Rows.OfType<DataRow>().Where(x => x[1].ToString() == "WB").Count(); //dt.Rows.OfType<DataRow>().GroupBy(x=>x[11].ToString()) //var xx =spwl_collects.Cast<DbElement>().Where(x => x.GetAsString(DbAttributeInstance.NAME).Substring(0, 2) == "AA"); int speccnt = 0; List <DbElement> working_dbelement = new List <DbElement>(); var system_analysis = dt.Rows.OfType <DataRow>().GroupBy(x => x["LINE_NO"], x => x["NOM_DIA"], (lineno, nomdia) => new { lineno, nomdia }).OrderBy(x => x.lineno.ToString()); int cnt = 0; foreach (var lineno in system_analysis) { cnt++; //if (cnt == 3) // break; //스펙생성부분 //DbElement spec_element = DbElement.GetElement("/PROJ_SPWL").CreateAfter(DbElementTypeInstance.SPECIFICATION); string specname = dept + "." + lineno.lineno.ToString().Replace(' ', '.'); DbElement spec_element = null; if (DbElement.GetElement("/" + specname).IsNull) { spec_element = DbElement.GetElement("/PROJ_SPWL").CreateLast(DbElementTypeInstance.SPECIFICATION); spec_element.SetAttribute(DbAttributeInstance.NAME, "/" + specname); spec_element.SetAttribute(DbAttributeInstance.QUES, "TYPE"); spec_element.SetAttribute(DbAttributeInstance.PURP, "PIPE"); spec_element.SetAttribute(DbAttributeInstance.DESC, "PROJ.SPEC"); } try { //SPEC TEXT 추가 DbElement spectext_element = spec_element.CreateLast(DbElementTypeInstance.TEXT); spectext_element.SetAttribute(DbAttributeInstance.NAME, "/" + specname + "." + "PIPINGTEXT"); spectext_element.SetAttribute(DbAttributeInstance.STEX, "PIPING"); spectext_element.SetAttribute(DbAttributeInstance.RTEX, "PIPING"); } catch (Exception ee) { } try { foreach (var nomdia in lineno.nomdia) { //Aveva.Pdms.Utilities.Messaging.PdmsException. Aveva.Pdms.Utilities.CommandLine.Command.CreateCommand(string.Format("$p |size: {0} |", nomdia.ToString())).RunInPdms(); DataRow[] targetrow = dt.Rows.OfType <DataRow>().Where(row => row["LINE_NO"].ToString() == lineno.lineno.ToString() && row["NOM_DIA"].ToString() == nomdia.ToString()).ToArray(); string press = targetrow[0]["PRESS"].ToString(); string temp = targetrow[0]["TEMP"].ToString(); string matlspec = targetrow[0]["MATL_SPEC"].ToString(); string connspec = targetrow[0]["PIPE_C_TYPE"].ToString() + "/" + targetrow[0]["PIPE_C_STD"].ToString() + "/" + targetrow[0]["PIPE_C_MATL"].ToString(); connspec = connspec.Replace("\n", ""); string valvespec = targetrow[0]["VALVE_C_TYPE"].ToString(); DataRow[] matl_datarow = comp_ref_dt.Rows.Cast <DataRow>().Where(row => row[0].ToString() == matlspec).ToArray(); DataRow[] conn_datarow = comp_ref_dt.Rows.Cast <DataRow>().Where(row => row[0].ToString() == connspec).ToArray(); DataRow[] valve_datarow = comp_ref_dt.Rows.Cast <DataRow>().Where(row => row[0].ToString() == valvespec).ToArray(); List <int> diameters = get_dias(nomdia.ToString()); //Material Spec생성 if (matl_datarow.Count() == 0) { //Aveva.Pdms.Utilities.CommandLine.Command.OutputAndClearError(); Aveva.Pdms.Utilities.CommandLine.Command.CreateCommand(string.Format("$p |{0} material ref 없음|", matlspec)).RunInPdms(); } else { //Aveva.Pdms.Utilities.CommandLine.Command.OutputAndClearError(); DbElement material_spec = DbElement.GetElement(matl_datarow[0][1].ToString()); string[] allowtype = new string[] { "ELBO" };// foreach (DbElement element in material_spec.Members()) { if (element.GetElementType().ToString() != "TEXT") { //if (!allowtype.Contains(element.GetAsString(DbAttributeInstance.TANS))) // continue; //Aveva.Pdms.Utilities.CommandLine.Command.OutputAndClearError(); reculsive_copy_spec(spec_element, element, specname, diameters); } } } //Conn spec 생성 if (conn_datarow.Count() == 0) { Aveva.Pdms.Utilities.CommandLine.Command.CreateCommand(string.Format("$p |{0} conn ref 없음|", connspec)).RunInPdms(); } else { //Gasket 생성 DbElement gask_spec = null; if (connspec.Contains("5K")) { gask_spec = DbElement.GetElement("/POGASASF05/HMDP_SPEC"); } else if (connspec.Contains("10K")) { gask_spec = DbElement.GetElement("/POGASASF10/HMDP_SPEC"); } else if (connspec.Contains("16K")) { gask_spec = DbElement.GetElement("/POGASASF16/HMDP_SPEC"); } else if (connspec.Contains("20K")) { gask_spec = DbElement.GetElement("/POGASASF20/HMDP_SPEC"); } else if (connspec.Contains("30K")) { gask_spec = DbElement.GetElement("/POGASASF30/HMDP_SPEC"); } foreach (DbElement element in gask_spec.Members()) { reculsive_copy_spec(spec_element, element, specname, diameters); } //Flange Spec DbElement conn_spec = DbElement.GetElement(conn_datarow[0][1].ToString()); foreach (DbElement element in conn_spec.Members()) { reculsive_copy_spec(spec_element, element, specname, diameters); } } //Valve Spec생성 if (valve_datarow.Count() == 0) { Aveva.Pdms.Utilities.CommandLine.Command.CreateCommand(string.Format("$p |{0} valve ref 없음|", valvespec).Replace("\n", "")).RunInPdms(); } else { DbElement valve_spec = DbElement.GetElement(valve_datarow[0][1].ToString()); foreach (DbElement element in valve_spec.Members()) { reculsive_copy_spec(spec_element, element, specname, diameters); } } //DbElement conn_spec = DbElement.GetElement("/PFSF30/HMDP_SPEC"); //DbElement valve_spec = DbElement.GetElement("/PVVVV10/HMDP_SPEC"); //Select 생성 } } catch (Exception ee) { Aveva.Pdms.Utilities.CommandLine.Command.CreateCommand(string.Format("$p |{0} 오륭", "11")).RunInPdms(); Console.WriteLine("오류:" + ee.Message); } //break; } Aveva.Pdms.Utilities.CommandLine.Command.CreateCommand(string.Format("$p |뻥뻥2|")).RunInPdms(); //MDB.CurrentMDB.SaveWork("스펙생성"); //CurrentElement.Element.Copy(DbElement.GetElement("/ACCOM.(DF)")); //DbElement de = CurrentElement.Element.Clone(); //지정된 Element 뒤에 object생성하는 부분 //DbElement xx= CurrentElement.Element.CreateAfter(DbElementTypeInstance.SPECIFICATION); //xx.SetAttribute(DbAttributeInstance.NAME, "/바보야4"); //새로운 Element를 만들고 다른object의 하위구조를 모두 복사하는 부분. //DbElement xx = CurrentElement.Element.CreateAfter(DbElementTypeInstance.SPECIFICATION); //DbCopyOption op=new DbCopyOption(); //op.ToName="vvd"; ////DbElement yy= DbElement.GetElement("/ALDJSAFKL"); //xx.CopyHierarchy(DbElement.GetElement("/ALDJSAFKL"),op); //DbCopyOption op = new DbCopyOption(); // ALDJSAFKL을 복사하는데 /xxx 다음에 만들어서 복사한다. //DbElement yy= DbElement.GetElement("/ALDJSAFKL").CreateCopyHierarchyAfter(DbElement.GetElement("/xxx"), op); //테스트가 필요하네요 //삭제 //DbElement.GetElement("/xxx").Delete(); //Rename //DbElement.GetElement("/보바").SetAttribute(DbAttributeInstance.NAME, "/보바1"); //CurrentElement.Element.Copy(DbElement.GetElement("/보바1")); //MDB.CurrentMDB.SaveWork("여기는 테스트1"); // //foreach (DbElement element in spwl_collects) //{ // //element.Delete(); // DbCopyOption dd= new DbCopyOption(); // //dd.ToName="/bbboa"; // //DbElement de= element.CreateCopyHierarchyAfter(CurrentElement.Element, dd); // //de.InsertBefore(CurrentElement.Element); // //DbElement xx=DbElement.GetElement("/ACCOM.(DF)"); // CurrentElement.Element.InsertAfterLast(xx); // //de.InsertAfterLast(element.Owner); // ////Console.WriteLine("스펙월드]" + spwl.GetAsString(DbAttributeInstance.NAME)); // //foreach (DbElement spec in spwl.Members()) // //{ // // //spec.CreateLast(DbElementType.GetElementType("Sele")); // // string specname = spec.GetAsString(DbAttributeInstance.NAME); // // if (specname.Substring(1, 2) == "/*") // // continue; // // working_dbelement.Add(spec); // // speccnt++; // // //Console.WriteLine(" -->스펙]"+spec.GetAsString(DbAttributeInstance.NAME)); // //} //} //MDB.CurrentMDB.GetWork(); }
private void Search_Element(string findstr, bool replace_mode) { findindex = 0; string searchname = "*" + findstr + "*"; string replacestr = txtreplace.Text; //트리에서 Element Type을 선택할수 있게 함. List <DbElementType> dbtype_list = new List <DbElementType>(); foreach (TreeNode firstnode in tree_type.Nodes) { if (firstnode.Checked) { dbtype_list.Add((DbElementType)firstnode.Tag); } foreach (TreeNode secondnode in firstnode.Nodes) { if (secondnode.Checked) { dbtype_list.Add((DbElementType)secondnode.Tag); } foreach (TreeNode thirdnode in secondnode.Nodes) { if (thirdnode.Checked) { dbtype_list.Add((DbElementType)thirdnode.Tag); } foreach (TreeNode forthnode in thirdnode.Nodes) { if (forthnode.Checked) { dbtype_list.Add((DbElementType)forthnode.Tag); } } } } } dbtypes = dbtype_list.ToArray(); if (radio_3dview.Checked) { DrawList drawlist = DrawListManager.Instance.CurrentDrawList; DrawListMember[] drawlistmems = drawlist.Members(); DrawListMember [] FindDrawElements = drawlistmems.Cast <DrawListMember>() .Where(item => item.DbElement.GetAsString(DbAttributeInstance.NAMN).Contains(txt_search.Text) && dbtypes.Contains(item.DbElement.GetElementType())) .ToArray(); FindElements = FindDrawElements.Select(x => x.DbElement).ToArray(); //Highlight시 색은 General Colours에서 Visible의 색을 따라감. drawlist.Highlight(FindElements); foreach (DbElement item in FindElements) { string type = item.GetAsString(DbAttributeInstance.TYPE); string pos = ""; if (type == "BRAN") { pos = item.GetAsString(DbAttributeInstance.HPOS); } else { pos = item.GetAsString(DbAttributeInstance.POS); } string name = item.GetAsString(DbAttributeInstance.NAMN); Aveva.Pdms.Utilities.CommandLine.Command.CreateCommand(string.Format("AID TEXT number 9898 |{0}| at {1}", name, pos)).RunInPdms(); } } else { //Root가 CE일때 if (radio_ce.Checked) { root = CurrentElement.Element; } else if (radio_entire.Checked) { if (ServiceManager.Instance.ApplicationName == "Outfitting") { root = MDB.CurrentMDB.GetFirstWorld(Aveva.Pdms.Database.DbType.Design); } if (ServiceManager.Instance.ApplicationName == "Paragon") { root = MDB.CurrentMDB.GetFirstWorld(Aveva.Pdms.Database.DbType.Catalogue); } if (ServiceManager.Instance.ApplicationName == "MarineDrafting") { root = MDB.CurrentMDB.GetFirstWorld(Aveva.Pdms.Database.DbType.Draft); } } TypeFilter typefilter = new TypeFilter(dbtypes); AndFilter finalfilter = new AndFilter(); AttributeLikeFilter xfilter = new AttributeLikeFilter(DbAttributeInstance.NAMN, searchname); finalfilter.Add(typefilter); finalfilter.Add(xfilter); result = new DBElementCollection(root, finalfilter); FindElements = result.Cast <DbElement>().ToArray(); } //Item 들이 가지고 속해있는 DB리스트생성 List <Db> dblist = new List <Db>(); foreach (DbElement item in FindElements) { if (!dblist.Contains(item.Db)) { dblist.Add(item.Db); } } //Partial Getwork수행 MDB.CurrentMDB.GetWork(dblist.ToArray()); int replace_count = 0; if (replace_mode == true) { foreach (DbElement item in FindElements) { try { //listView_searchresult.Items.Add(new ListViewItem(new string[]{"1","2","3","4"})); string element_name = item.GetAsString(DbAttributeInstance.NAME); string name = element_name.Replace(findstr, replacestr); DbElement exsititem = DbElement.GetElement(name); if (!exsititem.IsNull) { MessageBox.Show(string.Format("바꿀려는 이름 {0}은 존재하므로 바꿀수 없습니다.", name)); return; continue; } item.SetAttribute(DbAttributeInstance.NAME, name); replace_count++; mDesExpCtrl.RefreshNodes(item); } catch (Exception ee) { Console.WriteLine(item.ToString()); Console.WriteLine("오류발생"); } } //Tree View 업데이트 부분 아래 구문이 없으면 화면이 업데이트 안됨. try { var windows = Aveva.ApplicationFramework.Presentation.WindowManager.Instance.Windows.OfType <Presentation.DockedWindow>().Where(x => x.Key == "DesignExplorer").ToArray(); if (windows.Count() > 0) { MessageBox.Show(replace_count + "개 항목의 이름 바꾸기 완료!"); } } catch (Exception ee) { } } else { if (!radio_3dview.Checked) { if (FindElements.Count() != 0) { string refno = FindElements[0].GetAsString(DbAttributeInstance.REF); Aveva.Pdms.Utilities.CommandLine.Command.CreateCommand(refno).RunInPdms(); } } int idx = 1; //listView_searchresult.ColumnClick -= listView_searchresult_ColumnClick; listView_searchresult.Items.Clear(); foreach (DbElement item in FindElements) { string elementname = item.GetAsString(DbAttributeInstance.FLNN); string elementtype = item.GetAsString(DbAttributeInstance.TYPE); string marptype = "0"; if (elementtype == "SHEE") { marptype = item.GetAsString(DbAttributeInstance.MARPTY); } bool lclm = item.GetBool(DbAttributeInstance.LCLM); string userclaim = item.GetAsString(DbAttributeInstance.USERC); string islock = "X"; if (lclm == true) { islock = "X"; } else { if (userclaim == "unset") { islock = "X"; } else { islock = "O"; } } listView_searchresult.Items.Add(new ListViewItem(new string[] { idx.ToString(), elementname, elementtype, islock, marptype })); idx++; } //listView_searchresult.ColumnClick += listView_searchresult_ColumnClick; lbl_result.Text = "검색결과 : " + FindElements.Count().ToString() + " 건"; } }