├── docs ├── public │ ├── main.css │ ├── main.js │ ├── chunk-EDJWACL4.min.js │ ├── chunk-OSRY5VT3.min.js.map │ ├── chunk-P42HNYSU.min.js.map │ ├── bootstrap-icons-OCU552PF.woff │ ├── bootstrap-icons-X6UQXWUS.woff2 │ ├── lunr.ja-6645DQV5.min.js.map │ ├── lunr.ja-J6QHZSR2.min.js.map │ ├── info-46DW6VJ7-RDUIJSMX.min.js.map │ ├── packet-W2GHVCYJ-ZZMTAWKW.min.js.map │ ├── pie-BEWT4RHE-VFWRUT6J.min.js.map │ ├── gitGraph-YCYPL57B-3XOJ53I6.min.js.map │ ├── architecture-I3QFYML2-2T2ZUHXO.min.js.map │ ├── lunr.ja-6645DQV5.min.js │ ├── lunr.ja-J6QHZSR2.min.js │ ├── lunr.jp-2KRE2L63.min.js │ ├── lunr.jp-M45D3XJE.min.js │ ├── mermaid.core-A4DBFH42.min.js │ ├── chunk-I4ZXTPQC.min.js │ ├── chunk-EKP7MBOP.min.js │ ├── chunk-EDJWACL4.min.js.map │ ├── chunk-5IIW54K6.min.js │ ├── pie-BEWT4RHE-VFWRUT6J.min.js │ ├── info-46DW6VJ7-RDUIJSMX.min.js │ ├── chunk-V55NTXQN.min.js │ ├── packet-W2GHVCYJ-ZZMTAWKW.min.js │ ├── gitGraph-YCYPL57B-3XOJ53I6.min.js │ ├── architecture-I3QFYML2-2T2ZUHXO.min.js │ ├── chunk-33FU46FA.min.js │ ├── chunk-OZ2RCKQJ.min.js │ ├── chunk-UEFJDIUO.min.js │ ├── lunr.jp-2KRE2L63.min.js.map │ ├── lunr.jp-M45D3XJE.min.js.map │ ├── mermaid.core-A4DBFH42.min.js.map │ ├── chunk-PDS7545E.min.js │ ├── chunk-OSRY5VT3.min.js │ ├── chunk-ISDTAGDN.min.js │ ├── classDiagram-LNE6IOMH-VZ67B4ZP.min.js │ ├── stateDiagram-v2-4JROLMXI-COTI64PW.min.js │ ├── classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js │ ├── flowDiagram-v2-3b53844e-QBBADQR5.min.js │ ├── chunk-IJ4BRSPX.min.js │ ├── chunk-I4ZXTPQC.min.js.map │ ├── chunk-EKP7MBOP.min.js.map │ ├── chunk-P42HNYSU.min.js │ ├── infoDiagram-A4XQUW5V-SKLVFWJI.min.js │ ├── chunk-V55NTXQN.min.js.map │ ├── chunk-5IIW54K6.min.js.map │ ├── chunk-JL3VILNY.min.js │ ├── chunk-IQQ46AC6.min.js │ ├── chunk-WXIN66R4.min.js │ ├── chunk-YDMVF6IB.min.js │ ├── classDiagram-LNE6IOMH-VZ67B4ZP.min.js.map │ ├── classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js.map │ ├── stateDiagram-v2-4JROLMXI-COTI64PW.min.js.map │ ├── lunr.vi-3U4A337N.min.js │ ├── lunr.vi-S3VOAA5A.min.js │ ├── chunk-C7DS3QYJ.min.js │ ├── lunr.th-LSQ6T65I.min.js │ ├── lunr.th-O4JBL3IY.min.js │ ├── chunk-CLIYZZ5Y.min.js │ ├── flowDiagram-v2-3b53844e-QBBADQR5.min.js.map │ ├── chunk-CM5D5KZN.min.js │ ├── chunk-33FU46FA.min.js.map │ ├── infoDiagram-A4XQUW5V-SKLVFWJI.min.js.map │ ├── chunk-OZ2RCKQJ.min.js.map │ ├── chunk-UEFJDIUO.min.js.map │ └── lunr.hy-FFQJAR7M.min.js ├── CNAME ├── favicon.ico ├── images │ ├── fav.png │ ├── logo.png │ ├── details.png │ ├── DebugAddIn.png │ ├── addinwizard.png │ ├── addnewitem.png │ ├── newproject.png │ ├── outputfiles.png │ ├── newitemwindow.png │ ├── pdmsdktemplate.png │ ├── build_succeeded.png │ ├── project_files_created.PNG │ ├── update_nuget_package.png │ ├── edmtaskpagesolutionexplorer.png │ └── Sample Add-In Administration Properties.png ├── toc.json ├── toc.html ├── logo.svg └── docs │ └── toc.json ├── CNAME ├── docs_backup ├── help │ ├── _config.yml │ ├── toc.yml │ ├── getting-started.md │ └── Visual-Studio-SDK-template.md ├── toc.yml └── index.md ├── docfx ├── filter.yml ├── docs │ ├── image.png │ ├── image-1.png │ ├── getting-started.md │ ├── Visual-Studio-SDK-template.md │ ├── toc.yml │ ├── building_project.md │ ├── dependencyinjection.md │ ├── flags.md │ ├── creating_new_project.md │ ├── updating_nuget_packages.md │ └── TaskLaunch.md ├── images │ ├── fav.png │ ├── details.png │ ├── DebugAddIn.png │ ├── addinwizard.png │ ├── addnewitem.png │ ├── newproject.png │ ├── outputfiles.png │ ├── newitemwindow.png │ ├── build_succeeded.png │ ├── pdmsdktemplate.png │ ├── project_files_created.PNG │ ├── update_nuget_package.png │ ├── edmtaskpagesolutionexplorer.png │ └── Sample Add-In Administration Properties.png ├── toc.yml ├── api │ ├── BlueByte.SOLIDWORKS.md │ ├── BlueByte.md │ ├── BlueByte.SOLIDWORKS.PDMProfessional.md │ └── Xarial.XToolkit.Helpers.yml ├── index.md └── docfx.json ├── VSTemplate ├── PDM SDK Add-in Template.zip ├── ProjectTemplateWizard │ ├── logo.png │ ├── Properties │ │ ├── Settings.settings │ │ └── Settings.Designer.cs │ ├── AddInInfo.cs │ ├── WizardWindow.xaml.cs │ └── ProjectWizard.cs ├── VSExtension │ ├── __TemplateIcon.png │ ├── ItemTemplates │ │ ├── SOLIDWORKSPDMTaskPage.zip │ │ ├── SOLIDWORKSPDMTaskPageVBNET.zip │ │ ├── SOLIDWORKSPDMTaskPage │ │ │ ├── __TemplateIcon.png │ │ │ ├── TaskPage.cs │ │ │ ├── TaskPageViewModel.cs │ │ │ ├── MyTemplate.vstemplate │ │ │ └── TaskPage.Designer.cs │ │ └── SOLIDWORKSPDMTaskPageVBNET │ │ │ ├── __TemplateIcon.png │ │ │ ├── TaskPage.vb │ │ │ ├── TaskPageViewModel.vb │ │ │ ├── MyTemplate.vstemplate │ │ │ └── TaskPage.Designer.vb │ ├── ProjectTemplates │ │ ├── PDM SDK Add-in Template.zip │ │ └── PDM SDK Add-in Template VBNET.zip │ ├── MITLicense.txt │ └── Properties │ │ └── AssemblyInfo.cs ├── PDM SDK Add-in Template VBNET.zip ├── PDM SDK Add-in Template │ ├── __PreviewImage.png │ ├── __TemplateIcon.png │ ├── Task │ │ ├── TaskSetup.cs │ │ ├── TaskLaunch.cs │ │ ├── TaskSetupButton.cs │ │ ├── TaskRun.cs │ │ └── SetupPages │ │ │ ├── Settings.cs │ │ │ ├── SettingsViewModel.cs │ │ │ └── Settings.Designer.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── PDM SDK Add-in Template VBNET │ ├── __PreviewImage.png │ ├── __TemplateIcon.png │ ├── Task │ │ ├── TaskLaunch.vb │ │ ├── TaskSetup.vb │ │ ├── TaskSetupButton.vb │ │ └── TaskRun.vb │ ├── My Project │ │ ├── Settings.settings │ │ ├── Application.Designer.vb │ │ ├── Application.myapp │ │ └── AssemblyInfo.vb │ └── packages.config ├── SOLIDWORKSPDMAddInVBNET │ ├── Task │ │ ├── TaskLaunch.vb │ │ ├── TaskSetup.vb │ │ ├── TaskSetupButton.vb │ │ ├── TaskRun.vb │ │ └── SetupPages │ │ │ ├── Settings.vb │ │ │ ├── SettingsViewModel.vb │ │ │ └── Settings.Designer.vb │ ├── My Project │ │ ├── Settings.settings │ │ ├── Application.Designer.vb │ │ ├── Application.myapp │ │ └── AssemblyInfo.vb │ ├── packages.config │ └── AddIn.vb ├── SOLIDWORKSPDMAddIn │ ├── Task │ │ ├── TaskSetup.cs │ │ ├── TaskLaunch.cs │ │ ├── TaskSetupButton.cs │ │ ├── TaskRun.cs │ │ └── SetupPages │ │ │ ├── Settings.cs │ │ │ ├── SettingsViewModel.cs │ │ │ └── Settings.Designer.cs │ └── Properties │ │ └── AssemblyInfo.cs └── VisualStudioExtension │ ├── source.extension.vsixmanifest │ └── Properties │ └── AssemblyInfo.cs ├── src ├── BlueByte.SOLIDWORKS.PDMProfessional.SDK │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── packages.config │ ├── Attributes │ │ ├── CompanyNameAttribute.cs │ │ ├── DescriptionAttribute.cs │ │ ├── NameAttribute.cs │ │ ├── TaskFlagsAttribute.cs │ │ ├── ListenForAttribute.cs │ │ ├── AddInVersionAttribute.cs │ │ ├── HandlesAttribute.cs │ │ └── RequiredVersionAttribute.cs │ ├── Core │ │ ├── TaskFailedException.cs │ │ ├── CancellationException.cs │ │ ├── ITaskPage.cs │ │ └── Identity.cs │ ├── Diagnostics │ │ ├── LoggerType_e.cs │ │ ├── ConsoleLogger.cs │ │ ├── LoggerBase.cs │ │ └── ILogger.cs │ ├── Exceptions │ │ ├── ITaskDetailsPageNotUserControlException.cs │ │ ├── PDMSDKException.cs │ │ └── IdentityInfoException.cs │ ├── AssemblyResolution │ │ ├── Reflection │ │ │ ├── EnumExtension.cs │ │ │ ├── ResourceHelper.cs │ │ │ ├── AssemblyExtension.cs │ │ │ └── AppDomainExtension.cs │ │ └── TextUtils.cs │ ├── Helper.cs │ └── package.nuspec └── BlueByte.SOLIDWORKS.PDMProfessional.Services │ ├── Properties │ └── AssemblyInfo.cs │ ├── packages.config │ ├── ISettingsManager.cs │ ├── Win32Window.cs │ ├── Extensions.cs │ ├── NotifiableBase.cs │ ├── TypeConverters │ ├── StringArrayTypeConverter.cs │ ├── StateNamesConverter.cs │ ├── WorkflowNamesConverter.cs │ ├── BOMLayoutNamesConverter.cs │ ├── TransitionNamesConverter.cs │ └── VariableNamesConverter.cs │ ├── package.nuspec │ └── SettingsManagerHelper.cs ├── UnitTesting └── UnitTesting │ ├── UnitTesting │ ├── App.config │ ├── packages.config │ ├── Program.cs │ └── Properties │ │ └── AssemblyInfo.cs │ ├── TestAddin │ ├── packages.config │ └── Properties │ │ └── AssemblyInfo.cs │ └── UnitTesting.sln ├── .github ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md └── workflows │ └── static.yml ├── README.md ├── SDK.sln └── LICENSE.md /docs/public/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | pdmsdk.bluebyte.biz -------------------------------------------------------------------------------- /docs/CNAME: -------------------------------------------------------------------------------- 1 | pdmsdk.bluebyte.biz -------------------------------------------------------------------------------- /docs/public/main.js: -------------------------------------------------------------------------------- 1 | export default {} 2 | -------------------------------------------------------------------------------- /docs_backup/help/_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /docfx/filter.yml: -------------------------------------------------------------------------------- 1 | YamlMime: ManagedReference 2 | apiRules: 3 | - exclude: 4 | uidRegex: ^Xarial(\..*)?$ -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/favicon.ico -------------------------------------------------------------------------------- /docfx/docs/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/docs/image.png -------------------------------------------------------------------------------- /docfx/images/fav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/fav.png -------------------------------------------------------------------------------- /docs/images/fav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/fav.png -------------------------------------------------------------------------------- /docs/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/logo.png -------------------------------------------------------------------------------- /docfx/docs/image-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/docs/image-1.png -------------------------------------------------------------------------------- /docs/images/details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/details.png -------------------------------------------------------------------------------- /docs/public/chunk-EDJWACL4.min.js: -------------------------------------------------------------------------------- 1 | var r="11.4.1";export{r as a}; 2 | //# sourceMappingURL=chunk-EDJWACL4.min.js.map 3 | -------------------------------------------------------------------------------- /docfx/images/details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/details.png -------------------------------------------------------------------------------- /docfx/images/DebugAddIn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/DebugAddIn.png -------------------------------------------------------------------------------- /docfx/images/addinwizard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/addinwizard.png -------------------------------------------------------------------------------- /docfx/images/addnewitem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/addnewitem.png -------------------------------------------------------------------------------- /docfx/images/newproject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/newproject.png -------------------------------------------------------------------------------- /docfx/images/outputfiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/outputfiles.png -------------------------------------------------------------------------------- /docs/images/DebugAddIn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/DebugAddIn.png -------------------------------------------------------------------------------- /docs/images/addinwizard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/addinwizard.png -------------------------------------------------------------------------------- /docs/images/addnewitem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/addnewitem.png -------------------------------------------------------------------------------- /docs/images/newproject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/newproject.png -------------------------------------------------------------------------------- /docs/images/outputfiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/outputfiles.png -------------------------------------------------------------------------------- /docs_backup/toc.yml: -------------------------------------------------------------------------------- 1 | name: Documentation 2 | href: docs/ 3 | name: SOLIDWORKS API Developers 4 | href: https://bluebyte.biz/contact -------------------------------------------------------------------------------- /docfx/images/newitemwindow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/newitemwindow.png -------------------------------------------------------------------------------- /docs/images/newitemwindow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/newitemwindow.png -------------------------------------------------------------------------------- /docs/images/pdmsdktemplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/pdmsdktemplate.png -------------------------------------------------------------------------------- /docfx/images/build_succeeded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/build_succeeded.png -------------------------------------------------------------------------------- /docfx/images/pdmsdktemplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/pdmsdktemplate.png -------------------------------------------------------------------------------- /docs/images/build_succeeded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/build_succeeded.png -------------------------------------------------------------------------------- /docfx/toc.yml: -------------------------------------------------------------------------------- 1 | - name: Getting Started 2 | href: docs/ 3 | - name: PDM SDK Reference 4 | href: api/BlueByte.SOLIDWORKS.PDMProfessional.SDK.html -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/PDM SDK Add-in Template.zip -------------------------------------------------------------------------------- /docfx/images/project_files_created.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/project_files_created.PNG -------------------------------------------------------------------------------- /docfx/images/update_nuget_package.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/update_nuget_package.png -------------------------------------------------------------------------------- /docs/images/project_files_created.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/project_files_created.PNG -------------------------------------------------------------------------------- /docs/images/update_nuget_package.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/update_nuget_package.png -------------------------------------------------------------------------------- /docs_backup/help/toc.yml: -------------------------------------------------------------------------------- 1 | name: Getting Started 2 | href: getting-started.md 3 | name: Visual Studio SDK template 4 | href: Visual-Studio-SDK-template.md -------------------------------------------------------------------------------- /docs/public/chunk-OSRY5VT3.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": [], 4 | "sourcesContent": [], 5 | "mappings": "", 6 | "names": [] 7 | } 8 | -------------------------------------------------------------------------------- /docs/public/chunk-P42HNYSU.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": [], 4 | "sourcesContent": [], 5 | "mappings": "", 6 | "names": [] 7 | } 8 | -------------------------------------------------------------------------------- /VSTemplate/ProjectTemplateWizard/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/ProjectTemplateWizard/logo.png -------------------------------------------------------------------------------- /VSTemplate/VSExtension/__TemplateIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/VSExtension/__TemplateIcon.png -------------------------------------------------------------------------------- /docs/images/edmtaskpagesolutionexplorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/edmtaskpagesolutionexplorer.png -------------------------------------------------------------------------------- /docs/public/bootstrap-icons-OCU552PF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/public/bootstrap-icons-OCU552PF.woff -------------------------------------------------------------------------------- /docs/public/bootstrap-icons-X6UQXWUS.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/public/bootstrap-icons-X6UQXWUS.woff2 -------------------------------------------------------------------------------- /docs/public/lunr.ja-6645DQV5.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": [], 4 | "sourcesContent": [], 5 | "mappings": "", 6 | "names": [] 7 | } 8 | -------------------------------------------------------------------------------- /docs/public/lunr.ja-J6QHZSR2.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": [], 4 | "sourcesContent": [], 5 | "mappings": "", 6 | "names": [] 7 | } 8 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template VBNET.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/PDM SDK Add-in Template VBNET.zip -------------------------------------------------------------------------------- /docfx/images/edmtaskpagesolutionexplorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/edmtaskpagesolutionexplorer.png -------------------------------------------------------------------------------- /docs/public/info-46DW6VJ7-RDUIJSMX.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": [], 4 | "sourcesContent": [], 5 | "mappings": "", 6 | "names": [] 7 | } 8 | -------------------------------------------------------------------------------- /docs/public/packet-W2GHVCYJ-ZZMTAWKW.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": [], 4 | "sourcesContent": [], 5 | "mappings": "", 6 | "names": [] 7 | } 8 | -------------------------------------------------------------------------------- /docs/public/pie-BEWT4RHE-VFWRUT6J.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": [], 4 | "sourcesContent": [], 5 | "mappings": "", 6 | "names": [] 7 | } 8 | -------------------------------------------------------------------------------- /docs/public/gitGraph-YCYPL57B-3XOJ53I6.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": [], 4 | "sourcesContent": [], 5 | "mappings": "", 6 | "names": [] 7 | } 8 | -------------------------------------------------------------------------------- /docs/public/architecture-I3QFYML2-2T2ZUHXO.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": [], 4 | "sourcesContent": [], 5 | "mappings": "", 6 | "names": [] 7 | } 8 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template/__PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/PDM SDK Add-in Template/__PreviewImage.png -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template/__TemplateIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/PDM SDK Add-in Template/__TemplateIcon.png -------------------------------------------------------------------------------- /docs/public/lunr.ja-6645DQV5.min.js: -------------------------------------------------------------------------------- 1 | import{a}from"./chunk-334IV3XH.min.js";import"./chunk-P42HNYSU.min.js";export default a(); 2 | //# sourceMappingURL=lunr.ja-6645DQV5.min.js.map 3 | -------------------------------------------------------------------------------- /docs/public/lunr.ja-J6QHZSR2.min.js: -------------------------------------------------------------------------------- 1 | import{a}from"./chunk-DTUU2GN4.min.js";import"./chunk-OSRY5VT3.min.js";export default a(); 2 | //# sourceMappingURL=lunr.ja-J6QHZSR2.min.js.map 3 | -------------------------------------------------------------------------------- /docs/images/Sample Add-In Administration Properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docs/images/Sample Add-In Administration Properties.png -------------------------------------------------------------------------------- /docfx/images/Sample Add-In Administration Properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/docfx/images/Sample Add-In Administration Properties.png -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template VBNET/__PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/PDM SDK Add-in Template VBNET/__PreviewImage.png -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template VBNET/__TemplateIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/PDM SDK Add-in Template VBNET/__TemplateIcon.png -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPage.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPage.zip -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPageVBNET.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPageVBNET.zip -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ProjectTemplates/PDM SDK Add-in Template.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/VSExtension/ProjectTemplates/PDM SDK Add-in Template.zip -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ProjectTemplates/PDM SDK Add-in Template VBNET.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/VSExtension/ProjectTemplates/PDM SDK Add-in Template VBNET.zip -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.Services/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/src/BlueByte.SOLIDWORKS.PDMProfessional.Services/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPage/__TemplateIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPage/__TemplateIcon.png -------------------------------------------------------------------------------- /docs/public/lunr.jp-2KRE2L63.min.js: -------------------------------------------------------------------------------- 1 | import{a as i}from"./chunk-334IV3XH.min.js";import{b as r}from"./chunk-P42HNYSU.min.js";var o=r((p,e)=>{e.exports=i()});export default o(); 2 | //# sourceMappingURL=lunr.jp-2KRE2L63.min.js.map 3 | -------------------------------------------------------------------------------- /docs/public/lunr.jp-M45D3XJE.min.js: -------------------------------------------------------------------------------- 1 | import{a as i}from"./chunk-DTUU2GN4.min.js";import{a as r}from"./chunk-OSRY5VT3.min.js";var o=r((p,e)=>{e.exports=i()});export default o(); 2 | //# sourceMappingURL=lunr.jp-M45D3XJE.min.js.map 3 | -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPageVBNET/__TemplateIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/HEAD/VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPageVBNET/__TemplateIcon.png -------------------------------------------------------------------------------- /UnitTesting/UnitTesting/UnitTesting/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /VSTemplate/ProjectTemplateWizard/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/public/mermaid.core-A4DBFH42.min.js: -------------------------------------------------------------------------------- 1 | import{J as m,b as r,c as t,sb as p}from"./chunk-VMREMWJS.min.js";import{d as o}from"./chunk-P42HNYSU.min.js";var e=o(r(),1),f=o(t(),1);var l=o(m(),1);export{p as default}; 2 | //# sourceMappingURL=mermaid.core-A4DBFH42.min.js.map 3 | -------------------------------------------------------------------------------- /docs/public/chunk-I4ZXTPQC.min.js: -------------------------------------------------------------------------------- 1 | import{h as t}from"./chunk-U3SD26FK.min.js";var s=class{constructor(i){this.init=i,this.records=this.init()}static{t(this,"ImperativeState")}reset(){this.records=this.init()}};export{s as a}; 2 | //# sourceMappingURL=chunk-I4ZXTPQC.min.js.map 3 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template VBNET/Task/TaskLaunch.vb: -------------------------------------------------------------------------------- 1 | Imports EPDM.Interop.epdm 2 | 3 | Namespace $safeprojectname$ 4 | Partial Public Class AddIn 5 | Public Sub TaskLaunch(ByRef cmdData As EdmCmd, ByRef ppoData As EdmCmdData()) 6 | End Sub 7 | End Class 8 | End Namespace 9 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template VBNET/Task/TaskSetup.vb: -------------------------------------------------------------------------------- 1 | Imports EPDM.Interop.epdm 2 | 3 | Namespace $safeprojectname$ 4 | Partial Public Class AddIn 5 | Public Sub TaskSetup(ByRef cmdData As EdmCmd, ByRef ppoData As EdmCmdData()) 6 | End Sub 7 | End Class 8 | End Namespace 9 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddInVBNET/Task/TaskLaunch.vb: -------------------------------------------------------------------------------- 1 | Imports EPDM.Interop.epdm 2 | 3 | Namespace SOLIDWORKSPDMAddInVBNET 4 | Partial Public Class AddIn 5 | Public Sub TaskLaunch(ByRef cmdData As EdmCmd, ByRef ppoData As EdmCmdData()) 6 | End Sub 7 | End Class 8 | End Namespace 9 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddInVBNET/Task/TaskSetup.vb: -------------------------------------------------------------------------------- 1 | Imports EPDM.Interop.epdm 2 | 3 | Namespace SOLIDWORKSPDMAddInVBNET 4 | Partial Public Class AddIn 5 | Public Sub TaskSetup(ByRef cmdData As EdmCmd, ByRef ppoData As EdmCmdData()) 6 | End Sub 7 | End Class 8 | End Namespace 9 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddIn/Task/TaskSetup.cs: -------------------------------------------------------------------------------- 1 | using EPDM.Interop.epdm; 2 | 3 | namespace SOLIDWORKSPDMAddIn 4 | { 5 | public partial class AddIn 6 | { 7 | 8 | public void TaskSetup(ref EdmCmd cmdData, ref EdmCmdData[] ppoData) 9 | { 10 | 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /docs/public/chunk-EKP7MBOP.min.js: -------------------------------------------------------------------------------- 1 | import{h as i}from"./chunk-U3SD26FK.min.js";function t(c,e){c.accDescr&&e.setAccDescription?.(c.accDescr),c.accTitle&&e.setAccTitle?.(c.accTitle),c.title&&e.setDiagramTitle?.(c.title)}i(t,"populateCommonDb");export{t as a}; 2 | //# sourceMappingURL=chunk-EKP7MBOP.min.js.map 3 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template VBNET/Task/TaskSetupButton.vb: -------------------------------------------------------------------------------- 1 | Imports EPDM.Interop.epdm 2 | 3 | Namespace $safeprojectname$ 4 | Partial Public Class AddIn 5 | Public Sub TaskSetupButton(ByRef cmdData As EdmCmd, ByRef ppoData As EdmCmdData()) 6 | End Sub 7 | End Class 8 | End Namespace 9 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template/Task/TaskSetup.cs: -------------------------------------------------------------------------------- 1 | using EPDM.Interop.epdm; 2 | 3 | namespace $safeprojectname$ 4 | { 5 | public partial class AddIn 6 | { 7 | 8 | public void TaskSetup(ref EdmCmd cmdData, ref EdmCmdData[] ppoData) 9 | { 10 | 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddIn/Task/TaskLaunch.cs: -------------------------------------------------------------------------------- 1 | using EPDM.Interop.epdm; 2 | 3 | namespace SOLIDWORKSPDMAddIn 4 | { 5 | public partial class AddIn 6 | { 7 | 8 | public void TaskLaunch(ref EdmCmd cmdData, ref EdmCmdData[] ppoData) 9 | { 10 | 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddInVBNET/Task/TaskSetupButton.vb: -------------------------------------------------------------------------------- 1 | Imports EPDM.Interop.epdm 2 | 3 | Namespace SOLIDWORKSPDMAddInVBNET 4 | Partial Public Class AddIn 5 | Public Sub TaskSetupButton(ByRef cmdData As EdmCmd, ByRef ppoData As EdmCmdData()) 6 | End Sub 7 | End Class 8 | End Namespace 9 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template/Task/TaskLaunch.cs: -------------------------------------------------------------------------------- 1 | using EPDM.Interop.epdm; 2 | 3 | namespace $safeprojectname$ 4 | { 5 | public partial class AddIn 6 | { 7 | 8 | public void TaskLaunch(ref EdmCmd cmdData, ref EdmCmdData[] ppoData) 9 | { 10 | 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddIn/Task/TaskSetupButton.cs: -------------------------------------------------------------------------------- 1 | using EPDM.Interop.epdm; 2 | 3 | namespace SOLIDWORKSPDMAddIn 4 | { 5 | public partial class AddIn 6 | { 7 | 8 | public void TaskSetupButton(ref EdmCmd cmdData, ref EdmCmdData[] ppoData) 9 | { 10 | 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /docfx/api/BlueByte.SOLIDWORKS.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: BlueByte.SOLIDWORKS Namespace 3 | description: Documentation for the BlueByte.SOLIDWORKS namespace, which provides types for SOLIDWORKS integration in the BlueByte SDK. 4 | --- 5 | 6 | # BlueByte.SOLIDWORKS Namespace 7 | 8 | This namespace contains types related to SOLIDWORKS. -------------------------------------------------------------------------------- /docs/public/chunk-EDJWACL4.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-K6PMAZHR.mjs"], 4 | "sourcesContent": ["// package.json\nvar version = \"11.4.1\";\n\nexport {\n version\n};\n"], 5 | "mappings": "AACA,IAAIA,EAAU", 6 | "names": ["version"] 7 | } 8 | -------------------------------------------------------------------------------- /docs/toc.json: -------------------------------------------------------------------------------- 1 | 2 | {"items":[{"name":"Getting Started","href":"docs/getting-started.html","tocHref":"docs/toc.html","topicHref":"docs/getting-started.html"},{"name":"PDM SDK Reference","href":"api/BlueByte.SOLIDWORKS.PDMProfessional.SDK.html","topicHref":"api/BlueByte.SOLIDWORKS.PDMProfessional.SDK.html"}],"pdf":false} 3 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.Services/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template/Task/TaskSetupButton.cs: -------------------------------------------------------------------------------- 1 | using EPDM.Interop.epdm; 2 | 3 | namespace $safeprojectname$ 4 | { 5 | public partial class AddIn 6 | { 7 | 8 | public void TaskSetupButton(ref EdmCmd cmdData, ref EdmCmdData[] ppoData) 9 | { 10 | 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /docs/public/chunk-5IIW54K6.min.js: -------------------------------------------------------------------------------- 1 | import{Z as s,h as n,ia as e}from"./chunk-U3SD26FK.min.js";var a=n(t=>{let{securityLevel:c}=s(),o=e("body");if(c==="sandbox"){let m=e(`#i${t}`).node()?.contentDocument??document;o=e(m.body)}return o.select(`#${t}`)},"selectSvgElement");export{a}; 2 | //# sourceMappingURL=chunk-5IIW54K6.min.js.map 3 | -------------------------------------------------------------------------------- /VSTemplate/ProjectTemplateWizard/AddInInfo.cs: -------------------------------------------------------------------------------- 1 | namespace ProjectTemplateWizard 2 | { 3 | public class AddInInfo 4 | { 5 | public string Name { get; set; } = ""; 6 | public string Description { get; set; } = ""; 7 | public string Company { get; set; } = ""; 8 | public bool IsTask { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddInVBNET/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/public/pie-BEWT4RHE-VFWRUT6J.min.js: -------------------------------------------------------------------------------- 1 | import{a as e,b as r}from"./chunk-PDS7545E.min.js";import"./chunk-BIJFJY5F.min.js";import"./chunk-U4DUTLYF.min.js";import"./chunk-IQQ46AC6.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";export{e as PieModule,r as createPieServices}; 2 | //# sourceMappingURL=pie-BEWT4RHE-VFWRUT6J.min.js.map 3 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template VBNET/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/public/info-46DW6VJ7-RDUIJSMX.min.js: -------------------------------------------------------------------------------- 1 | import{a as o,b as e}from"./chunk-33FU46FA.min.js";import"./chunk-BIJFJY5F.min.js";import"./chunk-U4DUTLYF.min.js";import"./chunk-IQQ46AC6.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";export{o as InfoModule,e as createInfoServices}; 2 | //# sourceMappingURL=info-46DW6VJ7-RDUIJSMX.min.js.map 3 | -------------------------------------------------------------------------------- /docs/public/chunk-V55NTXQN.min.js: -------------------------------------------------------------------------------- 1 | import{h as i}from"./chunk-U3SD26FK.min.js";var o=i(({flowchart:t})=>{let r=t?.subGraphTitleMargin?.top??0,a=t?.subGraphTitleMargin?.bottom??0,e=r+a;return{subGraphTitleTopMargin:r,subGraphTitleBottomMargin:a,subGraphTitleTotalMargin:e}},"getSubGraphTitleMargins");export{o as a}; 2 | //# sourceMappingURL=chunk-V55NTXQN.min.js.map 3 | -------------------------------------------------------------------------------- /docs/public/packet-W2GHVCYJ-ZZMTAWKW.min.js: -------------------------------------------------------------------------------- 1 | import{a as e,b as r}from"./chunk-OZ2RCKQJ.min.js";import"./chunk-BIJFJY5F.min.js";import"./chunk-U4DUTLYF.min.js";import"./chunk-IQQ46AC6.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";export{e as PacketModule,r as createPacketServices}; 2 | //# sourceMappingURL=packet-W2GHVCYJ-ZZMTAWKW.min.js.map 3 | -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPage/TaskPage.cs: -------------------------------------------------------------------------------- 1 | using BlueByte.SOLIDWORKS.PDMProfessional.SDK.Core; 2 | 3 | namespace $rootnamespace$ 4 | { 5 | public partial class $safeitemname$ : TaskPage<$safeitemname$ViewModel> 6 | { 7 | public $safeitemname$() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /docfx/api/BlueByte.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: BlueByte Namespace 3 | description: Overview of the BlueByte namespace, providing core classes and utilities for BlueByte Systems Inc. SDKs. 4 | --- 5 | 6 | # BlueByte Namespace 7 | 8 | The `BlueByte` namespace contains core classes and utilities for Blue Byte Systems Inc. projects. It provides foundational components used throughout the SDK. -------------------------------------------------------------------------------- /docs/public/gitGraph-YCYPL57B-3XOJ53I6.min.js: -------------------------------------------------------------------------------- 1 | import{a as r,b as e}from"./chunk-UEFJDIUO.min.js";import"./chunk-BIJFJY5F.min.js";import"./chunk-U4DUTLYF.min.js";import"./chunk-IQQ46AC6.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";export{r as GitGraphModule,e as createGitGraphServices}; 2 | //# sourceMappingURL=gitGraph-YCYPL57B-3XOJ53I6.min.js.map 3 | -------------------------------------------------------------------------------- /docs/public/architecture-I3QFYML2-2T2ZUHXO.min.js: -------------------------------------------------------------------------------- 1 | import{a as e,b as r}from"./chunk-IJ4BRSPX.min.js";import"./chunk-BIJFJY5F.min.js";import"./chunk-U4DUTLYF.min.js";import"./chunk-IQQ46AC6.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";export{e as ArchitectureModule,r as createArchitectureServices}; 2 | //# sourceMappingURL=architecture-I3QFYML2-2T2ZUHXO.min.js.map 3 | -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPageVBNET/TaskPage.vb: -------------------------------------------------------------------------------- 1 | Imports BlueByte.SOLIDWORKS.PDMProfessional.SDK.Core 2 | 3 | Namespace $rootnamespace$ 4 | Public Partial Class $safeitemname$ 5 | Inherits TaskPage(Of $safeitemname$ViewModel) 6 | 7 | Public Sub New() 8 | InitializeComponent() 9 | End Sub 10 | End Class 11 | End Namespace -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Attributes/CompanyNameAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK.Attributes 4 | { 5 | public class CompanyNameAttribute : Attribute 6 | { 7 | public string CompanyName { get; set; } 8 | public CompanyNameAttribute(string value) 9 | { 10 | this.CompanyName = value; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Attributes/DescriptionAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK.Attributes 4 | { 5 | public class DescriptionAttribute : Attribute 6 | { 7 | public string Description { get; set; } 8 | public DescriptionAttribute(string value) 9 | { 10 | this.Description = value; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddIn/Task/TaskRun.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using EPDM.Interop.epdm; 7 | 8 | namespace SOLIDWORKSPDMAddIn 9 | { 10 | public partial class AddIn 11 | { 12 | 13 | public void TaskRun(ref EdmCmd cmdData, ref EdmCmdData[] ppoData) 14 | { 15 | 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template VBNET/Task/TaskRun.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.Collections.Generic 3 | Imports System.Linq 4 | Imports System.Text 5 | Imports System.Threading.Tasks 6 | Imports EPDM.Interop.epdm 7 | 8 | Namespace $safeprojectname$ 9 | Partial Public Class AddIn 10 | Public Sub TaskRun(ByRef cmdData As EdmCmd, ByRef ppoData As EdmCmdData()) 11 | End Sub 12 | End Class 13 | End Namespace 14 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template/Task/TaskRun.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using EPDM.Interop.epdm; 7 | 8 | namespace $safeprojectname$ 9 | { 10 | public partial class AddIn 11 | { 12 | 13 | public void TaskRun(ref EdmCmd cmdData, ref EdmCmdData[] ppoData) 14 | { 15 | 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddInVBNET/Task/TaskRun.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.Collections.Generic 3 | Imports System.Linq 4 | Imports System.Text 5 | Imports System.Threading.Tasks 6 | Imports EPDM.Interop.epdm 7 | 8 | Namespace SOLIDWORKSPDMAddInVBNET 9 | Partial Public Class AddIn 10 | Public Sub TaskRun(ByRef cmdData As EdmCmd, ByRef ppoData As EdmCmdData()) 11 | End Sub 12 | End Class 13 | End Namespace 14 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddInVBNET/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template VBNET/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Attributes/NameAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK.Attributes 8 | { 9 | public class NameAttribute : Attribute 10 | { 11 | public string Name { get; set; } 12 | public NameAttribute(string value) 13 | { 14 | this.Name = value; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /docs/public/chunk-33FU46FA.min.js: -------------------------------------------------------------------------------- 1 | import{a as t,b as a,c as o,d as i,e as f,f as e,g as u,h as d,n as s,o as l}from"./chunk-BIJFJY5F.min.js";var m=class extends l{static{e(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},v={parser:{TokenBuilder:e(()=>new m,"TokenBuilder"),ValueConverter:e(()=>new s,"ValueConverter")}};function I(c=i){let r=o(a(c),u),n=o(t({shared:r}),d,v);return r.ServiceRegistry.register(n),{shared:r,Info:n}}e(I,"createInfoServices");export{v as a,I as b}; 2 | //# sourceMappingURL=chunk-33FU46FA.min.js.map 3 | -------------------------------------------------------------------------------- /docs/public/chunk-OZ2RCKQJ.min.js: -------------------------------------------------------------------------------- 1 | import{a as o,b as c,c as t,d as n,e as k,f as e,g as i,i as u,n as d,o as l}from"./chunk-BIJFJY5F.min.js";var m=class extends l{static{e(this,"PacketTokenBuilder")}constructor(){super(["packet-beta"])}},v={parser:{TokenBuilder:e(()=>new m,"TokenBuilder"),ValueConverter:e(()=>new d,"ValueConverter")}};function p(s=n){let r=t(c(s),i),a=t(o({shared:r}),u,v);return r.ServiceRegistry.register(a),{shared:r,Packet:a}}e(p,"createPacketServices");export{v as a,p as b}; 2 | //# sourceMappingURL=chunk-OZ2RCKQJ.min.js.map 3 | -------------------------------------------------------------------------------- /docs/public/chunk-UEFJDIUO.min.js: -------------------------------------------------------------------------------- 1 | import{a as i,b as o,c as t,d as n,e as c,f as e,g as u,l as d,n as l,o as s}from"./chunk-BIJFJY5F.min.js";var p=class extends s{static{e(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},h={parser:{TokenBuilder:e(()=>new p,"TokenBuilder"),ValueConverter:e(()=>new l,"ValueConverter")}};function m(G=n){let r=t(o(G),u),a=t(i({shared:r}),d,h);return r.ServiceRegistry.register(a),{shared:r,GitGraph:a}}e(m,"createGitGraphServices");export{h as a,m as b}; 2 | //# sourceMappingURL=chunk-UEFJDIUO.min.js.map 3 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddInVBNET/My Project/Application.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template VBNET/My Project/Application.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddInVBNET/My Project/Application.myapp: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | false 5 | 0 6 | true 7 | 0 8 | 1 9 | true 10 | 11 | -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPage/TaskPageViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Runtime.CompilerServices; 3 | 4 | namespace $rootnamespace$ 5 | { 6 | public class $safeitemname$ : INotifyPropertyChanged 7 | { 8 | public event PropertyChangedEventHandler PropertyChanged; 9 | 10 | public void OnPropertyChanged([CallerMemberName] string propertyName = "") 11 | { 12 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template VBNET/My Project/Application.myapp: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | false 5 | 0 6 | true 7 | 0 8 | 1 9 | true 10 | 11 | -------------------------------------------------------------------------------- /docs/public/lunr.jp-2KRE2L63.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/lunr-languages/lunr.jp.js"], 4 | "sourcesContent": ["// jp is the country code, while ja is the language code\n// a new lunr.ja.js has been created, but in order to\n// keep the backward compatibility, we'll leave the lunr.jp.js\n// here for a while, and just make it use the new lunr.ja.js\nmodule.exports = require('./lunr.ja');"], 5 | "mappings": "wFAAA,IAAAA,EAAAC,EAAA,CAAAC,EAAAC,IAAA,CAIAA,EAAO,QAAU", 6 | "names": ["require_lunr_jp", "__commonJSMin", "exports", "module"] 7 | } 8 | -------------------------------------------------------------------------------- /docs/public/lunr.jp-M45D3XJE.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/lunr-languages/lunr.jp.js"], 4 | "sourcesContent": ["// jp is the country code, while ja is the language code\n// a new lunr.ja.js has been created, but in order to\n// keep the backward compatibility, we'll leave the lunr.jp.js\n// here for a while, and just make it use the new lunr.ja.js\nmodule.exports = require('./lunr.ja');"], 5 | "mappings": "wFAAA,IAAAA,EAAAC,EAAA,CAAAC,EAAAC,IAAA,CAIAA,EAAO,QAAU", 6 | "names": ["require_lunr_jp", "__commonJSMin", "exports", "module"] 7 | } 8 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddIn/Task/SetupPages/Settings.cs: -------------------------------------------------------------------------------- 1 | using BlueByte.SOLIDWORKS.PDMProfessional.SDK.Core; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Data; 6 | using System.Drawing; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | using System.Windows.Forms; 11 | 12 | namespace SOLIDWORKSPDMAddIn.Task.SetupPages 13 | { 14 | public partial class Settings : TaskPage 15 | { 16 | public Settings() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template/Task/SetupPages/Settings.cs: -------------------------------------------------------------------------------- 1 | using BlueByte.SOLIDWORKS.PDMProfessional.SDK.Core; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Data; 6 | using System.Drawing; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | using System.Windows.Forms; 11 | 12 | namespace $safeprojectname$.Task.SetupPages 13 | { 14 | public partial class Settings : TaskSetupPage 15 | { 16 | public Settings() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /docfx/api/BlueByte.SOLIDWORKS.PDMProfessional.md: -------------------------------------------------------------------------------- 1 | # BlueByte.SOLIDWORKS.PDMProfessional 2 | 3 | This documentation covers the `BlueByte.SOLIDWORKS.PDMProfessional` API. 4 | **Note:** This API shares its name with the `.Extensions` NuGet package, which provides additional functionality and extensions for this library. 5 | 6 | ## NuGet Package Installation 7 | 8 | To install the main package, run: 9 | 10 | ```shell 11 | dotnet add package BlueByte.SOLIDWORKS.PDMProfessional 12 | ``` 13 | 14 | To install the extensions package, run: 15 | 16 | ```shell 17 | dotnet add package BlueByte.SOLIDWORKS.PDMProfessional.Extensions 18 | ``` -------------------------------------------------------------------------------- /docs/public/mermaid.core-A4DBFH42.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/mermaid/dist/mermaid.core.mjs"], 4 | "sourcesContent": ["import \"ts-dedent\";\nimport { N } from \"./mermaid-f47111a7.js\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"d3\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nexport {\n N as default\n};\n"], 5 | "mappings": "8GAEA,IAAAA,EAAO,SACPC,EAAO,SAEP,IAAAC,EAAO", 6 | "names": ["import_dayjs", "import_sanitize_url", "import_dompurify"] 7 | } 8 | -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPageVBNET/TaskPageViewModel.vb: -------------------------------------------------------------------------------- 1 | Imports System.ComponentModel 2 | Imports System.Runtime.CompilerServices 3 | 4 | Namespace $rootnamespace$ 5 | Public Class $safeitemname$ 6 | Implements INotifyPropertyChanged 7 | 8 | Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged 9 | 10 | Public Sub OnPropertyChanged( Optional propertyName As String = "") 11 | RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName)) 12 | End Sub 13 | 14 | End Class 15 | End Namespace -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddInVBNET/Task/SetupPages/Settings.vb: -------------------------------------------------------------------------------- 1 | Imports BlueByte.SOLIDWORKS.PDMProfessional.SDK.Core 2 | Imports System 3 | Imports System.Collections.Generic 4 | Imports System.ComponentModel 5 | Imports System.Data 6 | Imports System.Drawing 7 | Imports System.Linq 8 | Imports System.Text 9 | Imports System.Threading.Tasks 10 | Imports System.Windows.Forms 11 | 12 | Namespace SOLIDWORKSPDMAddInVBNET.Task.SetupPages 13 | Partial Public Class Settings 14 | Inherits TaskSetupPage(Of SettingsViewModel) 15 | 16 | Public Sub New() 17 | InitializeComponent() 18 | End Sub 19 | End Class 20 | End Namespace 21 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Attributes/TaskFlagsAttribute.cs: -------------------------------------------------------------------------------- 1 | using EPDM.Interop.epdm; 2 | using System; 3 | 4 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK.Attributes 5 | { 6 | /// 7 | /// Task flags enum. 8 | /// 9 | public class TaskFlagsAttribute : Attribute 10 | { 11 | 12 | /// 13 | /// Task flag enum. 14 | /// 15 | /// Sum of all flags 16 | public TaskFlagsAttribute(int flags) 17 | { 18 | Flags = flags; 19 | } 20 | 21 | public int Flags { get; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /UnitTesting/UnitTesting/UnitTesting/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/public/chunk-PDS7545E.min.js: -------------------------------------------------------------------------------- 1 | import{a as o,b as n,c as a,d as s,e as m,f as e,g as u,j as d,m as c,o as l}from"./chunk-BIJFJY5F.min.js";var v=class extends l{static{e(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},C=class extends c{static{e(this,"PieValueConverter")}runCustomConverter(t,r,i){if(t.name==="PIE_SECTION_LABEL")return r.replace(/"/g,"").trim()}},P={parser:{TokenBuilder:e(()=>new v,"TokenBuilder"),ValueConverter:e(()=>new C,"ValueConverter")}};function p(t=s){let r=a(n(t),u),i=a(o({shared:r}),d,P);return r.ServiceRegistry.register(i),{shared:r,Pie:i}}e(p,"createPieServices");export{P as a,p as b}; 2 | //# sourceMappingURL=chunk-PDS7545E.min.js.map 3 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddInVBNET/Task/SetupPages/SettingsViewModel.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.ComponentModel 3 | Imports System.Runtime.CompilerServices 4 | 5 | Namespace SOLIDWORKSPDMAddInVBNET.Task.SetupPages 6 | Public Class SettingsViewModel 7 | Implements INotifyPropertyChanged 8 | 9 | Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged 10 | 11 | Private Sub NotifyPropertyChanged( 12 | ByVal Optional propertyName As String = "") 13 | RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName)) 14 | End Sub 15 | End Class 16 | End Namespace 17 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /docs/public/chunk-OSRY5VT3.min.js: -------------------------------------------------------------------------------- 1 | var h=Object.create;var f=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var m=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports),n=(b,a)=>{for(var c in a)f(b,c,{get:a[c],enumerable:!0})},e=(b,a,c,g)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of j(a))!l.call(b,d)&&d!==c&&f(b,d,{get:()=>a[d],enumerable:!(g=i(a,d))||g.enumerable});return b},o=(b,a,c)=>(e(b,a,"default"),c&&e(c,a,"default")),p=(b,a,c)=>(c=b!=null?h(k(b)):{},e(a||!b||!b.__esModule?f(c,"default",{value:b,enumerable:!0}):c,b));export{m as a,n as b,o as c,p as d}; 2 | //# sourceMappingURL=chunk-OSRY5VT3.min.js.map 3 | -------------------------------------------------------------------------------- /docs/public/chunk-ISDTAGDN.min.js: -------------------------------------------------------------------------------- 1 | import{O as x,h as r,ia as a,j as h}from"./chunk-U3SD26FK.min.js";var b=r((t,e)=>{let o;return e==="sandbox"&&(o=a("#i"+t)),(e==="sandbox"?a(o.nodes()[0].contentDocument.body):a("body")).select(`[id="${t}"]`)},"getDiagramElement"),B=r((t,e,o,n)=>{t.attr("class",o);let{width:i,height:s,x:m,y:d}=g(t,e);x(t,s,i,n);let c=w(m,d,i,s,e);t.attr("viewBox",c),h.debug(`viewBox configured: ${c} with padding: ${e}`)},"setupViewPortForSVG"),g=r((t,e)=>{let o=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:o.width+e*2,height:o.height+e*2,x:o.x,y:o.y}},"calculateDimensionsWithPadding"),w=r((t,e,o,n,i)=>`${t-i} ${e-i} ${o} ${n}`,"createViewBox");export{b as a,B as b}; 2 | //# sourceMappingURL=chunk-ISDTAGDN.min.js.map 3 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddInVBNET/Task/SetupPages/Settings.Designer.vb: -------------------------------------------------------------------------------- 1 | Namespace SOLIDWORKSPDMAddInVBNET.Task.SetupPages 2 | Partial Class Settings 3 | Private components As System.ComponentModel.IContainer = Nothing 4 | 5 | Protected Overrides Sub Dispose(ByVal disposing As Boolean) 6 | If disposing AndAlso (components IsNot Nothing) Then 7 | components.Dispose() 8 | End If 9 | 10 | MyBase.Dispose(disposing) 11 | End Sub 12 | 13 | Private Sub InitializeComponent() 14 | components = New System.ComponentModel.Container() 15 | Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font 16 | End Sub 17 | End Class 18 | End Namespace 19 | -------------------------------------------------------------------------------- /docs/public/classDiagram-LNE6IOMH-VZ67B4ZP.min.js: -------------------------------------------------------------------------------- 1 | import{a as e,b as a,c as i,d as s}from"./chunk-54U54PUP.min.js";import"./chunk-ISDTAGDN.min.js";import"./chunk-JL3VILNY.min.js";import"./chunk-TLYS76Q7.min.js";import"./chunk-CLIYZZ5Y.min.js";import"./chunk-N6ME3NZU.min.js";import"./chunk-V55NTXQN.min.js";import"./chunk-BD4P4Z7J.min.js";import"./chunk-AUO2PXKS.min.js";import"./chunk-PYPO7LRM.min.js";import"./chunk-CM5D5KZN.min.js";import{h as t}from"./chunk-U3SD26FK.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";var g={parser:e,db:a,renderer:s,styles:i,init:t(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute,a.clear()},"init")};export{g as diagram}; 2 | //# sourceMappingURL=classDiagram-LNE6IOMH-VZ67B4ZP.min.js.map 3 | -------------------------------------------------------------------------------- /docs/public/stateDiagram-v2-4JROLMXI-COTI64PW.min.js: -------------------------------------------------------------------------------- 1 | import{a,b as i,c as r,d as o}from"./chunk-6YMKSKZH.min.js";import"./chunk-ISDTAGDN.min.js";import"./chunk-JL3VILNY.min.js";import"./chunk-TLYS76Q7.min.js";import"./chunk-CLIYZZ5Y.min.js";import"./chunk-N6ME3NZU.min.js";import"./chunk-V55NTXQN.min.js";import"./chunk-BD4P4Z7J.min.js";import"./chunk-AUO2PXKS.min.js";import"./chunk-PYPO7LRM.min.js";import"./chunk-CM5D5KZN.min.js";import{h as e}from"./chunk-U3SD26FK.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";var k={parser:a,db:r,renderer:i,styles:o,init:e(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,r.clear()},"init")};export{k as diagram}; 2 | //# sourceMappingURL=stateDiagram-v2-4JROLMXI-COTI64PW.min.js.map 3 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Core/TaskFailedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK 5 | { 6 | [Serializable] 7 | public class TaskFailedException : Exception 8 | { 9 | public TaskFailedException() 10 | { 11 | } 12 | 13 | public TaskFailedException(string message) : base(message) 14 | { 15 | } 16 | 17 | public TaskFailedException(string message, Exception innerException) : base(message, innerException) 18 | { 19 | } 20 | 21 | protected TaskFailedException(SerializationInfo info, StreamingContext context) : base(info, context) 22 | { 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /docs/public/classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js: -------------------------------------------------------------------------------- 1 | import{a as e,b as a,c as i,d as s}from"./chunk-54U54PUP.min.js";import"./chunk-ISDTAGDN.min.js";import"./chunk-JL3VILNY.min.js";import"./chunk-TLYS76Q7.min.js";import"./chunk-CLIYZZ5Y.min.js";import"./chunk-N6ME3NZU.min.js";import"./chunk-V55NTXQN.min.js";import"./chunk-BD4P4Z7J.min.js";import"./chunk-AUO2PXKS.min.js";import"./chunk-PYPO7LRM.min.js";import"./chunk-CM5D5KZN.min.js";import{h as t}from"./chunk-U3SD26FK.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";var g={parser:e,db:a,renderer:s,styles:i,init:t(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute,a.clear()},"init")};export{g as diagram}; 2 | //# sourceMappingURL=classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js.map 3 | -------------------------------------------------------------------------------- /UnitTesting/UnitTesting/TestAddin/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/public/flowDiagram-v2-3b53844e-QBBADQR5.min.js: -------------------------------------------------------------------------------- 1 | import{g as i,h as p}from"./chunk-M6B2YTGW.min.js";import"./chunk-FGL6ROQF.min.js";import{a as m,b as o}from"./chunk-H6P463MX.min.js";import"./chunk-XLUXVQHP.min.js";import"./chunk-EA6H37XC.min.js";import"./chunk-J3KNRBB7.min.js";import"./chunk-6LZA44UA.min.js";import{J as l,b as a,c as s,ob as e}from"./chunk-VMREMWJS.min.js";import{d as t}from"./chunk-P42HNYSU.min.js";var g=t(a(),1),n=t(s(),1),c=t(l(),1);var y={parser:m,db:o,renderer:i,styles:p,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,e({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),i.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{y as diagram}; 2 | //# sourceMappingURL=flowDiagram-v2-3b53844e-QBBADQR5.min.js.map 3 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.Services/ISettingsManager.cs: -------------------------------------------------------------------------------- 1 | using EPDM.Interop.epdm; 2 | using Newtonsoft.Json; 3 | 4 | namespace BlueByte.SOLIDWORKS.PDMProfessional.Services 5 | { 6 | 7 | public interface ISettingsManager 8 | { 9 | string AddInName { get; } 10 | bool Initialized { get; } 11 | IEdmVault5 Vault { get; } 12 | 13 | T GetSettings(JsonSerializerSettings settings = null); 14 | T GetUserSettings(int userID, JsonSerializerSettings settings = null); 15 | void Initialize(IEdmVault5 vault, string addInName); 16 | void SaveSettings(T settings, JsonSerializerSettings opt = null); 17 | void SaveUserSettings(T settings, int UserID, JsonSerializerSettings opt = null); 18 | } 19 | } -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Core/CancellationException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK 5 | { 6 | 7 | 8 | [Serializable] 9 | public class CancellationException : Exception 10 | { 11 | public CancellationException() 12 | { 13 | } 14 | 15 | public CancellationException(string message) : base(message) 16 | { 17 | } 18 | 19 | public CancellationException(string message, Exception innerException) : base(message, innerException) 20 | { 21 | } 22 | 23 | protected CancellationException(SerializationInfo info, StreamingContext context) : base(info, context) 24 | { 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Diagnostics/LoggerType_e.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK.Diagnostics 8 | { 9 | /// 10 | /// Logger type 11 | /// 12 | public enum LoggerType_e 13 | { 14 | /// 15 | /// PDM 16 | /// 17 | PDM, 18 | /// 19 | /// Console 20 | /// 21 | Console, 22 | /// 23 | /// File system 24 | /// 25 | File, 26 | /// 27 | /// SQL 28 | /// 29 | SQL 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.Services/Win32Window.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace BlueByte.SOLIDWORKS.PDMProfessional.Services 5 | { 6 | /// 7 | /// Simple implementation of the IWin32Window. 8 | /// 9 | /// 10 | public class Win32Window : IWin32Window 11 | { 12 | 13 | public IntPtr Handle { get; set; } 14 | 15 | public Win32Window(int handle) 16 | { 17 | this.Handle = new IntPtr(handle); 18 | } 19 | 20 | public Win32Window(long handle) 21 | { 22 | this.Handle = new IntPtr(handle); 23 | } 24 | 25 | public Win32Window() 26 | { 27 | 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /docs/public/chunk-IJ4BRSPX.min.js: -------------------------------------------------------------------------------- 1 | import{a as i,b as u,c as a,d as n,e as m,f as r,g as o,k as s,m as l,o as d}from"./chunk-BIJFJY5F.min.js";var h=class extends d{static{r(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},A=class extends l{static{r(this,"ArchitectureValueConverter")}runCustomConverter(t,e,c){if(t.name==="ARCH_ICON")return e.replace(/[()]/g,"").trim();if(t.name==="ARCH_TEXT_ICON")return e.replace(/["()]/g,"");if(t.name==="ARCH_TITLE")return e.replace(/[[\]]/g,"").trim()}},C={parser:{TokenBuilder:r(()=>new h,"TokenBuilder"),ValueConverter:r(()=>new A,"ValueConverter")}};function v(t=n){let e=a(u(t),o),c=a(i({shared:e}),s,C);return e.ServiceRegistry.register(c),{shared:e,Architecture:c}}r(v,"createArchitectureServices");export{C as a,v as b}; 2 | //# sourceMappingURL=chunk-IJ4BRSPX.min.js.map 3 | -------------------------------------------------------------------------------- /docs_backup/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | _layout: landing 3 | --- 4 | 5 | # SOLIDWORKS PDM SDK 6 | 7 | Thank you for choosing the Blue Byte Systems Inc. The SOLIDWORKS PDM SDK is the only available open source PDM SDK for SOLIDWORKS PDM to develop add-ins and PDM task add-ins. 8 | 9 | # Terms 10 | The SOLIDWORKS PDM SDK is a product of Blue Byte Systems Inc. It *is not* supported or endorsed by SOLIDWORKS Corporation. To request support, please reach out to us via our issues page at our [GitHub](https://github.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/issues). 11 | 12 | # License 13 | 14 | Please review our licensing terms before using [PDMSDK](https://github.com/BlueByteSystemsInc/SOLIDWORKS-PDM-API-SDK/blob/master/LICENSE.md). This includes our PDMSDK nuget package and our Visual Studio Visual Studio templates. 15 | 16 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.Services/Extensions.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System.IO; 3 | using System.Xml; 4 | using System.Xml.Serialization; 5 | 6 | namespace BlueByte.SOLIDWORKS.PDMProfessional.Services 7 | { 8 | internal static class Extensions 9 | { 10 | public static T Deserialize(this string value, JsonSerializerSettings settings = null) 11 | { 12 | 13 | return JsonConvert.DeserializeObject(value, settings); 14 | } 15 | 16 | public static string Serialize(this T value, JsonSerializerSettings settings = null) 17 | { 18 | if (value == null) 19 | return string.Empty; 20 | 21 | 22 | 23 | return JsonConvert.SerializeObject(value, settings); 24 | 25 | 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /docs/public/chunk-I4ZXTPQC.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-KFBOBJHC.mjs"], 4 | "sourcesContent": ["import {\n __name\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/utils/imperativeState.ts\nvar ImperativeState = class {\n /**\n * @param init - Function that creates the default state.\n */\n constructor(init) {\n this.init = init;\n this.records = this.init();\n }\n static {\n __name(this, \"ImperativeState\");\n }\n reset() {\n this.records = this.init();\n }\n};\n\nexport {\n ImperativeState\n};\n"], 5 | "mappings": "4CAKA,IAAIA,EAAkB,KAAM,CAI1B,YAAYC,EAAM,CAChB,KAAK,KAAOA,EACZ,KAAK,QAAU,KAAK,KAAK,CAC3B,CACA,MAAO,CACLC,EAAO,KAAM,iBAAiB,CAChC,CACA,OAAQ,CACN,KAAK,QAAU,KAAK,KAAK,CAC3B,CACF", 6 | "names": ["ImperativeState", "init", "__name"] 7 | } 8 | -------------------------------------------------------------------------------- /VSTemplate/ProjectTemplateWizard/WizardWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | using System.Windows.Input; 3 | 4 | namespace ProjectTemplateWizard 5 | { 6 | /// 7 | /// Interaction logic for WizardWindow.xaml 8 | /// 9 | public partial class WizardWindow : Window 10 | { 11 | public AddInInfo AddInInfo { get; set; } = new AddInInfo(); 12 | 13 | public WizardWindow() 14 | { 15 | InitializeComponent(); 16 | DataContext = AddInInfo; 17 | } 18 | 19 | private void OnOkButtonClick(object sender, RoutedEventArgs e) 20 | { 21 | DialogResult = true; 22 | } 23 | 24 | private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e) 25 | { 26 | DragMove(); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /docs/public/chunk-EKP7MBOP.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-TMUBEWPD.mjs"], 4 | "sourcesContent": ["import {\n __name\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/common/populateCommonDb.ts\nfunction populateCommonDb(ast, db) {\n if (ast.accDescr) {\n db.setAccDescription?.(ast.accDescr);\n }\n if (ast.accTitle) {\n db.setAccTitle?.(ast.accTitle);\n }\n if (ast.title) {\n db.setDiagramTitle?.(ast.title);\n }\n}\n__name(populateCommonDb, \"populateCommonDb\");\n\nexport {\n populateCommonDb\n};\n"], 5 | "mappings": "4CAKA,SAASA,EAAiBC,EAAKC,EAAI,CAC7BD,EAAI,UACNC,EAAG,oBAAoBD,EAAI,QAAQ,EAEjCA,EAAI,UACNC,EAAG,cAAcD,EAAI,QAAQ,EAE3BA,EAAI,OACNC,EAAG,kBAAkBD,EAAI,KAAK,CAElC,CACAE,EAAOH,EAAkB,kBAAkB", 6 | "names": ["populateCommonDb", "ast", "db", "__name"] 7 | } 8 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddIn/Task/SetupPages/SettingsViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Runtime.CompilerServices; 4 | 5 | namespace SOLIDWORKSPDMAddIn.Task.SetupPages 6 | { 7 | public class SettingsViewModel : INotifyPropertyChanged 8 | { 9 | public event PropertyChangedEventHandler PropertyChanged; 10 | 11 | // This method is called by the Set accessor of each property. 12 | // The CallerMemberName attribute that is applied to the optional propertyName 13 | // parameter causes the property name of the caller to be substituted as an argument. 14 | private void NotifyPropertyChanged([CallerMemberName] String propertyName = "") 15 | { 16 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /docfx/docs/getting-started.md: -------------------------------------------------------------------------------- 1 | # Getting Started 2 | 3 | Developing SOLIDWORKS PDM add-ins can be a dauting process and doing it efficiently is even more difficult endaveor. 4 | 5 | Following this guide is the easiest way to start writing SOLIDWORKS PDM add-ins with PDMSDK. 6 | 7 | 8 | # Requirements 9 | 10 | You will need the following requestes to start writing code: 11 | 12 | - Windows 7 or newer. 13 | - SOLIDWORKS PDM client 2011 with a local view. 14 | - A PDM user account with the right permissions. See below. 15 | - Visual Studio. 16 | - Elevated Windows admin privilges to run Visual Studio as an admin. 17 | - Access to the command prompt to run some basic Windows commands. 18 | 19 | 20 | # PDM Permissions 21 | 22 | Your PDM user have the following permissions: 23 | 24 | - Be able to edit add-ins 25 | - Workflow, file and folder permissions 26 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template/Task/SetupPages/SettingsViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Runtime.CompilerServices; 4 | 5 | namespace $safeprojectname$.Task.SetupPages 6 | { 7 | public class SettingsViewModel : INotifyPropertyChanged 8 | { 9 | public event PropertyChangedEventHandler PropertyChanged; 10 | 11 | // This method is called by the Set accessor of each property. 12 | // The CallerMemberName attribute that is applied to the optional propertyName 13 | // parameter causes the property name of the caller to be substituted as an argument. 14 | private void NotifyPropertyChanged([CallerMemberName] String propertyName = "") 15 | { 16 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Attributes/ListenForAttribute.cs: -------------------------------------------------------------------------------- 1 | using EPDM.Interop.epdm; 2 | using System; 3 | 4 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK.Attributes 5 | { 6 | [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] 7 | /// 8 | /// Listen for PDM events attribute. 9 | /// 10 | public class ListenForAttribute : Attribute 11 | { 12 | /// 13 | /// Creates a new instance of the ListenFor attribute 14 | /// 15 | /// 16 | public ListenForAttribute(EdmCmdType _event) 17 | { 18 | Event = _event; 19 | } 20 | 21 | /// 22 | /// PDM event to listen to 23 | /// 24 | public EdmCmdType Event { get; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /docs_backup/help/getting-started.md: -------------------------------------------------------------------------------- 1 | # Getting Started 2 | 3 | Developing SOLIDWORKS PDM add-ins can be a dauting process and doing it efficiently is even more difficult endaveor. 4 | 5 | Following this guide is the easiest way to start writing SOLIDWORKS PDM add-ins. 6 | 7 | 8 | # Requirements 9 | 10 | You will need the following requestes to start writing code: 11 | 12 | - Windows 7 or newer. 13 | - SOLIDWORKS PDM client 2011 with a local view. 14 | - A PDM user credentials with the right permissions. See below. 15 | - Visual Studio 2019. We dot not support Visual Studio 2022 yet. 16 | - Elevated Windows admin privilge to run Visual Studio as an admin. 17 | - Access to the command prompt to run some basic Windows commands. 18 | 19 | 20 | # PDM Permissions 21 | 22 | Your PDM user have the following permissions: 23 | 24 | - Be able to administer add-ins 25 | - Workflow, file and folder permissions 26 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.Services/NotifiableBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Linq; 5 | using System.Runtime.CompilerServices; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace BlueByte.SOLIDWORKS.PDMProfessional.Services 10 | { 11 | 12 | public class NotifiableBase : INotifyPropertyChanged 13 | { 14 | // Declare the event 15 | public event PropertyChangedEventHandler PropertyChanged; 16 | 17 | 18 | 19 | // Create the OnPropertyChanged method to raise the event 20 | // The calling member's name will be used as the parameter. 21 | protected void OnPropertyChanged([CallerMemberName] string name = null) 22 | { 23 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); 24 | } 25 | } 26 | 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /docs/public/chunk-P42HNYSU.min.js: -------------------------------------------------------------------------------- 1 | var g=Object.create;var e=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(b,c)=>(typeof require<"u"?require:b)[c]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});var n=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports),o=(a,b)=>{for(var c in b)e(a,c,{get:b[c],enumerable:!0})},l=(a,b,c,f)=>{if(b&&typeof b=="object"||typeof b=="function")for(let d of i(b))!k.call(a,d)&&d!==c&&e(a,d,{get:()=>b[d],enumerable:!(f=h(b,d))||f.enumerable});return a};var p=(a,b,c)=>(c=a!=null?g(j(a)):{},l(b||!a||!a.__esModule?e(c,"default",{value:a,enumerable:!0}):c,a));export{m as a,n as b,o as c,p as d}; 2 | //# sourceMappingURL=chunk-P42HNYSU.min.js.map 3 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Exceptions/ITaskDetailsPageNotUserControlException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK.Exceptions 8 | { 9 | /// 10 | /// Fires when the supplied is not a . 11 | /// 12 | public class ITaskSetupPageNotUserControlException : PDMSDKException 13 | { 14 | 15 | /// 16 | /// Creates a new instance of the base exception. 17 | /// 18 | /// Message. 19 | /// Inner exception. 20 | public ITaskSetupPageNotUserControlException(string message, Exception innerException) : base(message, innerException) 21 | { 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Exceptions/PDMSDKException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK.Exceptions 8 | { 9 | /// 10 | /// Base exception. 11 | /// 12 | public class PDMSDKException : Exception 13 | { /// 14 | /// Creates a new instance of the base exception. 15 | /// 16 | public PDMSDKException() 17 | { 18 | } 19 | 20 | /// 21 | /// Creates a new instance of the base exception. 22 | /// 23 | /// Message. 24 | /// Inner exception. 25 | public PDMSDKException(string message, Exception innerException) : base(message, innerException) 26 | { 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /docs/toc.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 | 7 | 8 | 9 |
10 |
11 |
12 |
13 | 14 | 22 |
23 |
24 |
25 |
26 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /docs/public/infoDiagram-A4XQUW5V-SKLVFWJI.min.js: -------------------------------------------------------------------------------- 1 | import{a as s}from"./chunk-EDJWACL4.min.js";import{a as i}from"./chunk-5IIW54K6.min.js";import{a as g}from"./chunk-WXIN66R4.min.js";import"./chunk-33FU46FA.min.js";import"./chunk-OZ2RCKQJ.min.js";import"./chunk-PDS7545E.min.js";import"./chunk-IJ4BRSPX.min.js";import"./chunk-UEFJDIUO.min.js";import"./chunk-BIJFJY5F.min.js";import"./chunk-U4DUTLYF.min.js";import"./chunk-IQQ46AC6.min.js";import{O as n,h as r,j as a}from"./chunk-U3SD26FK.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";var v={parse:r(async e=>{let t=await g("info",e);a.debug(t)},"parse")},d={version:s},m=r(()=>d.version,"getVersion"),c={getVersion:m},f=r((e,t,p)=>{a.debug(`rendering info diagram 2 | `+e);let o=i(t);n(o,100,400,!0),o.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${p}`)},"draw"),l={draw:f},y={parser:v,db:c,renderer:l};export{y as diagram}; 3 | //# sourceMappingURL=infoDiagram-A4XQUW5V-SKLVFWJI.min.js.map 4 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.Services/TypeConverters/StringArrayTypeConverter.cs: -------------------------------------------------------------------------------- 1 | /// 2 | /// ''' Custom, editable checked listbox control 3 | /// ''' 4 | /// ''' This demo loads a comma-delimited string collection of Urls and boolean values to set the checked state for each item. 5 | using System; 6 | using System.ComponentModel; 7 | using System.Globalization; 8 | 9 | namespace BlueByte.SOLIDWORKS.PDMProfessional.Services.TypeConverters 10 | { 11 | public class StringArrayTypeConverter : TypeConverter 12 | { 13 | public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) 14 | { 15 | var propertyValue = context.PropertyDescriptor.GetValue(context.Instance); 16 | 17 | if (propertyValue != null) 18 | { 19 | return string.Join(", ", propertyValue as string[]); 20 | } 21 | return "No selection."; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.Services/package.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BlueByte.SOLIDWORKS.PDMProfessional.Services 6 | 7 | 2021.0.8 8 | BlueByte.SOLIDWORKS.PDMProfessional.Services 9 | 10 | Blue Byte Systems, Inc. 11 | Blue Byte Systems, Inc. 12 | 17 | false 18 | 19 | Collection of services for developing PDM add-ins 20 | 21 | Collection of services for developing PDM add-ins 22 | Copyright © 2022 23 | 24 | 25 | 26 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPage/MyTemplate.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | TaskPage.cs 4 | PDM SDK Task Page 5 | TaskPage 6 | CSharp 7 | SOLIDWORKS PDM Professional 8 | 10 9 | __TemplateIcon.png 10 | __TemplateIcon.png 11 | 12 | 13 | 14 | TaskPage.cs 15 | TaskPage.Designer.cs 16 | TaskPageViewModel.cs 17 | 18 | -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPageVBNET/MyTemplate.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | TaskPage.vb 4 | PDM SDK Task Page (VBNET) 5 | TaskPage 6 | VisualBasic 7 | SOLIDWORKS PDM Professional 8 | 10 9 | __TemplateIcon.png 10 | __TemplateIcon.png 11 | 12 | 13 | 14 | TaskPage.vb 15 | TaskPage.Designer.vb 16 | TaskPageViewModel.vb 17 | 18 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Diagnostics/ConsoleLogger.cs: -------------------------------------------------------------------------------- 1 | using EPDM.Interop.epdm; 2 | using System; 3 | 4 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK.Diagnostics 5 | { 6 | internal class ConsoleLogger : LoggerBase, ILogger 7 | { 8 | public string OutputLocation { get; set; } 9 | 10 | public void EndConnection() 11 | { 12 | throw new NotImplementedException($"Not implemented because the logger type chosen is {GetLoggerType()}."); 13 | 14 | } 15 | 16 | public void Init(Identity identity, IEdmTaskInstance instance, string connectionString) 17 | { 18 | throw new NotImplementedException($"Not implemented because the logger type chosen is {GetLoggerType()}."); 19 | 20 | } 21 | 22 | public void LogToOutput(string fileName, object value) 23 | { 24 | Console.WriteLine(value); 25 | } 26 | 27 | public void StartConnection() 28 | { 29 | throw new NotImplementedException(); 30 | } 31 | } 32 | 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Exceptions/IdentityInfoException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK.Exceptions 5 | { 6 | /// 7 | /// Fires in if attribute is missing. 8 | /// 9 | public class IdentityInfoException : PDMSDKException 10 | { 11 | /// 12 | /// Creates a new instance of the base exception. 13 | /// 14 | public IdentityInfoException() 15 | { 16 | } 17 | 18 | /// 19 | /// Creates a new instance of the base exception. 20 | /// 21 | /// Message. 22 | /// Inner exception. 23 | public IdentityInfoException(string message, Exception innerException) : base(message, innerException) 24 | { 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /docs/public/chunk-V55NTXQN.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-3X56UNUX.mjs"], 4 | "sourcesContent": ["import {\n __name\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/utils/subGraphTitleMargins.ts\nvar getSubGraphTitleMargins = /* @__PURE__ */ __name(({\n flowchart\n}) => {\n const subGraphTitleTopMargin = flowchart?.subGraphTitleMargin?.top ?? 0;\n const subGraphTitleBottomMargin = flowchart?.subGraphTitleMargin?.bottom ?? 0;\n const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;\n return {\n subGraphTitleTopMargin,\n subGraphTitleBottomMargin,\n subGraphTitleTotalMargin\n };\n}, \"getSubGraphTitleMargins\");\n\nexport {\n getSubGraphTitleMargins\n};\n"], 5 | "mappings": "4CAKA,IAAIA,EAA0CC,EAAO,CAAC,CACpD,UAAAC,CACF,IAAM,CACJ,IAAMC,EAAyBD,GAAW,qBAAqB,KAAO,EAChEE,EAA4BF,GAAW,qBAAqB,QAAU,EACtEG,EAA2BF,EAAyBC,EAC1D,MAAO,CACL,uBAAAD,EACA,0BAAAC,EACA,yBAAAC,CACF,CACF,EAAG,yBAAyB", 6 | "names": ["getSubGraphTitleMargins", "__name", "flowchart", "subGraphTitleTopMargin", "subGraphTitleBottomMargin", "subGraphTitleTotalMargin"] 7 | } 8 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.Services/TypeConverters/StateNamesConverter.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace BlueByte.SOLIDWORKS.PDMProfessional.Services.TypeConverters 4 | { 5 | /// 6 | /// Used to enable a dropdown in a settings class. [TypeConverter(typeof(StateNamesConverter))] 7 | /// 8 | /// 9 | public class StateNamesConverter : StringConverter 10 | { 11 | public static string[] StateNames { get; set; } 12 | 13 | public StateNamesConverter() 14 | { 15 | 16 | } 17 | 18 | public override bool GetStandardValuesSupported(ITypeDescriptorContext context) 19 | { 20 | return true; 21 | } 22 | public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) 23 | { 24 | return new StandardValuesCollection(StateNames); 25 | } 26 | public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) 27 | { 28 | return true; 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /docs/public/chunk-5IIW54K6.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-EJ4ZWXGL.mjs"], 4 | "sourcesContent": ["import {\n __name,\n getConfig2 as getConfig\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/rendering-util/selectSvgElement.ts\nimport { select } from \"d3\";\nvar selectSvgElement = /* @__PURE__ */ __name((id) => {\n const { securityLevel } = getConfig();\n let root = select(\"body\");\n if (securityLevel === \"sandbox\") {\n const sandboxElement = select(`#i${id}`);\n const doc = sandboxElement.node()?.contentDocument ?? document;\n root = select(doc.body);\n }\n const svg = root.select(`#${id}`);\n return svg;\n}, \"selectSvgElement\");\n\nexport {\n selectSvgElement\n};\n"], 5 | "mappings": "2DAOA,IAAIA,EAAmCC,EAAQC,GAAO,CACpD,GAAM,CAAE,cAAAC,CAAc,EAAIC,EAAU,EAChCC,EAAOC,EAAO,MAAM,EACxB,GAAIH,IAAkB,UAAW,CAE/B,IAAMI,EADiBD,EAAO,KAAKJ,CAAE,EAAE,EACZ,KAAK,GAAG,iBAAmB,SACtDG,EAAOC,EAAOC,EAAI,IAAI,CACxB,CAEA,OADYF,EAAK,OAAO,IAAIH,CAAE,EAAE,CAElC,EAAG,kBAAkB", 6 | "names": ["selectSvgElement", "__name", "id", "securityLevel", "getConfig2", "root", "select_default", "doc"] 7 | } 8 | -------------------------------------------------------------------------------- /docs/public/chunk-JL3VILNY.min.js: -------------------------------------------------------------------------------- 1 | import{b as u,c as y,d as f,e as h}from"./chunk-TLYS76Q7.min.js";import{b as g,e as m,h as d}from"./chunk-N6ME3NZU.min.js";import{c as l}from"./chunk-PYPO7LRM.min.js";import{D as n,N as s,h as o,j as a}from"./chunk-U3SD26FK.min.js";var p={common:s,getConfig:n,insertCluster:m,insertEdge:f,insertEdgeLabel:u,insertMarkers:h,insertNode:d,interpolateToCurve:l,labelHelper:g,log:a,positionEdgeLabel:y},t={},L=o(r=>{for(let e of r)t[e.name]=e},"registerLayoutLoaders"),w=o(()=>{L([{name:"dagre",loader:o(async()=>await import("./dagre-4EVJKHTY-MHPLGZHX.min.js"),"loader")}])},"registerDefaultLayoutLoaders");w();var R=o(async(r,e)=>{if(!(r.layoutAlgorithm in t))throw new Error(`Unknown layout algorithm: ${r.layoutAlgorithm}`);let i=t[r.layoutAlgorithm];return(await i.loader()).render(r,e,p,{algorithm:i.algorithm})},"render"),_=o((r="",{fallback:e="dagre"}={})=>{if(r in t)return r;if(e in t)return a.warn(`Layout algorithm ${r} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${r} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm");export{L as a,R as b,_ as c}; 2 | //# sourceMappingURL=chunk-JL3VILNY.min.js.map 3 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.Services/TypeConverters/WorkflowNamesConverter.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace BlueByte.SOLIDWORKS.PDMProfessional.Services.TypeConverters 4 | { 5 | /// 6 | /// Used to enable a dropdown in a settings class. [TypeConverter(typeof(WorkflowNamesConverter))] 7 | /// 8 | /// 9 | public class WorkflowNamesConverter : StringConverter 10 | { 11 | 12 | public static string[] WorkflowNames { get; set; } 13 | 14 | public WorkflowNamesConverter() 15 | { 16 | 17 | } 18 | 19 | public override bool GetStandardValuesSupported(ITypeDescriptorContext context) 20 | { 21 | return true; 22 | } 23 | public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) 24 | { 25 | return new StandardValuesCollection(WorkflowNames); 26 | } 27 | public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) 28 | { 29 | return true; 30 | } 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /docfx/docs/Visual-Studio-SDK-template.md: -------------------------------------------------------------------------------- 1 | # Visual Studio SOLIDWORKS PDM SDK Template 2 | 3 | The SDK template has the best boilerplate code written and ready for you to edit. 4 | 5 | # Installing Visual Studio SOLIDWORKS PDM SDK Template 6 | 7 | > [!TIP] 8 | > Always make sure you are using the latest version of the PDM SDK template. To find the latest version of the template, please check the Extensions window in your Visual Studio or follow this [link](https://marketplace.visualstudio.com/items?itemName=BlueByteSystemsInc.ID). 9 | 10 | 11 | > [!TIP] 12 | > All Visual Studio editions up to 2022 are supported. 13 | 14 | To install the Visual Studio SOLIDWORKS PDM SDK Template: 15 | 16 | - Go to https://marketplace.visualstudio.com/items?itemName=BlueByteSystemsInc.ID 17 | - Click Download 18 | - In Windows 10 and on some computers, your downloaded files must be unblocked. To do, please right-click on the downloaded file, go to Properties and then check the Unblock checkbox before clicking again on Apply and then OK. 19 | - Make sure that all instances of Visual Studio are closed. 20 | - Open the Visual Studio Extension Installer (VSXI) and follow the instructions. 21 | 22 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.Services/TypeConverters/BOMLayoutNamesConverter.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace BlueByte.SOLIDWORKS.PDMProfessional.Services.TypeConverters 4 | { 5 | /// 6 | /// Used to enable a dropdown in a settings class. [TypeConverter(typeof(BOMLayoutNamesConverter))] 7 | /// 8 | /// 9 | public class BOMLayoutNamesConverter : StringConverter 10 | { 11 | 12 | public static string[] BOMLayoutNames { get; set; } 13 | 14 | public BOMLayoutNamesConverter() 15 | { 16 | 17 | } 18 | 19 | public override bool GetStandardValuesSupported(ITypeDescriptorContext context) 20 | { 21 | return true; 22 | } 23 | public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) 24 | { 25 | return new StandardValuesCollection(BOMLayoutNames); 26 | } 27 | public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) 28 | { 29 | return true; 30 | } 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.Services/TypeConverters/TransitionNamesConverter.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace BlueByte.SOLIDWORKS.PDMProfessional.Services.TypeConverters 4 | { 5 | /// 6 | /// Used to enable a dropdown in a settings class. [TypeConverter(typeof(TransitionNamesConverter))] 7 | /// 8 | /// 9 | public class TransitionNamesConverter : StringConverter 10 | { 11 | 12 | public static string[] TransitionNames { get; set; } 13 | 14 | public TransitionNamesConverter() 15 | { 16 | 17 | } 18 | 19 | public override bool GetStandardValuesSupported(ITypeDescriptorContext context) 20 | { 21 | return true; 22 | } 23 | public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) 24 | { 25 | return new StandardValuesCollection(TransitionNames); 26 | } 27 | public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) 28 | { 29 | return true; 30 | } 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /VSTemplate/VSExtension/MITLicense.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 PDM SDK by Blue Byte Systems Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PDMSDK is .NET Library for SOLIDWORKS PDM Pro 2 | 3 | >[!TIP] 4 | >We have a new documentation page that contains a step-by-step guide on getting started as well as extensive API reference. It is accessible [here](https://bluebytesystemsinc.github.io/SOLIDWORKS-PDM-API-SDK/docs/getting-started.html). 5 | 6 | ### What can I Do with PDMSDK? 7 | 8 | With PDM SDK, you can develop: 9 | 10 | - SOLIDWORKS PDM add-ins 11 | - SOLIDWORKS PDM task add-ins 12 | 13 | ### VS Template 14 | 15 | Get it from [here](https://marketplace.visualstudio.com/items?itemName=BlueByteSystemsInc.ID). 16 | 17 | ### Nuget [![NuGet version (BlueByte.SOLIDWORKS.PDMProfessional.SDK)](https://img.shields.io/nuget/v/BlueByte.SOLIDWORKS.PDMProfessional.SDK.svg?style=flat-square)](https://www.nuget.org/packages/BlueByte.SOLIDWORKS.PDMProfessional.SDK) 18 | 19 | 20 | Command-line: 21 | 22 | ```Install-Package BlueByte.SOLIDWORKS.PDMProfessional.PDMSDK``` 23 | 24 | ### Sample add-in 25 | 26 | TestAddIn folder contains a sample copy to clipboard addin. 27 | 28 | 29 | ### Support 30 | You can start a ticket on this repo. The best way to get an answer is to ask a question at [cadoverflow.com](https://www.cadoverflow.com) under the PDMFramework group. 31 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Diagnostics/LoggerBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Data.SqlClient; 3 | 4 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK.Diagnostics 5 | { 6 | /// 7 | /// Base class for all loggers. 8 | /// 9 | public abstract class LoggerBase 10 | { 11 | 12 | 13 | 14 | 15 | 16 | internal Identity identity; 17 | 18 | internal SqlConnection cnn; 19 | 20 | 21 | 22 | 23 | /// 24 | /// Gets the type of the logger. 25 | /// 26 | /// 27 | /// Could not infer type of logger. Make sure to choose the logger type. 28 | public LoggerType_e GetLoggerType() 29 | { 30 | var typeName = this.GetType().Name.Replace("Logger",""); 31 | LoggerType_e type; 32 | var rt = Enum.TryParse(typeName, out type); 33 | if (rt) 34 | return type; 35 | else 36 | throw new SDK.Exceptions.PDMSDKException("Could not infer type of logger. Make sure to choose the logger type.", null); 37 | } 38 | } 39 | 40 | 41 | 42 | } 43 | -------------------------------------------------------------------------------- /docs_backup/help/Visual-Studio-SDK-template.md: -------------------------------------------------------------------------------- 1 | # Visual Studio SOLIDWORKS PDM SDK Template 2 | 3 | The SDK template has the best boilerplate code written and ready for you to edit. 4 | 5 | # Installing Visual Studio SOLIDWORKS PDM SDK Template 6 | 7 | > [!TIP] 8 | > Always make sure you are using the latest version of the PDM SDK template. To find the latest version of the template, please check the Extensions window in your Visual Studio or follow this [link](https://marketplace.visualstudio.com/items?itemName=BlueByteSystemsInc.ID). 9 | 10 | 11 | > [!WARNING] 12 | > Only Visual Studio Community and Professional editions up to 2019 are supported. We do not support Visual Studio 2022. 13 | 14 | To install the Visual Studio SOLIDWORKS PDM SDK Template: 15 | 16 | - Go to https://marketplace.visualstudio.com/items?itemName=BlueByteSystemsInc.ID 17 | - Click Download 18 | - In Windows 10 and on some computers, your downloaded files must be unblocked. To do, please right-click on the downloaded file, go to Properties and then check the Unblock checkbox before clicking again on Apply and then OK. 19 | - Make sure that all instances of Visual Studio 2019 are closed. 20 | - Open the Visual Studio Extension Installer (VSXI) and follow the instructions. 21 | 22 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Attributes/AddInVersionAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK.Attributes 4 | { 5 | 6 | public class AddInVersionAttribute : Attribute 7 | { 8 | /// 9 | /// Use this option for frequent builds. 10 | /// 11 | public bool UseAssemblyFileRevision { get; set; } 12 | 13 | /// 14 | /// Specific version. 15 | /// 16 | public int Version { get; set; } 17 | public AddInVersionAttribute(bool useAssemblyFileRevision, int version = 0) 18 | { 19 | UseAssemblyFileRevision = useAssemblyFileRevision; 20 | Version = version; 21 | } 22 | } 23 | 24 | /// 25 | /// Use this to make an add-in a task 26 | /// 27 | public class IsTaskAttribute : Attribute 28 | { 29 | 30 | /// 31 | /// Gets or sets whether the add-in is a custom task. 32 | /// 33 | public bool IsTask { get; set; } 34 | 35 | 36 | public IsTaskAttribute(bool isTask) 37 | { 38 | IsTask = isTask; 39 | 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /VSTemplate/ProjectTemplateWizard/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace ProjectTemplateWizard.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /docs/public/chunk-IQQ46AC6.min.js: -------------------------------------------------------------------------------- 1 | import{B as d,D as v,G as P,a as e,c as u,f as i,g as a,i as m,t as w,v as f,y as b,z as j}from"./chunk-CXRPJJJE.min.js";var A=w(Object.keys,Object),S=A;var C=Object.prototype,V=C.hasOwnProperty;function D(r){if(!f(r))return S(r);var t=[];for(var o in Object(r))V.call(r,o)&&o!="constructor"&&t.push(o);return t}var T=D;var K=a(e,"DataView"),n=K;var N=a(e,"Promise"),s=N;var W=a(e,"Set"),c=W;var B=a(e,"WeakMap"),g=B;var O="[object Map]",z="[object Object]",M="[object Promise]",h="[object Set]",x="[object WeakMap]",k="[object DataView]",E=i(n),G=i(m),L=i(s),q=i(c),F=i(g),p=u;(n&&p(new n(new ArrayBuffer(1)))!=k||m&&p(new m)!=O||s&&p(s.resolve())!=M||c&&p(new c)!=h||g&&p(new g)!=x)&&(p=function(r){var t=u(r),o=t==z?r.constructor:void 0,y=o?i(o):"";if(y)switch(y){case E:return k;case G:return O;case L:return M;case q:return h;case F:return x}return t});var l=p;var H="[object Map]",I="[object Set]",J=Object.prototype,Q=J.hasOwnProperty;function R(r){if(r==null)return!0;if(d(r)&&(j(r)||typeof r=="string"||typeof r.splice=="function"||v(r)||P(r)||b(r)))return!r.length;var t=l(r);if(t==H||t==I)return!r.size;if(f(r))return!T(r).length;for(var o in r)if(Q.call(r,o))return!1;return!0}var kr=R;export{T as a,c as b,l as c,kr as d}; 2 | //# sourceMappingURL=chunk-IQQ46AC6.min.js.map 3 | -------------------------------------------------------------------------------- /SDK.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29609.76 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlueByte.SOLIDWORKS.PDMProfessional.SDK", "src\BlueByte.SOLIDWORKS.PDMProfessional.SDK\BlueByte.SOLIDWORKS.PDMProfessional.SDK.csproj", "{60FE34EE-A3EA-4F3B-8B9D-09A29274F148}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {60FE34EE-A3EA-4F3B-8B9D-09A29274F148}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {60FE34EE-A3EA-4F3B-8B9D-09A29274F148}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {60FE34EE-A3EA-4F3B-8B9D-09A29274F148}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {60FE34EE-A3EA-4F3B-8B9D-09A29274F148}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {7B1D626A-82F6-4B6A-B4A1-AD85D3AB29EF} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.Services/TypeConverters/VariableNamesConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace BlueByte.SOLIDWORKS.PDMProfessional.Services.TypeConverters 9 | { 10 | /// 11 | /// Used to enable a dropdown in a settings class. [TypeConverter(typeof(VariableNamesConverter))] 12 | /// 13 | /// 14 | public class VariableNamesConverter : StringConverter 15 | { 16 | 17 | public static string[] VariableNames { get; set; } 18 | 19 | public VariableNamesConverter() 20 | { 21 | 22 | } 23 | 24 | public override bool GetStandardValuesSupported(ITypeDescriptorContext context) 25 | { 26 | return true; 27 | } 28 | public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) 29 | { 30 | return new StandardValuesCollection(VariableNames); 31 | } 32 | public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) 33 | { 34 | return true; 35 | } 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPageVBNET/TaskPage.Designer.vb: -------------------------------------------------------------------------------- 1 | Namespace $rootnamespace$ 2 | Partial Class $safeitemname$ 3 | ''' 4 | ''' Required designer variable. 5 | ''' 6 | Private components As System.ComponentModel.IContainer = Nothing 7 | 8 | ''' 9 | ''' Clean up any resources being used. 10 | ''' 11 | ''' true if managed resources should be disposed; otherwise, false. 12 | Protected Overrides Sub Dispose(disposing As Boolean) 13 | If disposing AndAlso (components IsNot Nothing) Then 14 | components.Dispose() 15 | End If 16 | MyBase.Dispose(disposing) 17 | End Sub 18 | 19 | #Region "Component Designer generated code" 20 | 21 | ''' 22 | ''' Required method for Designer support - do not modify 23 | ''' the contents of this method with the code editor. 24 | ''' 25 | Private Sub InitializeComponent() 26 | components = New System.ComponentModel.Container() 27 | Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font 28 | End Sub 29 | 30 | #End Region 31 | End Class 32 | End Namespace -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/AssemblyResolution/Reflection/EnumExtension.cs: -------------------------------------------------------------------------------- 1 | //********************************************************************* 2 | //xToolkit 3 | //Copyright(C) 2023 Xarial Pty Limited 4 | //Product URL: https://xtoolkit.xarial.com 5 | //License: https://xtoolkit.xarial.com/license/ 6 | //********************************************************************* 7 | 8 | using System; 9 | using System.Collections.Generic; 10 | using System.Linq; 11 | using System.Text; 12 | 13 | namespace Xarial.XToolkit.Reflection 14 | { 15 | public static class EnumExtension 16 | { 17 | public static bool TryGetAttribute(this Enum enumer, Action attProc) 18 | where TAtt : Attribute 19 | { 20 | var enumType = enumer.GetType(); 21 | var enumField = enumType.GetMember(enumer.ToString()).FirstOrDefault(); 22 | 23 | var atts = enumField?.GetCustomAttributes(typeof(TAtt), false); 24 | 25 | if (atts != null && atts.Any()) 26 | { 27 | var att = atts.First() as TAtt; 28 | attProc.Invoke(att); 29 | return true; 30 | } 31 | else 32 | { 33 | return false; 34 | } 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /VSTemplate/VisualStudioExtension/source.extension.vsixmanifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | VisualStudioExtension 6 | Empty VSIX Project. 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /UnitTesting/UnitTesting/UnitTesting/Program.cs: -------------------------------------------------------------------------------- 1 | using BlueByte.SOLIDWORKS.PDMProfessional.UnitTesting; 2 | using BlueByte.SOLIDWORKS.PDMProfessional.UnitTesting.Attributes; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace UnitTesting 10 | { 11 | class Program 12 | { 13 | [STAThreadAttribute] 14 | public static void Main() 15 | { 16 | string licenseKey = System.IO.File.ReadAllText(@"P:\Blue Byte Systems, Inc\PDMFrameworkUnitTesting\BlueByteSystemsInc_licensKey.XML"); 17 | 18 | var addinTest = new AddInTestClass(licenseKey); 19 | addinTest.Run(); 20 | 21 | Console.Read(); 22 | } 23 | } 24 | 25 | [TestVault("BlueByte")] 26 | public class AddInTestClass : TestableAddInBase 27 | { 28 | public AddInTestClass(string licenseKey) : base(licenseKey) 29 | { 30 | 31 | } 32 | 33 | [PDMTestMethod] 34 | public void TestLogger() 35 | { 36 | EPDM.Interop.epdm.EdmCmdData[] ppData = null; 37 | EPDM.Interop.epdm.EdmCmd poCmd = MockEdmCmd.EdmCmd_Menu.Mock(5); 38 | this.AddInObject.OnCmd(ref poCmd, ref ppData); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template VBNET/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.Reflection 3 | Imports System.Runtime.InteropServices 4 | 5 | ' General Information about an assembly is controlled through the following 6 | ' set of attributes. Change these attribute values to modify the information 7 | ' associated with an assembly. 8 | 9 | ' Review the values of the assembly attributes 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 'The following GUID is for the ID of the typelib if this project is exposed to COM 21 | 22 | 23 | ' Version information for an assembly consists of the following four values: 24 | ' 25 | ' Major Version 26 | ' Minor Version 27 | ' Build Number 28 | ' Revision 29 | ' 30 | ' You can specify all the values or you can default the Build and Revision Numbers 31 | ' by using the '*' as shown below: 32 | ' 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /VSTemplate/PDM SDK Add-in Template/Task/SetupPages/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace $safeprojectname$.Task.SetupPages 3 | { 4 | partial class Settings 5 | { 6 | /// 7 | /// Required designer variable. 8 | /// 9 | private System.ComponentModel.IContainer components = null; 10 | 11 | /// 12 | /// Clean up any resources being used. 13 | /// 14 | /// true if managed resources should be disposed; otherwise, false. 15 | protected override void Dispose(bool disposing) 16 | { 17 | if (disposing && (components != null)) 18 | { 19 | components.Dispose(); 20 | } 21 | base.Dispose(disposing); 22 | } 23 | 24 | #region Component Designer generated code 25 | 26 | /// 27 | /// Required method for Designer support - do not modify 28 | /// the contents of this method with the code editor. 29 | /// 30 | private void InitializeComponent() 31 | { 32 | components = new System.ComponentModel.Container(); 33 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 34 | } 35 | 36 | #endregion 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddIn/Task/SetupPages/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace SOLIDWORKSPDMAddIn.Task.SetupPages 3 | { 4 | partial class Settings 5 | { 6 | /// 7 | /// Required designer variable. 8 | /// 9 | private System.ComponentModel.IContainer components = null; 10 | 11 | /// 12 | /// Clean up any resources being used. 13 | /// 14 | /// true if managed resources should be disposed; otherwise, false. 15 | protected override void Dispose(bool disposing) 16 | { 17 | if (disposing && (components != null)) 18 | { 19 | components.Dispose(); 20 | } 21 | base.Dispose(disposing); 22 | } 23 | 24 | #region Component Designer generated code 25 | 26 | /// 27 | /// Required method for Designer support - do not modify 28 | /// the contents of this method with the code editor. 29 | /// 30 | private void InitializeComponent() 31 | { 32 | components = new System.ComponentModel.Container(); 33 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 34 | } 35 | 36 | #endregion 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /VSTemplate/VSExtension/ItemTemplates/SOLIDWORKSPDMTaskPage/TaskPage.Designer.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace $rootnamespace$ 3 | { 4 | partial class $safeitemname$ 5 | { 6 | /// 7 | /// Required designer variable. 8 | /// 9 | private System.ComponentModel.IContainer components = null; 10 | 11 | /// 12 | /// Clean up any resources being used. 13 | /// 14 | /// true if managed resources should be disposed; otherwise, false. 15 | protected override void Dispose(bool disposing) 16 | { 17 | if (disposing && (components != null)) 18 | { 19 | components.Dispose(); 20 | } 21 | base.Dispose(disposing); 22 | } 23 | 24 | #region Component Designer generated code 25 | 26 | /// 27 | /// Required method for Designer support - do not modify 28 | /// the contents of this method with the code editor. 29 | /// 30 | private void InitializeComponent() 31 | { 32 | components = new System.ComponentModel.Container(); 33 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 34 | } 35 | 36 | #endregion 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddInVBNET/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.Reflection 3 | Imports System.Runtime.InteropServices 4 | 5 | ' General Information about an assembly is controlled through the following 6 | ' set of attributes. Change these attribute values to modify the information 7 | ' associated with an assembly. 8 | 9 | ' Review the values of the assembly attributes 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 'The following GUID is for the ID of the typelib if this project is exposed to COM 21 | 22 | 23 | ' Version information for an assembly consists of the following four values: 24 | ' 25 | ' Major Version 26 | ' Minor Version 27 | ' Build Number 28 | ' Revision 29 | ' 30 | ' You can specify all the values or you can default the Build and Revision Numbers 31 | ' by using the '*' as shown below: 32 | ' 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /docs/public/chunk-WXIN66R4.min.js: -------------------------------------------------------------------------------- 1 | import{f as t}from"./chunk-BIJFJY5F.min.js";var a={},o={info:t(async()=>{let{createInfoServices:e}=await import("./info-46DW6VJ7-RDUIJSMX.min.js"),r=e().Info.parser.LangiumParser;a.info=r},"info"),packet:t(async()=>{let{createPacketServices:e}=await import("./packet-W2GHVCYJ-ZZMTAWKW.min.js"),r=e().Packet.parser.LangiumParser;a.packet=r},"packet"),pie:t(async()=>{let{createPieServices:e}=await import("./pie-BEWT4RHE-VFWRUT6J.min.js"),r=e().Pie.parser.LangiumParser;a.pie=r},"pie"),architecture:t(async()=>{let{createArchitectureServices:e}=await import("./architecture-I3QFYML2-2T2ZUHXO.min.js"),r=e().Architecture.parser.LangiumParser;a.architecture=r},"architecture"),gitGraph:t(async()=>{let{createGitGraphServices:e}=await import("./gitGraph-YCYPL57B-3XOJ53I6.min.js"),r=e().GitGraph.parser.LangiumParser;a.gitGraph=r},"gitGraph")};async function n(e,r){let i=o[e];if(!i)throw new Error(`Unknown diagram type: ${e}`);a[e]||await i();let s=a[e].parse(r);if(s.lexerErrors.length>0||s.parserErrors.length>0)throw new p(s);return s.value}t(n,"parse");var p=class extends Error{constructor(e){let r=e.lexerErrors.map(c=>c.message).join(` 2 | `),i=e.parserErrors.map(c=>c.message).join(` 3 | `);super(`Parsing failed: ${r} ${i}`),this.result=e}static{t(this,"MermaidParseError")}};export{n as a}; 4 | //# sourceMappingURL=chunk-WXIN66R4.min.js.map 5 | -------------------------------------------------------------------------------- /VSTemplate/VSExtension/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("VSExtension")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("VSExtension")] 12 | [assembly: AssemblyCopyright("")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // Version information for an assembly consists of the following four values: 22 | // 23 | // Major Version 24 | // Minor Version 25 | // Build Number 26 | // Revision 27 | // 28 | // You can specify all the values or you can default the Build and Revision Numbers 29 | // by using the '*' as shown below: 30 | // [assembly: AssemblyVersion("1.0.*")] 31 | [assembly: AssemblyVersion("1.0.0.0")] 32 | [assembly: AssemblyFileVersion("1.0.0.0")] 33 | -------------------------------------------------------------------------------- /docs/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by Docfx 9 | 10 | 12 | 15 | 21 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /docfx/docs/toc.yml: -------------------------------------------------------------------------------- 1 | - name: Getting Started 2 | href: getting-started.md 3 | - name: Visual Studio SDK template 4 | href: Visual-Studio-SDK-template.md 5 | - name: Creating A New Add-in Project 6 | href: creating_new_project.md 7 | - name: Updating Nuget Packages 8 | href: updating_nuget_packages.md 9 | - name: Building Project (Visual Studio) 10 | href: building_project.md 11 | - name: PDMSDK base class (AddInBase) 12 | href: addinbase_structure.md 13 | - name: Implementing OnCmd 14 | href: adding_logic_oncmd.md 15 | - name: Commands 16 | href: commands.md 17 | - name: PDMSDK's logger 18 | href: logger.md 19 | - name: Dependency Injection (DI) 20 | href: dependencyinjection.md 21 | - name: Debugging with PDMSDK 22 | href: debugging_with_sdk.md 23 | - name: Task Add-ins 24 | expanded: true 25 | href: taskadd-ins.md 26 | items: 27 | - name: Flags 28 | href: flags.md 29 | - name: Hooks 30 | expanded: true 31 | href: hooks.md 32 | items: 33 | - name: TaskSetup 34 | expanded: true 35 | href: TaskSetup.md 36 | items: 37 | - name: Add controls and binding to View Model 38 | href: binding.md 39 | - name: TaskSetupButton 40 | href: TaskSetupButton.md 41 | - name: TaskLaunch 42 | href: TaskLaunch.md 43 | - name: TaskRun 44 | href: TaskRun.md 45 | - name: TaskDetails 46 | href: TaskDetails.md 47 | 48 | 49 | -------------------------------------------------------------------------------- /docs/public/chunk-YDMVF6IB.min.js: -------------------------------------------------------------------------------- 1 | import{Ha as o,c}from"./chunk-VMREMWJS.min.js";import{d as l}from"./chunk-P42HNYSU.min.js";var i=l(c(),1);var x=(s,t)=>{let r=s.append("rect");if(r.attr("x",t.x),r.attr("y",t.y),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("width",t.width),r.attr("height",t.height),t.name&&r.attr("name",t.name),t.rx!==void 0&&r.attr("rx",t.rx),t.ry!==void 0&&r.attr("ry",t.ry),t.attrs!==void 0)for(let e in t.attrs)r.attr(e,t.attrs[e]);return t.class!==void 0&&r.attr("class",t.class),r},h=(s,t)=>{let r={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};x(s,r).lower()},y=(s,t)=>{let r=t.text.replace(o," "),e=s.append("text");e.attr("x",t.x),e.attr("y",t.y),e.attr("class","legend"),e.style("text-anchor",t.anchor),t.class!==void 0&&e.attr("class",t.class);let n=e.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(r),e},m=(s,t,r,e)=>{let n=s.append("image");n.attr("x",t),n.attr("y",r);let a=(0,i.sanitizeUrl)(e);n.attr("xlink:href",a)},p=(s,t,r,e)=>{let n=s.append("use");n.attr("x",t),n.attr("y",r);let a=(0,i.sanitizeUrl)(e);n.attr("xlink:href",`#${a}`)},g=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),f=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0});export{x as a,h as b,y as c,m as d,p as e,g as f,f as g}; 2 | //# sourceMappingURL=chunk-YDMVF6IB.min.js.map 3 | -------------------------------------------------------------------------------- /VSTemplate/VisualStudioExtension/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("VisualStudioExtension")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("VisualStudioExtension")] 13 | [assembly: AssemblyCopyright("")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // Version information for an assembly consists of the following four values: 23 | // 24 | // Major Version 25 | // Minor Version 26 | // Build Number 27 | // Revision 28 | // 29 | // You can specify all the values or you can default the Build and Revision Numbers 30 | // by using the '*' as shown below: 31 | // [assembly: AssemblyVersion("1.0.*")] 32 | [assembly: AssemblyVersion("1.0.0.0")] 33 | [assembly: AssemblyFileVersion("1.0.0.0")] 34 | -------------------------------------------------------------------------------- /docs/public/classDiagram-LNE6IOMH-VZ67B4ZP.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-LNE6IOMH.mjs"], 4 | "sourcesContent": ["import {\n classDb_default,\n classDiagram_default,\n classRenderer_v3_unified_default,\n styles_default\n} from \"./chunk-T2TOU4HS.mjs\";\nimport \"./chunk-5HRBRIJM.mjs\";\nimport \"./chunk-BO7VGL7K.mjs\";\nimport \"./chunk-66SQ7PYY.mjs\";\nimport \"./chunk-7NZE2EM7.mjs\";\nimport \"./chunk-OPO4IU42.mjs\";\nimport \"./chunk-3JNJP5BE.mjs\";\nimport \"./chunk-3X56UNUX.mjs\";\nimport \"./chunk-6JOS74DS.mjs\";\nimport \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/class/classDiagram.ts\nvar diagram = {\n parser: classDiagram_default,\n db: classDb_default,\n renderer: classRenderer_v3_unified_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.class) {\n cnf.class = {};\n }\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n classDb_default.clear();\n }, \"init\")\n};\nexport {\n diagram\n};\n"], 5 | "mappings": "6eAoBA,IAAIA,EAAU,CACZ,OAAQC,EACR,GAAIC,EACJ,SAAUC,EACV,OAAQC,EACR,KAAsBC,EAAQC,GAAQ,CAC/BA,EAAI,QACPA,EAAI,MAAQ,CAAC,GAEfA,EAAI,MAAM,oBAAsBA,EAAI,oBACpCJ,EAAgB,MAAM,CACxB,EAAG,MAAM,CACX", 6 | "names": ["diagram", "classDiagram_default", "classDb_default", "classRenderer_v3_unified_default", "styles_default", "__name", "cnf"] 7 | } 8 | -------------------------------------------------------------------------------- /.github/workflows/static.yml: -------------------------------------------------------------------------------- 1 | # Simple workflow for deploying static content to GitHub Pages 2 | name: Deploy static content to Pages 3 | 4 | on: 5 | # Runs on pushes targeting the default branch 6 | push: 7 | branches: ["master"] 8 | 9 | # Allows you to run this workflow manually from the Actions tab 10 | workflow_dispatch: 11 | 12 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 13 | permissions: 14 | contents: read 15 | pages: write 16 | id-token: write 17 | 18 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. 19 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. 20 | concurrency: 21 | group: "pages" 22 | cancel-in-progress: false 23 | 24 | jobs: 25 | # Single deploy job since we're just deploying 26 | deploy: 27 | environment: 28 | name: github-pages 29 | url: ${{ steps.deployment.outputs.page_url }} 30 | runs-on: ubuntu-latest 31 | steps: 32 | - name: Checkout 33 | uses: actions/checkout@v4 34 | - name: Setup Pages 35 | uses: actions/configure-pages@v5 36 | - name: Upload artifact 37 | uses: actions/upload-pages-artifact@v3 38 | with: 39 | # Upload entire repository 40 | path: '/docs' 41 | - name: Deploy to GitHub Pages 42 | id: deployment 43 | uses: actions/deploy-pages@v4 44 | -------------------------------------------------------------------------------- /docs/public/classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-v2-MQ7JQ4JX.mjs"], 4 | "sourcesContent": ["import {\n classDb_default,\n classDiagram_default,\n classRenderer_v3_unified_default,\n styles_default\n} from \"./chunk-T2TOU4HS.mjs\";\nimport \"./chunk-5HRBRIJM.mjs\";\nimport \"./chunk-BO7VGL7K.mjs\";\nimport \"./chunk-66SQ7PYY.mjs\";\nimport \"./chunk-7NZE2EM7.mjs\";\nimport \"./chunk-OPO4IU42.mjs\";\nimport \"./chunk-3JNJP5BE.mjs\";\nimport \"./chunk-3X56UNUX.mjs\";\nimport \"./chunk-6JOS74DS.mjs\";\nimport \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/class/classDiagram-v2.ts\nvar diagram = {\n parser: classDiagram_default,\n db: classDb_default,\n renderer: classRenderer_v3_unified_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.class) {\n cnf.class = {};\n }\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n classDb_default.clear();\n }, \"init\")\n};\nexport {\n diagram\n};\n"], 5 | "mappings": "6eAoBA,IAAIA,EAAU,CACZ,OAAQC,EACR,GAAIC,EACJ,SAAUC,EACV,OAAQC,EACR,KAAsBC,EAAQC,GAAQ,CAC/BA,EAAI,QACPA,EAAI,MAAQ,CAAC,GAEfA,EAAI,MAAM,oBAAsBA,EAAI,oBACpCJ,EAAgB,MAAM,CACxB,EAAG,MAAM,CACX", 6 | "names": ["diagram", "classDiagram_default", "classDb_default", "classRenderer_v3_unified_default", "styles_default", "__name", "cnf"] 7 | } 8 | -------------------------------------------------------------------------------- /docs/public/stateDiagram-v2-4JROLMXI-COTI64PW.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-4JROLMXI.mjs"], 4 | "sourcesContent": ["import {\n stateDb_default,\n stateDiagram_default,\n stateRenderer_v3_unified_default,\n styles_default\n} from \"./chunk-7U56Z5CX.mjs\";\nimport \"./chunk-5HRBRIJM.mjs\";\nimport \"./chunk-BO7VGL7K.mjs\";\nimport \"./chunk-66SQ7PYY.mjs\";\nimport \"./chunk-7NZE2EM7.mjs\";\nimport \"./chunk-OPO4IU42.mjs\";\nimport \"./chunk-3JNJP5BE.mjs\";\nimport \"./chunk-3X56UNUX.mjs\";\nimport \"./chunk-6JOS74DS.mjs\";\nimport \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/state/stateDiagram-v2.ts\nvar diagram = {\n parser: stateDiagram_default,\n db: stateDb_default,\n renderer: stateRenderer_v3_unified_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.state) {\n cnf.state = {};\n }\n cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n stateDb_default.clear();\n }, \"init\")\n};\nexport {\n diagram\n};\n"], 5 | "mappings": "weAoBA,IAAIA,EAAU,CACZ,OAAQC,EACR,GAAIC,EACJ,SAAUC,EACV,OAAQC,EACR,KAAsBC,EAAQC,GAAQ,CAC/BA,EAAI,QACPA,EAAI,MAAQ,CAAC,GAEfA,EAAI,MAAM,oBAAsBA,EAAI,oBACpCJ,EAAgB,MAAM,CACxB,EAAG,MAAM,CACX", 6 | "names": ["diagram", "stateDiagram_default", "stateDb_default", "stateRenderer_v3_unified_default", "styles_default", "__name", "cnf"] 7 | } 8 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2024 Blue Byte Systems Inc. 2 | 3 | You are granted an MIT license unless you meet one of the following criteria (please contact the author for licensing in that case): 4 | 5 | - You are SOLIDWORKS Corp, its parent company, and/or one of its subsidiaries, sub-contractors, and/or its representative entities; 6 | - You are a SOLIDWORKS reseller or a SOLIDWORKS partner; 7 | - You are a company that commercializes a product that integrates with SOLIDWORKS or SOLIDWORKS PDM and will benefit from using the SOLIDWORKS PDM SDK. 8 | - You are using the framework to develop a for-profit commercial product. 9 | 10 | Exception: You are one of the previous and have used Blue Byte Systems Inc. professional services as part of a project where Blue Byte Systems Inc. delivered code that used the framework and requires maintenance. In this case, you are granted an MIT license solely to maintain code and are limited to the project's scope. 11 | 12 | Liability clause: 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 20 | SOFTWARE. 21 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Attributes/HandlesAttribute.cs: -------------------------------------------------------------------------------- 1 | using EPDM.Interop.epdm; 2 | using System; 3 | 4 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK.Attributes 5 | { 6 | /// 7 | /// Add command menu attribute. 8 | /// 9 | [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)] 10 | public class HandlesAttribute : Attribute 11 | { 12 | /// 13 | /// Creates a new instance of the HandlesAttribute 14 | /// 15 | /// 16 | /// Invoke the callback method when this event occurs in PDM 17 | /// 5 | BlueByte.SOLIDWORKS.PDMProfessional.SDK 6 | 7 | 2021.1.84 8 | BlueByte.SOLIDWORKS.PDMProfessional.SDK 9 | 10 | BLUE BYTE SYSTEMS INC. 11 | BLUE BYTE SYSTEMS INC. 12 | https://pdmsdk.bluebyte.biz 13 | 14 | 19 | https://github.com/BlueByteSystemsInc/PDMSDK/blob/master/LICENSE.md 20 | https://secureservercdn.net/198.71.233.189/530.de9.myftpupload.com/wp-content/uploads/2019/03/cropped-logo-6.png 21 | true 22 | 23 | The BlueByte.SolidWorks.PDMProfessional.SDK (referred to as PDMSDK) is a software development kit designed to simplify and enhance the process of automating and extending SOLIDWORKS PDM Professional functionalities. This SDK acts as a high-level wrapper around the native SOLIDWORKS PDM API, making it more intuitive and developer-friendly. 24 | 25 | Please see the PDM Intero dependencies. 26 | Copyright © 2025 27 | solidworks pdm, pdm api, solidworks, addins, task addins 28 | 29 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/AssemblyResolution/Reflection/AppDomainExtension.cs: -------------------------------------------------------------------------------- 1 | //********************************************************************* 2 | //xToolkit 3 | //Copyright(C) 2023 Xarial Pty Limited 4 | //Product URL: https://xtoolkit.xarial.com 5 | //License: https://xtoolkit.xarial.com/license/ 6 | //********************************************************************* 7 | 8 | using System; 9 | using System.Collections.Generic; 10 | using System.Diagnostics; 11 | using System.IO; 12 | using System.Linq; 13 | using System.Reflection; 14 | using System.Xml; 15 | using System.Xml.Linq; 16 | using System.Xml.XPath; 17 | using Xarial.XToolkit.Helpers; 18 | 19 | namespace Xarial.XToolkit.Reflection 20 | { 21 | public static class AppDomainExtension 22 | { 23 | private static readonly Dictionary m_DomainsAssemblyResolvers; 24 | private static readonly object m_Lock; 25 | 26 | static AppDomainExtension() 27 | { 28 | m_DomainsAssemblyResolvers = new Dictionary(); 29 | m_Lock = new object(); 30 | } 31 | 32 | public static void RegisterGlobalAssemblyReferenceResolver(this AppDomain appDomain, 33 | IReferenceResolver resolver) 34 | { 35 | lock (m_Lock) 36 | { 37 | if (!m_DomainsAssemblyResolvers.TryGetValue(appDomain.Id, out AssemblyResolver assmResolver)) 38 | { 39 | assmResolver = new AssemblyResolver(appDomain); 40 | m_DomainsAssemblyResolvers.Add(appDomain.Id, assmResolver); 41 | } 42 | 43 | assmResolver.RegisterAssemblyReferenceResolver(resolver); 44 | } 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /docfx/docs/dependencyinjection.md: -------------------------------------------------------------------------------- 1 | # Dependency Injection 2 | 3 | PDMSDK provides some support for dependency injection (DI). The Container property in the AddInBase allows to resolve your types into instances. 4 | 5 | We use [Simple Injector](https://simpleinjector.org/). 6 | 7 | # Type registration 8 | 9 | - Override the method [OnRegisterAdditionalTypes](../api/BlueByte.SOLIDWORKS.PDMProfessional.SDK.AddInBase.html#BlueByte_SOLIDWORKS_PDMProfessional_SDK_AddInBase_OnRegisterAdditionalTypes_SimpleInjector_Container_). Example: 10 | 11 | # [C Sharp](#tab/cs) 12 | ``` 13 | protected override void OnRegisterAdditionalTypes(Container container) 14 | { 15 | base.OnRegisterAdditionalTypes(container); 16 | container.Register(); 17 | container.RegisterSingleton(); 18 | container.RegisterSingleton (); 19 | } 20 | ``` 21 | # [VB](#tab/VB) 22 | ``` 23 | Protected Overrides Sub OnRegisterAdditionalTypes(container As Container) 24 | MyBase.OnRegisterAdditionalTypes(container) 25 | container.Register(Of ISOLIDWORKSInstanceManager, SOLIDWORKSInstanceManager)() 26 | container.RegisterSingleton(Of IEvaluationService, EvaluationService)() 27 | container.RegisterSingleton(Of ISettingsManager, SettingsManager)() 28 | End Sub 29 | ``` 30 | --- 31 | 32 | - You can call the Container property anywhere else in your AddInBase implementation and resolve a registered type to get an instance. Example: 33 | 34 | # [C Sharp](#tab/cs) 35 | ``` 36 | var settingsManager = Container.GetInstance(); 37 | ``` 38 | # [VB](#tab/VB) 39 | ``` 40 | Dim settingsManager As ISettingsManager = Container.GetInstance(Of ISettingsManager)() 41 | 42 | ``` 43 | --- -------------------------------------------------------------------------------- /docs/public/chunk-CLIYZZ5Y.min.js: -------------------------------------------------------------------------------- 1 | import{h as x}from"./chunk-U3SD26FK.min.js";var c={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:4};function d(n,r){if(n===void 0||r===void 0)return{angle:0,deltaX:0,deltaY:0};n=t(n),r=t(r);let[s,e]=[n.x,n.y],[a,i]=[r.x,r.y],o=a-s,y=i-e;return{angle:Math.atan(y/o),deltaX:o,deltaY:y}}x(d,"calculateDeltaAndAngle");var t=x(n=>Array.isArray(n)?{x:n[0],y:n[1]}:n,"pointTransformer"),T=x(n=>({x:x(function(r,s,e){let a=0,i=t(e[0]).x=0?1:-1)}else if(s===e.length-1&&Object.hasOwn(c,n.arrowTypeEnd)){let{angle:l,deltaX:g}=d(e[e.length-1],e[e.length-2]);a=c[n.arrowTypeEnd]*Math.cos(l)*(g>=0?1:-1)}let o=Math.abs(t(r).x-t(e[e.length-1]).x),y=Math.abs(t(r).y-t(e[e.length-1]).y),f=Math.abs(t(r).x-t(e[0]).x),w=Math.abs(t(r).y-t(e[0]).y),h=c[n.arrowTypeStart],u=c[n.arrowTypeEnd],p=1;if(o0&&y0&&w=0?1:-1)}else if(s===e.length-1&&Object.hasOwn(c,n.arrowTypeEnd)){let{angle:l,deltaY:g}=d(e[e.length-1],e[e.length-2]);a=c[n.arrowTypeEnd]*Math.abs(Math.sin(l))*(g>=0?1:-1)}let o=Math.abs(t(r).y-t(e[e.length-1]).y),y=Math.abs(t(r).x-t(e[e.length-1]).x),f=Math.abs(t(r).y-t(e[0]).y),w=Math.abs(t(r).x-t(e[0]).x),h=c[n.arrowTypeStart],u=c[n.arrowTypeEnd],p=1;if(o0&&y0&&w 6 | /// Logger. 7 | /// 8 | public interface ILogger 9 | { 10 | 11 | /// 12 | /// Starts a connection with the SQL server. Call this method after you call . 13 | /// 14 | void StartConnection(); 15 | 16 | /// 17 | /// Ends the connection with the SQLServer 18 | /// 19 | void EndConnection(); 20 | 21 | /// 22 | /// Returns the type of the logger. 23 | /// 24 | /// 25 | LoggerType_e GetLoggerType(); 26 | 27 | 28 | /// 29 | /// Logs value to output. 30 | /// 31 | /// Text file path. This is the name of the table when returns 32 | /// New value. 33 | void LogToOutput(string target, object value); 34 | 35 | 36 | 37 | 38 | /// 39 | /// Ouput location. Relative path does not work. 40 | /// 41 | string OutputLocation { get; set; } 42 | 43 | 44 | /// 45 | /// Initialize the logger. 46 | /// 47 | /// The connection string. 48 | /// The identity struct. 49 | /// Task instance. 50 | void Init(Identity identity, IEdmTaskInstance instance, string connectionString); 51 | 52 | 53 | 54 | } 55 | 56 | 57 | 58 | } 59 | -------------------------------------------------------------------------------- /docs/public/flowDiagram-v2-3b53844e-QBBADQR5.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/mermaid/dist/flowDiagram-v2-3b53844e.js"], 4 | "sourcesContent": ["import { p as parser, f as flowDb } from \"./flowDb-4b19a42f.js\";\nimport { f as flowRendererV2, a as flowStyles } from \"./styles-3ed67cfa.js\";\nimport { p as setConfig } from \"./mermaid-f47111a7.js\";\nimport \"d3\";\nimport \"dagre-d3-es/src/graphlib/index.js\";\nimport \"./index-fc10efb0.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-d32062c0.js\";\nimport \"./createText-6b48ae7d.js\";\nimport \"mdast-util-from-markdown\";\nimport \"ts-dedent\";\nimport \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport \"khroma\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nconst diagram = {\n parser,\n db: flowDb,\n renderer: flowRendererV2,\n styles: flowStyles,\n init: (cnf) => {\n if (!cnf.flowchart) {\n cnf.flowchart = {};\n }\n cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n setConfig({ flowchart: { arrowMarkerAbsolute: cnf.arrowMarkerAbsolute } });\n flowRendererV2.setConf(cnf.flowchart);\n flowDb.clear();\n flowDb.setGen(\"gen-2\");\n }\n};\nexport {\n diagram\n};\n"], 5 | "mappings": "oXAcA,IAAAA,EAAO,SACPC,EAAO,SACPC,EAAO,SAKP,IAAMC,EAAU,CACd,OAAAC,EACA,GAAIC,EACJ,SAAUC,EACV,OAAQC,EACR,KAAOC,GAAQ,CACRA,EAAI,YACPA,EAAI,UAAY,CAAC,GAEnBA,EAAI,UAAU,oBAAsBA,EAAI,oBACxCC,EAAU,CAAE,UAAW,CAAE,oBAAqBD,EAAI,mBAAoB,CAAE,CAAC,EACzEF,EAAe,QAAQE,EAAI,SAAS,EACpCH,EAAO,MAAM,EACbA,EAAO,OAAO,OAAO,CACvB,CACF", 6 | "names": ["import_dayjs", "import_sanitize_url", "import_dompurify", "diagram", "parser$1", "flowDb", "flowRendererV2", "flowStyles", "cnf", "setConfig"] 7 | } 8 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/Core/Identity.cs: -------------------------------------------------------------------------------- 1 | using EPDM.Interop.epdm; 2 | 3 | namespace BlueByte.SOLIDWORKS.PDMProfessional.SDK 4 | { 5 | /// 6 | /// Add-in identity. 7 | /// 8 | public struct Identity 9 | { 10 | 11 | /// 12 | /// Converts to caption. 13 | /// 14 | public string ToCaption() 15 | { 16 | return $"{this.Name} V{this.Version}"; 17 | 18 | } 19 | 20 | /// 21 | /// Converts to caption. 22 | /// 23 | /// The specific window title. 24 | public string ToCaption(string specificWindowTitle = "") 25 | { 26 | 27 | return $"{this.Name} V{this.Version} - {specificWindowTitle}"; 28 | 29 | } 30 | 31 | 32 | /// 33 | /// Name 34 | /// 35 | public string Name; 36 | 37 | /// 38 | /// Description 39 | /// 40 | public string Description; 41 | 42 | /// 43 | /// Company name 44 | /// 45 | public string CompanyName; 46 | 47 | /// 48 | /// Add-in version 49 | /// 50 | public int Version; 51 | 52 | /// 53 | /// Required major version. 54 | /// 55 | public int RequiredMajorVersion; 56 | 57 | /// 58 | /// Required minor. 59 | /// 60 | public int RequiredMinorVersion; 61 | 62 | 63 | 64 | /// 65 | /// Gets or sets the vault. 66 | /// 67 | /// 68 | /// The vault. 69 | /// 70 | public IEdmVault5 Vault { get; set; } 71 | } 72 | } -------------------------------------------------------------------------------- /docs/docs/toc.json: -------------------------------------------------------------------------------- 1 | 2 | {"items":[{"name":"Getting Started","href":"getting-started.html","topicHref":"getting-started.html"},{"name":"Visual Studio SDK template","href":"Visual-Studio-SDK-template.html","topicHref":"Visual-Studio-SDK-template.html"},{"name":"Creating A New Add-in Project","href":"creating_new_project.html","topicHref":"creating_new_project.html"},{"name":"Updating Nuget Packages","href":"updating_nuget_packages.html","topicHref":"updating_nuget_packages.html"},{"name":"Building Project (Visual Studio)","href":"building_project.html","topicHref":"building_project.html"},{"name":"PDMSDK base class (AddInBase)","href":"addinbase_structure.html","topicHref":"addinbase_structure.html"},{"name":"Implementing OnCmd","href":"adding_logic_oncmd.html","topicHref":"adding_logic_oncmd.html"},{"name":"Commands","href":"commands.html","topicHref":"commands.html"},{"name":"PDMSDK's logger","href":"logger.html","topicHref":"logger.html"},{"name":"Dependency Injection (DI)","href":"dependencyinjection.html","topicHref":"dependencyinjection.html"},{"name":"Debugging with PDMSDK","href":"debugging_with_sdk.html","topicHref":"debugging_with_sdk.html"},{"name":"Task Add-ins","href":"taskadd-ins.html","topicHref":"taskadd-ins.html","items":[{"name":"Flags","href":"flags.html","topicHref":"flags.html"},{"name":"Hooks","href":"hooks.md","topicHref":"hooks.md","items":[{"name":"TaskSetup","href":"TaskSetup.html","topicHref":"TaskSetup.html","items":[{"name":"Add controls and binding to View Model","href":"binding.html","topicHref":"binding.html"}],"expanded":true},{"name":"TaskSetupButton","href":"TaskSetupButton.html","topicHref":"TaskSetupButton.html"},{"name":"TaskLaunch","href":"TaskLaunch.html","topicHref":"TaskLaunch.html"},{"name":"TaskRun","href":"TaskRun.html","topicHref":"TaskRun.html"},{"name":"TaskDetails","href":"TaskDetails.html","topicHref":"TaskDetails.html"}],"expanded":true}],"expanded":true}],"pdf":false} 3 | -------------------------------------------------------------------------------- /docs/public/chunk-CM5D5KZN.min.js: -------------------------------------------------------------------------------- 1 | import{a as m}from"./chunk-OSRY5VT3.min.js";var R=m(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.BLANK_URL=e.relativeFirstCharacters=e.whitespaceEscapeCharsRegex=e.urlSchemeRegex=e.ctrlCharactersRegex=e.htmlCtrlEntityRegex=e.htmlEntitiesRegex=e.invalidProtocolRegex=void 0;e.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;e.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;e.htmlCtrlEntityRegex=/&(newline|tab);/gi;e.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;e.urlSchemeRegex=/^.+(:|:)/gim;e.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;e.relativeFirstCharacters=[".","/"];e.BLANK_URL="about:blank"});var p=m(s=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});s.sanitizeUrl=void 0;var t=R();function d(r){return t.relativeFirstCharacters.indexOf(r[0])>-1}function v(r){var c=r.replace(t.ctrlCharactersRegex,"");return c.replace(t.htmlEntitiesRegex,function(a,i){return String.fromCharCode(i)})}function x(r){return URL.canParse(r)}function g(r){try{return decodeURIComponent(r)}catch{return r}}function C(r){if(!r)return t.BLANK_URL;var c,a=g(r.trim());do a=v(a).replace(t.htmlCtrlEntityRegex,"").replace(t.ctrlCharactersRegex,"").replace(t.whitespaceEscapeCharsRegex,"").trim(),a=g(a),c=a.match(t.ctrlCharactersRegex)||a.match(t.htmlEntitiesRegex)||a.match(t.htmlCtrlEntityRegex)||a.match(t.whitespaceEscapeCharsRegex);while(c&&c.length>0);var i=a;if(!i)return t.BLANK_URL;if(d(i))return i;var h=i.trimStart(),u=h.match(t.urlSchemeRegex);if(!u)return i;var n=u[0].toLowerCase().trim();if(t.invalidProtocolRegex.test(n))return t.BLANK_URL;var o=h.replace(/\\/g,"/");if(n==="mailto:"||n.includes("://"))return o;if(n==="http:"||n==="https:"){if(!x(o))return t.BLANK_URL;var l=new URL(o);return l.protocol=l.protocol.toLowerCase(),l.hostname=l.hostname.toLowerCase(),l.toString()}return o}s.sanitizeUrl=C});export{p as a}; 2 | //# sourceMappingURL=chunk-CM5D5KZN.min.js.map 3 | -------------------------------------------------------------------------------- /docfx/docs/flags.md: -------------------------------------------------------------------------------- 1 | # Task flags 2 | 3 | A task can be: 4 | - Executed from a workflow transition as an action or a change command. 5 | - Scheduled to execute via a command. The task is invoked in File Explorer through the file's context menu. 6 | - Initialized from the Administration tool. 7 | 8 | A task can also contain a details page. The details page is accessible from the task list window. 9 | 10 | 11 | 12 | 13 | All of these features are controlled by the [EdmTaskFlag](https://help.solidworks.com/2021/english/api/epdmapi/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskFlag.html) enum. 14 | 15 | 16 | With PDMSDK, you can use the [TaskFlags](../api/BlueByte.SOLIDWORKS.PDMProfessional.SDK.Attributes.TaskFlagsAttribute.html) attribute to configure your add-in like below: 17 | # [C Sharp](#tab/cs) 18 | ``` 19 | [TaskFlags((int)EdmTaskFlag.EdmTask_SupportsChangeState + (int)EdmTaskFlag.EdmTask_SupportsDetails + (int)EdmTaskFlag.EdmTask_SupportsInitExec +(int)EdmTaskFlag.EdmTask_SupportsScheduling)] 20 | 21 | [IsTask(true)] 22 | [RequiredVersion(10, 0)] 23 | [ComVisible(true)] 24 | [Guid("00000-00-4745-97F6-2029AFB70716")] 25 | 26 | public partial class AddIn : AddInBase 27 | { 28 | public override void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) 29 | {} 30 | } 31 | ``` 32 | # [VB](#tab/VB) 33 | ``` 34 | Imports System.Runtime.InteropServices 35 | 36 | 37 | 38 | 39 | 40 | 41 | Public Partial Class AddIn 42 | Inherits AddInBase 43 | 44 | Public Overrides Sub OnCmd(ByRef poCmd As EdmCmd, ByRef ppoData() As EdmCmdData) 45 | End Sub 46 | End Class 47 | ``` 48 | --- 49 | -------------------------------------------------------------------------------- /docfx/api/Xarial.XToolkit.Helpers.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:ManagedReference 2 | items: 3 | - uid: Xarial.XToolkit.Helpers 4 | commentId: N:Xarial.XToolkit.Helpers 5 | id: Helpers 6 | parent: Xarial.XToolkit 7 | children: 8 | - Xarial.XToolkit.Helpers.AssemblyResolver 9 | - Xarial.XToolkit.Helpers.IReferenceResolver 10 | langs: 11 | - csharp 12 | - vb 13 | name: Xarial.XToolkit.Helpers 14 | nameWithType: Xarial.XToolkit.Helpers 15 | fullName: Xarial.XToolkit.Helpers 16 | type: Namespace 17 | assemblies: 18 | - BlueByte.SOLIDWORKS.PDMProfessional.SDK 19 | references: 20 | - uid: Xarial.XToolkit.Helpers.AssemblyResolver 21 | commentId: T:Xarial.XToolkit.Helpers.AssemblyResolver 22 | href: Xarial.XToolkit.Helpers.AssemblyResolver.html 23 | name: AssemblyResolver 24 | nameWithType: AssemblyResolver 25 | fullName: Xarial.XToolkit.Helpers.AssemblyResolver 26 | - uid: Xarial.XToolkit.Helpers.IReferenceResolver 27 | commentId: T:Xarial.XToolkit.Helpers.IReferenceResolver 28 | parent: Xarial.XToolkit.Helpers 29 | href: Xarial.XToolkit.Helpers.IReferenceResolver.html 30 | name: IReferenceResolver 31 | nameWithType: IReferenceResolver 32 | fullName: Xarial.XToolkit.Helpers.IReferenceResolver 33 | - uid: Xarial.XToolkit.Helpers 34 | commentId: N:Xarial.XToolkit.Helpers 35 | href: Xarial.html 36 | name: Xarial.XToolkit.Helpers 37 | nameWithType: Xarial.XToolkit.Helpers 38 | fullName: Xarial.XToolkit.Helpers 39 | spec.csharp: 40 | - uid: Xarial 41 | name: Xarial 42 | href: Xarial.html 43 | - name: . 44 | - uid: Xarial.XToolkit 45 | name: XToolkit 46 | href: Xarial.XToolkit.html 47 | - name: . 48 | - uid: Xarial.XToolkit.Helpers 49 | name: Helpers 50 | href: Xarial.XToolkit.Helpers.html 51 | spec.vb: 52 | - uid: Xarial 53 | name: Xarial 54 | href: Xarial.html 55 | - name: . 56 | - uid: Xarial.XToolkit 57 | name: XToolkit 58 | href: Xarial.XToolkit.html 59 | - name: . 60 | - uid: Xarial.XToolkit.Helpers 61 | name: Helpers 62 | href: Xarial.XToolkit.Helpers.html 63 | -------------------------------------------------------------------------------- /docfx/docs/creating_new_project.md: -------------------------------------------------------------------------------- 1 | # PDM SDK template 2 | The PDM SDK Visual Studio project template saves time from having to rewrite the same boilerplate code everytime you write a new add-in. 3 | 4 | 5 | >[!Note] 6 | > The set of instructions below use Visual Studio Community 2019. The same applies for older version of Visual Studio. 7 | 8 | To create a new add-in project, 9 | 10 | - Open Visual Studio. We recommend you run VS as admin 11 | - If you do not see the Visual Studio 2019, window Go to *File* > *New Project...* 12 | - Select *Create a new project...* 13 | 14 | 15 | 16 | - Configure your project by giving it a name and a location. 17 | - Click OK. 18 | - In the next window, search for *PDM SDK Add-in Template*. 19 | 20 | 21 | 22 | 23 | > [!IMPORTANT] 24 | > If you do not find the templates, this means that you were not able to install the PDM SDK Templates properly. Please refer to the previous page for more information. 25 | 26 | > [!WARNING] 27 | > Depending on your version of Visual Studio, you may need to filter the project templates by their programming language. 28 | 29 | - There are two templates, one in C# and one in VB.NET. Choose which ever is best for you. 30 | - When you choose the template, a PDMSDK specific window appears. Please give the add-in a name and description and complete the other fields. 31 | 32 | 33 | 34 | - Click OK to create the add-in project. 35 | 36 | - After you have entered the add-in's information and clicked *OK*, the SDK template will create your add-in files. Your Visual Studio will look something similar to this: 37 | 38 | 39 | 40 | 41 | 42 | >[!Note] 43 | > The swigly lines under the code are there because we have not restored the PDM SDK nuget package yet. This is something that will be done in the next chapter. 44 | 45 | >[!Note] 46 | > You may notice that the company name has not been ported correctly to AddIn.cs. This is a known issue in the SDK template. -------------------------------------------------------------------------------- /UnitTesting/UnitTesting/UnitTesting.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.31605.320 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting", "UnitTesting\UnitTesting.csproj", "{E08C8CCF-A17B-42EE-985E-3BF59663DAE6}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestAddin", "TestAddin\TestAddin.csproj", "{7AE57DE6-2606-47B5-BFB6-D540259BD30C}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Alex|Any CPU = Alex|Any CPU 13 | Debug|Any CPU = Debug|Any CPU 14 | Release|Any CPU = Release|Any CPU 15 | EndGlobalSection 16 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 17 | {E08C8CCF-A17B-42EE-985E-3BF59663DAE6}.Alex|Any CPU.ActiveCfg = Debug|Any CPU 18 | {E08C8CCF-A17B-42EE-985E-3BF59663DAE6}.Alex|Any CPU.Build.0 = Debug|Any CPU 19 | {E08C8CCF-A17B-42EE-985E-3BF59663DAE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 20 | {E08C8CCF-A17B-42EE-985E-3BF59663DAE6}.Debug|Any CPU.Build.0 = Debug|Any CPU 21 | {E08C8CCF-A17B-42EE-985E-3BF59663DAE6}.Release|Any CPU.ActiveCfg = Release|Any CPU 22 | {E08C8CCF-A17B-42EE-985E-3BF59663DAE6}.Release|Any CPU.Build.0 = Release|Any CPU 23 | {7AE57DE6-2606-47B5-BFB6-D540259BD30C}.Alex|Any CPU.ActiveCfg = Debug|Any CPU 24 | {7AE57DE6-2606-47B5-BFB6-D540259BD30C}.Alex|Any CPU.Build.0 = Debug|Any CPU 25 | {7AE57DE6-2606-47B5-BFB6-D540259BD30C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 26 | {7AE57DE6-2606-47B5-BFB6-D540259BD30C}.Debug|Any CPU.Build.0 = Debug|Any CPU 27 | {7AE57DE6-2606-47B5-BFB6-D540259BD30C}.Release|Any CPU.ActiveCfg = Release|Any CPU 28 | {7AE57DE6-2606-47B5-BFB6-D540259BD30C}.Release|Any CPU.Build.0 = Release|Any CPU 29 | EndGlobalSection 30 | GlobalSection(SolutionProperties) = preSolution 31 | HideSolutionNode = FALSE 32 | EndGlobalSection 33 | GlobalSection(ExtensibilityGlobals) = postSolution 34 | SolutionGuid = {54D35903-BC0D-43C4-A29D-2A7576224320} 35 | EndGlobalSection 36 | EndGlobal 37 | -------------------------------------------------------------------------------- /docs/public/chunk-33FU46FA.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-4YFB5VUC.mjs"], 4 | "sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n InfoGeneratedModule,\n MermaidGeneratedSharedModule,\n __name\n} from \"./chunk-Y27MQZ3U.mjs\";\n\n// src/language/info/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/info/tokenBuilder.ts\nvar InfoTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"InfoTokenBuilder\");\n }\n constructor() {\n super([\"info\", \"showInfo\"]);\n }\n};\n\n// src/language/info/module.ts\nvar InfoModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new InfoTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createInfoServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Info = inject(\n createDefaultCoreModule({ shared }),\n InfoGeneratedModule,\n InfoModule\n );\n shared.ServiceRegistry.register(Info);\n return { shared, Info };\n}\n__name(createInfoServices, \"createInfoServices\");\n\nexport {\n InfoModule,\n createInfoServices\n};\n"], 5 | "mappings": "2GAiBA,IAAIA,EAAmB,cAAcC,CAA4B,CAC/D,MAAO,CACLC,EAAO,KAAM,kBAAkB,CACjC,CACA,aAAc,CACZ,MAAM,CAAC,OAAQ,UAAU,CAAC,CAC5B,CACF,EAGIC,EAAa,CACf,OAAQ,CACN,aAA8BD,EAAO,IAAM,IAAIF,EAAoB,cAAc,EACjF,eAAgCE,EAAO,IAAM,IAAIE,EAAwB,gBAAgB,CAC3F,CACF,EACA,SAASC,EAAmBC,EAAUC,EAAiB,CACrD,IAAMC,EAASC,EACbC,EAA8BJ,CAAO,EACrCK,CACF,EACMC,EAAOH,EACXI,EAAwB,CAAE,OAAAL,CAAO,CAAC,EAClCM,EACAX,CACF,EACA,OAAAK,EAAO,gBAAgB,SAASI,CAAI,EAC7B,CAAE,OAAAJ,EAAQ,KAAAI,CAAK,CACxB,CACAV,EAAOG,EAAoB,oBAAoB", 6 | "names": ["InfoTokenBuilder", "AbstractMermaidTokenBuilder", "__name", "InfoModule", "CommonValueConverter", "createInfoServices", "context", "EmptyFileSystem", "shared", "inject", "createDefaultSharedCoreModule", "MermaidGeneratedSharedModule", "Info", "createDefaultCoreModule", "InfoGeneratedModule"] 7 | } 8 | -------------------------------------------------------------------------------- /docs/public/infoDiagram-A4XQUW5V-SKLVFWJI.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/infoDiagram-A4XQUW5V.mjs"], 4 | "sourcesContent": ["import {\n version\n} from \"./chunk-K6PMAZHR.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-EJ4ZWXGL.mjs\";\nimport {\n __name,\n configureSvgSize,\n log\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/info/infoParser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"info\", input);\n log.debug(ast);\n }, \"parse\")\n};\n\n// src/diagrams/info/infoDb.ts\nvar DEFAULT_INFO_DB = { version };\nvar getVersion = /* @__PURE__ */ __name(() => DEFAULT_INFO_DB.version, \"getVersion\");\nvar db = {\n getVersion\n};\n\n// src/diagrams/info/infoRenderer.ts\nvar draw = /* @__PURE__ */ __name((text, id, version2) => {\n log.debug(\"rendering info diagram\\n\" + text);\n const svg = selectSvgElement(id);\n configureSvgSize(svg, 100, 400, true);\n const group = svg.append(\"g\");\n group.append(\"text\").attr(\"x\", 100).attr(\"y\", 40).attr(\"class\", \"version\").attr(\"font-size\", 32).style(\"text-anchor\", \"middle\").text(`v${version2}`);\n}, \"draw\");\nvar renderer = { draw };\n\n// src/diagrams/info/infoDiagram.ts\nvar diagram = {\n parser,\n db,\n renderer\n};\nexport {\n diagram\n};\n"], 5 | "mappings": "8fAcA,IAAIA,EAAS,CACX,MAAuBC,EAAO,MAAOC,GAAU,CAC7C,IAAMC,EAAM,MAAMC,EAAM,OAAQF,CAAK,EACrCG,EAAI,MAAMF,CAAG,CACf,EAAG,OAAO,CACZ,EAGIG,EAAkB,CAAE,QAAAC,CAAQ,EAC5BC,EAA6BP,EAAO,IAAMK,EAAgB,QAAS,YAAY,EAC/EG,EAAK,CACP,WAAAD,CACF,EAGIE,EAAuBT,EAAO,CAACU,EAAMC,EAAIC,IAAa,CACxDR,EAAI,MAAM;AAAA,EAA6BM,CAAI,EAC3C,IAAMG,EAAMC,EAAiBH,CAAE,EAC/BI,EAAiBF,EAAK,IAAK,IAAK,EAAI,EACtBA,EAAI,OAAO,GAAG,EACtB,OAAO,MAAM,EAAE,KAAK,IAAK,GAAG,EAAE,KAAK,IAAK,EAAE,EAAE,KAAK,QAAS,SAAS,EAAE,KAAK,YAAa,EAAE,EAAE,MAAM,cAAe,QAAQ,EAAE,KAAK,IAAID,CAAQ,EAAE,CACrJ,EAAG,MAAM,EACLI,EAAW,CAAE,KAAAP,CAAK,EAGlBQ,EAAU,CACZ,OAAAlB,EACA,GAAAS,EACA,SAAAQ,CACF", 6 | "names": ["parser", "__name", "input", "ast", "parse", "log", "DEFAULT_INFO_DB", "version", "getVersion", "db", "draw", "text", "id", "version2", "svg", "selectSvgElement", "configureSvgSize", "renderer", "diagram"] 7 | } 8 | -------------------------------------------------------------------------------- /src/BlueByte.SOLIDWORKS.PDMProfessional.SDK/AssemblyResolution/TextUtils.cs: -------------------------------------------------------------------------------- 1 | //********************************************************************* 2 | //xToolkit 3 | //Copyright(C) 2023 Xarial Pty Limited 4 | //Product URL: https://xtoolkit.xarial.com 5 | //License: https://xtoolkit.xarial.com/license/ 6 | //********************************************************************* 7 | 8 | using System; 9 | using System.Collections.Generic; 10 | using System.Linq; 11 | using System.Text; 12 | using System.Text.RegularExpressions; 13 | 14 | namespace Xarial.XToolkit 15 | { 16 | /// 17 | /// Provides utilities working with text 18 | /// 19 | public static class TextUtils 20 | { 21 | /// 22 | /// Checks if the specified text matches any of the provided filters 23 | /// 24 | /// Text to match 25 | /// Ignore the case 26 | /// Filters 27 | /// True if any of the fitler match the text 28 | /// This method supports wildcards *. If no filters specified this method returns true 29 | public static bool MatchesAnyFilter(string text, bool ignoreCase, params string[] filters) 30 | { 31 | if (filters?.Any() != true) 32 | { 33 | return true; 34 | } 35 | else 36 | { 37 | const string ANY_FILTER = "*"; 38 | 39 | var regexOpts = ignoreCase ? RegexOptions.IgnoreCase : RegexOptions.None; 40 | 41 | return filters.Any(f => 42 | { 43 | var regex = (f.StartsWith(ANY_FILTER) ? "" : "^") 44 | + Regex.Escape(f).Replace($"\\{ANY_FILTER}", ".*").Replace("\\?", ".") 45 | + (f.EndsWith(ANY_FILTER) ? "" : "$"); 46 | 47 | return Regex.IsMatch(text, regex, regexOpts); 48 | }); 49 | } 50 | } 51 | 52 | /// 53 | public static bool MatchesAnyFilter(string text, params string[] filters) 54 | => MatchesAnyFilter(text, true, filters); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /docfx/docs/updating_nuget_packages.md: -------------------------------------------------------------------------------- 1 | To fully utilize the latest features and bug fixes of the SDK, please make sure you are using the latest version of the BlueByte.PDMProfessional.SDK nuget package. 2 | 3 | >[!NOTE] 4 | > BlueByte.PDMProfessional.SDK targets .NET framework 4.6.1. For more information, check out the nuget package [page](https://www.nuget.org/packages/BlueByte.SOLIDWORKS.PDMProfessional.SDK). 5 | 6 | The latest version of the nuget is: [![NuGet version (BlueByte.SOLIDWORKS.PDMProfessional.SDK)](https://img.shields.io/nuget/v/BlueByte.SOLIDWORKS.PDMProfessional.SDK.svg?style=flat-square)](https://www.nuget.org/packages/BlueByte.SOLIDWORKS.PDMProfessional.SDK) 7 | 8 | # Using the Package Manager Console 9 | In Visual Studio: 10 | - Press Ctrl + Q. This is going to highlight the search box at the top of the window. 11 | - Type Nuget Package Manager Console and pick the first search result. 12 | - A new window will appear. Allow a couple of seconds for the package manager to initialize. 13 | - Type in the following command (and press enter): 14 | 15 | ```Update-Package BlueByte.SOLIDWORKS.PDMProfessional.SDK``` 16 | 17 | - The command above will install the package in the active project. If you have multiple projects and you need to specify the one that needs to update the SDK nuget pacakge, use the ```-project``` argument to specify the project name. Example: ```Update-Package BlueByte.SOLIDWORKS.PDMProfessional.SDK -project MyAddInProject``` 18 | 19 | - The Package Manager Console will report back that package has been installed successfully. 20 | 21 | # Using the Package Manager 22 | In Visual Studio, 23 | - Locate the add-in's project in the *Solution Explorer* 24 | - Right-click on the project and click *Manage Nuget Packages...* 25 | - The Package Manager window will open. Locate and select the BlueByte.SOLIDWORKS.PDMProfessional.SDK nuget package in the installed tab. 26 | - Depending on the version of the SDK template, you may be to update the package if there is a new version. If an update is available, select the nuget package. 27 | - The properties of the package will update on the right-side of the window and you are able to pick the latest available version from the version dropdown. 28 | 29 | 30 | -------------------------------------------------------------------------------- /docs/public/chunk-OZ2RCKQJ.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-EQFLFMNE.mjs"], 4 | "sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n MermaidGeneratedSharedModule,\n PacketGeneratedModule,\n __name\n} from \"./chunk-Y27MQZ3U.mjs\";\n\n// src/language/packet/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/packet/tokenBuilder.ts\nvar PacketTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"PacketTokenBuilder\");\n }\n constructor() {\n super([\"packet-beta\"]);\n }\n};\n\n// src/language/packet/module.ts\nvar PacketModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new PacketTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createPacketServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Packet = inject(\n createDefaultCoreModule({ shared }),\n PacketGeneratedModule,\n PacketModule\n );\n shared.ServiceRegistry.register(Packet);\n return { shared, Packet };\n}\n__name(createPacketServices, \"createPacketServices\");\n\nexport {\n PacketModule,\n createPacketServices\n};\n"], 5 | "mappings": "2GAiBA,IAAIA,EAAqB,cAAcC,CAA4B,CACjE,MAAO,CACLC,EAAO,KAAM,oBAAoB,CACnC,CACA,aAAc,CACZ,MAAM,CAAC,aAAa,CAAC,CACvB,CACF,EAGIC,EAAe,CACjB,OAAQ,CACN,aAA8BD,EAAO,IAAM,IAAIF,EAAsB,cAAc,EACnF,eAAgCE,EAAO,IAAM,IAAIE,EAAwB,gBAAgB,CAC3F,CACF,EACA,SAASC,EAAqBC,EAAUC,EAAiB,CACvD,IAAMC,EAASC,EACbC,EAA8BJ,CAAO,EACrCK,CACF,EACMC,EAASH,EACbI,EAAwB,CAAE,OAAAL,CAAO,CAAC,EAClCM,EACAX,CACF,EACA,OAAAK,EAAO,gBAAgB,SAASI,CAAM,EAC/B,CAAE,OAAAJ,EAAQ,OAAAI,CAAO,CAC1B,CACAV,EAAOG,EAAsB,sBAAsB", 6 | "names": ["PacketTokenBuilder", "AbstractMermaidTokenBuilder", "__name", "PacketModule", "CommonValueConverter", "createPacketServices", "context", "EmptyFileSystem", "shared", "inject", "createDefaultSharedCoreModule", "MermaidGeneratedSharedModule", "Packet", "createDefaultCoreModule", "PacketGeneratedModule"] 7 | } 8 | -------------------------------------------------------------------------------- /VSTemplate/SOLIDWORKSPDMAddInVBNET/AddIn.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.IO 3 | Imports System.Runtime.InteropServices 4 | Imports BlueByte.SOLIDWORKS.PDMProfessional.SDK 5 | Imports BlueByte.SOLIDWORKS.PDMProfessional.SDK.Attributes 6 | Imports BlueByte.SOLIDWORKS.PDMProfessional.SDK.Diagnostics 7 | Imports EPDM.Interop.epdm 8 | Imports SimpleInjector 9 | 10 | Namespace SOLIDWORKSPDMAddInVBNET 11 | Public Enum Commands 12 | CommandOne = 1000 13 | End Enum 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | Partial Public Class AddIn 25 | Inherits AddInBase 26 | 27 | Public Overrides Sub OnCmd(ByRef poCmd As EdmCmd, ByRef ppoData As EdmCmdData()) 28 | MyBase.OnCmd(poCmd, ppoData) 29 | Throw New NotImplementedException("This addin has no implementation") 30 | End Sub 31 | 32 | Protected Overrides Sub OnLoggerTypeChosen(ByVal defaultType As LoggerType_e) 33 | MyBase.OnLoggerTypeChosen(LoggerType_e.File) 34 | End Sub 35 | 36 | Protected Overrides Sub OnRegisterAdditionalTypes(ByVal container As Container) 37 | End Sub 38 | 39 | Protected Overrides Sub OnLoggerOutputSat(ByVal defaultDirectory As String) 40 | End Sub 41 | 42 | Protected Overrides Sub OnLoadAdditionalAssemblies(ByVal addinDirectory As DirectoryInfo) 43 | MyBase.OnLoadAdditionalAssemblies(addinDirectory) 44 | End Sub 45 | 46 | Protected Overrides Sub OnUnhandledExceptions(ByVal catchAllExceptions As Boolean, ByVal Optional logAction As Action(Of Exception) = Nothing) 47 | Me.CatchAllUnhandledException = False 48 | logAction = Sub(ByVal e As Exception) 49 | Throw New NotImplementedException() 50 | End Sub 51 | 52 | MyBase.OnUnhandledExceptions(catchAllExceptions, logAction) 53 | End Sub 54 | End Class 55 | End Namespace 56 | -------------------------------------------------------------------------------- /docfx/docs/TaskLaunch.md: -------------------------------------------------------------------------------- 1 | # Definition 2 | 3 | The task launch hook gets triggered when your task by launched. A task can be launched by one computer and executed (ran) on another one. It is very common for the executing computer to be the PDM server. 4 | 5 | Almost all of your task implementation in the OnCmd method will be handled by the TaskRun hook. 6 | 7 | 8 | 9 | >[!NOTE] 10 | >Use TaskLaunch to show any necessary UI to get the user input. 11 | 12 | # IEdmTaskInstance object 13 | 14 | You may need, depending on your OnCmd implementation, to access the task instance. 15 | 16 | In PDMSDK, use [Instance](../api/BlueByte.SOLIDWORKS.PDMProfessional.SDK.AddInBase.html#BlueByte_SOLIDWORKS_PDMProfessional_SDK_AddInBase_Instance) to get access to the IEdmTaskInstance object. This property returns a value in TaskLaunch, launch and, Details. 17 | 18 | 19 | # Cancellation and suspension 20 | 21 | 22 | You cannot suspend a task during its launch. 23 | 24 | You are able to cancel the task by means setting the mpoCancel field on the EdmCmd parameter just like you would do with any hook. 25 | 26 | # Transfering data from task launch to task run 27 | 28 | >[!IMPORTANT] 29 | >It is critical to understand that your add-in will invoked by two different processes one during TaskLaunch and one during TaskRun. Every process will have its own ID. 30 | 31 | When a task a launched, it is launched with TaskLauncher.exe and when it is run, it runs in the TaskExecuter.exe process. You can find out more about these processes by using the AttachDebugger method. 32 | 33 | 34 | This leaves data transfer from TaskLaunch to TaskRun only possible via the GetVarEx and SetVarEx methods part of the IEdmTaskInstance interface. 35 | 36 | 37 | 38 | 39 | # Getting saved data 40 | 41 | To get access to the data you have saved in the task setup, call the method [GetSettings](../api/BlueByte.SOLIDWORKS.PDMProfessional.SDK.AddInBase.html#BlueByte_SOLIDWORKS_PDMProfessional_SDK_AddInBase_GetSettings__1) where T is the view model type. Example: 42 | 43 | 44 | # [C Sharp](#tab/cs) 45 | ``` 46 | var messagingViewModel = base.GetSettings(); 47 | ``` 48 | # [VB](#tab/VB) 49 | ``` 50 | Dim messagingViewModel As MessagingViewModel = MyBase.GetSettings(Of MessagingViewModel)() 51 | ``` 52 | --- 53 | -------------------------------------------------------------------------------- /docs/public/chunk-UEFJDIUO.min.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-NCMFTTUW.mjs"], 4 | "sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n GitGraphGeneratedModule,\n MermaidGeneratedSharedModule,\n __name\n} from \"./chunk-Y27MQZ3U.mjs\";\n\n// src/language/gitGraph/module.ts\nimport {\n inject,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n EmptyFileSystem\n} from \"langium\";\n\n// src/language/gitGraph/tokenBuilder.ts\nvar GitGraphTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"GitGraphTokenBuilder\");\n }\n constructor() {\n super([\"gitGraph\"]);\n }\n};\n\n// src/language/gitGraph/module.ts\nvar GitGraphModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new GitGraphTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createGitGraphServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const GitGraph = inject(\n createDefaultCoreModule({ shared }),\n GitGraphGeneratedModule,\n GitGraphModule\n );\n shared.ServiceRegistry.register(GitGraph);\n return { shared, GitGraph };\n}\n__name(createGitGraphServices, \"createGitGraphServices\");\n\nexport {\n GitGraphModule,\n createGitGraphServices\n};\n"], 5 | "mappings": "2GAiBA,IAAIA,EAAuB,cAAcC,CAA4B,CACnE,MAAO,CACLC,EAAO,KAAM,sBAAsB,CACrC,CACA,aAAc,CACZ,MAAM,CAAC,UAAU,CAAC,CACpB,CACF,EAGIC,EAAiB,CACnB,OAAQ,CACN,aAA8BD,EAAO,IAAM,IAAIF,EAAwB,cAAc,EACrF,eAAgCE,EAAO,IAAM,IAAIE,EAAwB,gBAAgB,CAC3F,CACF,EACA,SAASC,EAAuBC,EAAUC,EAAiB,CACzD,IAAMC,EAASC,EACbC,EAA8BJ,CAAO,EACrCK,CACF,EACMC,EAAWH,EACfI,EAAwB,CAAE,OAAAL,CAAO,CAAC,EAClCM,EACAX,CACF,EACA,OAAAK,EAAO,gBAAgB,SAASI,CAAQ,EACjC,CAAE,OAAAJ,EAAQ,SAAAI,CAAS,CAC5B,CACAV,EAAOG,EAAwB,wBAAwB", 6 | "names": ["GitGraphTokenBuilder", "AbstractMermaidTokenBuilder", "__name", "GitGraphModule", "CommonValueConverter", "createGitGraphServices", "context", "EmptyFileSystem", "shared", "inject", "createDefaultSharedCoreModule", "MermaidGeneratedSharedModule", "GitGraph", "createDefaultCoreModule", "GitGraphGeneratedModule"] 7 | } 8 | -------------------------------------------------------------------------------- /VSTemplate/ProjectTemplateWizard/ProjectWizard.cs: -------------------------------------------------------------------------------- 1 | using EnvDTE; 2 | using Microsoft.VisualStudio.TemplateWizard; 3 | using System.Collections.Generic; 4 | using System.IO; 5 | 6 | namespace ProjectTemplateWizard 7 | { 8 | public class ProjectWizard : IWizard 9 | { 10 | public void BeforeOpeningFile(ProjectItem projectItem) 11 | { 12 | } 13 | 14 | public void ProjectFinishedGenerating(Project project) 15 | { 16 | } 17 | 18 | public void ProjectItemFinishedGenerating(ProjectItem projectItem) 19 | { 20 | } 21 | 22 | public void RunFinished() 23 | { 24 | } 25 | 26 | public void RunStarted(object automationObject, 27 | Dictionary replacementsDictionary, 28 | WizardRunKind runKind, 29 | object[] customParams) 30 | { 31 | var window = new WizardWindow(); 32 | 33 | if (window.ShowDialog() == true) 34 | { 35 | replacementsDictionary["$addinname$"] = window.AddInInfo.Name; 36 | replacementsDictionary["$addindescription$"] = window.AddInInfo.Description; 37 | replacementsDictionary["$addincompanyname$"] = window.AddInInfo.Company; 38 | replacementsDictionary["$addintask$"] = window.AddInInfo.IsTask.ToString().ToLower(); 39 | } 40 | else 41 | { 42 | // remove project folder as its creation was cancelled 43 | var destinationDirectory = replacementsDictionary["$destinationdirectory$"]; 44 | Directory.Delete(destinationDirectory, true); 45 | 46 | // remove solution directory if it is empty 47 | var solutionDirectory = replacementsDictionary["$solutiondirectory$"]; 48 | if (Directory.Exists(solutionDirectory) && 49 | Directory.GetDirectories(solutionDirectory).Length == 0 && Directory.GetFiles(solutionDirectory).Length == 0) 50 | { 51 | Directory.Delete(solutionDirectory); 52 | } 53 | 54 | throw new WizardBackoutException(); 55 | } 56 | } 57 | 58 | public bool ShouldAddProjectItem(string filePath) 59 | { 60 | return true; 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /docs/public/lunr.hy-FFQJAR7M.min.js: -------------------------------------------------------------------------------- 1 | import{a as o}from"./chunk-OSRY5VT3.min.js";var s=o((i,r)=>{(function(e,t){typeof define=="function"&&define.amd?define(t):typeof i=="object"?r.exports=t():t()(e.lunr)})(i,function(){return function(e){if(typeof e>"u")throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(typeof e.stemmerSupport>"u")throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hy=function(){this.pipeline.reset(),this.pipeline.add(e.hy.trimmer,e.hy.stopWordFilter)},e.hy.wordCharacters="[A-Za-z\u0530-\u058F\uFB00-\uFB4F]",e.hy.trimmer=e.trimmerSupport.generateTrimmer(e.hy.wordCharacters),e.Pipeline.registerFunction(e.hy.trimmer,"trimmer-hy"),e.hy.stopWordFilter=e.generateStopWordFilter("\u0564\u0578\u0582 \u0587 \u0565\u0584 \u0567\u056B\u0580 \u0567\u056B\u0584 \u0570\u0565\u057F\u0578 \u0576\u0561\u0587 \u0576\u0580\u0561\u0576\u0584 \u0578\u0580\u0568 \u057E\u0580\u0561 \u0567 \u0578\u0580 \u057A\u056B\u057F\u056B \u0565\u0576 \u0561\u0575\u057D \u0574\u0565\u057B \u0576 \u056B\u0580 \u0578\u0582 \u056B \u0561\u0575\u0564 \u0578\u0580\u0578\u0576\u0584 \u0561\u0575\u0576 \u056F\u0561\u0574 \u0567\u0580 \u0574\u056B \u0565\u057D \u0570\u0561\u0574\u0561\u0580 \u0561\u0575\u056C \u056B\u057D\u056F \u0567\u056B\u0576 \u0565\u0576\u0584 \u0570\u0565\u057F \u056B\u0576 \u0569 \u0567\u056B\u0576\u0584 \u0574\u0565\u0576\u0584 \u0576\u0580\u0561 \u0576\u0561 \u0564\u0578\u0582\u0584 \u0565\u0574 \u0567\u056B \u0568\u057D\u057F \u0578\u0580\u057A\u0565\u057D \u0578\u0582\u0574".split(" ")),e.Pipeline.registerFunction(e.hy.stopWordFilter,"stopWordFilter-hy"),e.hy.stemmer=function(){return function(t){return typeof t.update=="function"?t.update(function(n){return n}):t}}(),e.Pipeline.registerFunction(e.hy.stemmer,"stemmer-hy")}})});export default s(); 2 | /*! Bundled license information: 3 | 4 | lunr-languages/lunr.hy.js: 5 | (*! 6 | * Lunr languages, `Armenian` language 7 | * https://github.com/turbobit/lunr-languages 8 | * 9 | * Copyright 2021, Manikandan Venkatasubban 10 | * http://www.mozilla.org/MPL/ 11 | *) 12 | (*! 13 | * based on 14 | * Snowball JavaScript Library v0.3 15 | * http://code.google.com/p/urim/ 16 | * http://snowball.tartarus.org/ 17 | * 18 | * Copyright 2010, Oleg Mazko 19 | * http://www.mozilla.org/MPL/ 20 | *) 21 | */ 22 | //# sourceMappingURL=lunr.hy-FFQJAR7M.min.js.map 23 | --------------------------------------------------------------------------------