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 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"); } }
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 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; }