Files
RookieStation/RookieStation/ProjectConfig/ExcuteCmd/CmdProjectSettings.cs
2021-08-23 11:18:13 +08:00

52 lines
2.2 KiB
C#

using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using RookieStation.Extension;
using RookieStation.ProjectConfig.Views;
using RookieStation.Utils;
using System;
using System.IO;
namespace RookieStation.ProjectConfig.ExecuteCmds
{
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
internal class CmdProjectSettings : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIApplication uiapp = commandData.Application;
UIDocument uidoc = uiapp.ActiveUIDocument;
Document doc = uidoc.Document;
WpfProjectSettings settings = CommonUtils.ShowDialog<WpfProjectSettings>();
if (!doc.IsFamilyDocument)
{
doc.Invoke(ts =>
{
doc.ProjectInformation.get_Parameter(BuiltInParameter.PROJECT_BUILDING_NAME).Set(Properties.Settings.Default.SchoolName);
doc.ProjectInformation.get_Parameter(BuiltInParameter.PROJECT_NAME).Set(Properties.Settings.Default.ProjectName);
var viewSheets = doc.QueryByType<ViewSheet>();
var viewPlans = doc.QueryByType<ViewPlan>();
foreach (var v in viewSheets)
{
v.get_Parameter(BuiltInParameter.SHEET_ISSUE_DATE).Set(Properties.Settings.Default.Date);
}
foreach (var v in viewPlans)
{
try
{
var scale = Properties.Settings.Default.Scale;
v.get_Parameter(BuiltInParameter.VIEW_SCALE).SetValueString(scale);
}
catch (Exception ex)
{
Log.WriteLog(ex.Message);//可能存在部分视图设置视图样板导致无法修改比例尺
continue;
}
}
}, "项目设置");
}
return Result.Succeeded;
}
}
}