調用Navisworks的 Api . 我這裡是基于.NET 開發的.
我主要是嘗試着擷取一下工程量的API。不過還在研究。
插件的啟動入口.
//插件描述
[PluginAttribute("BJYTTakeOff","ADSK",DisplayName = "工程量檢視")]
public class AddinActvitor : AddInPlugin
{
//執行
public override int Execute(params string[] parameters)
{
FrmTakeOff takeOff=new FrmTakeOff();
takeOff.ShowDialog();
return 0;
}
}
try
{
//擷取工程量對象
if (Autodesk.Navisworks.Api.Application.MainDocument != null)
{
DocumentTakeoff docTakeoff = Autodesk.Navisworks.Api.Application.MainDocument.GetTakeoff();
//擷取條目表
// ItemTable table = docTakeoff.Items;
//開始資料庫操作
if (docTakeoff != null)
{
using (NavisworksCommand cmd = docTakeoff.Database.Value.CreateCommand())
{
//SQL句法
// TK_ITEM是條目表在資料庫中的名字
cmd.CommandText = "SELECT ID,Parent,Name FROM TK_ITEM";
//讀取資料庫
DataTable dt = new DataTable();
NavisworksDataAdapter sdAdapter = new NavisworksDataAdapter(cmd);
sdAdapter.Fill(dt);
if (dt.Rows.Count > 0)
{
treeList1.DataSource = dt;
}
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
