Ejemplo n.º 1
0
        object Process(ExpectedValueEnum expectedValueType)
        {
            object                 val    = null;
            AntlrInputStream       input  = new AntlrInputStream(paramExprContent);
            ParamExprGrammarLexer  lexer  = new ParamExprGrammarLexer(input);
            CommonTokenStream      tokens = new CommonTokenStream(lexer);
            ParamExprGrammarParser parser = new ParamExprGrammarParser(tokens);

            parser.RemoveErrorListeners();
            ParamExprLogger.resetStream();
            parser.AddErrorListener(new ParamExprErrorListener());
            IParseTree        tree   = parser.param_expr();
            ParseTreeWalker   walker = new ParseTreeWalker();
            ParamExprListener eval   = new ParamExprListener(tokens);

            eval.RevitElement       = _element;
            eval.RevitParameterName = _paramName;

            try
            {
                walker.Walk(eval, tree);
                if (eval.HasValue)
                {
                    val      = eval.Value;
                    UnitType = eval.UnitType;
                }
            }
            catch
            {
            }
            return(val);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Check for a special parameter value containing the Paramater expression
        /// </summary>
        /// <param name="paramValue">the Parameter value</param>
        /// <param name="element">the Element</param>
        /// <param name="paramName">the Parameter Name</param>
        /// <returns>the resolved Parameter Expression value or null if not resolved</returns>
        public static ParamExprResolver CheckForParameterExpr(string paramValue, Element element, string paramName, ExpectedValueEnum expectedDataType, out object propertyValue)
        {
            propertyValue = null;
            string paramValuetrim = paramValue.Trim();

            if (IsParameterExpr(paramValue))
            {
                ParamExprResolver pResv = new ParamExprResolver(element, paramName, paramValuetrim);
                switch (expectedDataType)
                {
                case ExpectedValueEnum.STRINGVALUE:
                    propertyValue = pResv.GetStringValue();
                    break;

                case ExpectedValueEnum.DOUBLEVALUE:
                    propertyValue = pResv.GetDoubleValue();
                    break;

                case ExpectedValueEnum.INTVALUE:
                    propertyValue = pResv.GetIntValue();
                    break;

                default:
                    break;
                }
                return(pResv);
            }

            return(null);
        }