3 Replies Latest reply on May 16, 2017 5:44 PM by MikeSpath

    Programmatic UOM

    MikeSpath

      Hello:

      I'm wondering how to programatically set the UOM for an AFAttribute Template

      Code below is what I'm using. The variable dst.Unit is just a string like "g/m", "sec.", etc..

                    

      string strFullParName = dst.ParamName;

                      var atExists = db.ElementTemplates[dst.TemplateName].AttributeTemplates[strFullParName];

                      if (atExists == null)

                      {

                          AFAttributeTemplate Myattributetemplate = myElemTemplate.AttributeTemplates.Add(strFullParName);

                          Myattributetemplate.DefaultUOM = MyPISystem.UOMDatabase.UOMs[dst.Unit];

       

       

                          Myattributetemplate.DataReferencePlugIn = AFDataReference.GetPIPointDataReference(MyPISystem);

                          Myattributetemplate.ConfigString = @"\\%Server%\%Element%.%Attribute%";

       

       

                          // setup limits for Attribute

                          AddLimitToAttribute(myElemTemplate, Myattributetemplate, dst.HiHi, LimitType.HIHI, dst.ParamName);

       

      I can add one Attribute Template with % no problem

      But when I try sec.

      I get:

      FAILS when I execute the line limitHiHi.Trait = AFAttributeTrait.LimitHiHi; below

      if (myElemTemplate.AttributeTemplates[AFAttributeTrait.LimitHiHi.Abbreviation] == null)

                              {

                                  AFAttributeTemplate limitHiHi = Myattributetemplate.AttributeTemplates.Add(AFAttributeTrait.LimitHiHi.Abbreviation);

                                  limitHiHi.Trait = AFAttributeTrait.LimitHiHi;

                                  limitHiHi.SetValue(dValue, limitHiHi.DefaultUOM);

                              }

                              break;