using Autodesk.Revit.ApplicationServices;
|
using Autodesk.Revit.DB;
|
using Autodesk.Revit.DB.Events;
|
using Autodesk.Revit.DB.Plumbing;
|
using Autodesk.Revit.UI;
|
using DevExpress.Utils.Extensions;
|
using HStation.RevitDev.RevitDataExport.Common;
|
using System.Linq;
|
|
namespace HStation.RevitDev.RevitDataExport.Utility
|
{
|
public class DocumentUtil
|
{
|
public static void RegistDocumentEvent(Application app)
|
{
|
app.DocumentChanged -= App_DocumentChanged;
|
app.DocumentChanged += App_DocumentChanged;
|
}
|
|
private static void App_DocumentChanged(object sender, DocumentChangedEventArgs e)
|
{
|
var doc = e.GetDocument();
|
|
var addedIds = e.GetAddedElementIds();
|
var removeIds = e.GetDeletedElementIds();
|
var modifiedIds = e.GetModifiedElementIds();
|
|
bool instancePlacing = GlobalResource.InstancePlacing;
|
bool pipePlacing = GlobalResource.PipePlacing;
|
|
if (pipePlacing || instancePlacing)
|
{
|
foreach (var id in addedIds)
|
{
|
var elem = doc.GetElement(id);
|
if (elem is FamilyInstance fi)
|
{
|
GlobalResource.FamilyInstanceIds.Add(id.IntegerValue.ToString());
|
TaskDialog.Show("提示", "增加族示例:" + id.IntegerValue.ToString());
|
}
|
if (elem is Pipe pipe)
|
{
|
GlobalResource.FamilyInstanceIds.Add(id.IntegerValue.ToString());
|
TaskDialog.Show("提示", "增加管道:" + id.IntegerValue.ToString());
|
}
|
}
|
}
|
|
foreach (var id in removeIds)
|
{
|
if (GlobalResource.FamilyInstanceIds.Contains(id.IntegerValue.ToString()))
|
{
|
GlobalResource.FamilyInstanceIds.Remove(id.IntegerValue.ToString());
|
TaskDialog.Show("提示", "删除元素:" + id.IntegerValue.ToString());
|
}
|
}
|
|
foreach (var id in modifiedIds)
|
{
|
if (GlobalResource.FamilyInstanceIds.Contains(id.IntegerValue.ToString()))
|
{
|
|
}
|
}
|
}
|
}
|
}
|