Revi二次开发_3.筛选不合格厚度的叠合板

  • 前言
  • 代码思路
  • 效果
  • 参考

前言

做了一个使用外部接口实现筛选不合格厚度叠合板(属于常规模型)的程序,记录一下。

代码思路

主要借用了IExternalCommand接口方法下唯一一个抽象函数Excute的参数message和返回值return Result.Failed;这样可以自动实现弹窗提示错误并高亮显示。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.UI.Selection;
using System.Windows.Forms;namespace Project
{//事务&更新&日志文件属性[Autodesk.Revit.Attributes.Transaction(TransactionMode.Manual)][Autodesk.Revit.Attributes.Regeneration(RegenerationOption.Manual)][Autodesk.Revit.Attributes.Journaling(JournalingMode.UsingCommandData)]public class Judge : IExternalCommand{public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elementSet){UIApplication uiApp = commandData.Application;Autodesk.Revit.ApplicationServices.Application app = uiApp.Application;Document doc = uiApp.ActiveUIDocument.Document;//错误提示文字string strAppInfo = app.VersionBuild + ";" + app.VersionName + ";" + app.VersionNumber;//创建过滤器FilteredElementCollector collector = new FilteredElementCollector(doc);collector.OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_GenericModel);List<Element> elementList = new List<Element>();List<Element> elementListshow = new List<Element>();//筛选目标对象foreach (var item in collector){FamilyInstance familyInstance = item as FamilyInstance;FamilySymbol symbol = familyInstance.Symbol;Family family = symbol.Family;//string类型//string beiZhu=wall.LookupParameter("备注").AsString();if (family.Name == "预应力叠合板"){elementList.Add(item);elementListshow.Add(item);}}elementListshow.Clear();//按厚度分类int i = 0;/* int j = 0;*/for (i = 0; i <elementList.Count; i++){Element elem = elementList[i];FamilyInstance familyInstance = elem as FamilyInstance;FamilySymbol symbol = familyInstance.Symbol;double Floorthick = 0;Floorthick = symbol.LookupParameter("预制板厚").AsDouble() * 0.3048 * 1000;if (Floorthick < 60){elementListshow.Add(elementList[i]);//TaskDialog.Show("输出信息", $"第{i + 1}块板的厚度为:{Floorthick}mm,不符合要求");}}//将筛选出的目标存入Executed的返回值elementSet中,输出自动高亮foreach (Element elem in elementListshow){elementSet.Insert(elem);}//返回错误文本message = "当前文件中包含如下叠合板厚度小于60mm:";return Result.Failed;}}
}

效果


参考

叶老师的教程30min处,功能是捕捉选择集,显示信息。
此处为参考的原始代码:

效果:

Revi二次开发_3.筛选不合格厚度的叠合板相关推荐

  1. php织梦二次开发的功能例子,织梦DedeCMS二次开发联动筛选功能的实现(含多选功能)...

    织梦默认的列表页没有筛选功能,但有时候我们做产品列表页的时候,产品的字段比较多,很多人都需要用到筛选功能,这样可以让用户更方便的找到自己所需要的东西,实现这个联动筛选功能需要对织梦进行二次开发,下面就 ...

  2. ANSA二次开发 - PID筛选案例介绍

      今天我们来介绍一个二次开发案例-ANSA中零件PID的筛选与操作.   首先先看一下需求:   如上图所示.有一堆零件,软件已经自动区分出PID.它们的PID名字都以"part" ...

  3. php多选筛选,织梦二次开发联动筛选(单选和多选)功能的实现

    织梦dedecms二次开发联动筛选(单选和多选)功能的实现 . 首先我把单选的代码贴出来,这个是我参考其他网站的,多选也是基于这个单选修改的,所以如果要做多选的话,也请先把单选的这些代码配置好. 联动 ...

  4. cad通过钢筋大样生成钢筋明细表插件_Revit二次开发——自动生成构件图(总结)...

    之前测试导出构件图的功能实现,拆分了各模块分布进行测试:Revit二次开发--一键导出构件图(1) Revit二次开发--叠合板自动配筋(2) Revit二次开发--自动标注钢筋思路(3) 本篇为这个 ...

  5. Revit二次开发——自动生成构件图(总结)

    之前测试导出构件图的功能实现,拆分了各模块分布进行测试: Revit二次开发--一键导出构件图(1) Revit二次开发--叠合板自动配筋(2) Revit二次开发--自动标注钢筋思路(3) 本篇为这 ...

  6. python二次开发攻略-ABAQUS Python二次开发攻略

    第一部分 引言 第1章 Abaqus二次开发简介 12 1.1 为什么是Python 12 1.2 Python.FORTRAN与Abaqus 13 1.3 基于Python二次开发 14 第2章 P ...

  7. 用友二次开发_详解ERP系统与MES系统的数据传递——永康用友

    详解ERP系统与MES系统的数据传递--永康用友 摘要:本文将按照数据的传递方向"从ERP到MES"和"MES到ERP"分别介绍MES系统如何与其他软件连接,才 ...

  8. 网站二次开发如何防止别人打包源码_面试官:你说你对Kafka比较熟?看过源码吗?...

    Kafka是一个分布式的,支持多分区.多副本的分布式消息流平台,同时也是一款开源的基于发布订阅模式的消息引擎系统,其最大的特点就是收发消息非常快,Kafka每秒可以处理几十万条消息,最低延迟也只有几毫 ...

  9. 《SuperMap GIS二次开发MVC实战训练---江海区慢性病防治院系统》项目研发阶段性总结

    <SuperMap GIS二次开发MVC实战训练-江海区慢性病防治院系统>项目研发阶段性总结 作者:爱怡同学 本次任务完成时间:2019年1月1日-2019年1月10日 开发工具与关键技术 ...

最新文章

  1. 文件批量重命名的技术,你值得拥有
  2. 第十六届全国大学生智能车竞赛全国总决赛获奖排行榜
  3. macpro如何清理磁盘空间_如何正确的清理C盘
  4. 代码,绘画,设计常用的颜色名称-16进制HEX编码-RGB编码 对照一览表
  5. Apache Cassandra和Java入门(第一部分)
  6. 华为root工具_华为Mate9解锁后无法ROOT 需要手动刷入Recovery怎么办【解决方法】...
  7. java修改list中对象的值_Java中List集合的一点总结
  8. 关于数据准备时,自动棌番的主键,这一字段数据的注意(IT总结之五)
  9. dos远程登录oracle,DOS批处理下 操作telnet实现自动远程登录操作
  10. python生成自己想要的KML文件
  11. 逆向学习1-[脱壳技术]/篇1
  12. 腾讯马化腾:公司拥有大量探索和开发元宇宙的技术和能力
  13. tp5.1使用json返回网址后出现的反斜杠问题
  14. echarts按照时间显示柱状图_Echarts制作时间柱形离散分布图
  15. 紫外可见分光光度计 | 探索光的工具 | 详解
  16. 浙江工业大学电子计算机专业,浙江工业大学计算机专业怎么样
  17. APP种树微信小程序源码下载-简单快速上手
  18. 后缀名.dat文件在选择打开方式时误勾选了用记事本打开, 结果电脑上的*.dat文件的打开方式都变成了记事本,没有修改文件的内容,如何恢复.bat文件的默认打开方式
  19. 003:core.discount_cumsum(),RL求优势函数时用到的函数——介绍
  20. 使用MHDD修护硬盘坏道教程(4)

热门文章

  1. BZOJ3827[Poi2014] Around the world
  2. 关于STM32F103 TIM2重映射
  3. 如何进行需求测试/需求评审
  4. python验证手机号是否注册过微博
  5. rust月球服务器名字_月亮的十大未解之谜
  6. 汽车发动机如何做保养,名悦集团教你几个小技巧
  7. CRMEB去除版权信息教程
  8. MS建模后转成LAMMPS的data文件
  9. Flash几乎每天一个Bug,Adobe该放弃了
  10. CAD中怎么识别标高范围?CAD标高范围识别技巧