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 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(); } } } }