Пример #1
0
		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;
		}
Пример #2
0
		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("'", ""); }
Пример #3
0
		internal IfcCompositeProfileDef(IfcCompositeProfileDef i) : base(i) { mProfiles = new List<int>(i.mProfiles.ToArray()); mLabel = i.mLabel; }
Пример #4
0
		internal new static IfcCompositeProfileDef Parse(string strDef) { IfcCompositeProfileDef p = new IfcCompositeProfileDef(); int ipos = 0; parseFields(p, ParserSTEP.SplitLineFields(strDef), ref ipos); return p; }