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 Sai.RvKits.RvMEP { [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] public class FlipWorkplaneCmd : ExternalCommand { public override void Execute() { ICollection familyInstances; if (UiDocument.Selection.GetElementIds().Count > 0) { familyInstances = UiDocument.Selection.GetElementIds().Select(Document.GetElement).OfType().ToList(); } else { familyInstances = UiDocument.SelectObjects("请选择族实例"); } Document.Invoke( ts => { foreach (var ins in familyInstances) { if (ins.CanFlipWorkPlane) { ins.IsWorkPlaneFlipped = !ins.IsWorkPlaneFlipped; } } }); } } }