zoukankan      html  css  js  c++  java
  • Revit API 获取某墙上洞口的尺寸和位置

     [Transaction(TransactionMode.Manual)]

    [Regeneration(RegenerationOption.Manual)]
    public class cmd20120604 : IExternalCommand
    {
        public Result Execute(ExternalCommandData cmdData, ref string messages, ElementSet elements)
        {
            UIDocument uiDoc = cmdData.Application.ActiveUIDocument;
            Autodesk.Revit.ApplicationServices.Application app = cmdData.Application.Application;
            Selection sel = uiDoc.Selection;

            FilteredElementCollector collector = new FilteredElementCollector(uiDoc.Document);
            collector.OfClass(typeof(Opening)).OfCategory(BuiltInCategory.OST_SWallRectOpening);

            //wallId 618627
            var wallOpenings = from c in collector where ((Opening)c).Host.Id == new ElementId(618627) select c;

            foreach (Element el in wallOpenings.ToList())
            {
                Opening opening = el as Opening;
                if (opening.IsRectBoundary)
                {
                    //opening.BoundaryRect;
                    //opening.BoundaryCurves;
                }
            }

            WinFormTools.MsgBox(wallOpenings.Count().ToString());

            return Result.Succeeded;
        }
    }

    问题:

    通过Document.Create.NewOpening(wall, xyz1, xyz2); 可在墙上开洞。
    假如下次执行同样的操作revit自身会报错,没有可剪切的墙体。
    请问:怎样判断那个位置已经开洞?

    答:

    1. 你可以用Opening类为条件,过滤出Opening对象,再根据Linq 查询,找出在一个给定墙上的Opening对象。 使用条件: Opening.Host == givenWallId.

    这样就可以获得墙上所有的洞口。

    2. 然后可以从Opening.IsRectBoundary 判断洞口是否为矩形。矩形洞口的两个对角点坐标可以从Opening.BoundingRect 获得。也可以获得矩形的四个边Opening.BoundaryCurves.

    3. 既然获得洞口尺寸和位置,你就可以判断你的目标洞口与原有洞口的关系。

    url:http://greatverve.cnblogs.com/p/revit-api-get-hole.html 

  • 相关阅读:
    Object-c学习之路四(oc内存管理autorelease)
    Object-c学习之路三(@class与#import的区别)
    Object-c学习之路二(oc内存管理黄金法则1)
    Object-c学习之路(oc点语法)
    python(学习之路一)
    css中的position属性
    盒子模型——边框(Border)
    CSS盒子模型
    form(表单)标签常用标签及属性
    Codeforces Round #271 (Div. 2) D Flowers【计数dp】
  • 原文地址:https://www.cnblogs.com/greatverve/p/revit-api-get-hole.html
Copyright © 2011-2022 走看看