如何获取结构梁的类型参数

How to get Type Parameters of structural beam

谁能告诉我如何获取结构梁的类型参数?截面高度、宽度、面积等参数?

我想我应该这样开始:

    Selection sel = uidoc.Selection;

    Reference pickedRef = null;

    pickedRef = sel.PickObject(ObjectType.Element, "Please select beam");

    Element e = doc.GetElement(pickedRef);

    ElementType type = doc.GetElement(e.GetTypeId()) as ElementType;

    BuiltInParameter height = BuiltInParameter.FAMILY_HEIGHT_PARAM;

    Parameter h = type.get_Parameter(height);

    //OR
    Parameter hh = type.LookupParameter("Height");

    //Then don't know what to do
    double h1 = h.AsDouble(); //Or what?

但是我没有得到必需的类型参数,我得到空异常。

谁能告诉我我做错了什么?我使用了错误的 BuiltInParamater 还是其他东西?

谢谢! 米洛斯

您的代码似乎是正确的,我相信该参数不适用于此类元素。尝试下载 Revit Lookup 并检查元素。

每当你遇到这样的异常时,你应该调试你的代码。如果您逐行检查它,您将确切地看到导致问题的原因。您根本不检查参数是否存在。由创建该系列的人决定存在哪些参数以及它们的命名方式。您需要根据族定义检查您需要的参数。

正如 Augusto 所说,您可以为此使用 RevitLookup,或者查看用户界面中的类型属性。您可能还想看看(漂亮的)新 StructuralSection class。它专为缓解您现在面临的问题而设计。

感谢您的回答。我需要花更多时间寻找类型参数名称。

代码应该是这样的:

    Element e = doc.GetElement(pickedRef);
    Element e = doc.GetElement(pickedRef);
    ElementType type = doc.GetElement(e.GetTypeId()) as ElementType;
    //to get height of section
    Parameter h = type.LookupParameter("h");
    double height = h.AsDouble();
    //to get width of section
    Parameter b = type.LookupParameter("b");
    double width = b.AsDouble();
    //and so on...

谢谢!