Beispiel #1
0
        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());
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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");
            }
        }
Beispiel #4
0
        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;
        }