2025-04-24 20:56:44 +08:00
|
|
|
|
using Autodesk.Revit.Attributes;
|
2024-09-22 11:05:41 +08:00
|
|
|
|
using Autodesk.Revit.DB;
|
2025-09-12 09:55:36 +08:00
|
|
|
|
|
2024-09-22 11:05:41 +08:00
|
|
|
|
using Nice3point.Revit.Toolkit.External;
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-04-24 20:56:44 +08:00
|
|
|
|
namespace ShrlAlgoToolkit.RevitAddins.RvMEP
|
2024-09-22 11:05:41 +08:00
|
|
|
|
{
|
|
|
|
|
|
[Transaction(TransactionMode.Manual)]
|
|
|
|
|
|
[Regeneration(RegenerationOption.Manual)]
|
|
|
|
|
|
public class FlipWorkplaneCmd : ExternalCommand
|
|
|
|
|
|
{
|
|
|
|
|
|
public override void Execute()
|
|
|
|
|
|
{
|
2025-09-12 09:55:36 +08:00
|
|
|
|
try
|
2024-09-22 11:05:41 +08:00
|
|
|
|
{
|
2025-09-12 09:55:36 +08:00
|
|
|
|
ICollection<FamilyInstance> familyInstances;
|
|
|
|
|
|
if (UiDocument.Selection.GetElementIds().Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
familyInstances = UiDocument.Selection.GetElementIds().Select(Document.GetElement).OfType<FamilyInstance>().ToList();
|
2024-09-22 11:05:41 +08:00
|
|
|
|
|
2025-09-12 09:55:36 +08:00
|
|
|
|
}
|
|
|
|
|
|
else
|
2024-09-22 11:05:41 +08:00
|
|
|
|
{
|
2025-09-12 09:55:36 +08:00
|
|
|
|
familyInstances = UiDocument.SelectObjects<FamilyInstance>("请选择族实例");
|
|
|
|
|
|
}
|
|
|
|
|
|
Document.Invoke(
|
2025-10-04 08:52:23 +08:00
|
|
|
|
_ =>
|
2024-09-22 11:05:41 +08:00
|
|
|
|
{
|
2025-09-12 09:55:36 +08:00
|
|
|
|
foreach (var ins in familyInstances)
|
2024-09-22 11:05:41 +08:00
|
|
|
|
{
|
2025-09-12 09:55:36 +08:00
|
|
|
|
if (ins.CanFlipWorkPlane)
|
|
|
|
|
|
{
|
|
|
|
|
|
ins.IsWorkPlaneFlipped = !ins.IsWorkPlaneFlipped;
|
|
|
|
|
|
}
|
2024-09-22 11:05:41 +08:00
|
|
|
|
}
|
2025-09-12 09:55:36 +08:00
|
|
|
|
});
|
|
|
|
|
|
}
|
2025-10-04 08:52:23 +08:00
|
|
|
|
catch (Exception)
|
2025-09-12 09:55:36 +08:00
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2024-09-22 11:05:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|