開展網(wǎng)站建設(shè)服務(wù)免費(fèi)收錄平臺(tái)
今天這篇文章是接上一篇文章的,主要講述的是獲取SW設(shè)計(jì)結(jié)構(gòu)樹節(jié)點(diǎn)的第二種方法。
這個(gè)方法獲取節(jié)點(diǎn)的邏輯是先獲取最頂層節(jié)點(diǎn),然后再通過獲取頂層節(jié)點(diǎn)的子節(jié)點(diǎn)一層一層的把所有節(jié)點(diǎn)都找出來,也就是需要遞歸。想要用這個(gè)方法就要了解下面幾個(gè)API。
其中第一個(gè)API如下所示:
GetRootComponent3 Method (IConfiguration)
上述API解釋是:獲取此程序集配置的根組件
下面是這個(gè)方法的使用例子:
public?void?Main(){ModelDoc2?swModel;ConfigurationManager?swConfMgr;Configuration?swConf;Component2?swRootComp;swModel?=?(ModelDoc2)swApp.ActiveDoc;swConfMgr?=?(ConfigurationManager)swModel.ConfigurationManager;swConf?=?(Configuration)swConfMgr.ActiveConfiguration;swRootComp?=?(Component2)swConf.GetRootComponent();System.Diagnostics.Stopwatch?myStopwatch?=?new?Stopwatch();myStopwatch.Start();Debug.Print("File?=?"?+?swModel.GetPathName());TraverseModelFeatures(swModel,?1);if?(swModel.GetType()?==?(int)swDocumentTypes_e.swDocASSEMBLY){TraverseComponent(swRootComp,?1);}myStopwatch.Stop();TimeSpan?myTimespan?=?myStopwatch.Elapsed;Debug.Print("Time?=?"?+?myTimespan.TotalSeconds?+?"?sec");}第二個(gè)API是GetChildren Method (IComponent2)
方法的解釋是:獲取此組件的所有子組件。
所以通過上面兩個(gè)API的結(jié)合,我們也可以獲取所有我們想要的節(jié)點(diǎn)信息。
今天這篇文章就介紹這么多,我們下篇文章再見。