// 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)); }
// 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)); }