Files
Shrlalgo.RvKits/ShrlAlgoToolkit.RevitAddins/RvMEP/FlipWorkplaneCmd.cs
2025-04-24 20:56:10 +08:00

47 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using CommunityToolkit.Mvvm.DependencyInjection;
using Nice3point.Revit.Toolkit.External;
namespace ShrlAlgo.RvKits.RvMEP
{
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class FlipWorkplaneCmd : ExternalCommand
{
public override void Execute()
{
ICollection<FamilyInstance> familyInstances;
if (UiDocument.Selection.GetElementIds().Count > 0)
{
familyInstances = UiDocument.Selection.GetElementIds().Select(Document.GetElement).OfType<FamilyInstance>().ToList();
}
else
{
familyInstances = UiDocument.SelectObjects<FamilyInstance>("请选择族实例");
}
Document.Invoke(
ts =>
{
foreach (var ins in familyInstances)
{
if (ins.CanFlipWorkPlane)
{
ins.IsWorkPlaneFlipped = !ins.IsWorkPlaneFlipped;
}
}
});
}
}
}