作为 Revit 二次开发人员,我们很熟悉如何使用 Selection.PickPoint() 在二维平面上选取一个点。由于 Revit API 并不直接支持在三维坐标系中选取一个点,我们需要采用稍微复杂一点儿的方法来实现:
1. 首先借助 View.SketchPlane 属性设置当前工作平面;
2. 然后使用 Selection.PickPoint() 在当前工作平面上选取点
代码如下:
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class Command : IExternalCommand
{
public Autodesk.Revit.UI.Result Execute(
ExternalCommandData commandData,
ref string message,
Autodesk.Revit.DB.ElementSet elements)
{
UIApplication uiapp = commandData.Application;
UIDocument uidoc = uiapp.ActiveUIDocument;
Application app = uiapp.Application;
Document doc = uidoc.Document;
XYZ point_in_3d;
if (SetWorkPlaneAndPickObject(uidoc, out point_in_3d))
{
TaskDialog.Show("3