internal override void ParseXml(XmlElement xml)
 {
     base.ParseXml(xml);
     foreach (XmlNode child in xml.ChildNodes)
     {
         string name = child.Name;
         if (string.Compare(name, "RelatingLibrary") == 0)
         {
             if (child.HasChildNodes)
             {
                 RelatingLibrary = mDatabase.ParseXml <IfcLibrarySelect>(child.ChildNodes[0] as XmlElement);
             }
             else
             {
                 RelatingLibrary = mDatabase.ParseXml <IfcLibrarySelect>(child as XmlElement);
             }
         }
         if (string.Compare(name, "RelatedObjects") == 0)
         {
             foreach (XmlNode n in child.ChildNodes)
             {
                 RelatedObjects.Add(mDatabase.ParseXml <IfcDefinitionSelect>(n as XmlElement));
             }
         }
     }
 }
 internal override void ParseXml(XmlElement xml)
 {
     base.ParseXml(xml);
     foreach (XmlNode child in xml.ChildNodes)
     {
         string name = child.Name;
         if (string.Compare(name, "RelatedObjects") == 0)
         {
             foreach (XmlNode node in child.ChildNodes)
             {
                 IfcObjectDefinition od = mDatabase.ParseXml <IfcObjectDefinition>(node as XmlElement);
                 if (od != null)
                 {
                     RelatedObjects.Add(od);
                 }
             }
         }
     }
     if (xml.HasAttribute("RelatedObjectsType"))
     {
         if (!Enum.TryParse <IfcObjectTypeEnum>(xml.Attributes["GlobalId"].Value, true, out mRelatedObjectsType))
         {
             mRelatedObjectsType = IfcObjectTypeEnum.NOTDEFINED;
         }
     }
 }
 internal override void ParseXml(XmlElement xml)
 {
     base.ParseXml(xml);
     foreach (XmlNode child in xml.ChildNodes)
     {
         string name = child.Name;
         if (string.Compare(name, "RelatedObjects") == 0)
         {
             foreach (XmlNode cn in child.ChildNodes)
             {
                 IfcDefinitionSelect o = mDatabase.ParseXml <IfcDefinitionSelect>(cn as XmlElement);
                 if (o != null)
                 {
                     RelatedObjects.Add(o);
                 }
             }
         }
     }
 }
 internal override void ParseXml(XmlElement xml)
 {
     base.ParseXml(xml);
     foreach (XmlNode child in xml.ChildNodes)
     {
         string name = child.Name;
         if (string.Compare(name, "RelatedObjects") == 0)
         {
             foreach (XmlNode cn in child.ChildNodes)
             {
                 IfcObjectDefinition od = mDatabase.ParseXml <IfcObjectDefinition>(cn as XmlElement);
                 if (od != null)
                 {
                     RelatedObjects.Add(od);
                 }
             }
         }
         else if (string.Compare(name, "RelatingPropertyDefinition") == 0)
         {
             RelatingPropertyDefinition = mDatabase.ParseXml <IfcPropertySetDefinition>(child as XmlElement);
         }
     }
 }
 internal override void parseJObject(JObject obj)
 {
     base.parseJObject(obj);
     mDatabase.extractJArray <IfcObjectDefinition>(obj.GetValue("RelatedObjects", StringComparison.InvariantCultureIgnoreCase) as JArray).ForEach(x => RelatedObjects.Add(x));
     RelatingPropertyDefinition = mDatabase.ParseJObject <IfcPropertySetDefinition>(obj.GetValue("RelatingPropertyDefinition", StringComparison.InvariantCultureIgnoreCase) as JObject);
 }