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, "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));
             }
         }
     }
 }
Beispiel #3
0
        public override string WhereRule()
        {
            string baseErr = base.WhereRule();

            if (RelatedObjects.Contains(RelatingActor))
            {
                baseErr +=
                    "WR1 RelAssignsToActor: The RelatingActor shall not be contained in the List of RelatedObjects.";
            }
            return(baseErr);
        }
        internal override void parseJObject(JObject obj)
        {
            base.parseJObject(obj);
            JObject jobj = obj.GetValue("RelatingObject", StringComparison.InvariantCultureIgnoreCase) as JObject;

            if (jobj != null)
            {
                RelatingObject = mDatabase.ParseJObject <IfcObjectDefinition>(jobj);
            }
            RelatedObjects.AddRange(mDatabase.extractJArray <IfcObjectDefinition>(obj.GetValue("RelatedObjects", StringComparison.InvariantCultureIgnoreCase) as JArray));
        }
Beispiel #5
0
 public override string WhereRule()
 {
     if (RelatedObjects.Count(r => r.GetType() == RelatingObject.GetType()) != RelatedObjects.Count)
     {
         return
             ("WR1 RelNests : The type of the RelatingObject shall always be the same as the type of each RelatedObject, i.e. the RelatingObject and all RelatedObject's are of the same type.\n");
     }
     else
     {
         return("");
     }
 }
 internal override void parseJObject(JObject obj)
 {
     base.parseJObject(obj);
     RelatedObjects.AddRange(mDatabase.extractJArray <IfcObjectDefinition>(obj.GetValue("RelatedObjects", StringComparison.InvariantCultureIgnoreCase) as JArray));                   JToken token = obj.GetValue("RelatedObjectsType", StringComparison.InvariantCultureIgnoreCase);
     if (token != null)
     {
         if (!Enum.TryParse <IfcObjectTypeEnum>(token.Value <string>(), true, out mRelatedObjectsType))
         {
             mRelatedObjectsType = IfcObjectTypeEnum.NOTDEFINED;
         }
     }
 }
Beispiel #7
0
        public override string GetStepParameters()
        {
            var parameters = new List <string>();

            parameters.Add(GlobalId != null ? GlobalId.ToStepValue() : "$");
            parameters.Add(OwnerHistory != null ? OwnerHistory.ToStepValue() : "$");
            parameters.Add(Name != null ? Name.ToStepValue() : "$");
            parameters.Add(Description != null ? Description.ToStepValue() : "$");
            parameters.Add(RelatedObjects != null ? RelatedObjects.ToStepValue() : "$");
            parameters.Add(RelatingPropertyDefinition != null ? RelatingPropertyDefinition.ToStepValue() : "$");

            return(string.Join(", ", parameters.ToArray()));
        }
        protected override void setJSON(JObject obj, BaseClassIfc host, SetJsonOptions options)
        {
            base.setJSON(obj, host, options);
            JArray array = new JArray();

            if (!RelatedObjects.Contains(host))
            {
                foreach (IfcObjectDefinition od in RelatedObjects)
                {
                    array.Add(od.getJson(this, options));
                }
                obj["RelatedObjects"] = array;
            }
        }
        public override string WhereRule()
        {
            string baseErr = base.WhereRule();

            if (RelatedObjects.Where(o => o is IfcFeatureElementSubtraction || o is IfcVirtualElement).Count() > 0)
            {
                baseErr +=
                    "WR21 RelAssociatesMaterial: The material information must not be associated to a substraction feature (such as an opening) or to a virtual element.";
            }
            if (RelatedObjects.Where(o => !(o is IfcProduct || o is IfcTypeProduct)).Count() > 0)
            {
                baseErr +=
                    "WR22 RelAssociatesMaterial: The material information, using MaterialSelect should be associated to a product occurrence.";
            }
            return(baseErr);
        }
        internal override void parseJObject(JObject obj)
        {
            base.parseJObject(obj);
            JArray array = obj.GetValue("RelatedObjects", StringComparison.InvariantCultureIgnoreCase) as JArray;

            if (array != null)
            {
                RelatedObjects.AddRange(mDatabase.extractJArray <IfcObject>(array));
            }
            JObject jobj = obj.GetValue("RelatingType", StringComparison.InvariantCultureIgnoreCase) as JObject;

            if (jobj != null)
            {
                RelatingType = extractObject <IfcTypeObject>(jobj);
            }
        }
Beispiel #11
0
        internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary <int, XmlElement> processed)
        {
            base.SetXML(xml, host, processed);
            List <IfcDefinitionSelect> related = RelatedObjects.ToList();

            if (related.Count == 1 && related[0] == host)
            {
                return;
            }
            XmlElement element = xml.OwnerDocument.CreateElement("RelatedObjects", mDatabase.mXmlNamespace);

            xml.AppendChild(element);
            foreach (IfcDefinitionSelect r in related)
            {
                element.AppendChild(mDatabase[r.Index].GetXML(xml.OwnerDocument, "", this, processed));
            }
        }
        /// <summary>
        /// Tests the express where-clause specified in param 'clause'
        /// </summary>
        /// <param name="clause">The express clause to test</param>
        /// <returns>true if the clause is satisfied.</returns>
        public bool ValidateClause(IfcRelAssociatesClause clause)
        {
            var retVal = false;

            try
            {
                switch (clause)
                {
                case IfcRelAssociatesClause.WR21:
                    retVal = Functions.SIZEOF(RelatedObjects.Where(temp => !((Functions.TYPEOF(temp).Contains("IFC2X3.IFCOBJECTDEFINITION")) || (Functions.TYPEOF(temp).Contains("IFC2X3.IFCPROPERTYDEFINITION"))))) == 0;
                    break;
                }
            } catch (Exception ex) {
                var log = Validation.ValidationLogging.CreateLogger <Xbim.Ifc2x3.Kernel.IfcRelAssociates>();
                log?.LogError(string.Format("Exception thrown evaluating where-clause 'IfcRelAssociates.{0}' for #{1}.", clause, EntityLabel), ex);
            }
            return(retVal);
        }
Beispiel #13
0
        /// <summary>
        /// Tests the express where-clause specified in param 'clause'
        /// </summary>
        /// <param name="clause">The express clause to test</param>
        /// <returns>true if the clause is satisfied.</returns>
        public bool ValidateClause(IfcRelAggregatesClause clause)
        {
            var retVal = false;

            try
            {
                switch (clause)
                {
                case IfcRelAggregatesClause.NoSelfReference:
                    retVal = Functions.SIZEOF(RelatedObjects.Where(Temp => Object.ReferenceEquals(RelatingObject, Temp))) == 0;
                    break;
                }
            } catch (Exception ex) {
                var log = Validation.ValidationLogging.CreateLogger <Xbim.Ifc4.Kernel.IfcRelAggregates>();
                log?.LogError(string.Format("Exception thrown evaluating where-clause 'IfcRelAggregates.{0}' for #{1}.", clause, EntityLabel), ex);
            }
            return(retVal);
        }
Beispiel #14
0
 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);
                 }
             }
         }
     }
 }
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            if (obj == this)
            {
                return(true);
            }

            return(obj is SearchCatalogObjectsResponse other &&
                   ((Context == null && other.Context == null) || (Context?.Equals(other.Context) == true)) &&
                   ((Errors == null && other.Errors == null) || (Errors?.Equals(other.Errors) == true)) &&
                   ((Cursor == null && other.Cursor == null) || (Cursor?.Equals(other.Cursor) == true)) &&
                   ((Objects == null && other.Objects == null) || (Objects?.Equals(other.Objects) == true)) &&
                   ((RelatedObjects == null && other.RelatedObjects == null) || (RelatedObjects?.Equals(other.RelatedObjects) == true)) &&
                   ((LatestTime == null && other.LatestTime == null) || (LatestTime?.Equals(other.LatestTime) == true)));
        }
Beispiel #16
0
 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);
         }
     }
 }
        public override int GetHashCode()
        {
            int hashCode = -544883463;

            if (Context != null)
            {
                hashCode += Context.GetHashCode();
            }

            if (Errors != null)
            {
                hashCode += Errors.GetHashCode();
            }

            if (Cursor != null)
            {
                hashCode += Cursor.GetHashCode();
            }

            if (Objects != null)
            {
                hashCode += Objects.GetHashCode();
            }

            if (RelatedObjects != null)
            {
                hashCode += RelatedObjects.GetHashCode();
            }

            if (LatestTime != null)
            {
                hashCode += LatestTime.GetHashCode();
            }

            return(hashCode);
        }
 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);
 }
 internal override void parseJObject(JObject obj)
 {
     base.parseJObject(obj);
     RelatedObjects.AddRange(mDatabase.extractJArray <IfcDefinitionSelect>(obj.GetValue("RelatedObjects", StringComparison.InvariantCultureIgnoreCase) as JArray));
 }