internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
foreach (XmlNode child in xml.ChildNodes)
{
string name = child.Name;
if (string.Compare(name, "ShapeRepresentations") == 0)
{
List<IfcShapeModel> shapes = new List<IfcShapeModel>(child.ChildNodes.Count);
foreach (XmlNode cn in child.ChildNodes)
{
IfcShapeModel s = mDatabase.ParseXml<IfcShapeModel>(cn as XmlElement);
if (s != null)
shapes.Add(s);
}
ShapeRepresentations = shapes;
}
else if (string.Compare(name, "PartOfProductDefinitionShape") == 0)
PartOfProductDefinitionShape = mDatabase.ParseXml<IfcProductRepresentationSelect>(child as XmlElement);
}
if (xml.HasAttribute("Name"))
Name = xml.Attributes["Name"].Value;
if (xml.HasAttribute("Description"))
Description = xml.Attributes["Description"].Value;
if (xml.HasAttribute("ProductDefinitional"))
Enum.TryParse<IfcLogicalEnum>(xml.Attributes["ProductDefinitional"].Value,true, out mProductDefinitional);
}