Here an alternative with Hide()
and Show()
import clr
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *
from Autodesk.Revit.UI.Selection import *
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
clr.AddReference('System.Windows.Forms')
clr.AddReference('System.Drawing')
import System.Drawing
import System.Windows.Forms
from System.Drawing import *
from System.Windows.Forms import *
from System import IntPtr
def sp(form):
form.Hide()
try:
a = uidoc.Selection.PickPoint(ObjectSnapTypes.Endpoints,"Please select point")
except Exception as ex:
print(ex)
a = "NA"
form.Show()
return a
class pickPoint(Form):
def __init__(self):
self.button1 = Button()
self.button2 = Button()
self._label1 = Label()
self.p = None
#
# label1
#
self._label1.Location = System.Drawing.Point(30, 50)
self._label1.Name = "label1"
self._label1.Size = System.Drawing.Size(300, 23)
self._label1.TabIndex = 0
self._label1.Text = "Point : "
#
#button1
#
self.button1.Location = System.Drawing.Point(288, 129)
self.button1.Name = "button1"
self.button1.Size = System.Drawing.Size(150, 34)
self.button1.TabIndex = 0
self.button1.Text = "Please Pick Point"
self.button1.Click += self.button1Click
#
#button1
#
self.button2.Location = System.Drawing.Point(30, 129)
self.button2.Name = "button2"
self.button2.Size = System.Drawing.Size(150, 34)
self.button2.TabIndex = 0
self.button2.Text = "Cancel"
self.button2.Click += self.button2Click
#
#Form1
#
self.ClientSize = System.Drawing.Size(452, 196)
self.Controls.Add(self.button1)
self.Controls.Add(self.button2)
self.Controls.Add(self._label1)
self.Name = "Form1"
self.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
self.Text = "pickPoint"
self.ResumeLayout(False)
def button1Click(self,sender,e):
self.p = sp(self)
self._label1.Text = "Point : {}".format(self.p.ToString())
def button2Click(self,sender,e):
self.Close()
form = pickPoint()
Application.Run(form)
OUT = form.p