using System.Reflection; using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk.Revit.UI; using Autodesk.Revit.UI.Selection; using Nice3point.Revit.Toolkit.External; namespace Szmedi.RvKits.InfoManager.EAMTools { /// /// Revit执行命令 /// [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] public class EAMFacilityCodeCmd : ExternalCommand { public override void Execute() { AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; WinDialogAssists.ShowOrActivate(); } public static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { var dllName = args.Name.Split(',')[0]; var collection = Directory.GetFiles(GlobalVariables.DirAssembly, "*.dll", SearchOption.AllDirectories); foreach (var f in collection) { if (Path.GetFileNameWithoutExtension(f) == dllName) { return Assembly.LoadFrom(f); } } return null; } } }