Revit SDK 介绍:View Template Creation

前言

这个例子是从一个现有的视图出发去创建一个新的视图样板,然后将这个视图样板应用到选中的视图。

内容

这个例子是2020版本新引入的。运行的效果如下,如果运行不成功,可能是因为这个例子是为英文版本准备的。需要修改一下设置:

FillPatternElement foregroundFillPattern = FillPatternElement.GetFillPatternElementByName(view.Document, FillPatternTarget.Drafting, "<实体填充>");

Revit SDK 介绍:View Template Creation_第1张图片

Revit SDK 介绍:View Template Creation_第2张图片
2020 新加入的 API:

View::CreateViewTemplate();

例子的大致逻辑在:

// Revit.SDK.Samples.ViewTemplateCreation.CS.ViewTemplateCreationForm
      private void ApplyButton_Click(object sender, EventArgs e)
      {
         try
         {
            using (Transaction transaction = new Transaction(m_activeDocument, "View Template Creation sample"))
            {
               transaction.Start();

               View selectedView = GetSelectedView();
               View viewTemplate = selectedView.CreateViewTemplate();
               Utils.ShowInformationMessageBox(string.Format("View template '{0}' has been created.", viewTemplate.Name));

               SetPartsVisibilityIncludeState(viewTemplate);
               SetDetailLevelValue(viewTemplate);
               ChangeVgOverridesModelSettings(viewTemplate);

               selectedView.ViewTemplateId = viewTemplate.Id;
               Utils.ShowInformationMessageBox(string.Format("View template '{0}' has been assigned to '{1}' view.", viewTemplate.Name, selectedView.Name));

               transaction.Commit();
            }
         }
         catch (Exception ex)
         {
            Utils.ShowWarningMessageBox(ex.ToString());
         }
         this.Close();
      }

关于视图的设定:

// SetPartsVisibilityIncludeState(viewTemplate);
void View::SetNonControlledTemplateParameterIds(ICollection<ElementId> newSet);
// SetDetailLevelValue(viewTemplate);
ViewDetailLevel DetailLevel { get; set; }
// ChangeVgOverridesModelSettings(viewTemplate);
OverrideGraphicSettings View::GetCategoryOverrides(ElementId categoryId);
void View::SetCategoryOverrides(ElementId categoryId, OverrideGraphicSettings overrideGraphicSettings);

具体使用方法:Revit 2020 SDK\Samples\ViewTemplateCreation\CS\ViewTemplateCreationForm.cs

通过 API 对视图模板解释:
Revit SDK 介绍:View Template Creation_第3张图片
展示给 API 的视图样板的参数:
Revit SDK 介绍:View Template Creation_第4张图片

你可能感兴趣的:(Revit,SDK,介绍,C#)