using Autodesk.Revit.Creation; using Autodesk.Revit.UI; using KMBIM.Revit.Tools.License; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace KMBIM.Revit.Tools.Cmd { /// /// Implements interface IExternalCommand of Revit API. /// [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)] [Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)] [Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)] public class KMBIMConfigCommand : IExternalCommand { #region IExternalCommand Members private UIApplication uiapp = null; private UIDocument uidoc = null; private Autodesk.Revit.ApplicationServices.Application app = null; private Document doc = null; private Autodesk.Revit.Creation.Document createDoc = null; public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData, ref string message, Autodesk.Revit.DB.ElementSet elements) { try { var wm = WorkMain.GetInstance(); bool b1 = wm.IsValid; FormAuth frm = new FormAuth(); frm.ShowDialog(); bool b2 = wm.IsValid; if ((b1 == false && b2 == true) || (b1 == true && b2 == false)) { foreach (RibbonPanel pannel in commandData.Application.GetRibbonPanels("KMBIM")) { foreach (RibbonItem itm in pannel.GetItems()) { var bb = itm.ItemType; var tt = itm as SplitButton; string aa = itm.ItemText; //스플릿 버튼일 때 if(itm.ItemType == RibbonItemType.SplitButton) { SplitButton spb = itm as SplitButton; spb.Enabled = true; foreach(var spitm in spb.GetItems()) { //MessageBox.Show(spitm.Name+" / " + spitm.ItemText); if (spitm.Name == "높이") spitm.Enabled = true; else if (spitm.Name == "레벨연장") spitm.Enabled = true; else { spitm.Enabled = b2; } } } else//푸시 버튼일 때 { if (itm.Name == "계산") itm.Enabled = true; else if (itm.Name == "가대") itm.Enabled = true; else if (itm.Name == "높이") itm.Enabled = true; else if (itm.Name == "신축") itm.Enabled = true; else if (itm.Name == "레벨연장") itm.Enabled = true; else if (itm.Name == "묶음") itm.Enabled = true; else if (itm.Name == "인증") itm.Enabled = true; else { itm.Enabled = b2; } } } } } } catch (Exception ex) { message = ex.ToString(); return Autodesk.Revit.UI.Result.Failed; } return Autodesk.Revit.UI.Result.Succeeded; } #endregion } }