Client/Desktop/KMBIM3.0/KMBIM3.0_23.08.16_수정최종/Cmd/KMBIMConfig.cs

102 lines
4.0 KiB
C#

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
{
/// <summary>
/// Implements interface IExternalCommand of Revit API.
/// </summary>
[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
}
}