102 lines
4.0 KiB
C#
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
|
|
}
|
|
}
|
|
|