using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using HStation.RevitDev.Model.ModelEnum;
using HStation.RevitDev.RevitDataExport.Common;
using HStation.RevitDev.RevitDataExport.Forms;
using HStation.RevitDev.RevitDataExport.Utility;
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace HStation.RevitDev.RevitDataExport
{
///
/// 系统分类
///
[Transaction(TransactionMode.Manual)]
public class SystemSelect : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
var form = new Form_SystemSelect(commandData);
var revitHandle = Process.GetCurrentProcess().MainWindowHandle;
form.Show(new WindowHandle(revitHandle));
return Result.Succeeded;
}
}
///
/// 族库管理
///
[Transaction(TransactionMode.Manual)]
public class FamilyManager : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
var form = new Form_FamilyManager(commandData);
var revitHandle = Process.GetCurrentProcess().MainWindowHandle;
form.Show(new WindowHandle(revitHandle));
return Result.Succeeded;
}
}
///
/// 构件导入
///
[Transaction(TransactionMode.Manual)]
public class AutoClassified : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistViewEvent(commandData);
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowInstancePanel(commandData);
GlobalResource.InstancePanel.UpdateForm();
return Result.Succeeded;
}
}
///
/// 一键显隐
///
[Transaction(TransactionMode.Manual)]
public class HideModels : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
var doc = commandData.Application.ActiveUIDocument.Document;
CacheUtil.HideOrShowModels(commandData.Application.ActiveUIDocument.Document);
return Result.Succeeded;
}
}
///
/// 系统检查
///
[Transaction(TransactionMode.Manual)]
public class SystemCheck : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
var doc = commandData.Application.ActiveUIDocument.Document;
SystemCheckUtils.SystemCheck(commandData);
return Result.Succeeded;
}
}
///
/// 导出模型
///
[Transaction(TransactionMode.Manual)]
public class ExportModels : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
var doc = commandData.Application.ActiveUIDocument.Document;
CacheUtil.SaveCache(commandData.Application.ActiveUIDocument.Document);
TaskDialog.Show("提示", "导出完成!");
return Result.Succeeded;
}
}
///
/// 水泵
///
[Transaction(TransactionMode.Manual)]
public class PumpSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_Pump;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
///
/// 管道
///
[Transaction(TransactionMode.Manual)]
public class PipeSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_Pipe;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
Common.GlobalResource.CurrentAddinId = commandData.Application.ActiveAddInId;
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
///
/// 阀门
///
[Transaction(TransactionMode.Manual)]
public class ValveSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_Valve;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
///
/// 换热气
///
[Transaction(TransactionMode.Manual)]
public class HeatExchangerSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_HeatExchanger;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
///
/// 闷头
///
[Transaction(TransactionMode.Manual)]
public class BlockerSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_Blocker;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
///
/// 喷淋头
///
[Transaction(TransactionMode.Manual)]
public class ShowerSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_Shower;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
///
/// 三通
///
[Transaction(TransactionMode.Manual)]
public class ThreeJointSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_ThreeJoint;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
///
/// 四通
///
[Transaction(TransactionMode.Manual)]
public class FourJointSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_FourJoint;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
///
/// 水表
///
[Transaction(TransactionMode.Manual)]
public class WaterMeterSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_WaterMeter;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
///
/// 水库
///
[Transaction(TransactionMode.Manual)]
public class WaterPoolSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_WaterPool;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
///
/// 水箱
///
[Transaction(TransactionMode.Manual)]
public class WaterBoxSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_WaterBox;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
///
/// 弯头
///
[Transaction(TransactionMode.Manual)]
public class ElbowSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_Elbow;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
///
/// 消火栓
///
[Transaction(TransactionMode.Manual)]
public class FireHydrantSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_FireHydrant;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
///
/// 过渡件
///
[Transaction(TransactionMode.Manual)]
public class ReducingSystem : IExternalCommand
{
RevitType m_type = RevitType.RFT_Converter;
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
DocumentUtil.RegistDocumentEvent(commandData);
DockablePaneUtils.ShowDockablePanel(commandData, m_type);
return Result.Succeeded;
}
}
public class WindowHandle : IWin32Window
{
private IntPtr _handle;
public WindowHandle(IntPtr h)
{
Debug.Assert(IntPtr.Zero != h, "expected non-null window handle");
_handle = h;
}
public IntPtr Handle => _handle;
}
}