コード例 #1
0
        private Dictionary <string, IFCObject> CombineIFC(List <IFCData> allIFCRow)
        {
            Dictionary <string, IFCObject> objDist = new Dictionary <string, IFCObject>();

            foreach (IFCData data in FilerReplaceData(allIFCRow))
            //foreach (IFCData data in allIFCRow) //無Replace
            {
                //try
                //{
                BsonDocument obj = new BsonDocument
                {
                    { "P21Id", data.P21Id },
                    { "EntityName", data.EntityName }
                };
                //Get Schema
                List <string> schemaList = SchemaReader.GetAttributesList(data.EntityName);
                //處理IFC原始字串編碼轉換, 並排除字串中有逗號的錯誤
                List <string> contentSplit = SplitProperty(CutStringWithComma(ConvertUnicodeStringToChinese(data.Properties)));

                for (int i = 0; i < contentSplit.Count; i++)
                {
                    if (contentSplit[i] == "") //空字串
                    {
                        obj.Add(schemaList[i], "");
                        continue;
                    }
                    if (contentSplit[i].Substring(0, 1) != "(") //非陣列可直接儲存
                    {
                        obj.Add(schemaList[i], GetValue(contentSplit[i]));
                        continue;
                    }
                    BsonArray arr1 = GetArray(contentSplit[i]);
                    obj.Add(schemaList[i], GetArray(contentSplit[i]));
                }
                objDist.Add(data.P21Id, new IFCObject(obj));
                //}
                //catch (Exception exp)
                //{
                //    ResultMessage += $"Has Error: {exp.Message}";
                //}
            }
            return(objDist);
        }