示例#1
0
        protected override Result ExecuteCommand(ExternalCommandData data, ref string message, ElementSet elements)
        {
            _doc = data.Application.ActiveUIDocument.Document;
            Selection      selection = data.Application.ActiveUIDocument.Selection;
            Reference      refe      = selection.PickObject(ObjectType.Element, "请选择一个实例");
            FamilyInstance fi        = _doc.GetElement(refe) as FamilyInstance;

            if (fi == null)
            {
                TaskDialog.Show("提示", "您未选择任何实例");
                return(Result.Failed);
            }
            //参数获取
                        // 方法一:利用LookupParameter,参数为参数名称,如果选择元素找不到参数就会报错; 
                        //Parameter p = fi.LookupParameter("面积");
                        //string ps = p.AsValueString(); //此方法会输出公制单位
                        //string ps = p.AsDouble().ToString(); 此方法会输出英制单位。

            // 方法二:利用get_Parameter,参数为定义参数,如果选择元素找不到参数就会报错; 
                        //Parameter p1 = fi.get_Parameter(BuiltInParameter.HOST_AREA_COMPUTED);
                        //string p1s = p1.AsValueString();

            //方法三:获取所有参数
            ParameterSet parameter = fi.Parameters;

            if (parameter != null)
            {
                ParameterGrid frm = new ParameterGrid(parameter);
                frm.ShowDialog();
            }
            return(Result.Succeeded);
        }
示例#2
0
 private void btnExpendAll_Click(object sender, EventArgs e)
 {
     if (ParameterGrid != null)
     {
         ParameterGrid.ExpandAllGridItems();
     }
 }
示例#3
0
 private void btnCollapseAll_Click(object sender, EventArgs e)
 {
     if (ParameterGrid != null)
     {
         ParameterGrid.CollapseAllGridItems();
     }
 }
示例#4
0
        private void frmMain_Load(object sender, EventArgs e)
        {
            NPT  = new Testpad.NPT();
            Item = new Testpad.NPT.DataItem();
            NPT.UpgradeProgress += NPT_UpgradeProgress;
            NPT.EventReceived   += NPT_EventReceived;
            NPT.DataReceived    += NPT_DataReceived;
            NPT.In1Pressed      += NPT_In1Pressed;
            NPT.TouchStart       = false;

            NPT.ChannelResistanceVersion = 1;

            if (File.Exists(DefaultParameterFile))
            {
                NPT.LoadParameter(DefaultParameterFile);
            }

            ParameterGrid.SelectedObject = NPT.CurrentParameter;
            ParameterGrid.CollapseAllGridItems();

            T_Refresh.Enabled = true;
        }
示例#5
0
        private void ParameterDeleteButton_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Вы действительно хотите исключить выбранный параметр?", "Исключить параметр", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                var rowHandle = ParameterGrid.View.FocusedRowHandle;
                var row       = ParameterGrid.GetRow(rowHandle) as ORM.Parameter;

                if (_dc.StageParameter.Any(x => x.ParameterID == row.ID))
                {
                    MessageBox.Show("Нельзя удалить выбранный параметр, т.к. на него ссылается стадия проекта.", "Ошибка удаления", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                else if (row.ParameterValue.Any())
                {
                    MessageBox.Show("Нельзя удалить выбранный параметр, т.к. у него имеются значения.", "Ошибка удаления", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                else
                {
                    ((TableView)ParameterGrid.View).DeleteRow(rowHandle);
                    _dc.Parameter.DeleteOnSubmit(row);
                };
            }
            ;
        }