二次开发---Navisworks插件的第一步

由于项目需要,近段时间在研究Navisworks插件的创建,现谨以此做一记录。

前提:navisworks软件已安装

navisworks API分为com API和.net API,这里介绍基本插件。

【基本插件】

1、打开VS,新建一项目,在项目模板下选择【Visual C#】-->【类库】,选择.NET Framework的版本(这个与navisworks版本对应,2014---4.0,2016---4.5),起好项目名称,单击确定。


2、添加引用。在【引用】右键添加引用,打开对话框后在【浏览】处找到navisworks软件的安装路径,找到Autodesk.Navisworks.Api.dll并选中,点击确定。

3、打开引用dll的属性,把复制到本地改成“False”。

4、添加基本的命名空间的引用和相关的代码,如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Autodesk.Navisworks.Api;
using Autodesk.Navisworks.Api.Plugins;
using Autodesk.Navisworks.Api.DocumentParts;
//using Autodesk.Navisworks.ComApi;

//using Autodesk.Navisworks.Api.Interop.ComApi;
//using Autodesk.Navisworks.Api.ComApi;

namespace TestTest
{
    //基本插件
    [PluginAttribute("Basic", "ADSK", ToolTip = "Popups", DisplayName = "TestTest")]//名字,开发者号(四位字串),提示,用户界面显示名
    [AddInPluginAttribute(AddInLocation.AddIn)]//设定插件的位置
    public class Class1 : AddInPlugin
    {
        string modelInfo = "";

        public override int Execute(params string[] parameters)
        {
            try
            {
                //当前文档
                Document doc = Application.ActiveDocument;//application是运行了之后自动提供的
                //第一个模型
                //
                ModelGeometry first = doc.Models[0].RootItem.FindFirstGeometry();
                if (first != null)
                {
                    modelInfo += string.Format("ActiveColor = {0}" +
                       "\nActiveTransparency = {1}" +
                       "\nBoundingBox  = {2}" +
                       "\nFragmentCount {3}" +
                       "\nIsSolid {4}" +
                       "\nItem {5}" +
                       "\nOriginalColor {6}" +
                       "\nOriginalTransparency {7}" +
                       "\nPermanentColor {8}" +
                       "\nPermanentTransparency {9}",
                       first.ActiveColor.ToString(),
                       first.ActiveTransparency,
                       first.BoundingBox.ToString(),
                       first.FragmentCount,
                       first.IsSolid.ToString(),
                       first.Item.ToString(),
                       first.OriginalColor.ToString(),
                       first.OriginalTransparency,
                       first.PermanentColor.ToString(),
                       first.PermanentTransparency);

                    //MessageBox.Show(text);
                }
                System.Windows.Forms.MessageBox.Show(modelInfo);
                return 0;
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);//输出显示异常信息
                return 0;
            }
        }
    }
}
上面的案例代码中的DisplayName就是我们会在navisworks软件里面看到的插件名字,AddInLocation.AddIn就是插件的放置位置。

5、编译项目,放置dll。将编好的项目dll复制到navisworks软件的安装路径的Plugins文件夹下,新建一个与DLL同名的文件夹,将DLL移进文件夹中。若插件dll有dll引用,则将引用dll放置到软件安装路径下的Dependencies文件夹下即可。

6、运行插件。打开navisworks软件,找到Add-ins,即可看到插件名称。




  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值