如何使用元素的id获取参数



好的,现在我有一个应用程序,我点击一个元素,然后一个窗体窗口显示元素属性。现在是这样的:

Reference reference = uidoc.Selection.PickObject(Autodesk.Revit.UI.Selection.ObjectType.Element);
Element element = doc.GetElement(reference);
Parameter length = element.get_Parameter(BuiltInParameter.CURVE_ELEM_LENGTH);
Parameter height = element.get_Parameter(BuiltInParameter.WALL_USER_HEIGHT_PARAM);
Parameter area = element.get_Parameter(BuiltInParameter.HOST_AREA_COMPUTED);
var form1 = new Form1(
(length.AsDouble().ToString(),
height.AsDouble().ToString(),
area.AsDouble().ToString(),
doc);

一切正常,没有问题!但是,现在,我想要的不是点击元素,而是键入元素id并通过元素id获取参数。换句话说,我不会点击任何元素。

我试着注释引用(因为我不再需要它了),并传递元素的Id作为GetElement的参数:

//Reference reference = uidoc.Selection.PickObject(Autodesk.Revit.UI.Selection.ObjectType.Element);
Element element = doc.GetElement("358425");

但是它不起作用。元素为空

是。这是意料之中的。查看GetElement方法的文档。它需要三次过载。接受字符串参数的那个需要唯一的id输入。而是提供元素id的字符串表示形式。这是另一回事。解释为一个惟一的id,它是无效的,所以你收到一个null元素。您需要使用接受int的元素id构造函数从字符串(或整数)创建ElementId,并将其传递给适当的GetElement过载。

找到解决方案了!你不能直接键入元素id,不管它是字符串还是整型。您必须创建一个Elementid对象。有时候事情就是比它们需要的更复杂!

解决方案:Element = doc。GetElement(新ElementId (Int32.Parse (inputText))),

最新更新