public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
var uiapp = commandData.Application;
var uidoc = uiapp.ActiveUIDocument;
var pt = PickPoint(uidoc);
TaskDialog.Show("dev", $"{pt}");
return Result.Succeeded;
}
private static XYZ PickPoint(UIDocument uidoc)
{
var document = uidoc.Document;
var view = uidoc.ActiveGraphicalView;
using (var transactionGroup = new TransactionGroup(document, "temp"))
{
transactionGroup.Start();
CreateSketchPlane(view);
try
{
return uidoc
.Selection
.PickPoint();
}
catch (OperationCanceledException)
{
return null;
}
finally
{
transactionGroup.RollBack();
}
}
}
private static void CreateSketchPlane(View view)
{
if (view.SketchPlane != null)
return;
var document = view.Document;
using (var transaction = new Transaction(document, "create view sketchplane"))
{
transaction.Start();
var transform = view.CropBox.Transform;
var plane = Plane.CreateByNormalAndOrigin(transform.BasisZ, transform.Origin);
var sketchPlane = SketchPlane.Create(document, plane);
view.SketchPlane = sketchPlane;
transaction.Commit();
}
}