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