修复bug和新增部分功能

This commit is contained in:
GG Z
2024-10-08 16:21:39 +08:00
parent 082b781808
commit b6647218be
44 changed files with 1709 additions and 1390 deletions

View File

@@ -29,69 +29,69 @@ public class DrawingViewApp
{
var ribbonPanel = application.CreateRibbonPanel(TabName, "视图与出图");
var autoAlignTags = UIAssist.NewButtonData<AlignTagsCmd>(
var autoAlignTags = UIAssist.NewPushButtonData<AlignTagsCmd>(
"对齐标记",
Resources.align_tags_32px,
Resources.align_tags_16px
).SetAvailability<EnableInViewPlan>();
var arrangeTags = UIAssist.NewButtonData<ArrangeTagsCmd>(
var arrangeTags = UIAssist.NewPushButtonData<ArrangeTagsCmd>(
"整理标记",
Resources.arrange_tags_32px,
Resources.arrange_tags_16px
).SetAvailability<EnableInViewPlan>();
var dim2Line = UIAssist.NewButtonData<DimensionBy2LineCmd>(
var dim2Line = UIAssist.NewPushButtonData<DimensionBy2LineCmd>(
"双线标注",
Resources.two_lines_32px,
Resources.two_lines_16px,
"选择要标注的两条平行的几何模型边缘线进行标注。"
);
var visibilityControl = UIAssist.NewButtonData<VisibilityControlCmd>(
var visibilityControl = UIAssist.NewPushButtonData<VisibilityControlCmd>(
"可见性",
Resources.visibility_control_32px,
Resources.visibility_control_16px,
"可见性控制"
).SetAvailability<OnProjectDocument>();
var sectionBox = UIAssist.NewButtonData<SectionBoxControllerCmd>(
var sectionBox = UIAssist.NewPushButtonData<SectionBoxControllerCmd>(
"剖面框",
Resources.sectionBox_32px,
Resources.sectionBox_16px
);
var filter = UIAssist.NewButtonData<CivilViewFilterCmd>(
var filter = UIAssist.NewPushButtonData<CivilViewFilterCmd>(
"过滤器",
Resources.filter_32px,
Resources.filter_16px,
"创建当前视图的结构模型区分的过滤"
);
var panelSchedule = UIAssist.NewButtonData<PanelScheduleCmd>(
var panelSchedule = UIAssist.NewPushButtonData<PanelScheduleCmd>(
"铺砖明细表",
Resources.schedule_32px,
Resources.schedule_16px
);
var exportSchedulesPbd = UIAssist.NewButtonData<ExportSchedulesCmd>(
var exportSchedulesPbd = UIAssist.NewPushButtonData<ExportSchedulesCmd>(
"导出明细表",
Resources.export_excel_32px,
Resources.export_excel_16px,
"导出明细表为Excel文件"
);
var systemDisplay = UIAssist.NewButtonData<SystemDisplayCmd>(
var systemDisplay = UIAssist.NewPushButtonData<SystemDisplayCmd>(
"系统显示",
Resources.system_display_32px,
Resources.system_display_16px
);
var viewManager = UIAssist.NewButtonData<ViewManagerCmd>(
var viewManager = UIAssist.NewPushButtonData<ViewManagerCmd>(
"视图管理",
Resources.view_manager_32px,
Resources.view_manager_16px
);
var quickViewSection = UIAssist.NewButtonData<QuickViewSectionCmd>(
var quickViewSection = UIAssist.NewPushButtonData<QuickViewSectionCmd>(
"快速剖面",
Resources.view_section_32px,
Resources.view_section_16px
);
var elementsControlCmd = UIAssist.NewButtonData<ElementsControlCmd>(
var elementsControlCmd = UIAssist.NewPushButtonData<ElementsControlCmd>(
"元素控制",
Resources.open_pane_32px,
Resources.open_pane_32px,
@@ -103,8 +103,9 @@ public class DrawingViewApp
//ribbonPanel.AddSplitButton(splitBtn1, dim2Line, autoAlignTags, arrangeTags);
ribbonPanel.AddItem(elementsControlCmd);
var tab = ComponentManager.Ribbon.Tabs.First(t => t.Name == TabName);
ribbonPanel.AddStackedItems(systemDisplay, viewManager, quickViewSection);
var tab = ComponentManager.Ribbon.Tabs.First(t => t.Name == TabName);
CreateToggleButton(tab, "视图与出图");
//面板下拉展开
ribbonPanel.AddSlideOut();
@@ -120,17 +121,21 @@ public class DrawingViewApp
try
{
var panel = rt.Panels.FirstOrDefault(p => p.Source.Name == panelName);
var tog = new Autodesk.Windows.RibbonToggleButton()
{
LargeImage = Resources.zoom_32px.ToBitmapSource(),
Size = RibbonItemSize.Large,
Name = "ZoomElement",
Text = "最大化",
ShowText = true,
ToolTip = "根据视图的图元是否可见,在切换视图时,对当前选中的图元进行快速缩放定位",
IsCheckable = true,
Orientation = System.Windows.Controls.Orientation.Vertical,
};
var tog = UIAssist.NewAwToggleButton(
"最大化",
Resources.zoom_32px,
"根据视图的图元是否可见,在切换视图时,对当前选中的图元进行快速缩放定位");
//var tog = new Autodesk.Windows.RibbonToggleButton()
//{
// LargeImage = Resources.zoom_32px.ToBitmapSource(),
// Size = RibbonItemSize.Large,
// Name = "ZoomElement",
// Text = "最大化",
// ShowText = true,
// ToolTip = "根据视图的图元是否可见,在切换视图时,对当前选中的图元进行快速缩放定位",
// IsCheckable = true,
// Orientation = System.Windows.Controls.Orientation.Vertical,
//};
tog.CheckStateChanged += (s, e) =>
{
zoomElementHandler.Raise(
@@ -153,7 +158,7 @@ public class DrawingViewApp
}
catch (Exception exception)
{
MessageBox.Show(exception.Message, "错误");
MessageBox.Show(exception.Message, "添加TogButton错误");
}
}
private static void RegisterDockPaneAndEvent(UIControlledApplication application)

View File

@@ -172,7 +172,7 @@ public class FamilyApp
//application.CreateRibbonTab(TabName);
//UserPanel.AddItem(_loginPBData);
//UserPanel.AddAwItem(_loginPBData);
//".\\*.*"中的“.”表示通用类库文件所在的目录Debug“..”表示的是上级的目录bin“..”\\..,引号表示再上一级目录
//ContextualHelp contextualHelp = new ContextualHelp(ContextualHelpType.Url, "https://www.szmedi.com.cn");
//_loginPBData.CreateContextualHelp(contextualHelp);
@@ -180,37 +180,37 @@ public class FamilyApp
var familyManagePanel = application.CreateRibbonPanel(TabName, VbPanelName);
//在面板上添加添加浏览族库按钮
var localFamilyPbd = UIAssist.NewButtonData<FamilyLibraryCmd>(
var localFamilyPbd = UIAssist.NewPushButtonData<FamilyLibraryCmd>(
"本地族库",
Resources.library_32px,
Resources.library_16px
);
var familyMassSave = UIAssist.NewButtonData<FamilyProcessorCmd>(
var familyMassSave = UIAssist.NewPushButtonData<FamilyProcessorCmd>(
"族复用",
Resources.family_processor_32px,
Resources.family_processor_16px
);
var replaceInstance = UIAssist.NewButtonData<ReplaceInstanceCmd>(
var replaceInstance = UIAssist.NewPushButtonData<ReplaceInstanceCmd>(
"替换族",
Resources.replace_32px,
Resources.replace_16px
);
var updateFamilyFile = UIAssist.NewButtonData<UpgradeFamilyCmd>(
var updateFamilyFile = UIAssist.NewPushButtonData<UpgradeFamilyCmd>(
"更新族",
Resources.available_updates_32px,
Resources.available_updates_16px,
"更新族文件缩略图及升级至当前版本"
);
var renameFamily = UIAssist.NewButtonData<RenameFamilyNameCmd>(
var renameFamily = UIAssist.NewPushButtonData<RenameFamilyNameCmd>(
"重命名族",
Resources.rename_family_32px,
Resources.rename_family_16px
);
var renameType = UIAssist.NewButtonData<RenameTypeNameCmd>(
var renameType = UIAssist.NewPushButtonData<RenameTypeNameCmd>(
"重命名类型",
Resources.rename_type_32px,
Resources.rename_type_16px

View File

@@ -536,7 +536,7 @@ public class ModifyTabApp
};
//面板行布局
RibbonRowPanel ribbonRowPanel = new();
ribbonRowPanel.AddStackItems(iavBtn, iipBtn, rSelBtn);
ribbonRowPanel.AddAwStackItems(iavBtn, iipBtn, rSelBtn);
//ribbonRowPanel.Items.Add(iavBtn);
////行打断=新建行

View File

@@ -20,11 +20,11 @@ namespace Sai.RvKits.UIRibbon;
public class RvApp : ExternalApplication
{
private static readonly string TabName = Settings.Default.TabName;
public static AsyncEventHandler SaveHandler { get; } = new();
private AsyncEventHandler saveHandler;
private static void OnTimedEvent(object source, System.Timers.ElapsedEventArgs e)
private void OnTimedEvent(object source, System.Timers.ElapsedEventArgs e)
{
SaveHandler.RaiseAsync(app =>
saveHandler.RaiseAsync(app =>
{
#if REVIT2018
if (app.ActiveUIDocument.Document.IsModified)
@@ -41,19 +41,9 @@ public class RvApp : ExternalApplication
}
public override void OnStartup()
{
saveHandler = new();
UiApplication.CreateRibbonTab(Settings.Default.TabName);
var ribbon = Autodesk.Windows.ComponentManager.Ribbon;
Autodesk.Windows.RibbonTab rt = null;
foreach (var tab in ribbon.Tabs)
{
if (tab.Name == Settings.Default.TabName)
{
rt = tab;
ribbon.Tabs.Remove(tab);
break;
}
}
var versionNumber = UiApplication.Application.VersionNumber;
var subVersionNumber = UiApplication.Application.SubVersionNumber;
var subVersion = new Version(subVersionNumber);
@@ -62,6 +52,20 @@ public class RvApp : ExternalApplication
{
MessageBox.Show("版本小于2018.1,部分功能可能无法使用请使用升级补丁升级Revit软件", "提示");
}
var ribbon = Autodesk.Windows.ComponentManager.Ribbon;
var rt = ribbon.Tabs.FirstOrDefault(tab => tab.Name == Settings.Default.TabName);
ribbon.Tabs.Remove(rt);
//foreach (var tab in ribbon.Tabs)
//{
// if (tab.Name == Settings.Default.TabName)
// {
// rt = tab;
// ribbon.Tabs.Remove(tab);
// break;
// }
//}
ribbon.Tabs.Insert(0, rt);
CivilApp(Application);
@@ -86,49 +90,49 @@ public class RvApp : ExternalApplication
{
var ribbonPanel = application.CreateRibbonPanel(TabName, "土建装饰");
var floorFinishesPbd = UIAssist.NewButtonData<FloorFinishesCmd>(
var floorFinishesPbd = UIAssist.NewPushButtonData<FloorFinishesCmd>(
"房间饰面",
Resources.tites_32px,
Resources.tites_16px,
"创建房间饰面"
);
var curtainFinishesPbd = UIAssist.NewButtonData<BricksFinishesCmd>(
var curtainFinishesPbd = UIAssist.NewPushButtonData<BricksFinishesCmd>(
"铺贴饰面",
Resources.finishes_32px,
Resources.finishes_16px
);
var wallFinishesPbd = UIAssist.NewButtonData<WallFinishesCmd>(
var wallFinishesPbd = UIAssist.NewPushButtonData<WallFinishesCmd>(
"墙饰面",
Resources.bricks_32px,
Resources.bricks_16px
);
var slopeFloorPbd = UIAssist.NewButtonData<SlopedFloorCmd>(
var slopeFloorPbd = UIAssist.NewPushButtonData<SlopedFloorCmd>(
"坡度楼板",
Resources.slope_floor_32px,
Resources.slope_floor_16px,
"分别选择两个楼板的两条平行线创建坡度楼板"
);
var createOpeningsPbd = UIAssist.NewButtonData<CreateOpeningsCmd>(
var createOpeningsPbd = UIAssist.NewPushButtonData<CreateOpeningsCmd>(
"创建洞口",
Resources.openings_32px,
Resources.openings_16px,
"根据管线创建洞口"
).SetAvailability<EnableInView3D>();
var modelSplitPbd = UIAssist.NewButtonData<ModelSplitterCmd>(
var modelSplitPbd = UIAssist.NewPushButtonData<ModelSplitterCmd>(
"模型拆分",
Resources.separation_32px,
Resources.separation_16px,
"按标高拆分为单独的文件"
);
var splitComPbd = UIAssist.NewButtonData<SplitComsByLevelCmd>(
var splitComPbd = UIAssist.NewPushButtonData<SplitComsByLevelCmd>(
"分割墙柱",
Resources.model_split_32px,
Resources.model_split_16px,
"按标高拆分墙、柱"
);
var connectPbd = UIAssist.NewButtonData<CivilConnectionCmd>(
var connectPbd = UIAssist.NewPushButtonData<CivilConnectionCmd>(
"土建连接",
Resources.connect_32px,
Resources.connect_16px,
@@ -147,68 +151,68 @@ public class RvApp : ExternalApplication
null,
Resources.stand_mepcurve_16px
).SetAvailability<EnableInViewPlan>();
var bloomConnector = UIAssist.NewButtonData<BloomConnectorCmd>("引出管线", null, Resources.bloom_16px, "从连接件生成管线");
var anyConnect = UIAssist.NewButtonData<AnyConnectCmd>("任意连接", null, Resources.any_connect_16px, "选择任意管线进行连接");
var moveConnect = UIAssist.NewButtonData<MoveConnectCmd>(
var bloomConnector = UIAssist.NewPushButtonData<BloomConnectorCmd>("引出管线", null, Resources.bloom_16px, "从连接件生成管线");
var anyConnect = UIAssist.NewPushButtonData<AnyConnectCmd>("任意连接", null, Resources.any_connect_16px, "选择任意管线进行连接");
var moveConnect = UIAssist.NewPushButtonData<MoveConnectCmd>(
"移动连接",
null,
Resources.move_connect_16px,
"根据最近距离的未连接的连接件,将其连接或角度过大则对齐连接"
);
var breakMepCurveBtn = UIAssist.NewButtonData<BreakMEPCurveCmd>(
var breakMepCurveBtn = UIAssist.NewPushButtonData<BreakMEPCurveCmd>(
"打断管线",
null,
Resources.break_mepcurve_16px,
"将管线打断成两根管线并保留打断后的连接关系"
);
var disConnect = UIAssist.NewButtonData<DisconnectCmd>(
var disConnect = UIAssist.NewPushButtonData<DisconnectCmd>(
"取消连接",
null,
Resources.disconnect_16px,
"取消设备、管线之间的连接"
);
var correctSlope = UIAssist.NewButtonData<CorrectMEPCurveSlopeCmd>(
var correctSlope = UIAssist.NewPushButtonData<CorrectMEPCurveSlopeCmd>(
"坡度修正",
null,
Resources.correct_mep_16px,
"修正管线的坡度"
);
var moveMEP = UIAssist.NewButtonData<MoveMEPCmd>(
var moveMEP = UIAssist.NewPushButtonData<MoveMEPCmd>(
"移动管线",
Resources.move_MEP_32px,
Resources.move_MEP_16px,
"基于管线底部参照或距离,上下移动管线"
);
var clashReport = UIAssist.NewButtonData<ClashReportCmd>(
var clashReport = UIAssist.NewPushButtonData<ClashReportCmd>(
"碰撞报告",
Resources.clash_report_32px,
Resources.clash_report_16px,
"根据Revit生成的报告快速定位碰撞构件"
);
var terminalConnect = UIAssist.NewButtonData<TerminalConnectToDuctCmd>(
var terminalConnect = UIAssist.NewPushButtonData<TerminalConnectToDuctCmd>(
"连接风口",
Resources.air_terminal_32px,
Resources.air_terminal_16px
);
var clashResolve = UIAssist.NewButtonData<ClashResolveCmd>(
var clashResolve = UIAssist.NewPushButtonData<ClashResolveCmd>(
"碰撞处理",
Resources.clash_resolve_32px,
Resources.clash_resolve_16px
);
var headroomCheck = UIAssist.NewButtonData<HeadroomCheckCmd>(
var headroomCheck = UIAssist.NewPushButtonData<HeadroomCheckCmd>(
"净高检查",
Resources.head_room_32px,
Resources.head_room_16px
);
var flipWorkplane = UIAssist.NewButtonData<FlipWorkplaneCmd>(
var flipWorkplane = UIAssist.NewPushButtonData<FlipWorkplaneCmd>(
"翻转工作平面",
Resources.flip_workplane_32px,
Resources.flip_workplane_16px,
"将可以翻转工作平面的族实例,翻转其工作平面"
);
var rotateInstance = UIAssist.NewButtonData<RotateInstanceCmd>(
var rotateInstance = UIAssist.NewPushButtonData<RotateInstanceCmd>(
"旋转实例",
Resources.rotate_instance_32px,
Resources.rotate_instance_16px,
@@ -240,45 +244,45 @@ public class RvApp : ExternalApplication
// ImageUtil.ConvertToBitmapSource(Resources.entity_32px),
// "存储内容到扩展数据"
// };
var modelCheckPbd = UIAssist.NewButtonData<ModelCheckCmd>(
var modelCheckPbd = UIAssist.NewPushButtonData<ModelCheckCmd>(
"模型检查",
Resources.model_check_16px,
Resources.model_check_32px,
"对模型进行多项要求的检查"
);
var templateManager = UIAssist.NewButtonData<TemplateManagerCmd>(
var templateManager = UIAssist.NewPushButtonData<TemplateManagerCmd>(
"样板定制",
Resources.template_32px,
Resources.template_16px,
"对项目样板进行批量处理"
);
var autoSavePbd = UIAssist.NewButtonData<AutoSaveCmd>("定时保存", Resources.save_32px, Resources.save_16px);
var purgeBtn = UIAssist.NewButtonData<PureModelCmd>(
var autoSavePbd = UIAssist.NewPushButtonData<AutoSaveCmd>("定时保存", Resources.save_32px, Resources.save_16px);
var purgeBtn = UIAssist.NewPushButtonData<PureModelCmd>(
"清理模型",
Resources.purge_32px,
Resources.purge_16px,
"清理并压缩模型文件大小"
);
var pipesCreatorPbd = UIAssist.NewButtonData<PipesCreatorCmd>(
var pipesCreatorPbd = UIAssist.NewPushButtonData<PipesCreatorCmd>(
"管线生成",
Resources.pipe_creator_32px,
Resources.pipe_creator_16px,
"根据dwg图纸生成管线"
);
var instanceCreatorPbd = UIAssist.NewButtonData<InstanceCreatorCmd>(
var instanceCreatorPbd = UIAssist.NewPushButtonData<InstanceCreatorCmd>(
"实例布置",
Resources.instance_creator_32px,
Resources.instance_creator_16px,
"根据dwg块进行族实例布置"
);
var modelByCurveCreatorPbd = UIAssist.NewButtonData<ModelByCurveCreatorCmd>(
var modelByCurveCreatorPbd = UIAssist.NewPushButtonData<ModelByCurveCreatorCmd>(
"曲线布置",
Resources.model_by_curve_32px,
Resources.model_by_curve_16px,
"根据dwg曲线或模型线对轮廓族放样或者布置族实例"
);
var toggleBackgroundPbd = UIAssist.NewButtonData<SwitchBackgroundCmd>(
var toggleBackgroundPbd = UIAssist.NewPushButtonData<SwitchBackgroundCmd>(
"切换背景",
Resources.background_32px,
Resources.background_16px,
@@ -290,13 +294,13 @@ public class RvApp : ExternalApplication
ribbonPanel.AddStackedItems(instanceCreatorPbd, modelByCurveCreatorPbd, pipesCreatorPbd);
ribbonPanel.AddStackedItems(toggleBackgroundPbd, purgeBtn, autoSavePbd);
//ribbonPanel.AddItem(toggleBackgroundPbd);
//ribbonPanel.AddItem(autoSavePbd);
//ribbonPanel.AddAwItem(toggleBackgroundPbd);
//ribbonPanel.AddAwItem(autoSavePbd);
//RadioButtonGroupData groupData = new RadioButtonGroupData("定位");
//RadioButtonGroup radioBtnGroup = ribbonPanel.AddItem(groupData) as RadioButtonGroup;
//radioBtnGroup.AddItem(updateViewBySelectElemPbd);
//var tg2 = radioBtnGroup.AddItem(updateViewBySelectElemPbd);
//RadioButtonGroup radioBtnGroup = ribbonPanel.AddAwItem(groupData) as RadioButtonGroup;
//radioBtnGroup.AddAwItem(updateViewBySelectElemPbd);
//var tg2 = radioBtnGroup.AddAwItem(updateViewBySelectElemPbd);
//tg2.Visible = false;
//var group = ribbonPanel.AddRadioButtonGroup(groupData, updateViewBySelectElemPbd, updateViewBySelectElemPbd1);
}
@@ -304,27 +308,27 @@ public class RvApp : ExternalApplication
private static void CreateIndependentTools(UIControlledApplication application)
{
var ribbonPanel = application.CreateRibbonPanel(TabName, "独立工具");
var networkCreator = UIAssist.NewButtonData<NetworkCreatorCmd>(
var networkCreator = UIAssist.NewPushButtonData<NetworkCreatorCmd>(
"物探管网",
Resources.pipe_net_32px,
Resources.pipe_net_16px
);
var metroGauges = UIAssist.NewButtonData<MetroGaugesCmd>(
var metroGauges = UIAssist.NewPushButtonData<MetroGaugesCmd>(
"限界轮廓",
Resources.gauges_32px,
Resources.gauges_16px,
"创建限界轮廓"
);
var metroTunnel = UIAssist.NewButtonData<MetroTunnelCmd>(
var metroTunnel = UIAssist.NewPushButtonData<MetroTunnelCmd>(
"盾构隧道",
Resources.gauges_32px,
Resources.gauges_16px,
"创建盾构隧道"
);
ribbonPanel.AddSplitButton("独立工具", networkCreator, metroTunnel, metroGauges);
//ribbonPanel.AddItem(networkCreator);
//ribbonPanel.AddItem(metroGauges);
//ribbonPanel.AddItem(metroTunnel);
//ribbonPanel.AddAwItem(networkCreator);
//ribbonPanel.AddAwItem(metroGauges);
//ribbonPanel.AddAwItem(metroTunnel);
//ribbonPanel.AddSplitButton("独立工具", networkCreator, metroGauges, metroTunnel);
}
}

View File

@@ -90,7 +90,7 @@ public class TabManagerApp
// if (obj is Autodesk.Windows.RibbonButton rb)
// {
// string tabName = rb.CommandParameter.ToString();
// var ribbonTab = ribbon.FindTab(tabName);
// var ribbonTab = ribbon.FindAwTab(tabName);
// ribbonTab.IsVisible = true;
// }
//}),
@@ -115,7 +115,7 @@ public class TabManagerApp
//如果是族文档,在激活视图时,隐藏面板
private static void SetTabEnabled(string tabName, bool isVisible)
{
//Autodesk.Windows.RibbonTab revitRibbonTab = UIFramework.RevitRibbonControl.RibbonControl.FindTab(Properties.Settings.Default.TabName);
//Autodesk.Windows.RibbonTab revitRibbonTab = UIFramework.RevitRibbonControl.RibbonControl.FindAwTab(Properties.Settings.Default.TabName);
//revitRibbonTab.IsVisible = false;
var ribbon = ComponentManager.Ribbon;
var ribbonTab = ribbon.FindTab(tabName);