4 déc. 2022

[Dynamo += Python] import ???

 




Parfois, on cherche quelle Assembly et/ou quel Espace de nom, il faut importer dans un nœud Python.

if this article is not in your language, use the Google Translate widget ⬈ (bottom of page for Mobile version )


En supposant que l'Assembly et la Méthode recherchée soit chargée dans l'environnement Dynamo (domaine), voici une petite aide avec un nœud Python.

Le nœud prend en entrée :
  • le nom de l'Espace (namespace)
  • le nom de la Méthode
ces 2 valeurs doivent être jointes par un point
namespace.method


import sys
import clr
import System
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
def search_assemby_bymethod(methodName):
	result = []
	s_name_space, s_methodName = methodName.split(".")
	for assembly in System.AppDomain.CurrentDomain.GetAssemblies():
		try:
			name_spaces = assembly.GetTypes()
		except:
			name_spaces = []
		for name_space in name_spaces:
			if s_name_space in name_space.Name:
				try:
					methods = name_space.GetMethods()
				except:
					methods = []
				for m in methods:
					if s_methodName in m.Name :
						if [assembly, name_space] not in result:
							result.append([ assembly, name_space])
	return result

name_method = IN[0]
OUT = search_assemby_bymethod(name_method)




Pour les méthodes de l'API Dynamo, généralement, il suffira de copier le nom du nœud.







0 commentaires:

Enregistrer un commentaire