Client/Desktop/KMBIM3.0/23.10.16/App.cs

1285 lines
69 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//
// (C) Copyright 2003-2014 by Autodesk, Inc.
//
// Permission to use, copy, modify, and distribute this software in
// object code form for any purpose and without fee is hereby granted,
// provided that the above copyright notice appears in all copies and
// that both that copyright notice and the limited warranty and
// restricted rights notice below appear in all supporting
// documentation.
//
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
// UNINTERRUPTED OR ERROR FREE.
//
// Use, duplication, or disclosure by the U.S. Government is subject to
// restrictions set forth in FAR 52.227-19 (Commercial Computer
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
// (Rights in Technical Data and Computer Software), as applicable.
//
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Autodesk.Revit;
using System.Diagnostics;
using System.IO;
using System.Windows.Media;
using System.Windows.Forms;
using System.Windows.Media.Imaging;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.UI.Events;
using System.Windows;
using System.ComponentModel;
using KMBIM.Revit.Tools.Properties;
using System.Threading;
using System.Globalization;
using Autodesk.Revit.DB.Events;
using KMBIM.Revit.Tools.AvoidObstruction;
using KMBIM.Revit.Tools.Utils;
using KMBIM.Revit.Tools;
using Microsoft.Win32;
using KMBIM.Revit.Tools.License;
using KMBIM.Revit.Tools.Cmd.Hanger;
using System.Drawing;
using KDCS.Utils;
using System.Windows.Interop;
using System.Runtime.InteropServices;
using System.Runtime.ExceptionServices;
using KMBIM.Revit.Tools.Cmd.Piping;
namespace KMBIM.Revit.Tools
{
[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 App : IExternalApplication
{
internal static App thisApp = null;
internal static DisplayUnit CurrentDisplayUnit { get; set; }
internal static List<string> hanger_families = new List<string>();
// ExternalCommands assembly path
static string AddInPath = typeof(App).Assembly.Location;
// Button icons directory
static string ButtonIconsFolder = Path.GetDirectoryName(AddInPath);
// uiApplication
public static UIApplication uiApplication = null;
static Utils.WindowWrapper _hWndRevit = null;
public Form_SetPipeTypeCode m_wfSetPipeTypeCode { get; set; } // 3.0
public FormAvoidObstruction m_wfAvoidObstruction { get; set; }
public FormPipeConnector m_wfPipeConnector { get; set; }
private bool bUseNewFeature2 = false; // Version 2<><32> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
/*
// <20><> Ȱ<><C8B0>ȭ <20><> ó<><C3B3>
/*
void onViewActivated(object sender, ViewActivatedEventArgs e)
{
Autodesk.Revit.DB.View vCurrent = e.CurrentActiveView;
Document doc = e.Document;
// ȭ<><C8AD> ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٲ<EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3>
if (doc.DisplayUnitSystem != App.CurrentDisplayUnit)
{
App.CurrentDisplayUnit = doc.DisplayUnitSystem;
// AddPushButtonImageManualPlacement();
}
return;
string pathname = doc.PathName;
TaskDialog.Show("asd", pathname);
string id = Convert.ToString(vCurrent.Id);
string name = vCurrent.Name;
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
string now = Convert.ToString(DateTime.Now);
string content = now + ", " + id + ", " + name + ", " + userName + "\n";
}
*/
#if _v3
public void OpenFormSetPipeTypeCode(ExternalCommandData commandData, UIApplication uiapp)
{
if (m_wfSetPipeTypeCode == null || m_wfSetPipeTypeCode.IsDisposed)
{
// A new handler to handle request posting by the dialog
PTC_RequestHandler handler = new PTC_RequestHandler();
// External Event for the dialog to use (to post requests)
ExternalEvent exEvent = ExternalEvent.Create(handler);
// We give the objects to the new dialog;
// The dialog becomes the owner responsible fore disposing them, eventually.
m_wfSetPipeTypeCode = new Form_SetPipeTypeCode(commandData, uiapp, exEvent, handler);
//<2F><>ȭ<EFBFBD><C8AD><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD>
Autodesk.Revit.DB.Rectangle rect = uiapp.MainWindowExtents;
m_wfSetPipeTypeCode.Location = new System.Drawing.Point(rect.Right - 300, rect.Top + 200);
}
}
public void ShowFormSetPipeTypeCode(ExternalCommandData commandData, UIApplication uiapp)
{
//If we do not have a dialog yet, create and show it
if (m_wfSetPipeTypeCode == null || m_wfSetPipeTypeCode.IsDisposed)
{
// A new handler to handle request posting by the dialog
PTC_RequestHandler handler = new PTC_RequestHandler();
// External Event for the dialog to use (to post requests)
ExternalEvent exEvent = ExternalEvent.Create(handler);
// We give the objects to the new dialog;
// The dialog becomes the owner responsible fore disposing them, eventually.
m_wfSetPipeTypeCode = new Form_SetPipeTypeCode(commandData, uiapp, exEvent, handler);
}
if (null == _hWndRevit)
{
Process process = Process.GetCurrentProcess();
IntPtr h = process.MainWindowHandle;
_hWndRevit = new WindowWrapper(h);
}
m_wfSetPipeTypeCode.Show(_hWndRevit);
}
public void WakeFormSetPipeTypeCode()
{
if (m_wfSetPipeTypeCode != null)
{
m_wfSetPipeTypeCode.WakeUp();
}
}
#endif
public void OpenFormAvoidObstruction(UIApplication uiapp)
{
// If we do not have a dialog yet, create and show it
if (m_wfAvoidObstruction == null || m_wfAvoidObstruction.IsDisposed)
{
// A new handler to handle request posting by the dialog
KDCSRequestHandler handler = new KDCSRequestHandler();
// External Event for the dialog to use (to post requests)
ExternalEvent exEvent = ExternalEvent.Create(handler);
// We give the objects to the new dialog;
// The dialog becomes the owner responsible fore disposing them, eventually.
m_wfAvoidObstruction = new FormAvoidObstruction(uiapp, exEvent, handler);
}
}
public void ShowFormAvoidObstruction(UIApplication uiapp)
{
// If we do not have a dialog yet, create and show it
if (m_wfAvoidObstruction == null || m_wfAvoidObstruction.IsDisposed)
{
// A new handler to handle request posting by the dialog
KDCSRequestHandler handler = new KDCSRequestHandler();
// External Event for the dialog to use (to post requests)
ExternalEvent exEvent = ExternalEvent.Create(handler);
// We give the objects to the new dialog;
// The dialog becomes the owner responsible fore disposing them, eventually.
m_wfAvoidObstruction = new FormAvoidObstruction(uiapp, exEvent, handler);
}
if (null == _hWndRevit)
{
Process process = Process.GetCurrentProcess();
IntPtr h = process.MainWindowHandle;
_hWndRevit = new WindowWrapper(h);
}
m_wfAvoidObstruction.Show(_hWndRevit);
}
public void WakeFormAvoidObstruction()
{
if (m_wfAvoidObstruction != null)
{
m_wfAvoidObstruction.WakeUp();
}
}
#region <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public void OpenFormPipeConnector(UIApplication uiapp)
{
// If we do not have a dialog yet, create and show it
if (m_wfPipeConnector == null || m_wfPipeConnector.IsDisposed)
{
// A new handler to handle request posting by the dialog
RequestHandlerPipeConnect handler = new RequestHandlerPipeConnect();
// External Event for the dialog to use (to post requests)
ExternalEvent exEvent = ExternalEvent.Create(handler);
// We give the objects to the new dialog;
// The dialog becomes the owner responsible fore disposing them, eventually.
m_wfPipeConnector = new FormPipeConnector(uiapp, exEvent, handler);
}
}
public void ShowFormPipeConnector(UIApplication uiapp, Element base_element, XYZ p1, Element target_element, XYZ p2)
{
// If we do not have a dialog yet, create and show it
if (m_wfPipeConnector == null || m_wfPipeConnector.IsDisposed)
{
// A new handler to handle request posting by the dialog
RequestHandlerPipeConnect handler = new RequestHandlerPipeConnect();
// External Event for the dialog to use (to post requests)
ExternalEvent exEvent = ExternalEvent.Create(handler);
// We give the objects to the new dialog;
// The dialog becomes the owner responsible fore disposing them, eventually.
m_wfPipeConnector = new FormPipeConnector(uiapp, exEvent, handler);
}
if (null == _hWndRevit)
{
Process process = Process.GetCurrentProcess();
IntPtr h = process.MainWindowHandle;
_hWndRevit = new WindowWrapper(h);
}
m_wfPipeConnector.Init(base_element, p1, target_element, p2);
m_wfPipeConnector.Show(_hWndRevit);
}
public void WakeFormPipeConnector()
{
if (m_wfPipeConnector != null)
{
m_wfPipeConnector.WakeUp();
}
}
#endregion
#region IExternalApplication Members
/// <summary>
/// Implement this method to implement the external application which should be called when
/// Revit starts before a file or default template is actually loaded.
/// </summary>
/// <param name="application">An object that is passed to the external application
/// which contains the controlled application.</param>
/// <returns>Return the status of the external application.
/// A result of Succeeded means that the external application successfully started.
/// Cancelled can be used to signify that the user cancelled the external operation at
/// some point.
/// If Failed is returned then Revit should inform the user that the external application
/// failed to load and the release the internal reference.</returns>
public Autodesk.Revit.UI.Result OnStartup(UIControlledApplication application)
{
try
{
FormAuth auth = new FormAuth();
auth.Init(false);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> auth.GetUseNewFeature()->True <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20><>.
bUseNewFeature2 = auth.GetUseNewFeature(); // <20><><EFBFBD><EFBFBD>-2: <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ο<EFBFBD>
bUseNewFeature2 = true;
AuthKey authKey = new AuthKey();
string strSerialNumber = string.Empty, strAuthCodeReg = string.Empty;
string strAC = string.Empty;
authKey.GetSerialNumber(ref strSerialNumber);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (strSerialNumber.CompareTo("GKDK110SBQR4HHTQMH6RV87") == 0)
{
var wm = WorkMain.GetInstance();
wm.IsValid = true;
}
//=======================================================================================
m_wfAvoidObstruction = null; // <20>浹(<28><><EFBFBD>ֹ<EFBFBD>) ȸ<><C8B8> <20><>ȭ<EFBFBD><C8AD><EFBFBD>ڰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>غ<EFBFBD> <20>ȵ<EFBFBD>.
#if _v3
m_wfSetPipeTypeCode = null;
#endif
thisApp = this; // static access to this application instance
App.CurrentDisplayUnit = DisplayUnit.METRIC;
application.ControlledApplication.DocumentOpened += new EventHandler<DocumentOpenedEventArgs>(DocumentOpened);
application.ControlledApplication.DocumentCreated += new EventHandler<DocumentCreatedEventArgs>(DocumentCreated);
//<2F><> <20>ٲٴ<D9B2> <20>̺<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
application.ViewActivated += new EventHandler<Autodesk.Revit.UI.Events.ViewActivatedEventArgs>(OnViewActivated);
application.ViewActivating += new EventHandler<Autodesk.Revit.UI.Events.ViewActivatingEventArgs>(OnViewActivating);
// create customer Ribbon Items
CreateRibbonPanel(application);
//application.ViewActivated += new EventHandler<Autodesk.Revit.UI.Events.ViewActivatedEventArgs>(onViewActivated);
// <20><><EFBFBD><EFBFBD>
//HangerSchema.SetAddInId(application.ActiveAddInId);
//HangerSchema.Init();
return Autodesk.Revit.UI.Result.Succeeded;
}
catch (Exception ex)
{
TaskDialog.Show("KMBIM.Revit.Tools", ex.ToString());
return Autodesk.Revit.UI.Result.Failed;
}
}
[HandleProcessCorruptedStateExceptions]
/// <summary>
/// Implement this method to implement the external application which should be called when
/// Revit is about to exit, Any documents must have been closed before this method is called.
/// </summary>
/// <param name="application">An object that is passed to the external application
/// which contains the controlled application.</param>
/// <returns>Return the status of the external application.
/// A result of Succeeded means that the external application successfully shutdown.
/// Cancelled can be used to signify that the user cancelled the external operation at
/// some point.
/// If Failed is returned then the Revit user should be warned of the failure of the external
/// application to shut down correctly.</returns>
public Autodesk.Revit.UI.Result OnShutdown(UIControlledApplication application)
{
//remove events
//List<RibbonPanel> myPanels = application.GetRibbonPanels();
//Autodesk.Revit.UI.ComboBox comboboxLevel = (Autodesk.Revit.UI.ComboBox)(myPanels[0].GetItems()[2]);
//application.ControlledApplication.DocumentCreated -= new EventHandler<
// Autodesk.Revit.DB.Events.DocumentCreatedEventArgs>(DocumentCreated);
return Autodesk.Revit.UI.Result.Succeeded;
}
#endregion
/// <summary>
/// This method is used to create RibbonSample panel, and add wall related command buttons to it:
/// 1. contains a SplitButton for user to create Non-Structural or Structural Wall;
/// 2. contains a StackedBotton which is consisted with one PushButton and two Comboboxes,
/// PushButon is used to reset all the RibbonItem, Comboboxes are use to select Level and WallShape
/// 3. contains a RadioButtonGroup for user to select WallType.
/// 4. Adds a Slide-Out Panel to existing panel with following functionalities:
/// 5. a text box is added to set mark for new wall, mark is a instance parameter for wall,
/// Eg: if user set text as "wall", then Mark for each new wall will be "wall1", "wall2", "wall3"....
/// 6. a StackedButton which consisted of a PushButton (delete all the walls) and a PulldownButton (move all the walls in X or Y direction)
/// </summary>
/// <param name="application">An object that is passed to the external application
/// which contains the controlled application.</param>
private void CreateRibbonPanel(UIControlledApplication application)
{
// KMBIM Revit X-Tools
string TabName = "KMBIM"; // <20><> <20≯<EFBFBD>
application.CreateRibbonTab(TabName);
var wm = WorkMain.GetInstance();
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//********ȯ<><EFBFBD><E6BCB3> <20>г<EFBFBD> <20>߰<EFBFBD>********
Autodesk.Revit.UI.RibbonPanel rpOptions = application.CreateRibbonPanel(TabName, "<22><><EFBFBD><EFBFBD>");
PushButtonData pbdOpts = new PushButtonData(<><C8AF>", <><C8AF>", AddInPath, "KMBIM.settings");
pbdOpts.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Option);
PushButton pbOpts = rpOptions.AddItem(pbdOpts) as PushButton;
pbOpts.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//********<2A><>ƿ<EFBFBD><C6BF>Ƽ <20>г<EFBFBD> <20>߰<EFBFBD>********
Autodesk.Revit.UI.RibbonPanel rpUtility = application.CreateRibbonPanel(TabName, "<22><>ƿ<EFBFBD><C6BF>Ƽ");
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
PushButtonData pbdCalPad = new PushButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>", AddInPath, "KMBIM.CalpadLoad");
pbdCalPad.ToolTip = Resources.Ext2Lvl_Desc;
pbdCalPad.LongDescription = Resources.Ext2Lvl_Desc;
pbdCalPad.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Calc);
PushButton pbCalPad = rpUtility.AddItem(pbdCalPad) as PushButton;
//<2F><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
pbCalPad.Enabled = true;
//pbCalPad.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//*<2A>ű<EFBFBD><C5B1><EFBFBD>*
//<2F>dz<EFBFBD>, <20><><EFBFBD><EFBFBD> <20><>ư <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><> <20><><EFBFBD><EFBFBD>ȭ)
if (bUseNewFeature2)
{
PushButtonData data = new PushButtonData("Toggle", "Off", AddInPath, "KMBIM.Copy_Zoom_State");
data.AvailabilityClassName = "ToggleButton.Availability";
//<2F>׸<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֱ<EFBFBD>
data.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Zoom_Syn);
data.ToolTip = "<22><> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.";
//PushButton pbtoggle = panel.AddItem(data) as PushButton;
//pbtoggle.Enabled = wm.IsValid;
_button = rpUtility.AddItem(data);
_button.Enabled = wm.IsValid;
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//*<2A>ű<EFBFBD><C5B1><EFBFBD>*
//yjh <20><><EFBFBD><EFBFBD> 23.08.22
if (bUseNewFeature2)
{
PushButtonData VisibleFilter = new PushButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>", AddInPath, "KMBIM.VisibleFilter");
VisibleFilter.ToolTip = Resources.Ext2Lvl_Desc;
VisibleFilter.LongDescription = Resources.Ext2Lvl_Desc;
VisibleFilter.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Lvl_Cor);
PushButton pbFilter = rpUtility.AddItem(VisibleFilter) as PushButton;
pbFilter.Enabled = wm.IsValid;
}
//*<2A>ű<EFBFBD><C5B1><EFBFBD>*
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
if (bUseNewFeature2)
{
PushButtonData ColorSort = new PushButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>", AddInPath, "KMBIM.ColorSort");
ColorSort.ToolTip = Resources.Ext2Lvl_Desc;
ColorSort.LongDescription = Resources.Ext2Lvl_Desc;
ColorSort.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Lvl_Cor);
PushButton pbColorSort = rpUtility.AddItem(ColorSort) as PushButton;
pbColorSort.Enabled = wm.IsValid;
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD> ȸ<><C8B8>
PushButtonData pbdAvoidObstruction = new PushButtonData(<><C8B8>", <><C8B8>", AddInPath, "KMBIM.AvoidObstructionCommand");
pbdAvoidObstruction.ToolTip = Resources.Table1Desc;
pbdAvoidObstruction.LongDescription = Resources.Table1Desc;
pbdAvoidObstruction.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Avoid01);
PushButton pbAvoidObstruction = rpUtility.AddItem(pbdAvoidObstruction) as PushButton;
pbAvoidObstruction.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//*<2A>ű<EFBFBD><C5B1><EFBFBD>*
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ʈ <20><> <20><><EFBFBD><EFBFBD>
if (bUseNewFeature2)
{
PushButtonData pbdStretch = new PushButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>", AddInPath, "KMBIM.Stretch");
pbdStretch.ToolTip = Resources.Ext2Lvl_Desc;
pbdStretch.LongDescription = Resources.Ext2Lvl_Desc;
pbdStretch.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Stretch);
PushButton pbStretch = rpUtility.AddItem(pbdStretch) as PushButton;
//<2F><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
pbStretch.Enabled = true;
//pbStretch.Enabled = wm.IsValid;
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><>Ʈ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڸ<EFBFBD><DAB8><EFBFBD>
PushButtonData pbdTrimSpacing = new PushButtonData("<22>ڸ<EFBFBD><DAB8><EFBFBD>", "<22>ڸ<EFBFBD><DAB8><EFBFBD>", AddInPath, "KMBIM.ElementTrim");
pbdTrimSpacing.ToolTip = Resources.ElementTrim_Desc;
pbdTrimSpacing.LongDescription = Resources.ElementTrim_Desc;
pbdTrimSpacing.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Cut);
PushButton pbTrimSpacing = rpUtility.AddItem(pbdTrimSpacing) as PushButton;
pbTrimSpacing.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PushButtonData pbdExcel = new PushButtonData("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", AddInPath, "KMBIM.DCSTableCmd1");
pbdExcel.ToolTip = Resources.Table1Desc;
pbdExcel.LongDescription = Resources.Table1Desc;
pbdExcel.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Excel01);
PushButton pbExcel = rpUtility.AddItem(pbdExcel) as PushButton;
pbExcel.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
PushButtonData MatchProp = new PushButtonData("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", AddInPath, "KMBIM.MatchProp");
MatchProp.ToolTip = "<22>йи<D0B9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>͸<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.";
MatchProp.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Prop_CP);
MatchProp.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Prop_CP); ;
PushButton pbMatchProp = rpUtility.AddItem(MatchProp) as PushButton;
pbMatchProp.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//******** <20><><EFBFBD><EFBFBD> <20>г<EFBFBD> <20>߰<EFBFBD>********
//------------------------------------------------------------------------------------------------------------------------------------------
Autodesk.Revit.UI.RibbonPanel rpPipe = application.CreateRibbonPanel(TabName, "<22><><EFBFBD><EFBFBD>");
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//*<2A>ű<EFBFBD><C5B1><EFBFBD>*
// <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
if (bUseNewFeature2)
{
PushButtonData pbdPipeAutoConnect = new PushButtonData("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", AddInPath, "KMBIM.PipeConnectionCmd");
pbdPipeAutoConnect.ToolTip = Resources.CrossConnectT_Desc;
pbdPipeAutoConnect.LongDescription = Resources.CrossConnectT_Desc;
pbdPipeAutoConnect.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Pipe_Con);
PushButton pbPAC = rpPipe.AddItem(pbdPipeAutoConnect) as PushButton;
pbPAC.Enabled = wm.IsValid;
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PushButtonData pbdCoil = new PushButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>", AddInPath, "KMBIM.CoilMain");
pbdCoil.ToolTip = Resources.HCoil_Desc;
pbdCoil.LongDescription = Resources.HCoil_Desc;
pbdCoil.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Coil);
PushButton pbCoil = rpPipe.AddItem(pbdCoil) as PushButton;
pbCoil.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//*<2A>ű<EFBFBD><C5B1><EFBFBD>*
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ø<EFBFBD> <20><>ư
PipeSortSplitButton(rpPipe);
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//*<2A>ű<EFBFBD><C5B1><EFBFBD>*
//<2F><>Ʈ<EFBFBD><C6AE>ġ
if (bUseNewFeature2)
{
PushButtonData pbdInstallBolt = new PushButtonData("<22><>Ʈ", "<22><>Ʈ", AddInPath, "KMBIM.FixingBolt");
pbdInstallBolt.ToolTip = Resources.Ext2Lvl_Desc;
pbdInstallBolt.LongDescription = Resources.Ext2Lvl_Desc;
pbdInstallBolt.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Bolt);
PushButton pbInstallBolt = rpPipe.AddItem(pbdInstallBolt) as PushButton;
pbInstallBolt.Enabled = wm.IsValid;
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڸ<EFBFBD><DAB8><EFBFBD>
PushButtonData pbdPipeTrimSpacing = new PushButtonData("<22>Ѻ<EFBFBD>", "<22>Ѻ<EFBFBD>", AddInPath, "KMBIM.PipeTrimSpacing");
pbdPipeTrimSpacing.ToolTip = Resources.PipeTrimSpacing_Desc;
pbdPipeTrimSpacing.LongDescription = Resources.PipeTrimSpacing_Desc;
pbdPipeTrimSpacing.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Pipe_One);
PushButton pbPipeTrimSpacing = rpPipe.AddItem(pbdPipeTrimSpacing) as PushButton;
pbPipeTrimSpacing.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// ********<2A><>ġ <20>г<EFBFBD> <20>߰<EFBFBD>********
Autodesk.Revit.UI.RibbonPanel rpInstall = application.CreateRibbonPanel(TabName, "<22><>ġ");
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD>
HeaderAddSplitButton(rpInstall);
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//*<2A>ű<EFBFBD><C5B1><EFBFBD>*
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (bUseNewFeature2)
{
PushButtonData pbdAssem = new PushButtonData("<22><>ũ<EFBFBD><C5A9>", "<22><>ũ<EFBFBD><C5A9>", AddInPath, "KMBIM.AssemblyMain");
pbdAssem.ToolTip = Resources.Assembly_Desc;
pbdAssem.LongDescription = Resources.Assembly_Desc;
pbdAssem.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Asm);
PushButton pbAssem = rpPipe.AddItem(pbdAssem) as PushButton;
pbAssem.Enabled = wm.IsValid;
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD>ä<EFBFBD><C3A4>,<2C>ϴܰ<CFB4><DCB0><EFBFBD>
InstallChannelSplitButton(rpInstall);
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD> <20><>ġ
//Autodesk.Revit.UI.RibbonPanel rpPlaceHanger = application.CreateRibbonPanel(TabName, "<22><><EFBFBD><EFBFBD>");
PlaceHangerAddSplitButton(rpInstall);
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//********<2A><><EFBFBD><EFBFBD> <20>г<EFBFBD> <20>߰<EFBFBD>********
Autodesk.Revit.UI.RibbonPanel rpEdit = application.CreateRibbonPanel(TabName, "<22><><EFBFBD><EFBFBD>");
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//T <20><><EFBFBD><EFBFBD>
PushButtonData pbdPipeT = new PushButtonData("Tee<65><65><EFBFBD><EFBFBD>", "Tee<65><65><EFBFBD><EFBFBD>", AddInPath, "KMBIM.PipeConnectT");
pbdPipeT.ToolTip = Resources.CrossConnectT_Desc;
pbdPipeT.LongDescription = Resources.CrossConnectT_Desc;
pbdPipeT.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Tee);
PushButton pbPipeT = rpEdit.AddItem(pbdPipeT) as PushButton;
pbPipeT.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD> <20><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD>ư
EditSplitButton(rpEdit);
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// ********<2A>ҹ<EFBFBD> <20>г<EFBFBD> <20>߰<EFBFBD>********
Autodesk.Revit.UI.RibbonPanel rpFire = application.CreateRibbonPanel(TabName, "<22>ҹ<EFBFBD>");
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŭ<><C5AC> <20><><EFBFBD><EFBFBD> <20><>ġ
SprinKlerAddSplitButton(rpFire);
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŭ<EFBFBD><C5AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> <20>г<EFBFBD> <20>߰<EFBFBD>
// Autodesk.Revit.UI.RibbonPanel rpSpklrUpAuto = application.CreateRibbonPanel(TabName, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
SpklrAddUpAutoSplitButton(rpFire);
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŭ<EFBFBD><C5AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> <20>г<EFBFBD> <20>߰<EFBFBD>
//Autodesk.Revit.UI.RibbonPanel rpSpklrDownAuto = application.CreateRibbonPanel(TabName, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
SpklrAddDownAutoSplitButton(rpFire);
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F>ܿ<EFBFBD><DCBF><EFBFBD> <20>ϰ<EFBFBD><CFB0><EFBFBD><EFBFBD><EFBFBD>
// ****************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ܿ<EFBFBD><DCBF><EFBFBD> <20>г<EFBFBD> <20>߰<EFBFBD>****************
Autodesk.Revit.UI.RibbonPanel rpSleeveInsulation = application.CreateRibbonPanel(TabName, "<22>ܿ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ܿ<EFBFBD><DCBF><EFBFBD> <20><><EFBFBD><EFBFBD>
PushButtonData pbdSleeveInsulationSettings = new PushButtonData("<22>ܿ<EFBFBD><DCBF><EFBFBD>", "<22>ܿ<EFBFBD><DCBF><EFBFBD>", AddInPath, "KMBIM.Revit.Tools.Cmd.Insulation.InsulationSettingsCommand");
pbdSleeveInsulationSettings.ToolTip = "<22>ܿ<EFBFBD><DCBF><EFBFBD> <20><><EFBFBD><EFBFBD>";
pbdSleeveInsulationSettings.LongDescription = "<22><> <20>Ǵ<EFBFBD> <20>ٴ<EFBFBD><D9B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ǵ<EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ܿ<EFBFBD><DCBF><20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.";
pbdSleeveInsulationSettings.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Insul);
PushButton pbSleeveInsulationSettings = rpSleeveInsulation.AddItem(pbdSleeveInsulationSettings) as PushButton;
pbSleeveInsulationSettings.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PushButtonData pbdSleeve = new PushButtonData("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", AddInPath, "KMBIM.Revit.Tools.Cmd.Sleeve.SleeveCommand");
pbdSleeve.ToolTip = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ";
pbdSleeve.LongDescription = "<22><> <20>Ǵ<EFBFBD> <20>ٴ<EFBFBD><D9B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ǵ<EFBFBD> <20><>Ʈ <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD><20><>ġ<EFBFBD>մϴ<D5B4>.";
pbdSleeve.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.sleeve);
PushButton pbSleeve = rpSleeveInsulation.AddItem(pbdSleeve) as PushButton;
pbSleeve.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>϶<EFBFBD>ǥ
PushButtonData pbdSleeveTable = new PushButtonData("Slv<6C>϶<EFBFBD>", "Slv<6C>϶<EFBFBD>", AddInPath, "KMBIM.SleeveTableCommand");
pbdSleeveTable.ToolTip = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>϶<EFBFBD>ǥ";
pbdSleeveTable.LongDescription = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>϶<EFBFBD>ǥ<EFBFBD><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.";
pbdSleeveTable.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Slv_Sch);
PushButton pbSleeveTable = rpSleeveInsulation.AddItem(pbdSleeveTable) as PushButton;
pbSleeveTable.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// ġ<><C4A1> <20>г<EFBFBD> <20>߰<EFBFBD>
Autodesk.Revit.UI.RibbonPanel rpDimension = application.CreateRibbonPanel(TabName, "<22><><EFBFBD><EFBFBD>ȭ");
//ġ<><C4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DimAddSplitButton(rpDimension);
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>±<EFBFBD>
PushButtonData pbdUpDownTag = new PushButtonData("<22>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>", "<22>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>", AddInPath, "KMBIM.MultiPipeTag");
pbdUpDownTag.ToolTip = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>±<EFBFBD>";
pbdUpDownTag.LongDescription = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>±׸<C2B1> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.";
pbdUpDownTag.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Riser_UPDN); // 32x32
pbdUpDownTag.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Riser_UPDN); // 16x16
PushButton pbUpDownTag = rpDimension.AddItem(pbdUpDownTag) as PushButton;
pbUpDownTag.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//*<2A>ű<EFBFBD><C5B1><EFBFBD>*
//<2F>ϰ<EFBFBD>ġ<EFBFBD><C4A1>
// if (bUseNewFeature2)
{
//PushButtonData pbdMtag = new PushButtonData("<22>ϰ<EFBFBD>ġ<EFBFBD><C4A1>", "<22>ϰ<EFBFBD>ġ<EFBFBD><C4A1>", AddInPath, "KMBIM.MultiTag");
PushButtonData pbdMtag = new PushButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>", AddInPath, "KMBIM.NewMultiTag");
pbdMtag.ToolTip = Resources.Ext2Lvl_Desc;
pbdMtag.LongDescription = Resources.Ext2Lvl_Desc;
pbdMtag.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Pipe_Siz);
PushButton pbMtag = rpDimension.AddItem(pbdMtag) as PushButton;
//<2F><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
pbMtag.Enabled = true;
//pbMtag.Enabled = wm.IsValid;
}
// <20><>Ʈ <20>г<EFBFBD> <20>߰<EFBFBD>
//------------------------------------------------------------------------------------------------------------------------------------------
Autodesk.Revit.UI.RibbonPanel rpDuct = application.CreateRibbonPanel(TabName, "<22><>Ʈ");
#if _v3
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//// dz<><C7B3> <20>Է<EFBFBD>
PushButtonData pbdDuctVi = new PushButtonData(<><C7B3> <20>Է<EFBFBD>", <><C7B3> <20>Է<EFBFBD>", AddInPath, "KMBIM.Revit.Tools.Cmd.DuctSize.DuctViCmd");
pbdDuctVi.ToolTip = Resources.CrossConnectT_Desc;
pbdDuctVi.LongDescription = Resources.CrossConnectT_Desc;
pbdDuctVi.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Vol_Edit);
PushButton pbDuctVi = rpDuct.AddItem(pbdDuctVi) as PushButton;
pbDuctVi.Enabled = wm.IsValid;
////------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//// <20><>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
PushButtonData pbdDcal = new PushButtonData("<22><>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", AddInPath, "KMBIM.Revit.Tools.Cmd.DuctSize.DuctSizeCmd");
pbdDcal.ToolTip = Resources.CrossConnectT_Desc;
pbdDcal.LongDescription = Resources.CrossConnectT_Desc;
pbdDcal.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.dcalsize32x32);
PushButton pbDcal = rpDuct.AddItem(pbdDcal) as PushButton;
pbDcal.Enabled = wm.IsValid;
// <20><><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20><>ȯ(<28><>Ʈ<EFBFBD>ڵ<EFBFBD><DAB5>۵<EFBFBD>)
PushButtonData pbdAtd = new PushButtonData("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ", AddInPath, "KMBIM.Revit.Tools.Cmd.DuctDraw.DuctDrawCmd");
pbdAtd.ToolTip = Resources.CrossConnectT_Desc;
pbdAtd.LongDescription = Resources.CrossConnectT_Desc;
pbdAtd.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.B_ATD);
PushButton pbAtd = rpDuct.AddItem(pbdAtd) as PushButton;
pbAtd.Enabled = wm.IsValid;
#endif
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//*<2A>ű<EFBFBD><C5B1><EFBFBD>*
// FD : <20>÷<EFBFBD><C3B7>ú<EFBFBD> <20><>Ʈ <20><><EFBFBD><EFBFBD>
if (bUseNewFeature2)
{
PushButtonData pbdDfb = new PushButtonData("Flex", "Flex", AddInPath, "KMBIM.Revit.Tools.CmdDuct.FlexibleDuctDiffuserCmd");
pbdDfb.ToolTip = Resources.CrossConnectT_Desc;
pbdDfb.LongDescription = Resources.CrossConnectT_Desc;
pbdDfb.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.fd);
PushButton pbDfb = rpDuct.AddItem(pbdDfb) as PushButton;
pbDfb.Enabled = wm.IsValid;
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڸ<EFBFBD><DAB8><EFBFBD>
PushButtonData pbdDuctTrimSpacing = new PushButtonData("<22>÷<EFBFBD><C3B7><EFBFBD>", "<22>÷<EFBFBD><C3B7><EFBFBD>", AddInPath, "KMBIM.DuctTrimSpacing");
pbdDuctTrimSpacing.ToolTip = Resources.DuctTrimSpacing_Desc;
pbdDuctTrimSpacing.LongDescription = Resources.DuctTrimSpacing_Desc;
pbdDuctTrimSpacing.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Duct_Fl);
PushButton pbDuctTrimSpacing = rpDuct.AddItem(pbdDuctTrimSpacing) as PushButton;
pbDuctTrimSpacing.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//*<2A>ű<EFBFBD><C5B1><EFBFBD>*
////S<><53>Ʈ
//if (bUseNewFeature2)
//{
// PushButtonData DuctOffsetConnect = new PushButtonData("S <20><>Ʈ", "S <20><>Ʈ", AddInPath, "KMBIM.DuctOffsetConnect");
// DuctOffsetConnect.ToolTip = Resources.DuctOffsetConnect_Desc;
// DuctOffsetConnect.LongDescription = Resources.DuctOffsetConnect_Desc;
// DuctOffsetConnect.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.wgdp);
// PushButton pbDuctOffsetConnect = rpDuct.AddItem(DuctOffsetConnect) as PushButton;
// pbDuctOffsetConnect.Enabled = wm.IsValid;
//}
//********<2A>ڵ<EFBFBD> <20>г<EFBFBD> <20>߰<EFBFBD>********
//Autodesk.Revit.UI.RibbonPanel test = application.CreateRibbonPanel(TabName, "TEST");
//PushButtonData pbdTypeCode = new PushButtonData("<22><>Ʈ<EFBFBD><C6AE>ũ", "<22><>Ʈ<EFBFBD><C6AE>ũ", AddInPath, "KMBIM.SheetLink");
//pbdTypeCode.ToolTip = Resources.CrossConnectT_Desc;
//pbdTypeCode.LongDescription = Resources.CrossConnectT_Desc;
//pbdTypeCode.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.pipe_DrawCode);
//PushButton pbTypeCode = test.AddItem(pbdTypeCode) as PushButton;
//test.Enabled = wm.IsValid;
Autodesk.Revit.UI.RibbonPanel test = application.CreateRibbonPanel(TabName, "<22>ڵ<EFBFBD>");
PushButtonData pbdTypeCode = new PushButtonData("<22>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>", "<22>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>", AddInPath, "KMBIM.SetPipeTypeCode");
pbdTypeCode.ToolTip = Resources.CodeWriteDesc;
pbdTypeCode.LongDescription = Resources.CodeWriteDesc;
pbdTypeCode.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.pipe_DrawCode);
PushButton pbTypeCode = test.AddItem(pbdTypeCode) as PushButton;
pbTypeCode.Enabled = wm.IsValid;
//
PushButtonData pbdTypeCodeOpt = new PushButtonData("<22>ڵ弳<DAB5><E5BCB3>", "<22>ڵ弳<DAB5><E5BCB3>", AddInPath, "KMBIM.PipeTypeCode");
pbdTypeCodeOpt.ToolTip = Resources.CodeWriteDesc;
pbdTypeCodeOpt.LongDescription = Resources.CodeSettingDesc;
pbdTypeCodeOpt.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.pipe_SetCode);
PushButton pbTypeCodeOpt = test.AddItem(pbdTypeCodeOpt) as PushButton;
pbTypeCodeOpt.Enabled = wm.IsValid;
test.Enabled = wm.IsValid;
//PushButtonData pbdBracing = new PushButtonData("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", AddInPath, "KMBIM.bracingTest");
//pbdBracing.ToolTip = Resources.CrossConnectT_Desc;
//pbdBracing.LongDescription = Resources.CrossConnectT_Desc;
//pbdBracing.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Pipe_Plb);
//PushButton pbBracing = test.AddItem(pbdBracing) as PushButton;
//test.Enabled = wm.IsValid;
//
//
//PushButtonData pbdDrain = new PushButtonData("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", AddInPath, "KMBIM.DrainConnect");
//pbdDrain.ToolTip = Resources.CrossConnectT_Desc;
//pbdDrain.LongDescription = Resources.CrossConnectT_Desc;
//pbdDrain.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Pipe_Plb);
//PushButton pbDrain = test.AddItem(pbdDrain) as PushButton;
//test.Enabled = wm.IsValid;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//************<2A><><EFBFBD><EFBFBD> <20>г<EFBFBD> <20>߰<EFBFBD>************
Autodesk.Revit.UI.RibbonPanel rpLogin = application.CreateRibbonPanel(TabName, "<22><><EFBFBD><EFBFBD>");
// <20><><EFBFBD><EFBFBD>
PushButtonData pbdKMBConfig = new PushButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>", AddInPath, "KMBIM.Revit.Tools.Cmd.KMBIMConfigCommand");
pbdKMBConfig.ToolTip = Resources.Ext2Lvl_Desc;
pbdKMBConfig.LongDescription = "<22><><EFBFBD><EFBFBD>Ű<EFBFBD><C5B0>û/<2F><><EFBFBD><EFBFBD>Ű <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>";
pbdKMBConfig.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Auth);
PushButton pbKMBConfig = rpLogin.AddItem(pbdKMBConfig) as PushButton;
pbKMBConfig.Enabled = true;
}
//<2F><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ø<EFBFBD> <20><>ư
private void PipeSortSplitButton(RibbonPanel panel)
{
var wm = WorkMain.GetInstance();
//SplitButtonData PipeSortSplitData = new SplitButtonData("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
SplitButtonData PipeSortSplitData = new SplitButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>");
SplitButton group1 = panel.AddItem(PipeSortSplitData) as SplitButton;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ
PushButtonData SyncPipeData = new PushButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>", AddInPath, "KMBIM.SyncPipe");
PushButton SyncPipe = group1.AddPushButton(SyncPipeData) as PushButton;
SyncPipe.ToolTip = Resources.Ext2Lvl_Desc;
SyncPipe.LongDescription = Resources.Ext2Lvl_Desc;
SyncPipe.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Pipe_Align);
//<2F><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
SyncPipe.Enabled = true;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
PushButtonData PipeMatchIntervalData = new PushButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>", AddInPath, "KMBIM.PipeMatchInterval");
PushButton PipeMatchInterval = group1.AddPushButton(PipeMatchIntervalData) as PushButton;
PipeMatchInterval.ToolTip = Resources.Ext2Lvl_Desc;
PipeMatchInterval.LongDescription = Resources.Ext2Lvl_Desc;
PipeMatchInterval.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Pipe_Dst);
PipeMatchInterval.Enabled = wm.IsValid;
}
//<2F><>ġ-<2D>ϴܰ<CFB4><DCB0><EFBFBD>,<2C><><EFBFBD><EFBFBD>ä<EFBFBD><C3A4> <20><><EFBFBD>ø<EFBFBD> <20><>ư
private void InstallChannelSplitButton(RibbonPanel panel)
{
var wm = WorkMain.GetInstance();
SplitButtonData InstallChannelSplitData = new SplitButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>");
SplitButton InstallChannelSplitBtn = panel.AddItem(InstallChannelSplitData) as SplitButton;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ϴܰ<CFB4><DCB0><EFBFBD>
PushButtonData pbdDownRack = new PushButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>", AddInPath, "KMBIM.DrawPipeRack");
PushButton pbDownRack = InstallChannelSplitBtn.AddPushButton(pbdDownRack) as PushButton;
pbDownRack.ToolTip = Resources.Ext2Lvl_Desc;
pbDownRack.LongDescription = Resources.Ext2Lvl_Desc;
pbDownRack.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Holder2);
//<2F><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
pbDownRack.Enabled = true;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ä<EFBFBD><C3A4>
PushButtonData pbdUpRack = new PushButtonData(<><C3A4>", <><C3A4>", AddInPath, "KMBIM.DrawUpperPipeRack");
PushButton pbUpRack = InstallChannelSplitBtn.AddPushButton(pbdUpRack) as PushButton;
pbUpRack.ToolTip = Resources.Ext2Lvl_Desc;
pbUpRack.LongDescription = Resources.Ext2Lvl_Desc;
pbUpRack.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Pipe_Gad);
pbUpRack.Enabled = wm.IsValid;
}
//<2F><>ġ-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD>ø<EFBFBD> <20><>ư
private void PlaceHangerAddSplitButton(RibbonPanel panel)
{
var wm = WorkMain.GetInstance();
SplitButtonData group6Data = new SplitButtonData("<22>ܵ<EFBFBD>", "<22>ܵ<EFBFBD>");
SplitButton group6 = panel.AddItem(group6Data) as SplitButton;
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
string Dlldir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
PushButtonData itemData1 = new PushButtonData("<22>ܵ<EFBFBD>", "<22>ܵ<EFBFBD>", AddInPath, "KMBIM.Revit.Tools.Cmd.Hanger.PlaceHangerCommandManual");
PushButton item1 = group6.AddPushButton(itemData1) as PushButton;
item1.ToolTip = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MEP <20><20><>ġ<EFBFBD><C4A1> <20><><EFBFBD>Ÿ<EFBFBD> <20><>ġ<EFBFBD>մϴ<D5B4>.";
item1.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Pipe_Hng);
item1.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Pipe_Hng);
item1.Enabled = wm.IsValid;
PushButtonData itemData2 = new PushButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>", AddInPath, "KMBIM.Revit.Tools.Cmd.Hanger.PlaceHangerCommandMulti");
PushButton item2 = group6.AddPushButton(itemData2) as PushButton;
item2.ToolTip = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MEP <20><EFBFBD><EEBCB1> <20>־<EFBFBD><D6BE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ÿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ<EFBFBD>մϴ<D5B4>.";
item2.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Pipe_Mult);
item2.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Pipe_Mult);
item2.Enabled = wm.IsValid;
}
//<2F><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD> <20><><EFBFBD>ø<EFBFBD> <20><>ư
private void EditSplitButton(RibbonPanel panel)
{
var wm = WorkMain.GetInstance();
SplitButtonData EditSplitData = new SplitButtonData("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
SplitButton EditSplitBtn = panel.AddItem(EditSplitData) as SplitButton;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PushButtonData pbdExt2Lvl = new PushButtonData("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", AddInPath, "KMBIM.Extend2Level");
PushButton pbExt2Lvl = EditSplitBtn.AddPushButton(pbdExt2Lvl) as PushButton;
pbExt2Lvl.ToolTip = Resources.Ext2Lvl_Desc;
pbExt2Lvl.LongDescription = Resources.Ext2Lvl_Desc;
pbExt2Lvl.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.E2L);
//<2F><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
pbExt2Lvl.Enabled = true;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//<2F><>ǰ <20><><EFBFBD><EFBFBD>
PushButtonData pbdPartSpacing = new PushButtonData("<22><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>", "<22><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>", AddInPath, "KMBIM.PartSpacing");
PushButton pbPartSpacing = EditSplitBtn.AddPushButton(pbdPartSpacing) as PushButton;
pbPartSpacing.ToolTip = Resources.PartSpacing_Desc;
pbPartSpacing.LongDescription = Resources.PartSpacing_Desc;
pbPartSpacing.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Dis);
pbPartSpacing.Enabled = wm.IsValid;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŭ<EFBFBD><C5AC> <20><><EFBFBD>ø<EFBFBD> <20><>ư
private void SprinKlerAddSplitButton(RibbonPanel panel)
{
var wm = WorkMain.GetInstance();
SplitButtonData group1Data = new SplitButtonData("SP<53><50>ġ", "SP<53><50>ġ");
SplitButton group1 = panel.AddItem(group1Data) as SplitButton;
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
string Dlldir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
PushButtonData itemData1 = new PushButtonData("SP<53><50>ġ", "SP<53><50>ġ", AddInPath, "KMBIM.CmdSprinKler");
PushButton item1 = group1.AddPushButton(itemData1) as PushButton;
item1.ToolTip = Resources.Sprinkler_Desc;
item1.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Lay);
item1.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Lay);
item1.Enabled = wm.IsValid;
PushButtonData itemData2 = new PushButtonData("OȮ<4F><C8AE>", "OȮ<4F><C8AE>", AddInPath, "KMBIM.SprinKlerSpray");
PushButton item2 = group1.AddPushButton(itemData2) as PushButton;
item2.ToolTip = Resources.Sprinkler_Rad_Desc;
item2.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Rad);
item2.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Rad);
item2.Enabled = wm.IsValid;
PushButtonData itemData3 = new PushButtonData("O<><4F><EFBFBD><EFBFBD>", "O<><4F><EFBFBD><EFBFBD>", AddInPath, "KMBIM.SprinklerSprayRemove");
PushButton item3 = group1.AddPushButton(itemData3) as PushButton;
item3.ToolTip = Resources.Sprinkler_RadDel_Desc;
item3.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Del);
item3.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Del);
item3.Enabled = wm.IsValid;
PushButtonData itemData4 = new PushButtonData("<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>", AddInPath, "KMBIM.SprinKlerSort");
PushButton item4 = group1.AddPushButton(itemData4) as PushButton;
item4.ToolTip = Resources.Sprinkler_RadDel_Desc;
item4.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Align);
item4.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Align);
item4.Enabled = wm.IsValid;
}
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD>ø<EFBFBD> <20><>ư
private void HeaderAddSplitButton(RibbonPanel panel)
{
var wm = WorkMain.GetInstance();
SplitButtonData group1Data = new SplitButtonData("<22>ÿ¼<C3BF> S", "<22>ÿ¼<C3BF> S");
SplitButton group1 = panel.AddItem(group1Data) as SplitButton;
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
string Dlldir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
//PushButtonData itemData1 = new PushButtonData("itemName4", "<22>ÿ¼<C3BF> S", AddInPath, "KMBIM.Header2");
PushButtonData itemData1 = new PushButtonData("<22>ÿ¼<C3BF> S", "<22>ÿ¼<C3BF> S", AddInPath, "KMBIM.HeaderSupply");
PushButton item1 = group1.AddPushButton(itemData1) as PushButton;
item1.ToolTip = Resources.Header2_Desc;
item1.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Hd_WS);
item1.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Hd_WS);
item1.Enabled = wm.IsValid;
PushButtonData itemData2 = new PushButtonData("<22>ÿ¼<C3BF> R", "<22>ÿ¼<C3BF> R", AddInPath, "KMBIM.HeaderReturn");
PushButton item2 = group1.AddPushButton(itemData2) as PushButton;
item2.ToolTip = Resources.Header3_Desc;
item2.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Hd_WR);
item2.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Hd_WR);
item2.Enabled = wm.IsValid;
PushButtonData itemData3 = new PushButtonData("<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", AddInPath, "KMBIM.HeaderSteam");
PushButton item3 = group1.AddPushButton(itemData3) as PushButton;
item3.ToolTip = Resources.Header4_Desc;
item3.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Hd_S);
item3.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.Hd_S);
item3.Enabled = wm.IsValid;
}
//ġ<><C4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ø<EFBFBD> <20><>ư
private void DimAddSplitButton(RibbonPanel panel)
{
var wm = WorkMain.GetInstance();
SplitButtonData group1Data = new SplitButtonData("<22><>ġ<EFBFBD><C4A1>", "<22><>ġ<EFBFBD><C4A1>");
SplitButton group1 = panel.AddItem(group1Data) as SplitButton;
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
string Dlldir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
PushButtonData itemData1 = new PushButtonData("<22><>ġ<EFBFBD><C4A1>", "<22><>ġ<EFBFBD><C4A1>", AddInPath, "KMBIM.PipeRealDim");
PushButton item1 = group1.AddPushButton(itemData1) as PushButton;
item1.ToolTip = Resources.PipeActualDimension_Desc;
item1.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.PP_Real);
item1.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.PP_Real);
item1.Enabled = wm.IsValid;
PushButtonData itemData2 = new PushButtonData("<22>̰<EFBFBD><CCB0><EFBFBD>", "<22>̰<EFBFBD><CCB0><EFBFBD>", AddInPath, "KMBIM.PipeC2CDim");
PushButton item2 = group1.AddPushButton(itemData2) as PushButton;
item2.ToolTip = Resources.PipeC2CDimension_Desc;
item2.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.PP_C2C);
item2.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.PP_C2C);
item2.Enabled = wm.IsValid;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> <20><><EFBFBD>ø<EFBFBD> <20><>ư
private void SpklrAddUpAutoSplitButton(RibbonPanel panel)
{
var wm = WorkMain.GetInstance();
SplitButtonData group4Data = new SplitButtonData("<22><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>");
SplitButton group4 = panel.AddItem(group4Data) as SplitButton;
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
string Dlldir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
PushButtonData itemData1 = new PushButtonData("<22><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>", AddInPath, "KMBIM.Sprinkler_Upword_Auto");
PushButton item1 = group4.AddPushButton(itemData1) as PushButton;
item1.ToolTip = Resources.SprinKler_Upword_Auto_Desc;
item1.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Up_A_);
item1.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Up_A_);
item1.Enabled = wm.IsValid;
PushButtonData itemData2 = new PushButtonData("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", AddInPath, "KMBIM.Sprinkler_Upword_Manual");
PushButton item2 = group4.AddPushButton(itemData2) as PushButton;
item2.ToolTip = Resources.SprinKler_Upword_Manual_Desc;
item2.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Up_M_);
item2.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Up_M_);
item2.Enabled = wm.IsValid;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> <20><><EFBFBD>ø<EFBFBD> <20><>ư
private void SpklrAddDownAutoSplitButton(RibbonPanel panel)
{
var wm = WorkMain.GetInstance();
SplitButtonData group5Data = new SplitButtonData("<22><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>");
SplitButton group5 = panel.AddItem(group5Data) as SplitButton;
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
string Dlldir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
PushButtonData itemData1 = new PushButtonData("<22><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>", AddInPath, "KMBIM.Sprinkler_Downward_Auto");
PushButton item1 = group5.AddPushButton(itemData1) as PushButton;
item1.ToolTip = Resources.SprinKler_Downward_Auto_Desc;
item1.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Dn_A_);
item1.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Dn_A_);
item1.Enabled = wm.IsValid;
PushButtonData itemData2 = new PushButtonData("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", AddInPath, "KMBIM.Sprinkler_Downward_Manual");
PushButton item2 = group5.AddPushButton(itemData2) as PushButton;
item2.ToolTip = Resources.SprinKler_Downward_Manual_Desc;
item2.Image = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Dn_M_);
item2.LargeImage = convertFromBitmap(KMBIM.Revit.Tools.Properties.Resources.SP_Dn_M_);
item2.Enabled = wm.IsValid;
}
BitmapSource convertFromBitmap(System.Drawing.Bitmap bitmap)
{
return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
bitmap.GetHbitmap(),
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
}
/// <summary>
/// Insert Level into ComboBox - LevelsSelector
/// </summary>
/// <param name="evnetArgs">Autodesk.Revit.DB.Events.DocumentCreatedEventArgs</param>
public void DocumentCreated(object sender, Autodesk.Revit.DB.Events.DocumentCreatedEventArgs e)
{
uiApplication = new UIApplication(e.Document.Application);
// <20><><EFBFBD><EFBFBD><EEBCB3>
if (uiApplication.Application.Language == LanguageType.Korean)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("ko-KR");
}
else if (uiApplication.Application.Language == LanguageType.Japanese)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("ja-JP");
}
else if (uiApplication.Application.Language == LanguageType.English_USA)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
}
else
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
}
Resources.Culture = Thread.CurrentThread.CurrentUICulture;
}
private void DocumentOpened(Object sender, RevitAPIPostDocEventArgs args)
{
// The document associated with the event. Here means which document has been created or opened.
Document doc = args.Document;
uiApplication = new UIApplication(doc.Application);
// <20><><EFBFBD><EFBFBD><EEBCB3>
if (uiApplication.Application.Language == LanguageType.Korean)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("ko-KR");
}
else if (uiApplication.Application.Language == LanguageType.Japanese)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("ja-JP");
}
else if (uiApplication.Application.Language == LanguageType.English_USA)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
}
else
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
}
Resources.Culture = Thread.CurrentThread.CurrentUICulture;
}
#region Copy_Zoom
/// <summary>
/// Copy_Zoom_State <20><><EFBFBD><EFBFBD> <20>۾<EFBFBD>
/// </summary>
RibbonItem _button;
public string _buttonText { get; set; }
public static App Instance
{
get { return thisApp; }
}
//<2F><><EFBFBD><EFBFBD> <20><>ư On/Off <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ǥ<>õǰ<C3B5> <20>ϱ<EFBFBD>
public void Toggle()
{
string s = _button.ItemText;
_button.ItemText = s.Equals("Off") ? "On" : "Off";
_buttonText = _button.ItemText;
}
static IList<UIView> NewActiveViewList = new List<UIView>();
public IList<XYZ> newZoomCornerList = new List<XYZ>();
static Autodesk.Revit.DB.View NewcurrentView = null;
// <20><>ȯ<EFBFBD>DZ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><E4BFA1> <20><>ġ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
public void OnViewActivating(object sender, Autodesk.Revit.UI.Events.ViewActivatingEventArgs args)
{
if (KMBIM.Copy_Zoom_State.uidoc == null) return;
if (_buttonText == "On")
{
//<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
NewActiveViewList = KMBIM.Copy_Zoom_State.uidoc.GetOpenUIViews();// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NewcurrentView = args.CurrentActiveView;
newZoomCornerList = NewCopyViewState(NewcurrentView, NewActiveViewList);//<2F><><EFBFBD><EFBFBD> <20><> <20><>ġ <20><><EFBFBD>ؼ<EFBFBD> <20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
}
}
// <20><>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD> <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٿ<EFBFBD> <20>ִ´<D6B4>.
public void OnViewActivated(Object sender, Autodesk.Revit.UI.Events.ViewActivatedEventArgs args)
{
if (KMBIM.Copy_Zoom_State.uidoc == null) return;
if (_buttonText == "On")
{
// <20><><EFBFBD><EFBFBD> <20><>ư <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ӱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD><D9B8><EFBFBD> <20><><EFBFBD>Ӱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٿ<EFBFBD> <20>ִ´<D6B4>.
if (newZoomCornerList[0] != KMBIM.Copy_Zoom_State.zoomCornerList[0])
{
NewPasteViewState(args.CurrentActiveView, NewActiveViewList, newZoomCornerList);
}
//<2F><><EFBFBD>۹<EFBFBD>ư <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>;<EFBFBD> <20>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> Copy_Zoom_State<74><65><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٿ<EFBFBD> <20>ִ´<D6B4>.
else if (newZoomCornerList[0] == KMBIM.Copy_Zoom_State.zoomCornerList[0])
{
KMBIM.Copy_Zoom_State.PasteViewState(KMBIM.Copy_Zoom_State.currentView, KMBIM.Copy_Zoom_State.activeViewList, KMBIM.Copy_Zoom_State.zoomCornerList);
}
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD> <20><>ư <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ѹ<EFBFBD> <20><> <20>ٲ<EFBFBD> <20>ں<EFBFBD><DABA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD> <20><> <20><>ġ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
/// </summary>
/// <param name="currentView"><3E><><EFBFBD><EFBFBD> <20><></param>
/// <param name="activeViewList">Ȱ<><C8B0>ȭ <20>Ǿ<EFBFBD> <20>ִ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>Ʈ</param>
/// <returns></returns>
static public IList<XYZ> NewCopyViewState(Autodesk.Revit.DB.View currentView, IList<UIView> activeViewList)
{
UIView currentUIView = null;
IList<XYZ> newFoundZoomCornerList = new List<XYZ>();
//<2F><><EFBFBD><EFBFBD> <20><> ã<><C3A3>
foreach (UIView activeUIView in activeViewList)
{
if (activeUIView.ViewId == currentView.Id)
{
currentUIView = activeUIView;
}
else
break;
}
if (currentUIView != null)
{
//<2F><> <20>ڳ<EFBFBD> ã<><C3A3>
newFoundZoomCornerList = currentUIView.GetZoomCorners();
}
return newFoundZoomCornerList;
}
/// <summary>
/// <20><><EFBFBD><EFBFBD> <20><>ư <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ѹ<EFBFBD> <20><> <20>ٲ<EFBFBD> <20>ں<EFBFBD><DABA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD> <20><> <20><>ġ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٿ<EFBFBD> <20>ִ<EFBFBD> <20>Լ<EFBFBD>
/// </summary>
/// <param name="currentView"><3E><><EFBFBD><EFBFBD> <20><></param>
/// <param name="activeViewList">Ȱ<><C8B0>ȭ <20>Ǿ<EFBFBD> <20>ִ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>Ʈ</param>
/// <param name="zoomCornerList1"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ġ <20><><EFBFBD><EFBFBD></param>
static public void NewPasteViewState(Autodesk.Revit.DB.View currentView, IList<UIView> activeViewList, IList<XYZ> zoomCornerList1)
{
UIView currentUIView = null;
//currentView = uiapp.ActiveUIDocument.ActiveView;
//<2F><><EFBFBD><EFBFBD> <20><> ã<><C3A3>
if (currentView != null)
{
foreach (UIView activeUIView in activeViewList)
{
if (activeUIView.ViewId == currentView.Id)
{
currentUIView = activeUIView;
}
}
}
if (currentUIView != null)
{
using (Transaction tr = new Transaction(KMBIM.Copy_Zoom_State.doc))
{
tr.Start("start");
//zoom <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٿ<EFBFBD><D9BF>ֱ<EFBFBD>
currentUIView.ZoomAndCenterRectangle(zoomCornerList1[0], zoomCornerList1[1]);
tr.Commit();
}
}
}
private void A_ViewActivated(object sender, Autodesk.Revit.UI.Events.ViewActivatedEventArgs e)
{
throw new NotImplementedException();
}
#endregion
}
}