internal override void ParseXml(XmlElement xml) { base.ParseXml(xml); if (xml.HasAttribute("ObjectType")) { ObjectType = xml.Attributes["ObjectType"].Value; } foreach (XmlNode child in xml.ChildNodes) { string name = child.Name; if (string.Compare(name, "IsTypedBy") == 0) { mIsTypedBy = mDatabase.ParseXml <IfcRelDefinesByType>(child as XmlElement); } if (string.Compare(name, "IsDefinedBy") == 0) { foreach (XmlNode node in child.ChildNodes) { IfcRelDefinesByProperties rd = mDatabase.ParseXml <IfcRelDefinesByProperties>(node as XmlElement); if (rd != null) { rd.Assign(this); } } } } }
protected IfcObject(DatabaseIfc db, IfcObject o, bool downStream) : base(db, o,downStream)//, bool downStream) : base(db, o, downStream) { mObjectType = o.mObjectType; foreach (IfcRelDefinesByProperties rdp in o.mIsDefinedBy) { IfcRelDefinesByProperties drdp = db.Factory.Duplicate(rdp) as IfcRelDefinesByProperties; drdp.Assign(this); } if(o.mIsTypedBy != null) IsTypedBy = db.Factory.Duplicate(o.mIsTypedBy,false) as IfcRelDefinesByType; }