Revit二开--框选三维功能 全面解析

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

Revit二开--框选三维功能 全面解析


本篇博客详细解析了revit里面框选三维的实现过程,初学revit二开的朋友可以参考。
github地址: https://github.com/binbinstrong/tangsengjiewa

    /// <summary>
    /// 框选三维
    /// </summary>
    [Transaction(TransactionMode.Manual)]
    [Journaling(JournalingMode.UsingCommandData)]
    [Regeneration(RegenerationOption.Manual)]
    class Cmd_PickBox3D:IExternalCommand ,IExternalCommandAvailability
    {
        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 viewfamilytype = doc.TCollector<ViewFamilyType>()
                .Where(m => m.ViewFamily == ViewFamily.ThreeDimensional).First();

            var elementRefs = sel.PickObjects(ObjectType.Element, 
                doc.GetSelectionFilter(m =>{ return m.Category.CategoryType == CategoryType.Model; }));
            var eles = elementRefs.Select(m => m.ElementId.GetElement(doc));
            var eleids = elementRefs.Select(m => m.ElementId).ToList();

            var tembox = default(BoundingBoxXYZ);

            Transaction temtran = new Transaction(doc, "temTran");
            temtran.Start();
            var group = doc.Create.NewGroup(eleids);
              tembox = group.get_BoundingBox(acview);
            temtran.RollBack();
            
            var newAcview = default(View);
            doc.Invoke(m =>
            {
                var _3dview = View3D.CreateIsometric(doc, viewfamilytype.Id);
                _3dview.SetSectionBox(tembox);
                newAcview = _3dview;
            }, "框选三维");

            uidoc.ActiveView = newAcview;
            return Result.Succeeded;
        }

        public bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
        {
            //throw new NotImplementedException();

            return true;
        }
    }

更多revit二开知识 请关注 唐僧课堂
唐僧课堂BIM开发


在这里插入图片描述

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值