Revit二开-如何在WPF中获Listview、ListBox、ComboBox中选中项的值

在WPF中获Listview、ListBox、ComboBox中选中项的值,亲身去研究一下在WPF中获取其中的值,其实也不难,来,下面我们一起来通过一个简单的示例来感悟一下吧。
用个简单的Combobox举例 ,其他两个都是一样的获取方式;
第一步:写前台XAML

<Grid>
    <StackPanel Orientation="Horizontal">
          <ComboBox Width="200" Height="40" Name="combox" DisplayMemberPath="Name" SelectedValuePath="ID"/>
          <TextBox  Width="150" Height="40" Margin="10,0" Text= "{Binding ElementName=combox, Path=SelectedValue}"/>
           </StackPanel>
</Grid>

第二步:先准备方法

       public class Student
        {
            public ElementId ID { get; set; }
            public string Name { get; set; }
        }
        public List<Student> GetNumber(List<View> elements)
        {
            List<Student> listname = new List<Student>();
            foreach (var item in elements)
            {
                listname.Add(new Student() { Name = item.Name,ID = item.Id});
            }
            return listname;
        }

第三步:绑定数据 在这里以视图为例

  List<View> listviews = new List<View>();
  //Floor plan
  FilteredElementCollector Floorplancollector = new FilteredElementCollector(doc);
  var Floorplanviews = Floorplancollector.OfClass(typeof(ViewPlan)).OfClass(typeof(ViewPlan)).OfCategory(BuiltInCategory.OST_Views).Where(m => !(m as View).IsTemplate && (m as View).ViewType.Equals(ViewType.FloorPlan)).Cast<View>().ToList();

  if (listviews == null)
  {
    return Result.Cancelled;
  }
  listviews.AddRange(Floorplanviews);
 
  WpfLearn testListView = new WpfLearn();
  testListView.combox.ItemsSource = GetNumber(listviews);
  testListView.ShowDialog();
  MessageBox.Show((testListView.combox.SelectedItem as Student).ID.ToString());
   MessageBox.Show((testListView.combox.SelectedItem as Student).Name.ToString());

在这里插入图片描述

我是 AlanWang-HL

分享一个自制Revit插件,本人是个BIM工程师,该插件是根据自己做工程一些经验和对插件功能的频繁度,自己整合开发功能,初衷是提高效率。
目前MagicTools的功能包括通用功能、土建、机电、审图、出图功能。还有好多功能都想做,如果有好的需求也可以提,后续有新增继续增加上去,努力弄个实用的插件,希望能帮到真正有需要的BIMer。
如有需要的可以加企鹅群:630552940

插件下载地址,免费试用
链接:https://pan.baidu.com/s/1GDnHeWwZ5r_HrnT3Mo7twA?pwd=jhlt
提取码:jhlt

Revit是一款广泛用于建筑信息模型(BIM)设计的软件,而Epplus是一个.NET库,它提供了一个简单的方式来读取、写入Excel电子表格。在WPF (Windows Presentation Foundation) ,你可以利用Epplus将Excel文件的数据映射到Revit的构件。 过程一般包括以下几个步骤: 1. **加载Excel数据**:使用Epplus的`ExcelPackage`类打开Excel文件,并访问需要的数据表或范围。 ```csharp using OfficeOpenXml; ExcelPackage excel = new ExcelPackage(new FileInfo("path_to_your_excel_file.xlsx")); Sheet worksheet = excel.Workbook.Worksheets["Sheet1"]; ``` 2. **解析数据**:遍历工作表的行,将每一行的数据转换为对应的BIM实体属性,比如族类型、位置信息等。 ```csharp for (int i = 2; i <= worksheet.Dimension上限; i++) //从第二行开始,因为第一行通常是标题 { var cellData = worksheet.Cells[i, 1, i, 3].LoadAllValues(); //假设前三列包含必要的信息 // 根据Revit API创建相应的构件实例 Autodesk.Revit.DB.Element element = CreateElementFromData(cellData); } ``` 3. **创建构件**:根据解析出的数据,在Revit环境创建或修改构件,这通常涉及到Revit API函数或命令。 ```csharp private Autodesk.Revit.DB.Element CreateElementFromData(dynamic data) { // 使用data的信息,通过API创建或获取族、指定位置等 return yourRevitApp.ActiveUIDocument.Document.GetElement(yourGuid); //这里的guid应该是已经存在的族或元素ID } ``` 4. **关联数据**:将新创建的构件与Excel数据关联起来,以便后续的编辑或数据分析。 完成以上操作后,你需要处理可能出现的异常并确保Excel文件和Revit之间的数据同步是准确的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值