关于二次开发中C#类库使用的问题
背景:我正在做一个名为revit的软件的二次开发,根据教程,我先要在VS上新建一个类库,添加revit的两个接口的引用,然后在此类库中写入一些类,生成dll文件,然后就可...
背景:我正在做一个名为revit的软件的二次开发,根据教程,我先要在VS上新建一个类库,添加revit的两个接口的引用,然后在此类库中写入一些类,生成dll文件,然后就可以在revit上运行这个dll(界面如下图),使用类库里面的内容。
根据教程,每一个类都要写成如下形式,而且只有一个Execute这个方法
namespace RivetDevTV
{public class Class1 : IExternalCommand
{ public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)
{编程内容。。。。。
return Result.Failed; }
}
}
我现在的问题是:
一旦我不写public Result Execute这个方法,而是写别的方法比如public void A1(),程序就会报错说:错误 1 “RivetDevTV.Class1”不实现接口成员“Autodesk.Revit.UI.IExternalCommand.Execute(Autodesk.Revit.UI.ExternalCommandData, ref string, Autodesk.Revit.DB.ElementSet)”
但是,我看了一些这个软件的二次开发代码,很多方法都是Void类型,我希望用这些方法,应该如何?
如果一个类中有多个方法,程序究竟是如何运行的?如上面那张图所示,run的只能是类名,而不是方法名。
各位大侠如果对revit不怎么了解,给个解决这俩问题的思路也行哈~ 展开
根据教程,每一个类都要写成如下形式,而且只有一个Execute这个方法
namespace RivetDevTV
{public class Class1 : IExternalCommand
{ public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)
{编程内容。。。。。
return Result.Failed; }
}
}
我现在的问题是:
一旦我不写public Result Execute这个方法,而是写别的方法比如public void A1(),程序就会报错说:错误 1 “RivetDevTV.Class1”不实现接口成员“Autodesk.Revit.UI.IExternalCommand.Execute(Autodesk.Revit.UI.ExternalCommandData, ref string, Autodesk.Revit.DB.ElementSet)”
但是,我看了一些这个软件的二次开发代码,很多方法都是Void类型,我希望用这些方法,应该如何?
如果一个类中有多个方法,程序究竟是如何运行的?如上面那张图所示,run的只能是类名,而不是方法名。
各位大侠如果对revit不怎么了解,给个解决这俩问题的思路也行哈~ 展开
2个回答
展开全部
NowtRowt ,你好。
你现在的情况是你要去开发一个dll,让revit来调用你的dll,当然你得在这个dll中实现相应的接口,也就是这里的IExternalCommand。那么这个IExternalCommand接口里面所有的函数你都得一五一十的去实现。
你的问题不是你“希望用这些方法,应该如何?”,而是你必须实现某些方法让revit用。
你现在的情况是你要去开发一个dll,让revit来调用你的dll,当然你得在这个dll中实现相应的接口,也就是这里的IExternalCommand。那么这个IExternalCommand接口里面所有的函数你都得一五一十的去实现。
你的问题不是你“希望用这些方法,应该如何?”,而是你必须实现某些方法让revit用。
更多追问追答
追问
我在网上确实看到了revit二次开发中void类型的方法,也就是说,这些方法可能不是IExternalCommand这个接口的,我可能要换个接口?
追答
revit二次开发中可以有void类型的方法,都是二次开发的程序员写的,换句话说,是你去写的。
本质的问题是,你做二次开发,是你写程序给revit用,不是你去用revit的程序。当然,你写程序的时候也是可以调用revit现有的程序。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询