Example #1
0
        // find engine path with given version
        // @handled @logs
        private static PyRevitEngine FindEngine(string enginesDir, int engineVer = 000)
        {
            // engines are stored in directory named XXX based on engine version (e.g. 273)
            // return latest if zero
            if (engineVer == 000)
            {
                PyRevitEngine latestEnginerVer = new PyRevitEngine(000, null);

                foreach (var engine in FindEngines(enginesDir))
                {
                    if (engine.Version > latestEnginerVer.Version)
                    {
                        latestEnginerVer = engine;
                    }
                }

                logger.Debug("Latest engine path \"{0}\"", latestEnginerVer.Path ?? "NULL");
                return(latestEnginerVer);
            }
            else
            {
                foreach (var engine in FindEngines(enginesDir))
                {
                    if (engineVer == engine.Version)
                    {
                        logger.Debug("Engine path \"{0}\"", engine.Path ?? "NULL");
                        return(engine);
                    }
                }
            }

            throw new pyRevitException(string.Format("Engine \"{0}\" is not available at \"{1}\"", engineVer, enginesDir));
        }
Example #2
0
        // find engine path with given version
        // @handled @logs
        private static PyRevitEngine FindEngine(string enginesDir, int engineVer = 000)
        {
            // engines are stored in directory named XXX based on engine version (e.g. 273)
            // return latest if zero
            if (engineVer == 000)
            {
                PyRevitEngine latestEngine = null;

                // FindEngines will throw an error if engine directory is missing
                foreach (var engine in FindEngines(enginesDir))
                {
                    if (engine.Version > engineVer)
                    {
                        latestEngine = engine;
                    }
                }

                if (latestEngine != null && latestEngine.Version != engineVer)
                {
                    logger.Debug("Latest engine path \"{0}\"", latestEngine.Path ?? "NULL");
                    return(latestEngine);
                }
                else
                {
                    throw new pyRevitException(
                              string.Format("Error determining latest engine from \"{0}\"", enginesDir)
                              );
                }
            }
            else
            {
                foreach (var engine in FindEngines(enginesDir))
                {
                    if (engine.Version == engineVer)
                    {
                        logger.Debug("Engine path \"{0}\"", engine.Path ?? "NULL");
                        return(engine);
                    }
                }
            }

            throw new pyRevitException(string.Format("Engine \"{0}\" is not available at \"{1}\"", engineVer, enginesDir));
        }