Client/Desktop/KMBIM3.0/KMBIM3.0_소스/Cmd/AvoidObstruction/AvoidObstructionCommand.cs

68 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using Autodesk.Revit;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using KMBIM.Revit.Tools;
namespace KMBIM
{
/// <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 AvoidObstructionCommand : 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
{
if (!WorkMain.GetInstance().IsValid) return Autodesk.Revit.UI.Result.Succeeded;
// Verify active document
if (null == commandData.Application.ActiveUIDocument.Document)
{
message = KMBIM.Revit.Tools.Properties.Resources.ActiveViewIsNull; // "현재 활성화된 뷰가 없습니다."; //"Active view is null.";
return Autodesk.Revit.UI.Result.Failed;
}
uiapp = commandData.Application;
uidoc = uiapp.ActiveUIDocument;
app = uiapp.Application;
doc = uidoc.Document;
createDoc = uidoc.Document.Create;
//------------------------------------------------------------------------------------------------
App.thisApp.OpenFormAvoidObstruction(uiapp); // ModifiedNozzle 폼 객체준비
var wfAvoidObstruction = App.thisApp.m_wfAvoidObstruction;
wfAvoidObstruction.uidoc = uidoc;
App.thisApp.ShowFormAvoidObstruction(uiapp);
}
catch (Exception ex)
{
message = ex.ToString();
return Autodesk.Revit.UI.Result.Failed;
}
return Autodesk.Revit.UI.Result.Succeeded;
}
#endregion
}
}