![]() |
【转帖】getting all the features in a feature manager folder
getting all the features in a feature manager folder
i need to access all the features in a folder (regular folder that is, not a comment or body folder) but i can't seem to find a way to determine if a feature has the folcer as parent or not. i would have expected that once you have a handle to the ftrfolder object you could use something like getfirstsubfeature but no such luck. it appears that the ftrfolder feature is plain feature in the feature list. the method i'm using now is to just use selectbyid to get the folder feature and then march down from there until i hit another ftrfolder object. this only works because i've put all my features in folders so there isn't any outside the folders. however if i want this to work where there may be features living outside the folder which are after the folder in the feature list then i'm hosed. any ideas? here's my current code: private overloads function suppressfolder(byval swfeature as sldworks.feature) as boolean 'note this will suppress every feature from the selected folder until it 'hits another folder or runs out of features dim bret as boolean dim infolder as boolean dim success as boolean m_swmodel.clearselection2(true) success = true if swfeature.gettypename = "ftrfolder" then infolder = true while (not swfeature is nothing) and infolder bret = swfeature.setsuppression2(swconst.swfeaturesuppressionaction_e.swsuppressfeature, swconst.swinconfigurationopts_e.swallconfiguration, nothing) if not bret then success = false debug.print("suppressing feature: " & swfeature.name & " status = " & cstr(bret)) swfeature = swfeature.getnextfeature if swfeature.gettypename = "ftrfolder" then infolder = false end if end while end if m_swmodel.forcerebuild3(false) return success end function answer folders don't have subfeatures but there is a hidden feature in with the name foldername__endtag__ so you just keep traversing the feature manager until you hit this hidden feature. silly me, i've seen this before but forgot about it. quick |
所有的时间均为北京时间。 现在的时间是 08:33 AM. |