Revit如何提取轴线信息
年念1
年念1 Lv.9
2018年05月28日 00:00:00
只看楼主

BIM 软件小技巧: Revit如何提取轴线信息 在Revit里面如何提取当前视图中轴网的信息,例如名称,标高,坐标等等?这个问题在Revit编程时是非常典型的应用情况。找到目标对象,然后获取目标对象上的信息。找到目标对象需要使用Revit的过滤机制,最核心的也是比用的类就是FilteredElementCollector类,他提供了添加过滤条件的方法,并且提供方法来获取满足条件的对象集合。

BIM 软件小技巧: Revit如何提取轴线信息

在Revit里面如何提取当前视图中轴网的信息,例如名称,标高,坐标等等?

这个问题在Revit编程时是非常典型的应用情况。找到目标对象,然后获取目标对象上的信息。

找到目标对象需要使用Revit的过滤机制,最核心的也是比用的类就是FilteredElementCollector类,他提供了添加过滤条件的方法,并且提供方法来获取满足条件的对象集合。

获取对象信息需要用Revit类的属性以及Revit对象的参数值,还有从Element.Location属性获取对象的位置信息。

下面是实例代码如何获取上述信息。

[Transaction(TransactionMode.Manual)]

public class GetAllGrids : IExternalCommand

{

public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)

{

UIApplication uiApp = commandData.Application;

Application app = uiApp.Application;

UIDocument uiDoc = uiApp.ActiveUIDocument;

Document doc = uiDoc.Document;

FilteredElementCollector collector = new FilteredElementCollector(doc,doc.ActiveView.Id);

collector.OfClass(typeof(Grid));

string sInfo = null;

foreach (Element elem in collector)

{

sInfo += "Name = " + elem.Name + ";";

Grid grid = elem as Grid;

LocationCurve locCurve = grid.Location as LocationCurve;

Curve cur = locCurve.Curve;

XYZ ptStart = cur.get_EndPoint(0);

XYZ ptEnd = cur.get_EndPoint(0);

}

TaskDialog.Show("Grid message", sInfo);

return Result.Succeeded;

}

}


免费打赏

相关推荐

APP内打开