Files
RevitArchive/HYJigPro/Jig3PtArc.cs
2026-02-23 14:58:05 +08:00

57 lines
1.9 KiB
C#

using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using System;
namespace HYJig
{
[Regeneration(0)]
[Transaction(TransactionMode.Manual)]
public class Jig3PtArc : IExternalCommand
{
public Result Execute(ExternalCommandData cmdData, ref string message, ElementSet elements)
{
UIDocument activeUIDocument = cmdData.Application.ActiveUIDocument;
ViewAssist.ViewValidating(activeUIDocument.Document, activeUIDocument.ActiveView);
XArc3PtJig xarc3PtJig = new XArc3PtJig(activeUIDocument);
XYZ xyz = xarc3PtJig.PickStartPoint("请确定圆弧起点:");
Result result;
if (xyz == null)
{
xarc3PtJig.Dispose();
result = 0;
}
else
{
XYZ xyz2 = xarc3PtJig.PickEndPoint(xyz, "请确定圆弧终点:");
if (xyz2 == null)
{
xarc3PtJig.Dispose();
result = 0;
}
else
{
XYZ xyz3 = xarc3PtJig.PickOnCurvePoint(xyz, xyz2, "请确定圆弧上的点:");
if (xyz3 == null)
{
xarc3PtJig.Dispose();
result = 0;
}
else
{
Transaction transaction = new Transaction(activeUIDocument.Document);
transaction.Start("CreateCurve");
Arc arc = Arc.Create(xyz, xyz2, xyz3);
activeUIDocument.Document.Create.NewDetailCurve(activeUIDocument.ActiveView, arc);
transaction.Commit();
xarc3PtJig.Dispose();
result = 0;
}
}
}
return result;
}
}
}