コード例 #1
0
        void SaveRelationData()
        {
            m_sqlite = new MtSQLite(m_sqliteFilePath);

            string[]        _columnName      = m_columnName.Split(';');
            List <string[]> listColumnValues = new List <string[]>();

            foreach (var _switch in m_switchLightRelationDic)
            {
                foreach (var ctrlObj in _switch.Value)
                {
                    string switchCode  = "'" + _switch.Key + "'";
                    string ctrlObjCode = "'" + ctrlObj.Key + "'";
                    string typeCode    = "'" + ctrlObj.Value + "'";
                    listColumnValues.Add(new string[] { switchCode, ctrlObjCode, typeCode });
                }
            }
            m_sqlite.InsertIntoList(m_tableName, _columnName, listColumnValues);
        }
コード例 #2
0
        public void ReadDataFromDB(string sqliteFilePath)
        {
            m_floorInfo.Clear();
            if (sqliteFilePath == null)
            {
                TaskDialog.Show("Error", "没有指定DB文件");
            }
            m_sqlite = new MtSQLite(sqliteFilePath);
            JArray jarr     = new JArray();
            string quarySql = "SELECT ID,空间,空间编码 FROM " + "'" + m_tableName + "'";

            // string quarySql = "SELECT 序号,科室名称,用途 FROM " + "'" + m_tableName + "'";
            jarr = m_sqlite.ExecuteQuery(quarySql);

            foreach (var item in jarr)
            {
                //string roomNum = item.Value<string>("序号").Trim();
                string id       = item.Value <string>("ID").Trim();
                string space    = item.Value <string>("空间").Trim();
                string spaceNum = item.Value <string>("空间编码").Trim();
                //string dep = item.Value<string>("科室名称").Trim();
                //string use = item.Value<string>("用途").Trim();


                //string floorId = level + "-" + roomNum;
                //string floorId = roomNum;
                //string info = dep + "*" + use;

                if (string.IsNullOrEmpty(id) || string.IsNullOrEmpty(space) || string.IsNullOrEmpty(spaceNum))
                {
                    continue;
                }

                string floorID = id;
                string info    = space + "*" + spaceNum;
                if (!m_floorInfo.ContainsKey(floorID))
                {
                    m_floorInfo.Add(floorID, info);
                }
            }
        }
コード例 #3
0
        //效率较低
        public void DumpIntoDB(string path, string systemName, string subSystem, string tunnelName,
                               string tableName, string columnName, bool isPositiveDir, bool isWaterReturnPipe)
        {
            if (string.IsNullOrEmpty(path))
            {
                return;
            }
            m_sqlite = new MtSQLite(path);

            string[] _columnKey   = columnName.Split(';'); //id,upstream,downstream
            string[] _columnValue = new string[10];

            foreach (var Node in m_allTreeNodeList)
            {
                string info = Node.Info;

                _columnValue[0] = ResetPipeId(Node, systemName, Node.Id.ToString());   //ID

                if (string.IsNullOrEmpty(tunnelName))
                {
                    _columnValue[3] = "'" + "Default" + "'"; //TUNNEL 默认为Default
                }
                else
                {
                    _columnValue[3] = "'" + tunnelName + "'";
                }

                _columnValue[5] = Node.IsValve.ToString();                               //IsValve : 0 :非Valve  1: 是Valve
                _columnValue[6] = "'" + subSystem + "'";                                 //SUBSYSTEM : 通过下拉框选择
                _columnValue[7] = "'" + GetSubsystemCode(subSystem) + "'";               //subsystemCode
                _columnValue[8] = "'" + (IsEncodeDevice(info) ? 1 : 0).ToString() + "'"; //设备是否有编码
                _columnValue[9] = "'" + "0" + "'";                                       //是否是末端管道
                if (isPositiveDir)
                {
                    _columnValue[4] = "1"; //DIRECTION 1:正向 0:逆向

                    if (Node.Parent == null)
                    {
                        _columnValue[1] = "'" + string.Empty + "'";

                        foreach (var child in Node.ChildNodes)
                        {
                            _columnValue[2] = ResetPipeId(child, systemName, child.Id.ToString()); //DOWNSTREAM
                            m_sqlite.InsertInto(tableName, _columnKey, _columnValue);
                        }
                    }
                    else
                    {
                        _columnValue[1] = ResetPipeId(Node.Parent, systemName, Node.Parent.Id.ToString());  //UPSTREAM
                        if (Node.ChildNodes != null && Node.ChildNodes.Count != 0)
                        {
                            foreach (var child in Node.ChildNodes)
                            {
                                _columnValue[2] = ResetPipeId(child, systemName, child.Id.ToString()); //DOWNSTREAM
                                m_sqlite.InsertInto(tableName, _columnKey, _columnValue);
                            }
                        }
                        else
                        {
                            _columnValue[2] = "'" + string.Empty + "'";
                            _columnValue[9] = "'" + "1" + "'";                        //是否是末端管道 1:是 0:不是
                            m_sqlite.InsertInto(tableName, _columnKey, _columnValue); //加入没有下游的记录
                        }
                    }
                }
                else
                {
                    _columnValue[4] = "0"; //DIRECTION 1:正向 0:逆向

                    if (Node.Parent == null)
                    {
                        _columnValue[2] = "'" + string.Empty + "'";

                        foreach (var child in Node.ChildNodes)
                        {
                            _columnValue[1] = ResetPipeId(child, systemName, child.Id.ToString()); //加入逆向的初始管道
                            m_sqlite.InsertInto(tableName, _columnKey, _columnValue);
                        }
                    }
                    else
                    {
                        _columnValue[2] = ResetPipeId(Node.Parent, systemName, Node.Parent.Id.ToString());  //DOWNSTREAM

                        if (Node.ChildNodes != null && Node.ChildNodes.Count != 0)
                        {
                            foreach (var child in Node.ChildNodes)
                            {
                                _columnValue[1] = ResetPipeId(child, systemName, child.Id.ToString()); //UPSTREAM
                                m_sqlite.InsertInto(tableName, _columnKey, _columnValue);
                            }
                        }
                        else
                        {
                            if (!isWaterReturnPipe) //回水的末端不加入数据库中,因为供水的管道已经写入
                            {
                                _columnValue[1] = "'" + string.Empty + "'";
                                _columnValue[9] = "'" + "1" + "'";
                                m_sqlite.InsertInto(tableName, _columnKey, _columnValue); //加入没有上游的记录
                            }
                        }
                    }
                }
            }
            m_isHide = true;
        }
コード例 #4
0
        public void DumpIntoDB2(string path, string systemName, string subSystem, string tunnelName,
                                string tableName, string columnName, bool isPositiveDir, bool isWaterReturnPipe)
        {
            if (string.IsNullOrEmpty(path))
            {
                return;
            }
            m_sqlite = new MtSQLite(path);

            string[] _columnKey = columnName.Split(';');

            List <string[]> listColumnValues = new List <string[]>();

            foreach (var Node in m_allTreeNodeList)
            {
                string info = Node.Info;

                string[] _columnValue = new string[_columnKey.Length];
                _columnValue[0] = ResetPipeId(Node, systemName, Node.Id.ToString());   //ID
                                                                                       //if (string.IsNullOrEmpty(tunnelName))
                                                                                       //    _columnValue[3] = "'" + "Default" + "'"; //TUNNEL 默认为Default
                                                                                       //else
                _columnValue[3] = "'" + GetTunnelName(tunnelName) + "'";

                _columnValue[5]  = Node.IsValve.ToString();                               //IsValve : 0 :非Valve  1: 是Valve
                _columnValue[6]  = "'" + subSystem + "'";                                 //SUBSYSTEM : 通过下拉框选择
                _columnValue[7]  = "'" + GetSubsystemCode(subSystem) + "'";               //subsystemCode
                _columnValue[8]  = "'" + (IsEncodeDevice(info) ? 1 : 0).ToString() + "'"; //设备是否有编码
                _columnValue[9]  = "'" + "0" + "'";                                       //是否是末端管道
                _columnValue[10] = ResetPipeId(m_startingElementNode, systemName, m_startingElementNode.Id.ToString());

                if (isPositiveDir)
                {
                    _columnValue[4] = "1"; //DIRECTION 1:正向 0:逆向

                    if (Node.Parent == null)
                    {
                        _columnValue[1] = "'" + string.Empty + "'";

                        foreach (var child in Node.ChildNodes)
                        {
                            //引用问题,所以用了临时变量
                            string[] tempColumnValue = CopyData(_columnValue);
                            tempColumnValue[2] = ResetPipeId(child, systemName, child.Id.ToString()); //DOWNSTREAM
                            listColumnValues.Add(tempColumnValue);
                        }
                    }
                    else
                    {
                        _columnValue[1] = ResetPipeId(Node.Parent, systemName, Node.Parent.Id.ToString());  //UPSTREAM
                        if (Node.ChildNodes != null && Node.ChildNodes.Count != 0)
                        {
                            foreach (var child in Node.ChildNodes)
                            {
                                string[] tempColumnValue = CopyData(_columnValue);
                                tempColumnValue[2] = ResetPipeId(child, systemName, child.Id.ToString()); //DOWNSTREAM
                                listColumnValues.Add(tempColumnValue);
                            }
                        }
                        else
                        {
                            _columnValue[2] = "'" + string.Empty + "'";
                            _columnValue[9] = "'" + "1" + "'";  //是否是末端管道 1:是 0:不是
                            listColumnValues.Add(_columnValue); //加入没有下游的记录
                        }
                    }
                }
                else
                {
                    _columnValue[4] = "0"; //DIRECTION 1:正向 0:逆向

                    if (Node.Parent == null)
                    {
                        _columnValue[2] = "'" + string.Empty + "'";

                        foreach (var child in Node.ChildNodes)
                        {
                            string[] tempColumnValue = CopyData(_columnValue);
                            tempColumnValue[1] = ResetPipeId(child, systemName, child.Id.ToString()); //加入逆向的初始管道
                            listColumnValues.Add(tempColumnValue);
                        }
                    }
                    else
                    {
                        _columnValue[2] = ResetPipeId(Node.Parent, systemName, Node.Parent.Id.ToString());  //DOWNSTREAM

                        if (Node.ChildNodes != null && Node.ChildNodes.Count != 0)
                        {
                            foreach (var child in Node.ChildNodes)
                            {
                                string[] tempColumnValue = CopyData(_columnValue);
                                tempColumnValue[1] = ResetPipeId(child, systemName, child.Id.ToString()); //UPSTREAM
                                listColumnValues.Add(tempColumnValue);
                            }
                        }
                        else
                        {
                            if (!isWaterReturnPipe) //回水的末端不加入数据库中,因为供水的管道已经写入
                            {
                                _columnValue[1] = "'" + string.Empty + "'";
                                _columnValue[9] = "'" + "1" + "'";
                                listColumnValues.Add(_columnValue);  //加入没有上游的记录
                            }
                        }
                    }
                }
            }
            m_sqlite.InsertIntoList(tableName, _columnKey, listColumnValues);
            m_isHide = true;
        }
コード例 #5
0
        void GetPipePiameter()
        {
            ElementClassFilter instanceFilter = new ElementClassFilter(typeof(FamilyInstance));
            ElementClassFilter hostFilter     = new ElementClassFilter(typeof(HostObject));
            LogicalOrFilter    andFilter      = new LogicalOrFilter(instanceFilter, hostFilter);

            FilteredElementCollector collector = new FilteredElementCollector(m_uIDocument.Document);

            collector.WherePasses(andFilter);

            Dictionary <string, float> m_dic = new Dictionary <string, float>();
            List <Element>             eles  = new List <Element>();
            float piameter = 0;

            MtCommon.WriteStringIntoText("总共:" + collector.Count().ToString());
            int index = 0;

            foreach (var ele in collector)
            {
                if (m_IsCreateFile)
                {
                    var content = MtCommon.ReadStringFromText();
                    content += "\r\n" + $"索引{index}:" + ele.Id.ToString();
                    MtCommon.WriteStringIntoText(content);
                    index++;
                }

                string eleID = ele.Id.ToString();

                //判断是否是设备,通过设备编码参数,判断是否为设备,设备的直径默认设置为10000
                var equipCode = MtCommon.GetOneParameter(ele, MtCommon.GetStringValue(Parameters.EquipmentCode));
                if (!string.IsNullOrEmpty(equipCode))
                {
                    piameter = 10000f;
                }
                else
                {
                    //获取管道直径参数:只要包含“直径”二字的选择一个作为直径参数
                    var paramter = GetParameterWithPiameterParam(ele, "直径");
                    if (paramter != null && paramter.Count != 0)
                    {
                        foreach (var item in paramter)
                        {
                            var value = GetMultiNumbers(item.AsValueString()).FirstOrDefault();
                            piameter += value;
                        }
                        piameter = (int)(piameter / paramter.Count);
                    }
                    else
                    {
                        //没有直径参数的,利用宽高等参数判断,取中值
                        var width  = GetParameterWithPiameterParam(ele, "风管宽度").FirstOrDefault();;
                        var height = GetParameterWithPiameterParam(ele, "风管高度").FirstOrDefault();

                        if (width != null && height != null)
                        {
                            var widthValue  = GetMultiNumbers(width.AsValueString()).FirstOrDefault();
                            var heightValue = GetMultiNumbers(height.AsValueString()).FirstOrDefault();
                            piameter = (int)((widthValue + heightValue) / 2);
                        }
                        else
                        {
                            //利用尺寸200x100,200x100200x100,只取前后两位计算
                            var size = MtCommon.GetOneParameter(ele, "尺寸");
                            if (!string.IsNullOrEmpty(size))
                            {
                                var result = GetMultiNumbers(size);
                                if (result.Count >= 2)
                                {
                                    piameter = (int)((result[0] + result[result.Count - 1]) / 2);
                                }
                                else if (result.Count == 1)
                                {
                                    piameter = result[0];
                                }
                                else
                                {
                                    piameter = 0;
                                }
                            }
                            else
                            {
                                piameter = 0f;
                            }
                        }
                    }
                }
                var    campus       = MtCommon.GetOneParameter(ele, MtCommon.GetStringValue(Parameters.Campus));
                var    build        = MtCommon.GetOneParameter(ele, MtCommon.GetStringValue(Parameters.Building));
                var    level        = MtCommon.GetOneParameter(ele, MtCommon.GetStringValue(Parameters.MtLevel));
                var    verticalPipe = MtCommon.GetOneParameter(ele, MtCommon.GetStringValue(Parameters.VerticalPipe));
                string pipeCode     = string.Empty;
                if (verticalPipe.Equals("1-1"))
                {
                    pipeCode = campus + "-" + build + "-" + level + "_" + m_SystemCode + "_" + ele.Id + "#L";
                }
                else
                {
                    pipeCode = campus + "-" + build + "-" + level + "_" + m_SystemCode + "_" + ele.Id;
                }

                if (!m_dic.ContainsKey(pipeCode))
                {
                    m_dic.Add(pipeCode, piameter);
                    eles.Add(ele);
                }
                piameter = 0;
            }

            MtCommon.HideElements(m_uIDocument.Document, eles);

            m_sqlite = new MtSQLite(m_sqliteFilePath);
            List <string> quarays = new List <string>();

            foreach (var item in m_dic)
            {
                quarays.Add($"Update Facility_Pipe Set diameter = '{item.Value}' where code = '{item.Key}'");
                //quarays.Add($"Insert into Pipe (code,diameter) values ('{item.Key}','{item.Value}')");
            }
            m_sqlite.ExecuteNoneQuery(quarays.ToArray());
        }