【发布时间】:2019-01-22 12:49:02
【问题描述】:
到目前为止,我已经编写了 C# 代码以允许用户在 revit 中选择模型的多个部分,它会发布所选元素的 id。我现在想通过两种方式进行调整:
1,检查所选元素是否为房间。 (有房间标签)所以我只处理房间。
2,发布房间的面积,而不是元素的ID。
我对 C# 和 Revit API 还很陌生,因此我希望能在正确的方向上做出任何努力,谢谢。
我当前的代码:
using System;
using System.Collections.Generic;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using System.Linq;
using System.Text;
namespace HelloWorld
{
[Transaction(TransactionMode.Manual)]
public class Class1 : IExternalCommand
{
public Result Execute(
ExternalCommandData commandData,
ref string message,
ElementSet elements)
{
UIApplication uiapp = commandData.Application;
UIDocument uidoc = uiapp.ActiveUIDocument;
Application app = uiapp.Application;
Document doc = uidoc.Document;
IList<Reference> pickedObjs = uidoc.Selection.PickObjects(ObjectType.Element, "Select elements");
List<ElementId> ids = (from Reference r in pickedObjs select r.ElementId).ToList();
using (Transaction tx = new Transaction(doc))
{
StringBuilder sb = new StringBuilder();
tx.Start("transaction");
if (pickedObjs != null && pickedObjs.Count > 0)
{
foreach (ElementId eid in ids)
{
Element e = doc.GetElement(eid);
sb.Append("/n" +e.Name);
}
TaskDialog.Show("Area Calculator", sb.ToString());
}
tx.Commit();
}
return Result.Succeeded;
}
}
}
【问题讨论】:
标签: c# autodesk revit-api revit