以墨代水 2019-03-11 23:42 采纳率: 33.3%
浏览 1118
已结题

Revit二次开发 关于构建的剪切的实现方法提问。

初学二次开发不久,最近在尝试用代码在Revit中建立各种样子的模型,但是最近遇到一个问题:我想用剪切的方法来建立空心体(比如空心的柱,梁之类的),在网上看到有大神贴出的如下方法

                        UIApplication uiapp = commandData.Application;

            UIDocument uidoc = uiapp.ActiveUIDocument;

            Document doc = uiapp.ActiveUIDocument.Document;


                        //手动选取
            Reference refer_1 = uidoc.Selection.PickObject(ObjectType.Element);

            Element elem_1 = doc.GetElement(refer_1);


                        //手动选取
            Reference refer_2 = uidoc.Selection.PickObject(ObjectType.Element);

            Element elem_2 = doc.GetElement(refer_2);



            //两个标准族实例的剪切

            SolidSolidCutUtils.AddCutBetweenSolids(doc, elem_1, elem_2);

原文链接:

这里这位大神是通过手动选取的方式完成的剪切,我想做到完全自动化,例如用元素的ID,元素名之类的来代替手动选取模型,自己多番尝试但均无果。

请问:假设用代码创建了两个相互交错的模型,有没有什么方法能做不需要手动选取就能完成剪切,还烦请各位大神给出具体思路或代码片段,感激不尽。

  • 写回答

3条回答 默认 最新

  • zMapler 2020-03-19 11:06
    关注

    需要使用的是InstanceVoidCutUtils.AddInstanceVoidCut方法,剪切出空心体
    空心体族的属性 familyDoc1.OwnerFamily.get_Parameter(BuiltInParameter.FAMILY_ALLOW_CUT_WITH_VOIDS);要设置为1。

    评论

报告相同问题?

悬赏问题

  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题
  • ¥15 51单片机显示器问题
  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案
  • ¥50 winform中使用edge的Kiosk模式