From 2ea53b9fbd3fc318f1c02c1888c22aec5abab8ef Mon Sep 17 00:00:00 2001
From: zhangyuekai <zhangyuekai@126.com>
Date: 星期六, 17 八月 2024 13:55:58 +0800
Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/RevitTool.V1.0

---
 HStation.RevitDev/RevitDataExport/Utility/RevitTypeExtense.cs |   22 +++++++++++++++++++++-
 1 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/HStation.RevitDev/RevitDataExport/Utility/RevitTypeExtense.cs b/HStation.RevitDev/RevitDataExport/Utility/RevitTypeExtense.cs
index b1c14a4..d8a692e 100644
--- a/HStation.RevitDev/RevitDataExport/Utility/RevitTypeExtense.cs
+++ b/HStation.RevitDev/RevitDataExport/Utility/RevitTypeExtense.cs
@@ -2,6 +2,7 @@
 using HStation.RevitDev.Model.ModelEnum;
 using HStation.RevitDev.RevitDataExport.Common;
 using HStation.RevitDev.RevitDataExport.Entity;
+using HStation.RevitDev.RevitDataExport.Parser;
 using System;
 using System.Reflection;
 
@@ -37,7 +38,7 @@
 
         public static Type GetElementModelType(this RevitType revitType) 
         {
-            var exportTypes = revitType.GetType().Assembly.GetExportedTypes();
+            var exportTypes = Assembly.GetExecutingAssembly().GetExportedTypes();
             foreach (var type in exportTypes)
             {
                 if (!type.IsSubclassOf(typeof(ModelBase))) { continue; }
@@ -53,5 +54,24 @@
             }
             return null;
         }
+
+        public static BaseParser CreateModelParser(this RevitType revitType)
+        {
+            var types = Assembly.GetExecutingAssembly().GetTypes();
+            foreach (var type in types) 
+            {
+                if (!type.IsSubclassOf(typeof(BaseParser))) { continue; }
+                var attr = type.GetCustomAttribute<RevitTypeAttribute>();
+
+                if (attr == null) { continue; }
+                if (attr.m_revitType != revitType) { continue; }
+
+                BaseParser parser = Activator.CreateInstance(type) as BaseParser;
+                if (parser == null) { continue; }
+
+                return parser;
+            }
+            return null;
+        }
     }
 }

--
Gitblit v1.9.3