Esempio n. 1
0
        public IList <Element> GetBy(RevitParameter valRevitParameter, List <ElementId> valCategoryElementId, string valValue)
        {
            IList <Element> vResult        = new List <Element>();
            bool            vIsParse       = false;
            double          vData          = 0;
            string          vValueToString = valValue;


            if (!StringClasses.lstNames().Contains(valRevitParameter.Name))
            {
                if (IsParsed(valValue, out vData))
                {
                    valValue = vData.ToString();
                    vIsParse = true;
                }
            }



            LibNumeric insLibNumeric = new LibNumeric();

            if (insLibNumeric.IsDouble(valValue) && !StringClasses.lstNames().Contains(valRevitParameter.Name))
            {
                vResult = GetElementValueDouble(valRevitParameter, valCategoryElementId, valValue);
                if (vResult.Count == 0)
                {
                    if (vIsParse)
                    {
                        vResult = GetElementValueDoubleLessOrEqual(valRevitParameter, valCategoryElementId, valValue, vValueToString);

                        if (vResult.Count == 0)
                        {
                            vResult = GetElementValueDoubleGreaterOrEqual(valRevitParameter, valCategoryElementId, valValue, vValueToString);
                        }

                        if (vResult.Count == 0)
                        {
                            vResult = GetElementValueIntOrstring(valRevitParameter, valCategoryElementId, valValue);

                            if (vResult.Count <= 0)
                            {
                                vResult = FindByInternalValue(valRevitParameter, valCategoryElementId, valValue);
                            }
                        }
                    }
                }
            }
            else
            {
                vResult = GetElementValueIntOrstring(valRevitParameter, valCategoryElementId, valValue);

                if (vResult.Count <= 0)
                {
                    vResult = FindByInternalValue(valRevitParameter, valCategoryElementId, valValue);
                }
            }
            return(vResult);
        }
Esempio n. 2
0
        private IList <Element> FindByInternalValue(RevitParameter valRevitParameter, List <ElementId> valCategoryElementId, string valValue)
        {
            LibNumeric     vLibNumeric     = new LibNumeric();
            List <Element> vResult         = new List <Element>();
            IList <string> vInternalValues = GetInternalValue(valValue);

            foreach (var vInternalValue in vInternalValues)
            {
                if (vLibNumeric.IsDouble(vInternalValue))
                {
                    IList <Element> vSearchResult = GetElementValueDouble(valRevitParameter, valCategoryElementId, vInternalValue);
                    vResult = vResult.Concat(vSearchResult).ToList();
                }
            }
            return(vResult);
        }
Esempio n. 3
0
        public IList <Element> GetElementValueDoubleGreaterOrEqual(RevitParameter valRevitParameter, List <ElementId> valCategoryElementId, string valValue, string valValueToString)
        {
            IList <Element> vResult     = new List <Element>();
            IList <Element> vResultTemp = new List <Element>();

            foreach (var vCategoryId in valCategoryElementId)
            {
                BuiltInCategory        vBuiltInCategory = (BuiltInCategory)vCategoryId.IntegerValue;
                ParameterValueProvider vPovider         = new ParameterValueProvider(valRevitParameter.ElementId);
                string vRulestring = valValue;
                FilteredElementCollector vCollector = new FilteredElementCollector(_Doc);
                vCollector.OfCategory(vBuiltInCategory);
                LibNumeric insLibNumeric = new LibNumeric();
                double     ruleValDb     = 0.0;
                if (insLibNumeric.IsDouble(valValue))
                {
                    Double vNum = 0;
                    Double.TryParse(valValue, out vNum);
                    ruleValDb = vNum + 0.001;
                }
                ParameterValueProvider      pvp  = new ParameterValueProvider(valRevitParameter.ElementId);
                FilterNumericGreaterOrEqual fnrv = new FilterNumericGreaterOrEqual();
                var vFilterDoubleRule            = new FilterDoubleRule(pvp, fnrv, ruleValDb, 10e-10);
                var epf = new ElementParameterFilter(vFilterDoubleRule);
                vCollector.WherePasses(epf);
                IList <Element> vElements = vCollector.ToElements();
                if (vElements != null)
                {
                    if (vElements.Count > 0)
                    {
                        vResultTemp = vElements.Concat(vElements).ToList();
                    }
                }
            }
            vResult = GetElementValueToString(valRevitParameter, vResultTemp, valValueToString, valValue);
            return(vResult);
        }