internal override void ParseXml(XmlElement xml)
		{
			base.ParseXml(xml);
			if (xml.HasAttribute("StartDistAlong"))
				double.TryParse(xml.Attributes["StartDistAlong"].Value, out mStartDistAlong);
			foreach (XmlNode child in xml.ChildNodes)
			{
				string name = child.Name;
				if (string.Compare(name, "Segments") == 0)
				{
					foreach (XmlNode cn in child.ChildNodes)
					{
						IfcAlignment2DHorizontalSegment s = mDatabase.ParseXml<IfcAlignment2DHorizontalSegment>(cn as XmlElement);
						if (s != null)
							Segments.Add(s);
					}
				}
			}
		}
 internal static IfcAlignment2DHorizontalSegment Parse(string strDef)
 {
     IfcAlignment2DHorizontalSegment a = new IfcAlignment2DHorizontalSegment(); int ipos = 0; parseFields(a, ParserSTEP.SplitLineFields(strDef), ref ipos); return(a);
 }
 internal static void parseFields(IfcAlignment2DHorizontalSegment s, List <string> arrFields, ref int ipos)
 {
     IfcAlignment2DSegment.parseFields(s, arrFields, ref ipos);
     s.mCurveGeometry = ParserSTEP.ParseLink(arrFields[ipos++]);
 }
 internal IfcAlignment2DHorizontalSegment(IfcAlignment2DHorizontalSegment p) : base(p)
 {
     mCurveGeometry = p.mCurveGeometry;
 }
 internal static void parseFields(IfcAlignment2DHorizontalSegment s, List<string> arrFields, ref int ipos)
 {
     IfcAlignment2DSegment.parseFields(s, arrFields, ref ipos);
     s.mCurveGeometry = ParserSTEP.ParseLink(arrFields[ipos++]);
 }
 internal static IfcAlignment2DHorizontalSegment Parse(string strDef)
 {
     IfcAlignment2DHorizontalSegment a = new IfcAlignment2DHorizontalSegment(); int ipos = 0; parseFields(a, ParserSTEP.SplitLineFields(strDef), ref ipos); return a;
 }
 internal IfcAlignment2DHorizontalSegment(IfcAlignment2DHorizontalSegment p)
     : base(p)
 {
     mCurveGeometry = p.mCurveGeometry;
 }