parseValue() static private method

static private parseValue ( string str ) : IfcValue
str string
return IfcValue
        internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary <int, BaseClassIfc> dictionary)
        {
            mName        = ParserSTEP.StripString(str, ref pos, len);
            mDescription = ParserSTEP.StripString(str, ref pos, len);
            string s = ParserSTEP.StripField(str, ref pos, len);

            if (s.StartsWith("IFC"))
            {
                mAppliedValue = ParserIfc.parseValue(s);
            }
            else
            {
                mAppliedValue = dictionary[ParserSTEP.ParseLink(s)] as IfcAppliedValueSelect;
            }
            mUnitBasis = ParserSTEP.StripLink(str, ref pos, len);
            if (release < ReleaseVersion.IFC4)
            {
                mSSApplicableDate = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
                mSSFixedUntilDate = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
            }
            else
            {
                mApplicableDate = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len));
                mFixedUntilDate = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len));
                mCategory       = ParserSTEP.StripString(str, ref pos, len);
                mCondition      = ParserSTEP.StripString(str, ref pos, len);
                s = ParserSTEP.StripField(str, ref pos, len);
                if (s.StartsWith("."))
                {
                    Enum.TryParse <IfcArithmeticOperatorEnum>(s.Replace(".", ""), true, out mArithmeticOperator);
                }
                mComponents = ParserSTEP.StripListLink(str, ref pos, len);
            }
        }
Beispiel #2
0
        internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary <int, BaseClassIfc> dictionary)
        {
            string s = ParserSTEP.StripField(str, ref pos, len);

            mValueComponent = ParserIfc.parseValue(s);
            if (mValueComponent == null)
            {
                mVal = s;
            }
            mUnitComponent = ParserSTEP.StripLink(str, ref pos, len);
        }
Beispiel #3
0
        internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary <int, BaseClassIfc> dictionary)
        {
            base.parse(str, ref pos, release, len, dictionary);
            Enum.TryParse <IfcBenchmarkEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mBenchMark);
            mValueSource = ParserSTEP.StripString(str, ref pos, len);
            string s = ParserSTEP.StripField(str, ref pos, len);

            mDataValueValue = ParserIfc.parseValue(s);
            if (mDataValueValue == null)
            {
                mDataValue = ParserSTEP.ParseLink(s);
            }
            mReferencePath = ParserSTEP.StripLink(str, ref pos, len);
        }
 internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary <int, BaseClassIfc> dictionary)
 {
     base.parse(str, ref pos, release, len, dictionary);
     if (release != ReleaseVersion.IFC2x3)
     {
         string s = ParserSTEP.StripField(str, ref pos, len);
         mLagValue = ParserIfc.parseValue(s) as IfcTimeOrRatioSelect;
         s         = ParserSTEP.StripField(str, ref pos, len);
         if (s.StartsWith("."))
         {
             Enum.TryParse <IfcTaskDurationEnum>(s.Replace(".", ""), true, out mDurationType);
         }
     }
 }
        internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary <int, BaseClassIfc> dictionary)
        {
            base.parse(str, ref pos, release, len, dictionary);
            Enum.TryParse <IfcBenchmarkEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mBenchMark);
            mValueSource = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
            string s = ParserSTEP.StripField(str, ref pos, len);

            if (s[0] == '#')
            {
                mDataValue = dictionary[ParserSTEP.ParseLink(s)] as IfcMetricValueSelect;
            }
            else
            {
                mDataValue = ParserIfc.parseValue(s) as IfcMetricValueSelect;
            }
            mReferencePath = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcReference;
        }
        internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary <int, BaseClassIfc> dictionary)
        {
            TimeStamp = IfcDateTime.ParseSTEP(ParserSTEP.StripField(str, ref pos, len));
            string s = ParserSTEP.StripField(str, ref pos, len);

            if (s != "$")
            {
                List <string> ss = ParserSTEP.SplitLineFields(s.Substring(1, s.Length - 2));
                for (int icounter = 0; icounter < ss.Count; icounter++)
                {
                    IfcValue v = ParserIfc.parseValue(ss[icounter]);
                    if (v != null)
                    {
                        mListValues.Add(v);
                    }
                }
            }
        }