internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
if (xml.HasAttribute("Location"))
Location = xml.Attributes["Location"].Value;
if (xml.HasAttribute("Identification"))
Identification = xml.Attributes["Identification"].Value;
if (xml.HasAttribute("Name"))
Name = xml.Attributes["Name"].Value;
foreach (XmlNode child in xml.ChildNodes)
{
string name = child.Name;
if (string.Compare(name, "HasExternalReferences") == 0)
{
List<IfcExternalReferenceRelationship> references = new List<IfcExternalReferenceRelationship>(child.ChildNodes.Count);
foreach (XmlNode cn in child.ChildNodes)
{
IfcExternalReferenceRelationship r = mDatabase.ParseXml<IfcExternalReferenceRelationship>(cn as XmlElement);
if (r != null)
references.Add(r);
}
mHasExternalReferences = references;
}
else if (string.Compare(name, "HasConstraintRelationships") == 0)
{
foreach (XmlNode cn in child.ChildNodes)
{
IfcResourceConstraintRelationship r = mDatabase.ParseXml<IfcResourceConstraintRelationship>(cn as XmlElement);
if (r != null)
r.addRelated(this);
}
}
else if (string.Compare(name, "ExternalReferenceForResources") == 0)
{
foreach (XmlNode cn in child.ChildNodes)
{
IfcExternalReferenceRelationship r = mDatabase.ParseXml<IfcExternalReferenceRelationship>(cn as XmlElement);
if (r != null)
r.addRelated(this);
}
}
}
}
internal override void SetXML(XmlElement xml, BaseClassIfc host, HashSet<int> processed)