Пример #1
0
 internal override void ParseXml(XmlElement xml)
 {
     base.ParseXml(xml);
     foreach (XmlNode child in xml.ChildNodes)
     {
         string name = child.Name;
         if (string.Compare(name, "HasAssignments") == 0)
         {
             foreach (XmlNode node in child.ChildNodes)
             {
                 IfcRelAssigns ra = mDatabase.ParseXml <IfcRelAssigns>(node as XmlElement);
                 if (ra != null)
                 {
                     ra.AddRelated(this);
                 }
             }
         }
         else if (string.Compare(name, "IsNestedBy") == 0)
         {
             foreach (XmlNode node in child.ChildNodes)
             {
                 IfcRelNests rn = mDatabase.ParseXml <IfcRelNests>(node as XmlElement);
                 if (rn != null)
                 {
                     rn.RelatingObject = this;
                 }
             }
         }
         else if (string.Compare(name, "IsDecomposedBy") == 0)
         {
             foreach (XmlNode node in child.ChildNodes)
             {
                 IfcRelAggregates ra = mDatabase.ParseXml <IfcRelAggregates>(node as XmlElement);
                 if (ra != null)
                 {
                     ra.RelatingObject = this;
                 }
             }
         }
         else if (string.Compare(name, "HasAssociations") == 0)
         {
             foreach (XmlNode node in child.ChildNodes)
             {
                 IfcRelAssociates ra = mDatabase.ParseXml <IfcRelAssociates>(node as XmlElement);
                 if (ra != null)
                 {
                     ra.addAssociation(this);
                 }
             }
         }
     }
 }
Пример #2
0
		protected IfcObjectDefinition(DatabaseIfc db, IfcObjectDefinition o) : base (db, o)//, bool downStream) : base(db, o)
		{
			foreach(IfcRelAssigns assigns in o.mHasAssignments)
			{
				IfcRelAssigns dup = db.Factory.Duplicate(assigns) as IfcRelAssigns;
				dup.AddRelated(this);
			}
			if (o.mDecomposes != null)
				(db.Factory.Duplicate(o.mDecomposes, false) as IfcRelAggregates).addObject(this);
			foreach (IfcRelAssociates associates in o.mHasAssociations)
			{
				IfcRelAssociates dup = db.Factory.Duplicate(associates) as IfcRelAssociates;
				dup.addAssociation(this);
			}
			if (mHasContext != null)
				(db.Factory.Duplicate(mHasContext, false) as IfcRelDeclares).AddRelated(this);	
		}