From 27f9935fd0043e86e8b6cc18db0fc300181d7230 Mon Sep 17 00:00:00 2001 From: qin <a@163.com> Date: 星期四, 15 八月 2024 17:10:23 +0800 Subject: [PATCH] 冲突解决 --- 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