92 lines
2.9 KiB
C#
92 lines
2.9 KiB
C#
using System;
|
|
using Autodesk.Revit.UI;
|
|
using Autodesk.Revit.DB;
|
|
using System.Diagnostics;
|
|
using System.Collections.Generic;
|
|
using System.Windows.Forms;
|
|
using System.Linq;
|
|
using Autodesk.Revit.Creation;
|
|
using Autodesk.Revit.UI.Selection;
|
|
using Autodesk.Revit.DB.Structure;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Windows;
|
|
//using System.Windows.Media; // WindowsBase
|
|
//using System.Windows.Media.Imaging; // PresentationCore
|
|
using Size = System.Drawing.Size;
|
|
using KMBIM.Revit.Tools;
|
|
|
|
|
|
namespace KMBIM
|
|
{
|
|
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
|
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
|
public class SprinklerSprayRemove : IExternalCommand
|
|
{
|
|
UIApplication m_application;
|
|
Autodesk.Revit.Creation.ItemFactoryBase m_CreationBase;
|
|
UIDocument m_document;
|
|
Autodesk.Revit.DB.Document doc;
|
|
|
|
public const double PI = 3.14159265358;
|
|
public Autodesk.Revit.UI.ExternalCommandData m_revit;
|
|
public double ksv = 7.545932; //2300을 pit로 변환해놓은값
|
|
public Autodesk.Revit.UI.Result Execute(ExternalCommandData revit, ref string message, ElementSet elements)
|
|
{
|
|
if (!WorkMain.GetInstance().IsValid) return Autodesk.Revit.UI.Result.Succeeded;
|
|
m_application = revit.Application;
|
|
m_document = m_application.ActiveUIDocument;
|
|
if (m_document.Document.IsFamilyDocument)
|
|
m_CreationBase = m_document.Document.FamilyCreate;
|
|
else
|
|
m_CreationBase = m_document.Document.Create;
|
|
try
|
|
{
|
|
|
|
m_revit = revit;
|
|
|
|
//살수반경 표시 제거
|
|
|
|
RemoveSpray();
|
|
|
|
|
|
}
|
|
catch (Exception)
|
|
{
|
|
//message = e.Message;
|
|
return Autodesk.Revit.UI.Result.Failed;
|
|
}
|
|
|
|
|
|
return Autodesk.Revit.UI.Result.Succeeded;
|
|
}
|
|
|
|
private void RemoveSpray()
|
|
{
|
|
UIApplication uiapp = m_revit.Application;
|
|
UIDocument uidoc = uiapp.ActiveUIDocument;
|
|
doc = uidoc.Document;
|
|
|
|
IList<Element> ElementList = m_revit.Application.ActiveUIDocument.Selection.PickElementsByRectangle();
|
|
|
|
using(Transaction trans =new Transaction(doc))
|
|
{
|
|
trans.Start("Delete");
|
|
|
|
for (int i = 0; i < ElementList.Count; i++)
|
|
{
|
|
if (ElementList[i].Name == "SP_Dia") // 파일명이 SP_Dia 일때만 삭제한다.
|
|
{
|
|
FamilyInstance fi = ElementList[i] as FamilyInstance;
|
|
m_revit.Application.ActiveUIDocument.Document.Delete(fi.Id);
|
|
|
|
}
|
|
}
|
|
|
|
trans.Commit();
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|