internal static void parseFields(IfcDocumentInformation d, List<string> arrFields, ref int ipos, Schema schema) { IfcExternalInformation.parseFields(d, arrFields, ref ipos); d.mIdentification = arrFields[ipos++].Replace("'", ""); d.mName = arrFields[ipos++].Replace("'", ""); d.mDescription = arrFields[ipos++].Replace("'", ""); if (schema == Schema.IFC2x3) d.mDocumentReferences = ParserSTEP.SplitListLinks(arrFields[ipos++]); else d.mLocation = arrFields[ipos++].Replace("'", ""); d.mPurpose = arrFields[ipos++].Replace("'", ""); d.mIntendedUse = arrFields[ipos++].Replace("'", ""); d.mScope = arrFields[ipos++].Replace("'", ""); d.mRevision = arrFields[ipos++].Replace("'", ""); d.mDocumentOwner = ParserSTEP.ParseLink(arrFields[ipos++]); string s = arrFields[ipos++]; if (s[0] != '$') d.mEditors = ParserSTEP.SplitListLinks(s); d.mCreationTime = arrFields[ipos++]; d.mLastRevisionTime = arrFields[ipos++]; if (schema == Schema.IFC2x3) d.mSSElectronicFormat = ParserSTEP.ParseLink(arrFields[ipos++]); else d.mElectronicFormat = arrFields[ipos++].Replace("'", ""); d.mValidFrom = arrFields[ipos++]; d.mValidUntil = arrFields[ipos++]; s = arrFields[ipos++]; if (s[0] == '.') d.mConfidentiality = (IfcDocumentConfidentialityEnum)Enum.Parse(typeof(IfcDocumentConfidentialityEnum), s.Substring(1, s.Length - 2)); s = arrFields[ipos++]; if (s[0] == '.') d.mStatus = (IfcDocumentStatusEnum)Enum.Parse(typeof(IfcDocumentStatusEnum), s.Substring(1, s.Length - 2)); }
internal IfcDocumentInformation(IfcDocumentInformation i) : base(i) { mIdentification = i.mIdentification; mName = i.mName; mDescription = i.mDescription; mDocumentReferences = new List<int>(i.mDocumentReferences.ToArray()); mPurpose = i.mPurpose; mIntendedUse = i.mIntendedUse; mScope = i.mScope; mRevision = i.mRevision; mDocumentOwner = i.mDocumentOwner; mEditors = new List<int>(i.mEditors.ToArray()); mCreationTime = i.mCreationTime; mLastRevisionTime = i.mLastRevisionTime; mElectronicFormat = i.mElectronicFormat; mSSElectronicFormat = i.mSSElectronicFormat; mValidFrom = i.mValidFrom; mValidUntil = i.mValidUntil; mConfidentiality = i.mConfidentiality; mStatus = i.mStatus; }
internal static IfcDocumentInformation Parse(string strDef, Schema schema) { IfcDocumentInformation d = new IfcDocumentInformation(); int ipos = 0; parseFields(d, ParserSTEP.SplitLineFields(strDef), ref ipos, schema); return d; }
internal IfcDocumentInformation(DatabaseIfc db, IfcDocumentInformation i) : base(db,i) { mIdentification = i.mIdentification; mName = i.mName; mDescription = i.mDescription; DocumentReferences = i.DocumentReferences.ConvertAll(x => db.Factory.Duplicate(x) as IfcDocumentReference); mPurpose = i.mPurpose; mIntendedUse = i.mIntendedUse; mScope = i.mScope; mRevision = i.mRevision; mDocumentOwner = i.mDocumentOwner; Editors = i.mEditors.ConvertAll(x=>db.Factory.Duplicate(i.mDatabase[x]) as IfcActorSelect); mCreationTime = i.mCreationTime; mLastRevisionTime = i.mLastRevisionTime; mElectronicFormat = i.mElectronicFormat; if(i.mSSElectronicFormat > 0) mSSElectronicFormat = db.Factory.Duplicate(i.mDatabase[i.mSSElectronicFormat]).mIndex; //if(i.mValidFrom > 0) // ValidFrom = db.Factory.Duplicate( i.ValidFrom) as IfcCalendarDate; //if(i.mValidUntil > 0) // ValidUntil = db.Factory.Duplicate( i.ValidUntil) as IfcCalendarDate; #warning todo mConfidentiality = i.mConfidentiality; mStatus = i.mStatus; }