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); mRecurrencePattern = ParserSTEP.StripLink(str, ref pos, len); mStart = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len)); mFinish = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len)); }
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) { base.parse(str, ref pos, release, len, dictionary); Enum.TryParse <IfcInventoryTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPredefinedType); mJurisdiction = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorSelect; mResponsiblePersons.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcPerson)); if (release < ReleaseVersion.IFC4) { mLastUpdateDateSS = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCalendarDate; } else { mLastUpdateDate = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len)); } mCurrentValue = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCostValue; mOriginalValue = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCostValue; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary <int, BaseClassIfc> dictionary) { mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len)); mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len)); mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len)); if (release < ReleaseVersion.IFC4) { mDocumentReferences = ParserSTEP.StripListLink(str, ref pos, len); } else { mLocation = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len)); } mPurpose = ParserSTEP.StripString(str, ref pos, len); mIntendedUse = ParserSTEP.StripString(str, ref pos, len); mScope = ParserSTEP.StripString(str, ref pos, len); mRevision = ParserSTEP.StripString(str, ref pos, len); mDocumentOwner = ParserSTEP.StripLink(str, ref pos, len); mEditors = ParserSTEP.StripListLink(str, ref pos, len); mCreationTime = IfcDateTime.ParseSTEP(ParserSTEP.StripField(str, ref pos, len)); mLastRevisionTime = IfcDateTime.ParseSTEP(ParserSTEP.StripField(str, ref pos, len)); if (release < ReleaseVersion.IFC4) { mSSElectronicFormat = ParserSTEP.StripLink(str, ref pos, len); } else { mElectronicFormat = ParserSTEP.StripString(str, ref pos, len); } mValidFrom = IfcDate.ParseSTEP(ParserSTEP.StripField(str, ref pos, len)); mValidUntil = IfcDate.ParseSTEP(ParserSTEP.StripField(str, ref pos, len)); string s = ParserSTEP.StripField(str, ref pos, len); if (s[0] == '.') { Enum.TryParse <IfcDocumentConfidentialityEnum>(s.Replace(".", ""), true, out mConfidentiality); } s = ParserSTEP.StripField(str, ref pos, len); if (s[0] == '.') { Enum.TryParse <IfcDocumentStatusEnum>(s.Replace(".", ""), true, out mStatus); } }
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); mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len)); mOriginalValue = ParserSTEP.StripLink(str, ref pos, len); mCurrentValue = ParserSTEP.StripLink(str, ref pos, len); mTotalReplacementCost = ParserSTEP.StripLink(str, ref pos, len); mOwner = ParserSTEP.StripLink(str, ref pos, len); mUser = ParserSTEP.StripLink(str, ref pos, len); mResponsiblePerson = ParserSTEP.StripLink(str, ref pos, len); if (release < ReleaseVersion.IFC4) { mIncorporationDateSS = ParserSTEP.StripLink(str, ref pos, len); } else { mIncorporationDate = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len)); } mDepreciatedValue = ParserSTEP.StripLink(str, ref pos, len); }