Action code can't be null or empty string

报错原因是因为 在xml配置按钮的时候 没有给code属性

<!-- 订单列表 插入下载WMS按钮-->
    <bean class="nc.ui.pubapp.plugin.action.InsertActionInfo">
        <property name="actionContainer" ref="actionsOfList" />
        <property name="actionType" value="notedit" />
        <property name="target" ref="printActionGroup" />
        <property name="pos" value="after" />
        <property name="action" ref="DeliveryAction" />
    </bean>


    <!-- 自定义 按钮 -->
    <bean id="DeliveryAction" class="nc.ui.sf.delivery.action.DeliveryAction">      
        <property name="model" ref="ManageAppModel" />
        <property name="editor" ref="billFormEditor" />
        <property name="code" value="delivery_wms" />   
    </bean> 
好的,我可以给你提供一个示例代码,实现在Revit中创建一个层叠的RibbonPanel并添加三个按钮,分别排列在上、中、下三个位置。 首先,你需要在Revit二次开发环境中创建一个类,包含一个静态方法来实现添加三个按钮的功能。代码如下: ``` public static class RibbonExtensions { public static RibbonPanel CreateStackedButtons(this RibbonTab tab, string panelName, string panelTitle, string upButtonName, string midButtonName, string downButtonName) { // Create a new panel RibbonPanel panel = tab.GetPanel(panelName); if (panel == null) { panel = tab.AddItem(new RibbonPanel(panelName, panelTitle)); } // Create three push buttons PushButtonData upButtonData = new PushButtonData(upButtonName, "Up", Assembly.GetExecutingAssembly().Location, typeof(UpCommand).FullName); PushButtonData midButtonData = new PushButtonData(midButtonName, "Mid", Assembly.GetExecutingAssembly().Location, typeof(MidCommand).FullName); PushButtonData downButtonData = new PushButtonData(downButtonName, "Down", Assembly.GetExecutingAssembly().Location, typeof(DownCommand).FullName); // Add the buttons to the panel panel.AddItem(upButtonData); panel.AddItem(midButtonData); panel.AddItem(downButtonData); // Set the layout of the buttons int nItems = panel.GetItems().Count; panel.SetItemPlacement(nItems - 3, RibbonItemPlacement.Large); panel.SetItemPlacement(nItems - 2, RibbonItemPlacement.Medium); panel.SetItemPlacement(nItems - 1, RibbonItemPlacement.Small); return panel; } } ``` 在上面的代码中,我们使用了Revit API中的RibbonPanel和PushButtonData类来创建一个层叠的RibbonPanel,并添加三个按钮。同时,我们还使用了RibbonItemPlacement枚举来设置按钮的排列位置。 接下来,你需要创建三个命令类(UpCommand、MidCommand和DownCommand),分别继承自IExternalCommand接口,并实现Execute方法来实现按钮的具体功能。代码示例如下: ``` [Transaction(TransactionMode.Manual)] public class UpCommand : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { // TODO: Add your command code here return Result.Succeeded; } } [Transaction(TransactionMode.Manual)] public class MidCommand : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { // TODO: Add your command code here return Result.Succeeded; } } [Transaction(TransactionMode.Manual)] public class DownCommand : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { // TODO: Add your command code here return Result.Succeeded; } } ``` 最后,在你的插件启动代码中,你可以调用上面定义的RibbonExtensions.CreateStackedButtons方法来创建层叠的RibbonPanel,并添加三个按钮。示例代码如下: ``` public Result OnStartup(UIControlledApplication application) { // Get the current ribbon tab RibbonTab tab = application.CreateRibbonTab("MyTab"); // Create a stacked button panel RibbonPanel panel = tab.CreateStackedButtons("MyPanel", "My Panel", "UpButton", "MidButton", "DownButton"); return Result.Succeeded; } ``` 运行你的插件,你将会在Revit的Ribbon菜单中看到一个新的选项卡,其中包含一个层叠的RibbonPanel,并添加了三个按钮。这三个按钮分别排列在上、中、下三个位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值