Revit二开–管线分段解密
唐僧解瓦项目 github地址:https://github.com/binbinstrong/tangsengjiewa
关注本博客功能解密陆续进行中 解密结束有免费工具献上,敬请期待
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
[Journaling(JournalingMode.UsingCommandData)]
public class Cmd_BreakMepcurvesInPieces : IExternalCommand
{
#region uiapp uid doc
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIApplication uiapp = commandData.Application;
UIDocument uid = uiapp.ActiveUIDocument;
Document doc = uid.Document;
Reference r = uid.Selection.PickObject(ObjectType.PointOnElement, "请选择一个分段点");
Element elem = doc.GetElement(r);
MEPCurve mec = elem as MEPCurve;
Line line = (mec.Location as LocationCurve).Curve as Line;
XYZ splitpoint = line.Project(r.GlobalPoint).XYZPoint;
Level level = doc.ActiveView.GenLevel;
using (Transaction ts = new Transaction(doc))
{
try
{
ts.Start("开始分段");
var collector = new FilteredElementCollector(doc, doc.ActiveView.Id);
var mepcollector = collector.OfClass(typeof(MEPCurve)).WhereElementIsNotElementType().Where(m => (m as MEPCurve).LocationLine().Length > 2100d.MetricToFeet()).Cast<MEPCurve>().ToList();
var perlength = 6000d.MetricToFeet();
var ductperlength = 4000d