我想创建 Revit 插件并且命令 class 将是通用的
I want to create Revit Plugin and in that the command class will be generic
[Transaction(TransactionMode.Manual)]
public class InteropCommand<T, V> : IExternalCommand
{
public Result Execute( ExternalCommandData commandData, ref string message,
ElementSet elements )
{
InterfaceDialog<T, V> interfaceDlgBox = new InterfaceDialog<T, V>( (IDocumentationModel<T>)Revit2014Model );
}
}
command.cs 文件如上所示。如果我写 class 作为
class InteropCommand 然后我需要相应地更改 .Addin 文件,否则该命令将不起作用。现在我有疑问,如何编写命令 class 以加载 Revit 插件命令。在当前情况下,我无法加载 Revit 命令。
我的 .Addin 文件如下所示。你知道如何解决这类问题吗?
<RevitAddIns>
<AddIn Type="Command">
<Text>Test</Text>
<Description>Test Command</Description>
<Assembly>test.dll</Assembly>
<FullClassName>InteropCommand</FullClassName>
<ClientId>0072bf73-c900-449b-bce2-e50a899a72ae</ClientId>
<VendorId>XYZ</VendorId>
<VendorDescription>XYZ</VendorDescription>
</AddIn>
</RevitAddIns>
您需要为每个命令实施单独的 class。
您可以从单个基础 class 派生所有外部命令实现 classes 以共享部分实现,或者从每个单独的外部命令实现调用通用 class class' 执行方法。
添加到 ,您可以有一个 class 实现 IExternalApplication,然后在 OnStartup 方法上,即时创建任意数量的 IExternalCommand,无需更改 .addin 文件.
如前所述,每个命令仍然需要 class。
[Transaction(TransactionMode.Manual)]
public class InteropCommand<T, V> : IExternalCommand
{
public Result Execute( ExternalCommandData commandData, ref string message,
ElementSet elements )
{
InterfaceDialog<T, V> interfaceDlgBox = new InterfaceDialog<T, V>( (IDocumentationModel<T>)Revit2014Model );
}
}
command.cs 文件如上所示。如果我写 class 作为 class InteropCommand 然后我需要相应地更改 .Addin 文件,否则该命令将不起作用。现在我有疑问,如何编写命令 class 以加载 Revit 插件命令。在当前情况下,我无法加载 Revit 命令。
我的 .Addin 文件如下所示。你知道如何解决这类问题吗?
<RevitAddIns>
<AddIn Type="Command">
<Text>Test</Text>
<Description>Test Command</Description>
<Assembly>test.dll</Assembly>
<FullClassName>InteropCommand</FullClassName>
<ClientId>0072bf73-c900-449b-bce2-e50a899a72ae</ClientId>
<VendorId>XYZ</VendorId>
<VendorDescription>XYZ</VendorDescription>
</AddIn>
</RevitAddIns>
您需要为每个命令实施单独的 class。
您可以从单个基础 class 派生所有外部命令实现 classes 以共享部分实现,或者从每个单独的外部命令实现调用通用 class class' 执行方法。
添加到
如前所述,每个命令仍然需要 class。