我无法看到如何将视图族类型更改为其他视图系列名称...
例如,我有"Detail Views (Detail)"
,这是浏览器中放置新ViewSection.CreateDetail
部分的默认位置。但我想将视图放在我创建的另一个浏览器位置,名为"Detail Views (Beam Top Detail Views)"
。
我尝试过的是section.get_Parameter(BuiltInParameter.VIEW_TYPE)
,它为我提供了它所使用的名称,但它不会让我跟着.Set(NewViewName)
(同一个交易)。有没有办法在CreateDetail
条目中直接设置它,或者我是否必须运行单独的事务查找给定模式的所有视图,并在那里更改设置?
答案 0 :(得分:1)
创建细节时,使用ElementId获取正确的viewFamilyTypeId,用于"细节视图(Beam Top Detail Views)"。
这里有一个链接,可以帮助你杰里米·塔姆米克的博客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);