internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
if (xml.HasAttribute("BenchMark"))
Enum.TryParse<IfcBenchmarkEnum>(xml.Attributes["BenchMark"].Value, true, out mBenchMark);
if (xml.HasAttribute("ValueSource"))
ValueSource = xml.Attributes["ValueSource"].Value;
foreach (XmlNode child in xml.ChildNodes)
{
string name = child.Name;
if (string.Compare(name, "DataValue") == 0)
{
if(child.HasChildNodes)
mDataValueValue = extractValue(child.FirstChild);
if (mDataValueValue == null)
DataValue = mDatabase.ParseXml<IfcMetricValueSelect>(child as XmlElement);
}
else if (string.Compare(name, "ReferencePath") == 0)
ReferencePath = mDatabase.ParseXml<IfcReference>(child as XmlElement);
}
}