internal IfcMaterialProfileSet(string name, List<IfcMaterialProfile> profiles) : base(profiles[0].mDatabase) { List<IfcProfileDef> defs = new List<IfcProfileDef>(profiles.Count); for (int icounter = 0; icounter < profiles.Count; icounter++) { IfcMaterialProfile mp = profiles[icounter]; if (mp.ToMaterialProfileSet == null) mp.ToMaterialProfileSet = this; else throw new Exception("Material Profile can be assigned to only a single profile set"); mMaterialProfiles.Add(mp.mIndex); if (mp.mProfile > 0) defs.Add(mDatabase.mIfcObjects[mp.mProfile] as IfcProfileDef); } if (defs.Count > 0) mCompositeProfile = new IfcCompositeProfileDef(name, defs, "").mIndex; }
internal static void parseFields(IfcCompositeProfileDef p, List<string> arrFields, ref int ipos) { IfcProfileDef.parseFields(p, arrFields, ref ipos); p.mProfiles = ParserSTEP.SplitListLinks(arrFields[ipos++]); p.mLabel = arrFields[ipos++].Replace("'", ""); }
internal IfcCompositeProfileDef(IfcCompositeProfileDef i) : base(i) { mProfiles = new List<int>(i.mProfiles.ToArray()); mLabel = i.mLabel; }
internal new static IfcCompositeProfileDef Parse(string strDef) { IfcCompositeProfileDef p = new IfcCompositeProfileDef(); int ipos = 0; parseFields(p, ParserSTEP.SplitLineFields(strDef), ref ipos); return p; }