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); }
private void btnExpendAll_Click(object sender, EventArgs e) { if (ParameterGrid != null) { ParameterGrid.ExpandAllGridItems(); } }
private void btnCollapseAll_Click(object sender, EventArgs e) { if (ParameterGrid != null) { ParameterGrid.CollapseAllGridItems(); } }
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; }
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); }; } ; }