【问题标题】:How do you set a view to a customized view family name in Revit?如何在 Revit 中将视图设置为自定义视图族名?
【发布时间】:2014-05-09 18:56:12
【问题描述】:

我无法看到如何将视图系列类型更改为不同的视图系列名称... 例如,我有"Detail Views (Detail)",这是浏览器中的默认位置,它放置了一个新的ViewSection.CreateDetail 部分。但我想将视图放在我创建的另一个浏览器位置,称为"Detail Views (Beam Top Detail Views)"

我尝试的是section.get_Parameter(BuiltInParameter.VIEW_TYPE),它给了我它使用的名称,但它不会让我用.Set(NewViewName)(相同的事务)跟进。有没有办法在CreateDetail 条目期间直接设置它,还是我必须运行一个单独的事务来查找给定模式的所有视图,然后在那里更改设置?

【问题讨论】:

    标签: c# revit-api


    【解决方案1】:

    创建详细信息时,您将 ElementId 用于“详细信息视图(梁顶部详细信息视图)”的正确 viewFamilyTypeId。

    Jeremy Tammik 的博客thebuildingcoder.typepad.com 上的链接可能对您有所帮助

    Revit 2014 SDK 有 ViewSection.CreateDetail 方法的示例代码,如果您不想从安装盘安装,可以在 Autodesk's website 上下载。

    ViewFamilyType vt = new FilteredElementCollector(doc).OfClass(typeof(ViewFamilyType))
        .Where(q => q.Name == "Detail Views (Beam Top Detail Views)")
        .First() as ViewFamilyType;
    ElementId DetailViewId = vt.Id;
    ViewSection newDetail = ViewSection.CreateDetail(document, DetailViewId, box);
    

    如果您想在创建视图之后更改 ViewFamilyType,可以使用:newDetail.ChangeTypeId(DetailViewId);

    【讨论】:

    • 谢谢......你的建议很有帮助,虽然字符串“Beam Top Detail Views”是我必须寻找的值(自动放入括号,前缀为默认“Detail看法”)。接下来我要编写代码是创建新的“详细视图”——我假设我必须复制它,可能是从默认类型开始。
    • 还要注意,如果 ViewFamilyType q.name 结果未填充,则添加 .First() 代码会导致失败.....必须有该 ViewFamilyType 的成员,即使它已经被创造了。我必须寻求一种适用于在创建 ViewFamilyType 后创建的第一个视图的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多