浏览代码

xls:解析信息调整

xulisong 5 年之前
父节点
当前提交
b812fe08db

+ 42 - 0
JBIM/JBIM/Common/EnumExtensions.cs

@@ -0,0 +1,42 @@
+/*-------------------------------------------------------------------------
+ * 功能描述:EnumExtensions
+ * 作者:xulisong
+ * 创建时间: 2019/6/17 10:43:13
+ * 版本号:v1.0
+ *  -------------------------------------------------------------------------*/
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JBIM
+{
+    public static class EnumExtensions
+    {
+        /// <summary>
+        /// 获取指定枚举类型的描述值
+        /// </summary>
+        /// <typeparam name="T">枚举类型</typeparam>
+        /// <returns></returns>
+        public static string GetDescription<T>(this T t) where T : struct
+        {
+            string description = t.ToString();
+            FieldInfo fieldInfo = t.GetType().GetField(description);
+            object[] attributes = fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
+            if (attributes.Length > 0)
+            {
+                DescriptionAttribute info = attributes[0] as DescriptionAttribute;
+                if (info != null)
+                {
+                    description = info.Description;
+                }
+
+            }
+            return description;
+        }
+    }
+}

+ 41 - 0
JBIM/JBIM/Common/PropertyCache.cs

@@ -0,0 +1,41 @@
+/*-------------------------------------------------------------------------
+ * 功能描述:PropertyCache
+ * 作者:xulisong
+ * 创建时间: 2019/6/17 10:04:51
+ * 版本号:v1.0
+ *  -------------------------------------------------------------------------*/
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JBIM
+{
+    public static class PropertyCache
+    {
+        private static readonly Dictionary<string, PropertyInfo> m_CacheProperties = new Dictionary<string, PropertyInfo>();
+
+        /// <summary>
+        /// 设置指定键值的属性
+        /// </summary>
+        /// <param name="key"></param>
+        /// <param name="propertyInfo"></param>
+        public static void SetProperty(string key, PropertyInfo propertyInfo)
+        {
+            m_CacheProperties[key] = propertyInfo;
+        }
+        /// <summary>
+        /// 获取指定键值的属性
+        /// </summary>
+        /// <param name="key"></param>
+        /// <returns></returns>
+        public static PropertyInfo GetProperty(string key)
+        {
+            m_CacheProperties.TryGetValue(key, out PropertyInfo result);
+            return result;
+        }
+    }
+}

+ 1 - 1
JBIM/JBIM/Component/Connector.cs

@@ -39,7 +39,7 @@ namespace JBIM.Component
         /// <summary>
         /// 是否连接
         /// </summary>
-        public string IsConnected { get; set; }
+        public bool IsConnected { get; set; }
         /// <summary>
         /// Connector所属构件
         /// </summary>

+ 7 - 0
JBIM/JBIM/Definition/ConnectorShape.cs

@@ -32,4 +32,11 @@ namespace JBIM
         Rectangle=2,
         Ellipse=3
     }
+
+    public enum ConnectorDomain
+    {
+        DomainUndefined=0,
+        DomainPiping =1,
+        DomainHvac,
+    }
 }

+ 12 - 0
JBIM/JBIM/Definition/TypeDefinition.cs

@@ -40,5 +40,17 @@ namespace JBIM
         MepSystemType = BimObject - 6,
         [Description("BoundarySegment")]
         BoundarySegment = BimObject - 7,
+        #region 关系类型相关
+        [Description("Relationship")]
+        Relationship = -25000,
+        [Description("MepSystem")]
+        Property_MepSystem = Relationship-1,
+        [Description("Owner")]
+        Property_Owner = Relationship - 2,
+        [Description("TypeId")]
+        Property_TypeId = Relationship - 3,
+        [Description("ConnectedIds")]
+        Property_ConnectedIds = Relationship - 4,
+        #endregion
     }
 }

+ 5 - 0
JBIM/JBIM/JBIM.csproj

@@ -54,6 +54,8 @@
     <Compile Include="BimDocument.cs" />
     <Compile Include="BimId.cs" />
     <Compile Include="BimObject.cs" />
+    <Compile Include="Common\EnumExtensions.cs" />
+    <Compile Include="Common\PropertyCache.cs" />
     <Compile Include="Common\TypeDefinitonAttribute.cs" />
     <Compile Include="Common\TypeDefinitonUtil.cs" />
     <Compile Include="Component\BoundarySegment.cs" />
@@ -82,6 +84,9 @@
       <DesignTimeSharedInput>True</DesignTimeSharedInput>
     </Compile>
     <Compile Include="Definition\TypeDefinition.cs" />
+    <Compile Include="Relationship\OneToManyRel.cs" />
+    <Compile Include="Relationship\OneToOneRel.cs" />
+    <Compile Include="Relationship\RelationshipBase.cs" />
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>

+ 27 - 0
JBIM/JBIM/Relationship/OneToManyRel.cs

@@ -0,0 +1,27 @@
+/*-------------------------------------------------------------------------
+ * 功能描述:OneToManyRel
+ * 作者:xulisong
+ * 创建时间: 2019/6/17 10:49:50
+ * 版本号:v1.0
+ *  -------------------------------------------------------------------------*/
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JBIM.Relationship
+{
+    public class OneToManyRel:RelationshipBase
+    {
+        /// <summary>
+        /// 主体对象
+        /// </summary>
+        public string RelatingObject { get; set; }
+        /// <summary>
+        /// 关联对象
+        /// </summary>
+        public List<string> RelatedObjects { get; set; }
+    }
+}

+ 27 - 0
JBIM/JBIM/Relationship/OneToOneRel.cs

@@ -0,0 +1,27 @@
+/*-------------------------------------------------------------------------
+ * 功能描述:OneToOneRel
+ * 作者:xulisong
+ * 创建时间: 2019/6/17 10:49:09
+ * 版本号:v1.0
+ *  -------------------------------------------------------------------------*/
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JBIM.Relationship
+{
+    public class OneToOneRel : RelationshipBase
+    {
+        /// <summary>
+        /// 主体对象
+        /// </summary>
+        public string RelatingObject { get; set; }
+        /// <summary>
+        /// 关联对象
+        /// </summary>
+        public string RelatedObject { get; set; }
+    }
+}

+ 83 - 0
JBIM/JBIM/Relationship/RelationshipBase.cs

@@ -0,0 +1,83 @@
+/*-------------------------------------------------------------------------
+ * 功能描述:RelationshipBase
+ * 作者:xulisong
+ * 创建时间: 2019/6/17 9:24:42
+ * 版本号:v1.0
+ *  -------------------------------------------------------------------------*/
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JBIM.Relationship
+{
+    /*
+     * 关系有个组织类别。一对一,或者一对多
+     *
+     * 比如:Connector所属关系一对一,Connector关联关系一对多
+     *
+     * 关系分成两类:由属性定义的关系,直接有关系表定义的关系
+     *      a、由属性定义的关系,可以自动解析,属性键值,反射找到对应的属性进行赋值
+     *      b、关系表定义的关系,直接加入document
+     *
+     *    通过关系名称进行反射,获取相应的值进行赋值,或者在List集合中加入相关项;
+     *
+     * 开放自定义关系:
+     */
+    /// <summary>
+    /// 关系基类
+    /// </summary>
+    public class RelationshipBase: BimObject
+    {
+        public RelationshipBase()
+        {
+            IsProperty = true;
+            this.ElementType = TypeDefinition.Relationship.ToString();
+        }
+        /// <summary>
+        /// 标志关系是否由属性定义
+        /// </summary>
+        public bool IsProperty { get;protected set; }
+        public void SetPropertyName(string propertyName)
+        {
+            PropertyName = propertyName;
+        }
+        public void SetElementType(TypeDefinition type)
+        {
+            this.ElementType = type.ToString();
+            PropertyName = type.GetDescription();
+        }
+        public string PropertyName { get; private set; }
+        public virtual void AcceptRelation(BimObject bimObject)
+        {
+            if (!IsProperty)
+            {
+                return;
+            }
+
+            AcceptRelationInner(bimObject);
+        }
+        protected virtual void AcceptRelationInner(BimObject bimObject)
+        {
+
+        }
+
+        protected PropertyInfo ParseProperty(BimObject bimObject)
+        {
+            var type = bimObject.GetType();
+            string propertyName = PropertyName;
+            var key = type.FullName + "_" + propertyName;
+            var propertyInfo = PropertyCache.GetProperty(key);
+            if (propertyInfo == null)
+            {
+                //缓存解析出来的属性元数据,以便提高解析速度
+                var property = type.GetProperty(propertyName, BindingFlags.Instance | BindingFlags.Public);
+                PropertyCache.SetProperty(key,property);
+            }
+            return propertyInfo;
+        }
+    }
+}

+ 10 - 1
JBIM/RevitExport/Export/ElementWrapper.cs

@@ -15,8 +15,17 @@ namespace RevitExport
         public ElementWrapper(Element element)
         {
             RefElement = element;
+            UseDefaultCategory();
+        }
+        /// <summary>
+        /// 使用默认的分类
+        /// </summary>
+        public void UseDefaultCategory()
+        {
+            Category = RefElement.GetType().ToString();
         }
-
         public Element RefElement { get; private set; }
+
+        public string Category { get; set; }
     }
 }

+ 7 - 13
JBIM/RevitExport/Parse/IParseElement.cs

@@ -18,25 +18,19 @@ namespace RevitExport
     /// </summary>
     public interface IParseElement
     {
+        string FastIndex();
         bool Match(ElementWrapper wrapper);
-        /// <summary>
-        /// 解析指定元素
-        /// </summary>
-        /// <param name="wrapper"></param>
-        /// <param name="context"></param>
-        void Parse(ElementWrapper wrapper, ParseContext context);
+        List<string> Parse(ElementWrapper wrapper, ParseContext context);
+        List<ElementWrapper> ArrangeRefElements(ElementWrapper wrapper, ParseContext context);
     }
     /// <summary>
     /// 解析元素类
     /// </summary>
-    public interface IParseElement<C> where C: ParseContext
+    public interface IParseElement<in C,  Result> where C: ParseContext
     {
+        string FastIndex();
         bool Match(ElementWrapper wrapper);
-        /// <summary>
-        /// 解析指定元素
-        /// </summary>
-        /// <param name="wrapper"></param>
-        /// <param name="context"></param>
-        void Parse(ElementWrapper wrapper, C context);
+        List<Result> Parse(ElementWrapper wrapper, C context);
+        List<ElementWrapper> ArrangeRefElements(ElementWrapper wrapper, C context);
     }
 }

+ 44 - 14
JBIM/RevitExport/Parse/ParseInstance.cs

@@ -19,31 +19,54 @@ namespace RevitExport
     /// <summary>
     /// 解析实例
     /// </summary>
-    public class ParseInstance<C> where C:ParseContext
+    public class ParseInstance<C, Result> where C:ParseContext
     {
-        public ParseInstance(C context,List<IParseElement<C>> parsers)
+        public ParseInstance(C context,List<IParseElement<C, Result>> parsers)
         {
             Context = context;
             Parsers = parsers;
+            InitFastFilter();
         }
-        protected List<IParseElement<C>> Parsers { get; set; }
-        
-        protected virtual IParseElement<C> GetMatchParser(ElementWrapper wrapper)
+        protected Dictionary<string, IParseElement<C, Result>> FastFilter { get; set; }
+        protected List<IParseElement<C, Result>> Parsers { get; set; }
+        protected void InitFastFilter()
         {
+            FastFilter = new Dictionary<string, IParseElement<C, Result>>();
+            foreach (var parseElement in Parsers)
+            {
+                var key = parseElement.FastIndex();
+                if (!string.IsNullOrWhiteSpace(key))
+                {
+                    FastFilter[key] = parseElement;
+                }
+            }
+        }
+        protected virtual IParseElement<C, Result> GetMatchParser(ElementWrapper wrapper)
+        {
+            if (FastFilter.TryGetValue(wrapper.Category, out IParseElement<C, Result> parser))
+            {
+                return parser;
+            }
             var currentParse = Parsers.FirstOrDefault(p => p.Match(wrapper));
             return currentParse;
         }
+
+        public virtual List<Result> ParseElement(ElementWrapper elementWrapper, C context)
+        {
+            var currentParser = GetMatchParser(elementWrapper);
+            if (currentParser != null)
+            {
+               return currentParser.Parse(elementWrapper, Context);
+            }
+            return null;
+        }
         #region 解析元素相关
         public virtual void ParseElement(object sender, ExportArgs e)
         {
             if (!Parsers.Any())
                 return;
             ElementWrapper element = e.ElementWrapper;
-            var currentParse = GetMatchParser(element);
-            if (currentParse != null)
-            {
-                currentParse.Parse(element, Context);
-            }
+            ParseElement(element, Context);      
         }
 
         /// <summary>
@@ -58,12 +81,19 @@ namespace RevitExport
         /// <returns></returns>
         public virtual bool Parse(ExportInstance export)
         {
-            BindingExport(this,export);
-            Context.Export = export;
-            return export.Export();
+            try
+            {
+                BindingExport(this, export);
+                Context.Export = export;
+                return export.Export();
+            }
+            finally
+            {
+                export.ParseElement -= ParseElement;
+            }
         }
 
-        public static void BindingExport(ParseInstance<C> instance, ExportInstance export)
+        public static void BindingExport(ParseInstance<C, Result> instance, ExportInstance export)
         {
             export.ParseElement -= instance.ParseElement;
             export.ParseElement += instance.ParseElement;

+ 31 - 0
JBIM/RevitToJBim/Common/Converter.cs

@@ -0,0 +1,31 @@
+/*-------------------------------------------------------------------------
+ * 功能描述:Converter
+ * 作者:xulisong
+ * 创建时间: 2019/6/17 12:01:36
+ * 版本号:v1.0
+ *  -------------------------------------------------------------------------*/
+
+using JBIM;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SAGA.RevitUtils.Extends;
+
+namespace RevitToJBim.Common
+{
+    public static class BimConverter
+    {
+        public static readonly int CoordinateDecimalDigits = 2;
+
+        public static double Round(double coordinateDecimal)
+        {
+            return Math.Round(coordinateDecimal, CoordinateDecimalDigits);
+        }
+        public static XYZ ConvertToXYZ(Autodesk.Revit.DB.XYZ xyz)
+        {
+            return new XYZ() {X = Round(xyz.X.FromApi()), Y = Round(xyz.Y.FromApi()), Z = Round(xyz.Z.FromApi()),};
+        }
+    }
+}

+ 25 - 0
JBIM/RevitToJBim/Common/ExceptionUtil.cs

@@ -0,0 +1,25 @@
+/*-------------------------------------------------------------------------
+ * 功能描述:ExceptionUtil
+ * 作者:xulisong
+ * 创建时间: 2019/6/17 17:55:09
+ * 版本号:v1.0
+ *  -------------------------------------------------------------------------*/
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace RevitToJBim.Common
+{
+    public class ExceptionUtil
+    {
+        public static void ThrowIfDubug(Exception e)
+        {
+#if DEBUG
+            throw e;
+#endif
+        }
+    }
+}

+ 43 - 2
JBIM/RevitToJBim/ComponentParse/ParseBase.cs

@@ -10,14 +10,55 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using JBIM;
 using RevitExport;
+using RevitToJBim.Common;
 
 namespace RevitToJBim.ComponentParse
 {
-    public abstract class ParseBase : IParseElement<JBimParseContext>
+    public abstract class ParseBase : IParseElement<JBimParseContext,BimId>
     {
+        #region 接口类相关
+        /// <summary>
+        /// 快速索引
+        /// </summary>
+        /// <returns></returns>
+        public virtual string FastIndex()
+        {
+            return null;//Guid.NewGuid().ToString("N");
+        }
         public abstract bool Match(ElementWrapper wrapper);
-        public abstract void Parse(ElementWrapper wrapper, JBimParseContext context);
+        public virtual List<ElementWrapper> ArrangeRefElements(ElementWrapper wrapper, JBimParseContext context)
+        {
+            return null;
+        }
+        public virtual List<BimId> Parse(ElementWrapper wrapper, JBimParseContext context)
+        {
+            BimId result = context.GetBimId(wrapper.RefElement.Id.ToString());
+            if (result != null)
+            {
+                return new List<BimId>() { result };
+            }
+            var innerResults = ParseInner(wrapper, context);
+            var refElements = ArrangeRefElements(wrapper, context);
+            if (refElements != null)
+            {
+                foreach (var elementWrapper in refElements)
+                {
+                    try
+                    {
+                        context.Parse(elementWrapper);
+                    }
+                    catch (Exception e)
+                    {
+                        ExceptionUtil.ThrowIfDubug(e);
+                    }
+                }
+            }
+            return innerResults;
+        }
 
+        #endregion
+        protected abstract List<BimId> ParseInner(ElementWrapper wrapper, JBimParseContext context);
     }
 }

+ 41 - 1
JBIM/RevitToJBim/ComponentParse/ParseCore.cs

@@ -12,9 +12,16 @@ using System.Text;
 using System.Threading.Tasks;
 using JBIM;
 using JBIM.Component;
+using RevitToJBim.Common;
 
 namespace RevitToJBim.ComponentParse
 {
+    /*
+     * 核心解析类不解析关系
+     */
+    /// <summary>
+    /// 核心解析类
+    /// </summary>
     public class ParseCore
     {
         public static BimObject GetObject(object obj)
@@ -24,7 +31,40 @@ namespace RevitToJBim.ComponentParse
 
         public static Connector CreateConnector(Autodesk.Revit.DB.Connector connector)
         {
-            return new Connector();
+            var result= new Connector();
+            result.SourceId = RevitIdGenerator.GetConnectorId(connector);
+            switch (connector.Domain)
+            {
+                case Autodesk.Revit.DB.Domain.DomainHvac:
+                {
+                    result.Domain = ConnectorDomain.DomainHvac.ToString();
+                    break;
+                }
+                case Autodesk.Revit.DB.Domain.DomainPiping:
+                {
+                    result.Domain = ConnectorDomain.DomainPiping.ToString();
+                    break;
+                }
+            }
+            result.IsConnected = connector.IsConnected;
+            result.Description = connector.Description;
+            result.Origin = BimConverter.ConvertToXYZ(connector.Origin);
+            return result;
+        }
+        public static MepSystem CreateConnector(Autodesk.Revit.DB.MEPSystem mepSystem)
+        {
+            var result= new MepSystem();
+            result.Name = mepSystem.Name;
+            result.SourceId = mepSystem.Id.ToString();
+            return result;
+        }
+        public static MepSystemType CreateConnector(Autodesk.Revit.DB.MEPSystemType mepSystemType)
+        {
+            var result = new MepSystemType();
+            result.Name = mepSystemType.Name;
+            result.SourceId = mepSystemType.Id.ToString();
+            return result;
+
         }
     }
 }

+ 21 - 3
JBIM/RevitToJBim/ComponentParse/ParsePipe.cs

@@ -10,7 +10,10 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using Autodesk.Revit.DB.Plumbing;
+using JBIM;
 using RevitExport;
+using JPipe=JBIM.Component.Pipe;
 
 namespace RevitToJBim.ComponentParse
 {
@@ -18,12 +21,27 @@ namespace RevitToJBim.ComponentParse
     {
         public override bool Match(ElementWrapper wrapper)
         {
-            throw new NotImplementedException();
+            return wrapper.RefElement is Pipe;
         }
 
-        public override void Parse(ElementWrapper wrapper, JBimParseContext context)
+        protected override List<BimId> ParseInner(ElementWrapper wrapper, JBimParseContext context)
         {
-            throw new NotImplementedException();
+            /*
+             * 解析思路:1、解析当前对象具体信息。
+             *           2、维护一些构件的关联管理关系,可以放在这个方法中,也可以放在ArrangeRefElements中
+             *
+             */
+            if (!(wrapper.RefElement is Pipe pipe))
+            {
+                return null;
+            }
+            JPipe jPipe = new JPipe();   
+            return null;
+        }
+
+        public override List<ElementWrapper> ArrangeRefElements(ElementWrapper wrapper, JBimParseContext context)
+        {
+            return base.ArrangeRefElements(wrapper, context);
         }
     }
 }

+ 36 - 0
JBIM/RevitToJBim/ComponentParse/ParseSpace.cs

@@ -0,0 +1,36 @@
+/*-------------------------------------------------------------------------
+ * 功能描述:ParseSpace
+ * 作者:xulisong
+ * 创建时间: 2019/6/17 14:28:03
+ * 版本号:v1.0
+ *  -------------------------------------------------------------------------*/
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Autodesk.Revit.DB.Mechanical;
+using RevitExport;
+
+namespace RevitToJBim.ComponentParse
+{
+    public class ParseSpace : ParseBase
+    {
+        public override string FastIndex()
+        {
+            return typeof(Space).ToString();
+        }
+        public override bool Match(ElementWrapper wrapper)
+        {
+            return wrapper.RefElement is Space;
+        }
+
+        public override void Parse(ElementWrapper wrapper, JBimParseContext context)
+        {
+            var bimId=context.GetBimId(wrapper.RefElement.Id.ToString());
+
+            throw new NotImplementedException();
+        }
+    }
+}

+ 11 - 0
JBIM/RevitToJBim/JBimParseContext.cs

@@ -43,5 +43,16 @@ namespace RevitToJBim
           return  this.Document.NewObject(obj)?.Id;
         }
         #endregion
+
+        #region 关系数据统一存储
+
+        #endregion
+
+        #region 解析方法
+        public List<BimId> Parse(ElementWrapper wrapper)
+        {
+            return new List<BimId>();
+        }
+        #endregion
     }
 }

+ 4 - 0
JBIM/RevitToJBim/RevitToJBim.csproj

@@ -50,10 +50,14 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="Common\Converter.cs" />
+    <Compile Include="Common\ExceptionUtil.cs" />
     <Compile Include="Common\RevitIdGenerator.cs" />
     <Compile Include="ComponentParse\ParseBase.cs" />
     <Compile Include="ComponentParse\ParseCore.cs" />
     <Compile Include="ComponentParse\ParsePipe.cs" />
+    <Compile Include="ComponentParse\ParseSpace.cs" />
+    <Compile Include="RevitToJBimParser.cs" />
     <Compile Include="JBimParseContext.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>

+ 34 - 0
JBIM/RevitToJBim/RevitToJBimParser.cs

@@ -0,0 +1,34 @@
+/*-------------------------------------------------------------------------
+ * 功能描述:RevitToJBimParser
+ * 作者:xulisong
+ * 创建时间: 2019/6/17 17:24:29
+ * 版本号:v1.0
+ *  -------------------------------------------------------------------------*/
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using JBIM;
+using RevitExport;
+
+namespace RevitToJBim
+{
+    public class RevitToJBimParser: ParseInstance<JBimParseContext, BimId>
+    {
+        public RevitToJBimParser(JBimParseContext context, List<IParseElement<JBimParseContext, BimId>> parsers):base(context,parsers)
+        {
+           
+        }
+        public override List<BimId> ParseElement(ElementWrapper elementWrapper, JBimParseContext context)
+        {
+            //BimId result = context.GetBimId(elementWrapper.RefElement.Id.ToString());
+            //if (result != null)
+            //{
+            //    return new List<BimId>() {result};
+            //}
+            return ParseElement(elementWrapper,context);
+        }
+    }
+}