-
Notifications
You must be signed in to change notification settings - Fork 201
Closed
Labels
Description
Dynamo Version
Dynamo 2.19.3
Revit Version
Revit 2024.2
Operating System
Windows 11
What did you do?
try to use events subscription with CPython3
What did you expect to see?
No Error
What did you see instead?
a Python error
Node Name: PythonScript
Package: Core.Scripting
Dynamo Version: 2.19.3.6394
Host: Dynamo Revit
Messages: PythonEvaluator.Evaluate operation failed.
The constructor on type 'System.Reflection.Emit.TypeBuilder' was not found.
Status: Warning
Example 1
import clr
import System
from System import EventHandler
clr.AddReference("System.Drawing")
clr.AddReference("System.Windows.Forms")
import System.Drawing
import System.Windows.Forms
from System.Drawing import *
from System.Windows.Forms import *
class Form26(Form):
def __init__(self):
self.InitializeComponent()
def InitializeComponent(self):
self._button1 = System.Windows.Forms.Button()
self.SuspendLayout()
#
self._button1.Location = System.Drawing.Point(73, 103)
self._button1.Name = "button1"
self._button1.Size = System.Drawing.Size(142, 43)
self._button1.TabIndex = 0
self._button1.Text = "button1"
self._button1.UseVisualStyleBackColor = True
self._button1.Click += self.Button1Click
#
self.ClientSize = System.Drawing.Size(284, 261)
self.Controls.Add(self._button1)
self.Name = "Form26"
self.Text = "Form26"
self.ResumeLayout(False)
def Button1Click(self, sender, e):
pass
objForm = Form26()
objForm.ShowDialog()
Example 2
import clr
import System
from System import EventHandler
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
# Import RevitAPI
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
clr.AddReference("RevitAPIUI")
from Autodesk.Revit.UI import *
from Autodesk.Revit.UI.Events import *
doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
uiapp = uidoc.Application
def dismiss (sender, eventArgs):
if isinstance(eventArgs, TaskDialogShowingEventArgs):
eventArgs.OverrideResult(TaskDialogResult.No)
return
dialogEventHandler = EventHandler[DialogBoxShowingEventArgs](dismiss)
uiapp.DialogBoxShowing += dialogEventHandler
Stacktrace/logs
No response
Details
the error seems related to the build/compilation of PythonNet 2.5.2 (Python.Runtime) with Net.Standard 2.0 as target
there are potentially others PythonNet 2.5.2 issues due to this change (Net Framework -> Net.Standard 2.0),
will probably be resolved in PythonNet 3.x.x
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done
