Revit二次开发——结构模型构件自动扣减

本文是关于Revit二次开发的技术分享,主要讲解如何实现结构模型构件的自动扣减功能。作者强调这并非教程,而是个人的学习笔记,适合有一定C#基础的Revit二开学习者。文章提供了详细的源代码和注释,帮助读者理解并实现类似功能。同时,文章也提及了自我提升的重要性,并鼓励读者积极参与讨论。
摘要由CSDN通过智能技术生成

**Revit二次开发实例——模型自动扣减**


本文章来源于微信公众号 '有福BIM’

有福BIM的第四篇原创文章!


阅读前望知悉:
我晓得各位读者和粉丝中不乏C#二开大佬
有福作为一个二开新手(编程泥腿子
自知对编程的语法或定义的理解浅薄
故此文不敢称之‘教程’
仅作为‘技术分享’与‘学习笔记’之类尚可
这个系列被我称为《零基础Revit二次开发》
可有意思的事
从另一个角度来看
真正的零基础(不会C#、没有任何编程经验、Revit不熟悉
是不可能搞好二次开发的
有福会在这里分享 有福插件 所有的源代码
并附详细注释供有需者参考
照抄代码也可实现目标功能是我所能保证的?️
而进行二开前的一些准备工作(开发环境部署、vs安装)等请自行上网搜索
我始终认为这会过滤出一批真正想做好二开的有追求的的BIM狗子


有福这里就不拉家常了
主程序代码分为A、B两部分

A

//有福提示!!!
//以下代码中,‘//’后面的文字内容为注释部分,注释中有‘**’的表示编程所必须(照抄即可)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Attributes;
using System.Windows.Forms;
using Application = Autodesk.Revit.ApplicationServices.Application;
//**以上为引用(编程所必须)

namespace LianJie//**新建一个命名空间 ‘LianJie’(名字可自行设定)
{
   
    [Transaction(TransactionMode.Manual)]//**设定事务为手动更新
    public class LianJcom : IExternalCommand//**实现外部命令的接口
    {
   
        public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)
        //**实现 Execute 方法重载
        {
   
            UIApplication uiApp = commandData.Application;
            Autodesk.Revit.ApplicationServices.Application app = uiApp.Application;
            Document doc = uiApp.ActiveUIDocument.Document;
            //**以上三行为获取DB级别和UI级别文档(以后会经常见到)

            Transaction trans = new Transaction(doc, "LianJie");//新建一个事务
            trans.Start();//开始事务

这里会弹出一个对话框与用户交互(弹出窗口的代码部分见C)

B

            Form1 form1 = new Form1();//运行弹出窗口程序
            if (form1.ShowDialog() == DialogResult.OK)//将窗口输入的内容返回到主程序
            {
   
            }
            string loucen=form1.str;//将窗口输入内容赋值给新建的变量 ‘loucen’

            //获得所有结构柱图元
            FilteredElementCollector JGZfilteredElements = new FilteredElementCollector(doc);
            //新建一个收集器 ‘JGZfilteredElements’
            JGZfilteredElements.OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_StructuralColumns);
            //对所有图元应用过滤器‘.OfClass(typeof(FamilyInstance))’和‘.OfCategory(BuiltInCategory.OST_StructuralColumns)’
            //得到所有的结构柱图元,并存到收集器中
            var strcloumnElement = from element in JGZfilteredElements
                                   where element.get_Parameter(BuiltInParameter.DOOR_NUMBER).AsString() 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值