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