Hi all,
i have started with xaml but for me it is quite hard to connect xaml with python code.
I want that the user needs to select a revit element/face/edge whatever, when clicking the button.
Python in Dynamo works like this here:
import clr
#Import the Revit API
clr.AddReference(‘RevitAPI’)
clr.AddReference(‘RevitAPIUI’)
import Autodesk
from Autodesk.Revit.DB import *
from Autodesk.Revit.UI import *
#Import DocumentManager and TransactionManager
clr.AddReference(‘RevitServices’)
import RevitServices
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
uidoc = uiapp.ActiveUIDocument
sel = uidoc.Selection.PickObject(Autodesk.Revit.UI.Selection.ObjectType.Element)
OUT = sel
What i tried with the .py file in the extension file is a def that i can call in xaml:
dependencies
import clr
clr.AddReference(‘System.Windows.Forms’)
clr.AddReference(‘IronPython.Wpf’)
#Import the Revit API
clr.AddReference(‘RevitAPI’)
clr.AddReference(‘RevitAPIUI’)
import Autodesk
from Autodesk.Revit.DB import *
from Autodesk.Revit.UI import *
#Import DocumentManager and TransactionManager
clr.AddReference(‘RevitServices’)
import RevitServices
from RevitServices.Persistence import DocumentManager
find the path of ui.xaml
from pyrevit import UI
from pyrevit import script
xamlfile = script.get_bundle_file(‘ui.xaml’)
import WPF creator and base Window
import wpf
from System import Windows
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
uidoc = uiapp.ActiveUIDocument
class MyWindow(Windows.Window):
def __init__(self):
wpf.LoadComponent(self, xamlfile)
def selection(self, sender, args)
sel = uidoc.Selection.PickObject(Autodesk.Revit.UI.Selection.ObjectType.Element)
let’s show the window (modal)
MyWindow().ShowDialog()
This doesn’t work
Hope somebody can help