예제 #1
0
 /// <summary>
 /// 默认构造函数,各属性获得默认值
 /// </summary>
 public TendonParameters()
 {
     TdName      = "Unnamed";
     TdStyle     = "Φ15-12";
     TdNum       = 1;
     TdPipeDia   = 90;
     TdDrawStyle = TendonDrawStyle.Both;
 }
예제 #2
0
        /// <summary>
        /// 将程序中的tdsInTbl和图形数据库同步
        /// </summary>
        /// <param name="tdsInTbl">程序中的tdsInTbl列表</param>
        /// <param name="idsInTbl">所选的钢束线的ObjectId所组成的List</param>
        public static void SyncTdsToDwg(ref ObservableCollection <Tendon> tdsInTbl, List <ObjectId> idsInTbl)
        {
            tdsInTbl = new ObservableCollection <Tendon>();//初始化tds
            int index = 0;

            foreach (ObjectId tdId in idsInTbl)
            {
                Tendon td = new Tendon();
                td.TdId = tdId;
                Database db = HostApplicationServices.WorkingDatabase;
                using (Transaction trans = db.TransactionManager.StartTransaction())
                {
                    //不含该参数则为钢束线增加默认值的Xrecord
                    //初始化各属性值
                    string          tdName      = $"F{1 + index}";      //钢束名称
                    string          tdStyle     = "Φ15-12";             //钢束规格
                    int             tdNum       = 1;                    //钢束根数
                    double          tdPipeDia   = 90;                   //管道直径
                    TendonDrawStyle tdDrawStyle = TendonDrawStyle.Both; //张拉方式
                    if (tdId.GetXrecord("DA_Tendons") == null)
                    {
                        TypedValueList values = new TypedValueList();
                        values.Add(DxfCode.Text, tdName);
                        values.Add(DxfCode.Text, tdStyle);
                        values.Add(DxfCode.Int16, (Int16)(int)tdNum);
                        values.Add(DxfCode.Real, tdPipeDia);
                        values.Add(DxfCode.Int16, (Int16)(int)tdDrawStyle);
                        tdId.AddXrecord("DA_Tendons", values);
                        index++;
                    }
                    else//如果存在该键值,采用Xrecord中记录的信息
                    {
                        tdName      = (string)tdId.GetXrecord("DA_Tendons")[0].Value;
                        tdStyle     = (string)tdId.GetXrecord("DA_Tendons")[1].Value;
                        tdNum       = (int)(Int16)tdId.GetXrecord("DA_Tendons")[2].Value;
                        tdPipeDia   = (double)tdId.GetXrecord("DA_Tendons")[3].Value;
                        tdDrawStyle = (TendonDrawStyle)(int)(Int16)tdId.GetXrecord("DA_Tendons")[4].Value;
                    }
                    td.TdName      = tdName;
                    td.TdStyle     = tdStyle;
                    td.TdNum       = tdNum;
                    td.TdPipeDia   = tdPipeDia;
                    td.TdDrawStyle = tdDrawStyle;
                    trans.Commit();
                }
                tdsInTbl.Add(td);
            }
        }