public static string GetBundleDirExt(PyRevitBundleTypes bundleType) { switch (bundleType) { case PyRevitBundleTypes.Tab: return(PyRevitConsts.BundleTabPostfix); case PyRevitBundleTypes.Panel: return(PyRevitConsts.BundlePanelPostfix); case PyRevitBundleTypes.LinkButton: return(PyRevitConsts.BundleLinkButtonPostfix); case PyRevitBundleTypes.PushButton: return(PyRevitConsts.BundlePushButtonPostfix); case PyRevitBundleTypes.ToggleButton: return(PyRevitConsts.BundleToggleButtonPostfix); case PyRevitBundleTypes.SmartButton: return(PyRevitConsts.BundleSmartButtonPostfix); case PyRevitBundleTypes.PullDown: return(PyRevitConsts.BundlePulldownButtonPostfix); case PyRevitBundleTypes.Stack3: return(PyRevitConsts.BundleStack3Postfix); case PyRevitBundleTypes.Stack2: return(PyRevitConsts.BundleStack2Postfix); case PyRevitBundleTypes.SplitButton: return(PyRevitConsts.BundleSplitButtonPostfix); case PyRevitBundleTypes.SplitPushButton: return(PyRevitConsts.BundleSplitPushButtonPostfix); case PyRevitBundleTypes.PanelButton: return(PyRevitConsts.BundlePanelButtonPostfix); case PyRevitBundleTypes.NoButton: return(PyRevitConsts.BundleNoButtonPostfix); default: return(null); } }
private static string GetBundleTemplate(PyRevitBundleTypes bundleType, string templatesDir = null) { templatesDir = templatesDir != null ? templatesDir : PyRevitCLIAppCmds.GetTemplatesPath(); if (CommonUtils.VerifyPath(templatesDir)) { var bundleTempPath = Path.Combine(templatesDir, "template" + PyRevitBundle.GetBundleDirExt(bundleType)); if (CommonUtils.VerifyPath(bundleTempPath)) { return(bundleTempPath); } } else { throw new pyRevitException( string.Format("Templates directory does not exist at \"{0}\"", templatesDir) ); } return(null); }
InitBundle(bool tab, bool panel, bool panelopt, bool pull, bool split, bool splitpush, bool push, bool smart, bool command, string bundleName, string templatesDir, bool useTemplate) { // determine bundle PyRevitBundleTypes bundleType = PyRevitBundleTypes.Unknown; if (tab) { bundleType = PyRevitBundleTypes.Tab; } else if (panel) { bundleType = PyRevitBundleTypes.Panel; } else if (panelopt) { bundleType = PyRevitBundleTypes.PanelButton; } else if (pull) { bundleType = PyRevitBundleTypes.PullDown; } else if (split) { bundleType = PyRevitBundleTypes.SplitButton; } else if (splitpush) { bundleType = PyRevitBundleTypes.SplitPushButton; } else if (push) { bundleType = PyRevitBundleTypes.PushButton; } else if (smart) { bundleType = PyRevitBundleTypes.SmartButton; } else if (command) { bundleType = PyRevitBundleTypes.NoButton; } if (bundleType != PyRevitBundleTypes.Unknown) { if (bundleName != null) { var pwd = Directory.GetCurrentDirectory(); if (CommonUtils.EnsureFileNameIsUnique(pwd, bundleName)) { var bundleDir = Path.Combine( pwd, string.Format("{0}{1}", bundleName, PyRevitBundle.GetBundleDirExt(bundleType)) ); var bundleTempDir = GetBundleTemplate(bundleType, templatesDir: templatesDir); if (useTemplate && bundleTempDir != null) { CommonUtils.CopyDirectory(bundleTempDir, bundleDir); Console.WriteLine( string.Format("Bundle directory created from template: \"{0}\"", bundleDir) ); } else { if (!Directory.Exists(bundleDir)) { var dinfo = Directory.CreateDirectory(bundleDir); Console.WriteLine(string.Format("Bundle directory created: \"{0}\"", bundleDir)); } else { throw new pyRevitException("Directory already exists."); } } } else { throw new pyRevitException( string.Format("Another bundle with name \"{0}\" already exists.", bundleName) ); } } } }
public static bool IsType(string bundlePath, PyRevitBundleTypes bundleType) => bundlePath.ToLower().EndsWith(GetBundleDirExt(bundleType));