internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
if (xml.HasAttribute("Name"))
Name = xml.Attributes["Name"].Value;
if (xml.HasAttribute("Description"))
Description = xml.Attributes["Description"].Value;
if (xml.HasAttribute("ConstraintGrade"))
Enum.TryParse<IfcConstraintEnum>(xml.Attributes["ConstraintGrade"].Value, true, out mConstraintGrade);
if (xml.HasAttribute("ConstraintSource"))
ConstraintSource = xml.Attributes["ConstraintSource"].Value;
foreach (XmlNode child in xml.ChildNodes)
{
string name = child.Name;
if (string.Compare(name, "CreatingActor") == 0)
CreatingActor = mDatabase.ParseXml<IfcActorSelect>(child as XmlElement);
else if (string.Compare(name, "HasExternalReferences") == 0)
{
foreach (XmlNode cn in child.ChildNodes)
{
IfcExternalReferenceRelationship r = mDatabase.ParseXml<IfcExternalReferenceRelationship>(cn as XmlElement);
if (r != null)
r.addRelated(this);
}
}
else if (string.Compare(name, "PropertiesForConstraint") == 0)
{
foreach (XmlNode cn in child.ChildNodes)
{
IfcResourceConstraintRelationship r = mDatabase.ParseXml<IfcResourceConstraintRelationship>(cn as XmlElement);
if (r != null)
r.RelatingConstraint = this;
}
}
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);
}
}
}
if (xml.HasAttribute("UserDefinedGrade"))
UserDefinedGrade = xml.Attributes["UserDefinedGrade"].Value;
}
internal override void SetXML(XmlElement xml, BaseClassIfc host, HashSet<int> processed)