52 lines
2.2 KiB
C#
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;
|
|
}
|
|
}
|
|
} |