Revit二开--一键楼板功能 全解析 带源码

该博客详细介绍了Revit的二次开发中如何实现一键楼板的功能,包括功能效果展示,并提供了相关源码供读者学习和参考。欲了解更多Revit扩展开发知识,建议关注唐僧课堂。
摘要由CSDN通过智能技术生成

Revit二开--一键楼板功能 全面解析


之前很多朋友问我 一键楼板的功能怎么做,今天有点时间把源码放出来。
github 地址: https://github.com/binbinstrong/tangsengjiewa

    /// <summary>
    /// 一键楼板
    /// </summary>
    namespace 唐僧解瓦.建筑
{
   
    /// <summary>
    /// 一键楼板
    /// </summary>
    [Transaction(TransactionMode.Manual)]
    [Regeneration(RegenerationOption.Manual)]
    [Journaling(JournalingMode.UsingCommandData)]
    class Cmd_CreateFloorQukly : IExternalCommand
    {
   
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
   
            UIApplication uiapp = commandData.Application;
            UIDocument uidoc = uiapp.ActiveUIDocument;
            Document doc = uidoc.Document;
            Selection sel = uidoc.Selection;
            var acview = doc.ActiveView;
            var beamrefs = sel.PickObjects(ObjectType.Element,
                doc.GetSelectionFilter(m => m.Category.Id.IntegerValue == (int)BuiltInCategory.OST_StructuralFraming),
                "选择生成板的梁");
            var beams = beamrefs.Select(m => m.GetElement(doc));
            Transaction temtran = new Transaction(doc, "temtran");
            temtran.Start();
            foreach (Element beam in beams)
            {
   
                var joinedelements = JoinGeometryUtils.GetJoinedElements(doc, beam);
                if (joinedelements.Count > 0)
                {
   
                    foreach (var id in joinedelements)
                    {
   
                        var temele = id.GetElement(doc);
                        var isjoined = JoinGeometryUtils.AreElementsJoined(doc, beam, temele);
                        if (isjoined)
                        {
   
                            JoinGeometryUtils.UnjoinGeometry(doc, beam, temele);
                        }
                    }
                }
            }
            temtran.RollBack();
            
  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值