The Myriad of Solid Edge File Properties APIs
Accessing Solid Edge document properties to either read or modify is the most common activity performed on Solid Edge documents apart from when manipulating the content of the document itself.
Here’s a visual layout of the various properties logically grouped into 8 tabs.
From the API standpoint all of these are again grouped into property sets which do not necessarily correspond to the tabs in image above. They are grouped into 6 sets as below:
- SummaryInformation
- ExtendedSummaryInformation
- DocumentSummaryInformation
- ProjectInformation
- VersionHistory
- Custom
Note: There is no space within the set names.
The Solid Edge API provides several ways to access document properties.
- Adding a reference to the dedicated Solid Edge File Properties Object Library.
- Adding a reference to the Solid Edge Framework Type Library.
- Adding a reference to the Solid Edge Revision Manager (Design Manager) Object Library.
Whether Solid Edge is running or closed will make a difference when choosing one of these.
If Solid Edge is running and the file is open then you have already referenced the Framework library and can use it to access the file properties. Else if your application is using a reference just to the Revision (or Design) Manager library, file properties are available too.
Else, If your application is involved in purely manipulating file properties then a reference to the File Properties library is sufficient.
Case 1 (a): When Solid Edge is running: The Full Property Set
The code snippet below shows the complete flow starting from the Solid Edge object through accessing and changing the property Document Number from the available properties:
Dim objApp As SolidEdgeFramework.Application = System.Runtime.InteropServices.Marshal.GetActiveObject("SolidEdge.Application")Dim objPropSets As SolidEdgeFramework.PropertySets = Nothing Dim objProp As SolidEdgeFramework.Property = Nothing Dim objProps As SolidEdgeFramework.Properties = Nothing Dim objDocument As SolidEdgeFramework.SolidEdgeDocument = Nothing
objDocument = objApp.ActiveDocument objPropSets = objDocument.Properties For Each objProps In objPropSets If objProps.Name = "ProjectInformation" Then For Each objProp In objProps If objProp.Name = "Document Number" Then objProp.Value = "Document123" End If Next End If Next
Case 1 (b): When Solid Edge is running: Only Key Properties
Dim objApp As SolidEdgeFramework.Application = System.Runtime.InteropServices.Marshal.GetActiveObject("SolidEdge.Application") Dim objDocument As SolidEdgeFramework.SolidEdgeDocument = objApp.ActiveDocument Dim objSummaryInfo As SolidEdgeFramework.SummaryInfo = objDocument.SummaryInfo
At this moment you have access to the most common of the file properties:
Case 2: Solid Edge File Properties library
Alternatively, if you want to use a reference to the Solid Edge File Properties library, then a document need not be open in Solid Edge, nor Solid Edge be running.
Change the file properties directly like this:
Note: The keyword New in the opening line. A new object for Solid Edge File Properties should be created.
Dim objPropSets As SolidEdgeFileProperties.PropertySets = New SolidEdgeFileProperties.PropertySets Dim objProp As SolidEdgeFileProperties.Property = Nothing Dim objProps As SolidEdgeFileProperties.Properties = Nothing Dim sDocument As String = "C:TempTestfile.par" objPropSets.Open(sDocument, False) For Each objProps In objPropSets If objProps.Name = "ProjectInformation" Then For Each objProp In objProps If objProp.Name = "Document Number" Then objProp.Value = "Document123" End If Next End If NextobjPropSets.Save() objPropSets.Close()
Note: In code snippet above,in the Open function, set the second argument to False to modify file property value and set it to True to prevent any modifications.
This covers the minimum basics of what you need to get started with Solid Edge file properties. I will soon upload VB.Net project files for the all the cases discussed above depending on the response. Watch this space for the attachments.
In the next installment or as an edit to the article above I will show how to create new custom properties, how to check if a custom property exists and many such tip-tricks.
If you have any further questions regarding accessing or manipulating file properties, do leave a comment below or search or post directly to the Developer forum.
~Tushar Suradkar
Solid Edge Users Facebook Group – Let’s Sync
Comments
Leave a Reply
You must be logged in to post a comment.
This crashes Excel every single time. Any ideas?
Dim objProps As SolidEdgeFileProperties.PropertySets
Set objProps = New SolidEdgeFileProperties.PropertySets
Set Foo = objProps.Open(“C:\Users\kkeller\Documents\TestCadVault\100\100000\100000-01.sldasm”, False) ‘This crashes Excel every single time
.sldasm is a SolidWorks file.
The Solid Edge API cannot open SolidWorks file properties.
Hi Tushar,
Nice blog!
I have one query. I have Teamcenter(TC) integrated with Solid Edge(SE). I opened the part file from TC to SE and able to see all the custom properties in SE application which I have mapped through mapping file. But through SolidEdgeFramework API I can read only few custom properties not all. I want to read all custom properties. I am using the code from Solid Edge .NET Programmer’s guide which you also mentioned in case a. Any hint will be helpful.
Regards,
Rahul Chavan 😉