/// <summary> /// Returns the first quantity in the property set pSetName of name qName /// </summary> /// <typeparam name="TQType"></typeparam> /// <param name="pSetName"></param> /// <param name="qName"></param> /// <returns></returns> public TQType GetQuantity <TQType>(string pSetName, string qName) where TQType : IIfcPhysicalQuantity { var propSets = IsDefinedBy.SelectMany(r => r.RelatingPropertyDefinition.PropertySetDefinitions); var rel = propSets.FirstOrDefault(r => r is IfcElementQuantity && r.Name == pSetName); if (rel == null) { return(default(TQType)); } var eQ = rel as IfcElementQuantity; return(eQ == null ? default(TQType) : eQ.Quantities.OfType <TQType>().FirstOrDefault(q => q.Name == qName)); }
/// <summary> /// Returns the first quantity that matches the quantity name /// </summary> /// <typeparam name="TQType"></typeparam> /// <param name="qName"></param> /// <returns></returns> public TQType GetQuantity <TQType>(string qName) where TQType : IIfcPhysicalQuantity { var qSets = IsDefinedBy.SelectMany(r => r.RelatingPropertyDefinition.PropertySetDefinitions).OfType <IIfcElementQuantity>(); return(qSets.SelectMany(qset => qset.Quantities).OfType <TQType>().FirstOrDefault(q => q.Name == qName)); }
public IIfcElementQuantity GetElementQuantity(string pSetName, bool caseSensitive = true) { var qSets = IsDefinedBy.SelectMany(r => r.RelatingPropertyDefinition.PropertySetDefinitions).OfType <IfcElementQuantity>(); return(qSets.FirstOrDefault(qset => string.Compare(pSetName, qset.Name, !caseSensitive) == 0)); }