SOLIDWORKS Bridge
Public Made by Adomby adom
Launch, model and quit SOLIDWORKS from any Adom container. Nothing is ever lost.
SOLIDWORKS version compatibility
The bridge's first community user, Michael, filed issues #1 and #2. He runs
SOLIDWORKS 2021 (COM RevisionNumber 29.5.1, Windows 11). The bridge has
only ever run against 3DEXPERIENCE SOLIDWORKS 2026 (Makers, revision
34). This page says what that means. Every claim is marked:
- [audited] read from help.solidworks.com, with a link;
- [measured] seen on a real machine;
- [unmeasured] a reasoned expectation that nobody has run yet.
The answer
- [audited] Supported from SOLIDWORKS 2021. Every COM member the bridge calls
(165 rows below, covering
com.rs, the modelling DSL and the renderer) was looked up on help.solidworks.com. The newest is SOLIDWORKS 2017 (revision 25):IFeatureManager::FeatureCut4,ISldWorks::GetCurrentLicenseTypeandIModelDocExtension::SelectByRay(a fallback rung the bridge skips below 2017). Nothing is newer than 2021, so nothing needs a fallback on 2021. - [measured] Tested on SOLIDWORKS 2026, live. On 2026-10-14 the modelling
ops of issues #1 and #2 ran on SOLIDWORKS 2026 (major 34, 3DEXPERIENCE
"Connected") with bridge 0.10.3.
tools/dsl-live-check.pypassed 30 of 30 checks.swx_selftest {"level":"write"}passed 43, failed 0 and skipped 1. The LEGO brick matched Michael's 2021 numbers, face count included. See LIVE-RESULTS.md. - [measured, community] Tested on SOLIDWORKS 2021. On 2026-10-15 Michael ran
swx_selftest {"level":"write"}with bridge 0.10.9 on SOLIDWORKS 2021 (COM 29.5.1, classic desktop, Windows 11): every modelling check passed (T01-T22, T24-T32), and the LEGO brick came out identical to the 2026 numbers. The 6 failures were ONE bug, the only 2021 finding: the self-test addressed its scratch part by a title WITH the extension, and with Windows' "Hide extensions for known file types" ON (the Windows default) SOLIDWORKS titles it without one. Fixed in 0.10.10: titles compare extension-insensitively everywhere, and the bridge addresses its own documents by path. See LIVE-RESULTS.md. - Each
swx_run_scriptstep reportsproven: {live, measuredOn}.liveis true only when every variant the step ran was measured on the release it ran on. On 2021 that is the 32 variants the community run measured; the T33+ checks (0.10.4) have run on 2026 only. The variants and their measurements are one table,compat::OP_FACTS; each measurement saysby(adomorcommunity).swx_describeandswx_selftestreport the same table asliveMeasured. bridge.jsondeclares"solidworks": ">=2021". It said>=2024, which was untrue in both directions: it never stopped Michael installing, and nothing in the API needs 2024.swx_status.solidworksreports the version it reads at attach:majorVersion, for example 29;versionSupport, which holds{revision, majorVersion, year, supported, tested, supportedFrom: 2021, testedOn: [2026, 2021], lacks}.supportedandtestedare separate claims.
What breaks on 2021, and what the bridge does
| Area | On 2021 | What the bridge does |
|---|---|---|
| Every COM member called | All available (table below) | Calls them as on 2026 |
FeatureCut4 / FeatureFillet3 / FeatureLinearPattern4 / FeatureCircularPattern4 / FeatureExtrusion3 |
Available (2013–2017) | Version gate (requires): on a SOLIDWORKS older than the member, the step is refused needs_solidworks_version with the member's name, instead of a COM "unknown name" partway through a script. This never fires on 2021. |
Obsolete members (SelectByID, SaveAs3, LoadFile2, GraphicsRedraw2, CreateMassProperty, FeatureFillet3 for constant radius, FeatureLinearPattern4/5, FeatureCircularPattern4/5, Get4, AddComponent4, IDimension::SystemValue) |
Present: SOLIDWORKS keeps obsolete members callable | Kept, because these are the spellings proven live. The replacements are listed in the table. Each replacement is from 2004–2017, so all are on 2021 too. |
The 3DEXPERIENCE sign-in, platform shortcut, SWXDesktopUpdate, Visualize |
Do not exist on a classic install | The edition is desktop, so those paths are never taken. See the next section. |
Classic desktop vs 3DEXPERIENCE (Connected)
| 3DEXPERIENCE SOLIDWORKS (2026, measured) | Classic desktop (2021: a community self-test run, 2026-10-15; rows marked [unmeasured] still are) | |
|---|---|---|
| How it is detected | An install path or registry entry naming 3DEXPERIENCE, or the 3DEXPERIENCE Launcher | An install path under SOLIDWORKS Corp, OR a registry key HKLM\SOFTWARE\SolidWorks\SOLIDWORKS <year> with an exe found and no 3DEXPERIENCE marker. The exe is also looked up from ...\SOLIDWORKS <year>\Setup value SolidWorks Folder [unmeasured]. swx_status.solidworks.registryYears lists every SOLIDWORKS <year> key. That is a fact about the registry, not the edition: the 3DEXPERIENCE 2026 install writes SOLIDWORKS 2026 too (measured 2026-10-13). classicYears lists only the years with no 3DEXPERIENCE entry or install path for the same release; on Drew's 2026 machine that is []. |
edition / launchRoute |
connected / platformShortcut |
desktop / com |
| Launch | The Platform's own shortcut (CATSTART, then SWXDesktopLauncher), never the exe | CoCreateInstance("SldWorks.Application"), which starts SLDWORKS.exe itself. With several releases installed, set SWX_PROGID=SldWorks.Application.29 to pick 2021 [unmeasured]. |
| Sign-in | 3DEXPERIENCE ID (three measured hosts) | None. The licence is standalone or SolidNetWork; the bridge never sees a licence prompt and never answers one. |
| Add-ins | The 3DEXPERIENCE add-in; readiness waits for its marker | No platform add-in. Readiness falls back to StartupProcessCompleted (2015) and the performance-log markers [unmeasured]. |
| Templates | Resolved from the user's settings (GetDocumentTemplate, 2001Plus SP4) |
The same call [unmeasured]. |
| Visualize | A separate app started through its platform shortcut | Not part of a classic install. swx_start {app:"visualize"} reports visualize_shortcut_missing. |
Every COM member the bridge calls
Generated from the calls in src/comhost/com.rs and src/render.rs. The
Availability text comes from each member's help page (the 2024 help, which
records the first release). "—" means the page has no Availability line. Those
are original-API members older than any line the help records. "2021?" means
available in SOLIDWORKS 2021.
| Member | Availability | 2021? | Obsolete → replacement | Source |
|---|---|---|---|---|
ISldWorks::ActivateDoc3 |
2012 FCS, Revision Number 20.0 | yes | help | |
IConfigurationManager::ActiveConfiguration |
2005 FCS, Revision Number 13.0 | yes | help | |
ISldWorks::ActiveDoc |
— (no Availability line: an original-API member) | yes | help | |
IModelDoc2::ActiveView |
2001Plus FCS, Revision Number 10.0 | yes | help | |
ICustomPropertyManager::Add3 |
2014 FCS, Revision Number 22.0 | yes | help | |
IMassProperty::AddBodies |
2003 SP2, Revision Number 11.2 | yes | help | |
IAssemblyDoc::AddComponent |
— (no Availability line: an original-API member) | yes | obsolete → IAssemblyDoc::AddComponent4 | help |
IAssemblyDoc::AddComponent3 |
does not exist on IAssemblyDoc (only the multi-insert AddComponents3); the last spelling in the insert fallback chain, never reached while AddComponent5 answers |
yes | — | |
IAssemblyDoc::AddComponent4 |
2003 SP5, Revision Number 11.5 | yes | obsolete → IAssemblyDoc::AddComponent5 | help |
IAssemblyDoc::AddComponent5 |
2010 FCS, Revision Number 18.0 | yes | help | |
ISketchManager::AddToDB |
2008 FCS, Revision Number 16.0 | yes | help | |
IMassProperty::CenterOfMass |
2003 SP2, Revision Number 11.2 | yes | help | |
IModelDoc2::ClearSelection2 |
2001Plus FCS, Revision Number 10.0 | yes | help | |
ISldWorks::CloseAllDocuments |
2006 SP2, Revision Number 14.2 | yes | help | |
ISldWorks::CloseDoc |
— (no Availability line: an original-API member) | yes | help | |
ISldWorks::CommandInProgress |
2006 SP2, Revision Number 14.2 | yes | help | |
IInterference::Components |
2007 FCS, Revision Number 15 | yes | help | |
IModelDoc2::ConfigurationManager |
2003 FCS, Revision Number 11.0 | yes | help | |
ISketchSegment::ConstructionGeometry |
not verified (0.11.0) | not verified | help | |
ISketchManager::CreateArc |
2008 FCS, Revision Number 16.0 | yes | help | |
ISketchManager::CreateCenterLine |
2008 FCS, Revision Number 16.0 | yes | help | |
ISketchManager::CreateCircle |
2008 FCS, Revision Number 16.0 | yes | help | |
ISketchManager::CreateCircleByRadius |
2008 FCS, Revision Number 16.0 | yes | help | |
ISketchManager::CreateCornerRectangle |
2008 FCS, Revision Number 16.0 | yes | help | |
ISketchManager::CreateLine |
2008 FCS, Revision Number 16.0 | yes | help | |
IModelDocExtension::CreateMassProperty |
2003 SP2, Revision Number 11.2 | yes | obsolete → IModelDocExtension::CreateMassProperty2 | help |
ISelectionMgr::CreateSelectData |
2004 FCS, Revision Number 12 | yes | help | |
IMathUtility::CreateTransform |
2001 FCS, Revision Number 9.0 | yes | help | |
IModelDocExtension::CustomPropertyManager |
2007 FCS, Revision Number 15.0 | yes | help | |
IModelDocExtension::DeleteSelection2 |
2006 SP1, Revision Number 14.1 | yes | help | |
IMassProperty::Density |
2003 SP2, Revision Number 11.2 | yes | help | |
IModelView::DisplayMode |
2004 SP1, Revision Number 12.1 | yes | help | |
ISldWorks::DocumentVisible |
— (no Availability line: an original-API member) | yes | help | |
IInterferenceDetectionMgr::Done |
2007 FCS, Revision Number 15.0 | yes | help | |
IModelDoc2::EditDelete |
2001Plus FCS, Revision Number 10.0; the offset segments on the wrong side, deleted (0.11.4) | yes | help | |
IModelDoc2::EditRebuild3 |
2001Plus FCS, Revision Number 10.0 | yes | help | |
ISelectionMgr::EnableContourSelection |
2003 FCS, Revision Number 11.0; on for a sketch-region pick, put back as it was (0.11.4) | yes | help | |
IEquationMgr::Equation |
2001Plus FCS, Revision Number 10.0 | yes | help | |
ICurve::Evaluate2 |
2007 SP5, Revision Number 15.5 | yes | help | |
ISurface::EvaluateAtPoint |
— (no Availability line: an original-API member) | yes | help | |
ISldWorks::ExitApp |
— (no Availability line: an original-API member) | yes | help | |
IModelDoc2::Extension |
2003 FCS, Revision Number 11.0 | yes | help | |
IFace2::FaceInSurfaceSense |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IFeatureManager::FeatureCircularPattern4 |
2013 FCS, Revision Number 21.0 | yes | obsolete → IFeatureManager::FeatureCircularPattern5 | help |
IFeatureManager::FeatureCut4 |
2017 FCS, Revision Number 25.0 | yes | help | |
IFeatureManager::FeatureExtrusion3 |
2014 FCS, Revision Number 22.0 | yes | help | |
IFeatureManager::FeatureFillet3 |
2015 FCS, Revision Number 23.0 | yes | obsolete → IFeatureManager::CreateDefinition/CreateFeature + ISimpleFilletFeatureData2 / IPartialEdgeFilletData | help |
IFeatureManager::FeatureLinearPattern4 |
2015 FCS, Revision Number 23.0 | yes | obsolete → IFeatureManager::FeatureLinearPattern5 | help |
IModelDoc2::FeatureManager |
2003 FCS, Revision Number 11.0 | yes | help | |
IFeatureManager::FeatureRevolve2 |
2011 FCS, Revision Number 19.0 | yes | FeatureRevolveCut2 is obsolete → FeatureRevolve2 with IsCut | help |
IModelDoc2::FirstFeature |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IAssemblyDoc::FixComponent |
— (no Availability line: an original-API member) | yes | help | |
IModelDoc2::ForceRebuild3 |
2001Plus FCS, Revision Number 10.0 | yes | help | |
ISldWorks::Frame |
— (no Availability line: an original-API member) | yes | help | |
ICustomPropertyManager::Get4 |
2011 SP4, Revision Number 19.4 | yes | obsolete → ICustomPropertyManager::Get5 | help |
IPartDoc::GetBodies2 |
2003 FCS, Revision Number 11.0 | yes | help | |
IBody2::GetBodyBox |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IEdge::GetClosestPointOn |
— (no Availability line: an original-API member) | yes | help | |
IFace2::GetClosestPointOn |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IAssemblyDoc::GetComponentCount |
2006 FCS, Revision Number 14 | yes | help | |
IAssemblyDoc::GetComponents |
2006 FCS, Revision Number 14 | yes | help | |
IModelDoc2::GetConfigurationNames |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IEquationMgr::GetCount |
99, datecode 1999207 | yes | help | |
ISldWorks::GetCurrentLicenseType |
2017 FCS, Revision Number 25.0 | yes | help | |
IEdge::GetCurve |
— (no Availability line: an original-API member) | yes | help | |
IEdge::GetCurveParams2 |
2000 FCS, Revision Number 8.0 | yes | help | |
ISldWorks::GetDocumentCount |
2009 FCS, Revision Number 17.0 | yes | help | |
ISldWorks::GetDocuments |
2009 FCS, Revision Number 17.0 | yes | help | |
IPackAndGo::GetDocumentSaveToNames |
2011 FCS, Revision Number 19.0 | yes | help | |
ISldWorks::GetDocumentTemplate |
2001Plus SP4, Revision Number 10.4 | yes | help | |
IFace2::GetEdges |
2001Plus FCS, Revision Number 10.0 | yes | help | |
ILoop2::GetEdges |
2001Plus FCS, Revision Number 10.0; the outer loop's edges, for Offset Entities (0.11.4) | yes | help | |
ISketchArc::GetEndPoint2 |
2000 FCS, Revision Number 8.0; an offset segment's end, for the side check (0.11.4) | yes | help | |
ISketchLine::GetEndPoint2 |
2000 FCS, Revision Number 8.0; as above | yes | help | |
IModelDoc2::GetEquationMgr |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IFeature::GetErrorCode |
2001Plus FCS, Revision Number 10 | yes | help | |
ISldWorks::GetExecutablePath |
2003 SP3, Revision Number 11.3 | yes | help | |
IBody2::GetFaceCount |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IFeature::GetFaces |
— (no Availability line: an original-API member) | yes | help | |
ISldWorks::GetFirstDocument |
98Plus, datecode 1998319 | yes | help | |
IFrame::GetHWnd |
2001Plus FCS, Revision Number 10.0 | yes | help | |
ISldWorks::GetImportFileData |
2005 SP3, Revision Number 13.3 | yes | help | |
IInterferenceDetectionMgr::GetInterferenceCount |
2007 FCS, Revision Number 15.0 | yes | help | |
IInterferenceDetectionMgr::GetInterferences |
2007 FCS, Revision Number 15.0 | yes | help | |
IFace2::GetLoops |
2009 FCS, Revision Number 17.0; the face's loops, for Offset Entities (0.11.4) | yes | help | |
IBody2::GetMassProperties |
2001Plus FCS Revision Number 10.0 | yes | help | |
IPartDoc::GetMaterialPropertyName2 |
2005 FCS, Revision Number 13.0 | yes | help | |
ISldWorks::GetMathUtility |
2001 FCS, Revision Number 9.0 | yes | help | |
IComponent2::GetModelDoc2 |
2009 FCS, Revision Number 17.0 | yes | help | |
ISketchSegment::GetName |
not verified (0.11.0) | not verified | help | |
ICustomPropertyManager::GetNames |
2004 FCS, Revision number 12.0 | yes | help | |
IModelDoc2::GetNext |
2001Plus FCS, Revision Number 10 | yes | help | |
IFeature::GetNextFeature |
— (no Availability line: an original-API member) | yes | help | |
ISldWorks::GetOpenDocumentByName |
2000 FCS, Revision Number 8.0 | yes | help | |
IModelDocExtension::GetPackAndGo |
2011 FCS, Revision Number 19.0 | yes | help | |
IPartDoc::GetPartBox |
— (no Availability line: an original-API member) | yes | help | |
IComponent2::GetPathName |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IModelDoc2::GetPathName |
2001Plus FCS, Revision Number 10.0 | yes | help | |
ISldWorks::GetProcessID |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IModelDoc2::GetSaveFlag |
2001Plus FCS, Revision Number 10.0 | yes | help | |
ISelectionMgr::GetSelectedObject6 |
2006 FCS, Revision Number 14 | yes | help | |
ISelectionMgr::GetSelectedObjectCount2 |
2006 FCS, Revision Number 14.0 | yes | help | |
ISketch::GetSketchSegments |
SOLIDWORKS 99, datecode 1999207; what Offset Entities added to the sketch (0.11.4) | yes | help | |
ISketchArc::GetStartPoint2 |
2000 FCS, Revision Number 8.0; as GetEndPoint2 | yes | help | |
ISketchLine::GetStartPoint2 |
2000 FCS, Revision Number 8.0; as GetEndPoint2 | yes | help | |
IComponent2::GetSuppression |
2001Plus FCS, Revision Number 10.0 | yes | obsolete → IComponent2::GetSuppression2 | help |
IFace2::GetSurface |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IModelDoc2::GetTitle |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IEdge::GetTwoAdjacentFaces2 |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IModelDoc2::GetType |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IFeature::GetTypeName2 |
2008 FCS, Revision Number 16.0 | yes | help | |
IModelDocExtension::GetUserPreferenceDouble |
not verified (0.11.0) | not verified | help | |
IModelDocExtension::GetUserPreferenceInteger |
2009 FCS, Revision Number 17.0 | yes | help | |
ISldWorks::GetUserPreferenceIntegerValue |
— (no Availability line: an original-API member) | yes | help | |
ISldWorks::GetUserPreferenceStringValue |
2000 FCS, Revision Number 8.0 | yes | help | |
ISldWorks::GetUserPreferenceToggle |
— (no Availability line: an original-API member) | yes | help | |
IModelDocExtension::GetWhatsWrongCount |
2009 SP3, Revision Number 17.3 | yes | help | |
IModelDoc2::GraphicsRedraw2 |
2001Plus FCS, Revision Number 10.0 | yes | obsolete → IModelView::GraphicsRedraw | help |
IModelView::HasPerspective |
— (no Availability line: an original-API member) | yes | help | |
IPackAndGo::IncludeDrawings |
2011 FCS, Revision Number 19.0 | yes | help | |
IModelDoc2::InsertAxis2 |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IFeatureManager::InsertFeatureChamfer |
2005 FCS, Revision Number 13.0 | yes | help | |
IModelDoc2::InsertFeatureShell |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IFeatureManager::InsertMirrorFeature |
— (obsolete; used only when swFeatureScope_e cannot be read from the interop) | yes | obsolete → InsertMirrorFeature2 | help |
IFeatureManager::InsertMirrorFeature2 |
2008 FCS, Revision Number 16.0 | yes | help | |
IFeatureManager::InsertRefPlane |
2010 FCS, Revision Number 18.0 | yes | help | |
IModelDoc2::InsertSketch |
— (no Availability line: an original-API member) | yes | obsolete → ISketchManager::InsertSketch | help |
ISketchManager::InsertSketch |
2007 FCS, Revision Number 15.0 | yes | help | |
IAssemblyDoc::InterferenceDetectionManager |
2007 FCS, Revision Number 15 | yes | help | |
ILoop2::IsOuter |
2001Plus FCS, Revision Number 10.0; which loop is the outer one (0.11.4) | yes | help | |
ISldWorks::LoadFile2 |
— (no Availability line: an original-API member) | yes | obsolete → ISldWorks::LoadFile4 | help |
ISldWorks::LoadFile4 |
2006 SP1, Revision Number 14.1 | yes | help | |
IInterferenceDetectionMgr::MakeInterferingPartsTransparent |
2007 FCS, Revision Number 15.0 | yes | help | |
ISelectData::Mark |
2004 FCS, Revision Number 12 | yes | help | |
IMassProperty::Mass |
2003 SP2, Revision Number 11.2 | yes | help | |
IModelDocExtension::MultiSelect2 |
2012 SP04, Revision Number 20.4 | yes | help | |
IBody2::Name |
2005 FCS, Revision Number 13 | yes | help | |
IConfiguration::Name |
— (no Availability line: an original-API member) | yes | help | |
IFeature::Name |
— (no Availability line: an original-API member) | yes | help | |
IComponent2::Name2 |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IModelDocExtension::NeedsRebuild2 |
2012 FCS, Revision Number 20.0 | yes | help | |
ISldWorks::NewDocument |
2000 FCS, Revision Number 8.0 | yes | help | |
IFace2::Normal |
2001Plus FCS, Revision Number 10.0 | yes | help | |
ISldWorks::OpenDoc6 |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IModelView::Orientation3 |
2001Plus SP2, Revision Number 10.2 | yes | help | |
IModelDoc2::Parameter |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IComponent2::ReferencedConfiguration |
2001Plus FCS, Revision Number 10.0 | yes | help | |
ISldWorks::RevisionNumber |
— (no Availability line: an original-API member) | yes | help | |
ISldWorks::RunCommand |
2008 FCS, Revision Number 16.0 | yes | help | |
ISldWorks::RunMacro2 |
2009 FCS, Revision Number 17.0 | yes | help | |
IModelDoc2::Save3 |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IModelDoc2::SaveAs3 |
— (no Availability line: an original-API member) | yes | obsolete → IModelDocExtension::SaveAs3 (chain: SaveAs3 -> IModelDocExtension::SaveAs -> SaveAs2 -> SaveAs3) | help |
IModelDoc2::SaveBMP |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IModelDocExtension::SavePackAndGo |
2011 FCS, Revision Number 19.0 | yes | help | |
IModelView::Scale2 |
99, datecode 1999207 | yes | help | |
IBody2::Select2 |
not verified (0.11.0): a body selected for a mirror (mark 256) | not verified | help | |
IFeature::Select2 |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IEntity::Select4 |
2004 FCS, Revision Number 12.0 | yes | help | |
ISketchSegment::Select4 |
not verified (0.11.0): the revolve axis's fallback selection | not verified | help | |
IModelDoc2::SelectByID |
— (no Availability line: an original-API member) | yes | obsolete → IModelDocExtension::SelectByID2 | help |
IModelDocExtension::SelectByID2 |
2005 FCS, Revision Number 13.0 | yes | help | |
IModelDocExtension::SelectByRay |
2017 FCS, Revision Number 25.0 | yes | help | |
IModelDoc2::SelectionManager |
2001Plus FCS, Revision Number 10 | yes | help | |
IPartDoc::SetMaterialPropertyName2 |
2005 FCS, Revision Number 13.0 | yes | help | |
IPackAndGo::SetSaveToName |
2011 FCS, Revision Number 19.0 | yes | help | |
IModelDocExtension::SetUserPreferenceDouble |
not verified (0.11.0): swMaterialPropertyDensity, read from the interop | not verified | help | |
IModelDocExtension::SetUserPreferenceInteger |
2009 FCS, Revision Number 17.0 | yes | help | |
ISldWorks::SetUserPreferenceIntegerValue |
— (no Availability line: an original-API member) | yes | help | |
ISldWorks::SetUserPreferenceToggle |
— (no Availability line: an original-API member) | yes | help | |
IModelDoc2::ShowNamedView2 |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IModelDoc2::SketchManager |
2005 FCS, Revision Number 13.0 | yes | help | |
IModelDoc2::SketchOffsetEntities2 |
2001Plus FCS, Revision Number 10.0; Offset Entities of a face or its outer loop (0.11.4); its sign does not decide the side, so the bridge checks it | yes | help | |
ISldWorks::StartupProcessCompleted |
2015 FCS, Revision Number 23.0 | yes | help | |
IMassProperty::SurfaceArea |
2003 SP2, Revision Number 11.2 | yes | help | |
IDimension::SystemValue |
— (no Availability line: an original-API member) | yes | obsolete → IDimension::GetSystemValue3 | help |
IComponent2::Transform2 |
2003 FCS, Revision Number 11.0 | yes | help | |
IModelView::Translation3 |
2001Plus SP2, Revision Number 10.2 | yes | help | |
IInterferenceDetectionMgr::TreatCoincidenceAsInterference |
2007 FCS, Revision Number 15.0 | yes | help | |
ISldWorks::UserControl |
— (no Availability line: an original-API member) | yes | help | |
ISldWorks::UserControlBackground |
2005 FCS, Revision Number 13.0 | yes | help | |
IMassProperty::UseSystemUnits |
2003 SP2, Revision Number 11.2 | yes | help | |
IInterferenceDetectionMgr::UseTransform |
2015 FCS, Revision Number 23.0 | yes | help | |
IEquationMgr::Value |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IModelDocExtension::ViewDisplayRealView |
2005 FCS, Revision Number 13.0 | yes | help | |
IModelDoc2::ViewZoomtofit2 |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IBody2::Visible |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IModelDoc2::Visible |
2001Plus FCS, Revision Number 10.0 | yes | help | |
IMassProperty::Volume |
2003 SP2, Revision Number 11.2 | yes | help | |
ISketchPoint::X |
SOLIDWORKS 99, datecode 1999207; with Y and Z: a sketch point, in sketch space (0.11.4) | yes | help |
Enum values the DSL passes are read from the published swconst pages (cited
in com.rs):
swEndConditions_e: Blind 0, ThroughAll 1, UpToSurface 4, OffsetFromSurface 5, MidPlane 6, ThroughAllBoth 9, UpToNext 11 (0.11.4; measured 2026-10-16: the help's UpToSelection 10 with the face at mark 1 built with an EMPTY direction box and stopped at the next face on 2026, for a boss and for a cut; 4, the id the macro recorder writes, is what the bridge sends).Ddir1TRUE drafts OUTWARD on 2026 (the help says inward); the bridge passesoutwardas is.ISketchManager::CreateArcDirection: +1 counter-clockwise, −1 clockwise (ashort).InsertMirrorFeature2marks: features 1, plane or planar face 2, bodies 256.FeatureRevolve2marks: sketch 0, axis 4 (the bridge tries 16 when 4 builds nothing).- A sketch REGION (0.11.4) is selected the way SOLIDWORKS' own "Enable Contour Selection Example" does it:
ISelectionMgr::EnableContourSelection = true, thenSelectByID2(<sketch name>, "SKETCHREGION", x, y, z, Append true, MARK 4, null, 0)at a model point inside the region, then the feature, then contour selection put back. IModelDoc2::SketchOffsetEntities2(Offset metres, BothDirections, Chain)(0.11.4) takes "an edge, loop, face, external sketch curve, external sketch contour, set of edges, or set of external sketch curves"; its sign does not fix the side (a forum report: −0.01 landed inside on one face, outside on another), so the bridge reads where the new segments landed and redoes it with the other sign once.swFeatureScope_eandswUserPreferenceDoubleValue_e.swMaterialPropertyDensityare NOT on the help pages with numbers: they are read from the installedSolidWorks.Interop.swconst.dllby reflection, never guessed.swRefPlaneReferenceConstraints_e: Distance 8, OptionFlip 256.swFeatureFilletOptions_e: Propagate 1, UniformRadius 2.swFeatureFilletType_e: Simple 0.swChamferType_e: AngleDistance 1.swFeatureChamferOption_e: TangentPropagation 4.
All are unchanged since well before 2021.
How to test a release we do not have: swx_selftest
We have no 2021 machine. swx_selftest is how Michael, or anyone, sends back
one JSON that says, verb by verb, what works on their install:
swx_selftest {} # level "read": changes nothing
swx_selftest {"level": "write"} # also builds, reads back, exports, saves and closes a scratch part
swx_selftest {"level": "cswa"} # builds the CSWA benchmark parts and checks their mass against the published keys
readruns these and changes nothing:swx_status, including the version facts above;swx_readiness,swx_docsandswx_get_preferences;- the read verbs on whatever document is active: document info, design info, parameters, properties and mass properties, plus bodies for a part or a BOM for an assembly.
write(0.10.2) is a geometric proof, not just a success check. It runs the same 32 checks astools/dsl-live-check.py. Each check builds its own scratch part (never a user document), MEASURES it withswx_inspect_bodies/swx_mass_properties, and compares the measurement with geometry computed in the self-test itself from closed-form formulas and the documented conventions. Each row carriesexpected,measuredandfails, and the check then closes what it made. The checks cover:- the conventions: the corner anchor, Top Plane +y = model −Z, a centred anchor;
- sketches on a +10 mm and a −5 mm offset plane, on the top face, and on the hidden BOTTOM face, which must extrude OUTWARD;
- a default cut into empty space, which must FAIL loudly; reverse and through-all cuts; an asymmetric two-way cut;
- both-direction and mid-plane extents;
- a ring and two bodies from one sketch;
- appearance on the part and on a face;
- an appearance followed by a material (the colour must survive);
- a fillet of every edge (both a box and a cylinder);
- a chamfer of one edge;
- shells removing the top and the bottom face;
- linear patterns with positive and negative spacing, and a circular pattern;
- an op between a sketch and its extrude;
- issue #2's density and mass;
- the LEGO brick.
Then, on one part made with
swx_new_document, it checks issue #2's ownership (scripted by path), sets a dimension, exports a STEP copy, saves, closes it, and re-activates the document that was active before.only: ["T25", …]runs a subset of the checks.
Each verb row is {name, verb, pass, ms, errorCode, error, hostError}; each
geometry row adds expected, measured and fails. The
summary gives passed, failed and skipped counts. Every sub-call goes through
the normal dispatcher, readiness gate included. The self-test is itself exempt
from the gate, so a check held at the gate is reported, not hidden.
Run it with SOLIDWORKS started. With SOLIDWORKS closed (measured
2026-10-13), only swx_status and swx_readiness can run:
- every check that needs SOLIDWORKS is
skipped, with the reason, and is never counted as a failure; - the summary carries
solidworksRunning: false; - the
_hintbegins "Start SOLIDWORKS (swx_start, or by hand) and run this again".
level:"write" with SOLIDWORKS closed is refused up front
(solidworks_not_running) and changes nothing.
Live validation: the CSWA benchmark (0.11.0)
Every release can be checked against EXAM PARTS with published answers, not only against the
bridge's own closed-form checks. The specs live in resources/cswa/ (shipped in the zip); the
schema and rules are in tools/cswa/README.md.
swx_selftest {"level":"cswa"}on any install: one row per part, and the summary"N of M CSWA parts within tolerance". On a release we have not run, this is the most direct evidence that a modelled part weighs what SOLIDWORKS says it should.tools/cswa-check.pyfrom a dev container writescswa-report.json.tools/release.sh --require-live <report.json> --publishrefuses to publish without a report from THIS version that passed every part and is newer than the last code commit; since 0.11.4 a bare--publishis refused too (only--docs-only, for a release that changes no code, skips the gate).- The live run tests the very bytes that ship (the canary).
tools/release.sh --canarypublishes the build as the release candidate<version>-rc<N>, withmanifests/canary.jsonnaming it. Only the test machine installs it, by hand:bridge_install {manifestUrl: .../manifests/canary.json}.cswa-checkrecords the installed exe's sha256 (read back through ab'sread_file), and--require-livepublishes that zip unchanged, only when the report ran its exe. The canary never pins the machine. ab resolves a bridge's update URL from the bridge's ownbridge.jsonupdateManifestUrlfirst, before the URL it was installed from (adom-bridge help bridge_check_updates). Every zip declares the MAIN manifest there, and the canary file does too. Since the release has the canary's version, the machine runs the published bytes as they are; the next release reaches it like any other.
The first live run (2026-10-15, bridge 0.11.2, SOLIDWORKS 2026: 8 of 8 within 0.0015 % of their keys)
measured the lines and arcs of a contour, the face-offset plane, the plain hole and the density
(docs/LIVE-RESULTS.md). Still NOT MEASURED on any release, each step using them reporting
proven.live:false: revolve and revolve-cut, mirror, the counterbored and countersunk hole, the
up-to end conditions, draft, construction geometry, and 0.11.4's Offset Entities and sketch regions.
The community specs cswa-09 to cswa-12 and the Step 4 pair cswa-08 / cswa-08b build every one
of them, so the next live run measures them.
What is still unmeasured on 2021
The classic launch route (
CoCreateInstance) and theSetup\SolidWorks Folderlookup.The readiness signals without the 3DEXPERIENCE add-in.
Every op added in 0.10.0: offset and face sketches, multi-profile sketches, cut direction, both-direction and mid-plane extents, fillet, chamfer, shell, the patterns and appearance. An independent review (2026-10-13) checked every COM call against the 2021 API help: the signatures, argument counts, units and enum values are right. 0.10.2 fixed the BEHAVIOURAL risks it found:
- picks through the view, now geometric;
- a face's normal sign, now followed;
- duplicate edges toggling themselves off, now de-duplicated;
- a material wiping the colour, now re-applied;
- the pinned document not activated, now activated;
- a negative offset plane's and an axis's orientation, now read back.
On 2026 they are now MEASURED (LIVE-RESULTS.md). On 2021 they are not, and each step's
proven.livesaysfalsethere.Eight more variants were measured on 2026 later the same day, with bridge 0.10.4 (LIVE-RESULTS.md):
- a reversed boss;
- a boss through all, one way;
- Right Plane's axes;
- sketches on the +X and −Z side faces;
- a plane offset from Front Plane;
- a two-direction linear pattern;
- an outward shell.
Some variants have not been measured on any release yet. Steps that use them report
proven.live:falseand name them underunmeasured:- through all with
direction:"both"on a boss; - a sketch on a named plane, on a plane offset from Right Plane or from a named plane, on a negative offset from Front Plane, or on a face facing −X or +Z;
- a linear pattern along Y or Z alone, and a circular pattern about X or Z;
- a chamfer on all of a feature's edges;
- a colour on one body of a multi-body part;
- the later rungs of the selection ladder;
- the CreateDefinition fillet fallback.
SELECTION after a geometric pick (0.10.3). On SOLIDWORKS 2026
MultiSelect2with a VARIANT array selected nothing. This was measured, and it broke face sketches, fillet, chamfer and shell. The bridge now climbs a verified ladder: a typed-arrayMultiSelect2, thenIEntity::Select4, thenSelectByRay(2017+) with its own ray, thenSelectByID2at the point. Each step'sselectedViasays which rung worked. Which rung works on 2021 is unmeasured.SelectByRayis skipped below 2017.
swx_selftest {"level":"write"} on a 2021 machine answers every one of them
with MEASURED geometry in one reply. A pass there is a proof, not a "the call
returned".
# SOLIDWORKS version compatibility
The bridge's first community user, Michael, filed issues #1 and #2. He runs
**SOLIDWORKS 2021** (COM `RevisionNumber` 29.5.1, Windows 11). The bridge has
only ever **run** against **3DEXPERIENCE SOLIDWORKS 2026** (Makers, revision
34). This page says what that means. Every claim is marked:
- **[audited]** read from help.solidworks.com, with a link;
- **[measured]** seen on a real machine;
- **[unmeasured]** a reasoned expectation that nobody has run yet.
## The answer
- **[audited] Supported from SOLIDWORKS 2021.** Every COM member the bridge calls
(165 rows below, covering `com.rs`, the modelling DSL and the renderer) was
looked up on help.solidworks.com. The newest is **SOLIDWORKS 2017 (revision
25)**: `IFeatureManager::FeatureCut4`, `ISldWorks::GetCurrentLicenseType` and
`IModelDocExtension::SelectByRay` (a fallback rung the bridge skips below 2017).
Nothing is newer than 2021, so nothing needs a fallback on 2021.
- **[measured] Tested on SOLIDWORKS 2026, live.** On 2026-10-14 the modelling
ops of issues #1 and #2 ran on SOLIDWORKS 2026 (major 34, 3DEXPERIENCE
"Connected") with bridge 0.10.3. `tools/dsl-live-check.py` passed 30 of 30
checks. `swx_selftest {"level":"write"}` passed 43, failed 0 and skipped 1.
The LEGO brick matched Michael's 2021 numbers, face count included. See
[LIVE-RESULTS.md](LIVE-RESULTS.md).
- **[measured, community] Tested on SOLIDWORKS 2021.** On 2026-10-15 Michael ran
`swx_selftest {"level":"write"}` with bridge 0.10.9 on SOLIDWORKS 2021 (COM
29.5.1, classic desktop, Windows 11): every modelling check passed (T01-T22,
T24-T32), and the LEGO brick came out identical to the 2026 numbers. The 6
failures were ONE bug, the only 2021 finding: the self-test addressed its
scratch part by a title WITH the extension, and with Windows' "Hide extensions
for known file types" ON (the Windows default) SOLIDWORKS titles it without
one. Fixed in 0.10.10: titles compare extension-insensitively everywhere, and
the bridge addresses its own documents by path. See
[LIVE-RESULTS.md](LIVE-RESULTS.md#solidworks-2021-community).
- Each `swx_run_script` step reports `proven: {live, measuredOn}`. `live` is
true only when every variant the step ran was measured on the release it ran
on. On 2021 that is the 32 variants the community run measured; the T33+
checks (0.10.4) have run on 2026 only. The variants and their measurements are
one table, `compat::OP_FACTS`; each measurement says `by` (`adom` or
`community`). `swx_describe` and `swx_selftest` report the same table as
`liveMeasured`.
- `bridge.json` declares `"solidworks": ">=2021"`. It said `>=2024`, which was
untrue in both directions: it never stopped Michael installing, and nothing in
the API needs 2024.
- `swx_status.solidworks` reports the version it reads at attach:
- `majorVersion`, for example 29;
- `versionSupport`, which holds `{revision, majorVersion, year, supported,
tested, supportedFrom: 2021, testedOn: [2026, 2021], lacks}`. `supported` and
`tested` are separate claims.
## What breaks on 2021, and what the bridge does
| Area | On 2021 | What the bridge does |
|---|---|---|
| Every COM member called | All available (table below) | Calls them as on 2026 |
| `FeatureCut4` / `FeatureFillet3` / `FeatureLinearPattern4` / `FeatureCircularPattern4` / `FeatureExtrusion3` | Available (2013–2017) | Version gate (`requires`): on a SOLIDWORKS older than the member, the step is refused `needs_solidworks_version` with the member's name, instead of a COM "unknown name" partway through a script. This never fires on 2021. |
| Obsolete members (`SelectByID`, `SaveAs3`, `LoadFile2`, `GraphicsRedraw2`, `CreateMassProperty`, `FeatureFillet3` for constant radius, `FeatureLinearPattern4/5`, `FeatureCircularPattern4/5`, `Get4`, `AddComponent4`, `IDimension::SystemValue`) | Present: SOLIDWORKS keeps obsolete members callable | Kept, because these are the spellings proven live. The replacements are listed in the table. Each replacement is from 2004–2017, so all are on 2021 too. |
| The 3DEXPERIENCE sign-in, platform shortcut, `SWXDesktopUpdate`, Visualize | Do not exist on a classic install | The edition is `desktop`, so those paths are never taken. See the next section. |
## Classic desktop vs 3DEXPERIENCE (Connected)
| | 3DEXPERIENCE SOLIDWORKS (2026, measured) | Classic desktop (2021: a community self-test run, 2026-10-15; rows marked [unmeasured] still are) |
|---|---|---|
| How it is detected | An install path or registry entry naming 3DEXPERIENCE, or the 3DEXPERIENCE Launcher | An install path under `SOLIDWORKS Corp`, OR a registry key `HKLM\SOFTWARE\SolidWorks\SOLIDWORKS <year>` with an exe found and no 3DEXPERIENCE marker. The exe is also looked up from `...\SOLIDWORKS <year>\Setup` value `SolidWorks Folder` [unmeasured]. `swx_status.solidworks.registryYears` lists every `SOLIDWORKS <year>` key. That is a fact about the registry, not the edition: the 3DEXPERIENCE 2026 install writes `SOLIDWORKS 2026` too (measured 2026-10-13). `classicYears` lists only the years with no 3DEXPERIENCE entry or install path for the same release; on Drew's 2026 machine that is `[]`. |
| `edition` / `launchRoute` | `connected` / `platformShortcut` | `desktop` / `com` |
| Launch | The Platform's own shortcut (CATSTART, then SWXDesktopLauncher), never the exe | `CoCreateInstance("SldWorks.Application")`, which starts `SLDWORKS.exe` itself. With several releases installed, set `SWX_PROGID=SldWorks.Application.29` to pick 2021 [unmeasured]. |
| Sign-in | 3DEXPERIENCE ID (three measured hosts) | None. The licence is standalone or SolidNetWork; the bridge never sees a licence prompt and never answers one. |
| Add-ins | The 3DEXPERIENCE add-in; readiness waits for its marker | No platform add-in. Readiness falls back to `StartupProcessCompleted` (2015) and the performance-log markers [unmeasured]. |
| Templates | Resolved from the user's settings (`GetDocumentTemplate`, 2001Plus SP4) | The same call [unmeasured]. |
| Visualize | A separate app started through its platform shortcut | Not part of a classic install. `swx_start {app:"visualize"}` reports `visualize_shortcut_missing`. |
## Every COM member the bridge calls
Generated from the calls in `src/comhost/com.rs` and `src/render.rs`. The
Availability text comes from each member's help page (the 2024 help, which
records the first release). "—" means the page has no Availability line. Those
are original-API members older than any line the help records. "2021?" means
available in SOLIDWORKS 2021.
| Member | Availability | 2021? | Obsolete → replacement | Source |
|---|---|---|---|---|
| `ISldWorks::ActivateDoc3` | 2012 FCS, Revision Number 20.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~activatedoc3.html) |
| `IConfigurationManager::ActiveConfiguration` | 2005 FCS, Revision Number 13.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iconfigurationmanager~activeconfiguration.html) |
| `ISldWorks::ActiveDoc` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~activedoc.html) |
| `IModelDoc2::ActiveView` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~activeview.html) |
| `ICustomPropertyManager::Add3` | 2014 FCS, Revision Number 22.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icustompropertymanager~add3.html) |
| `IMassProperty::AddBodies` | 2003 SP2, Revision Number 11.2 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imassproperty~addbodies.html) |
| `IAssemblyDoc::AddComponent` | — (no Availability line: an original-API member) | yes | obsolete → IAssemblyDoc::AddComponent4 | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iassemblydoc~addcomponent.html) |
| `IAssemblyDoc::AddComponent3` | does not exist on IAssemblyDoc (only the multi-insert `AddComponents3`); the last spelling in the insert fallback chain, never reached while `AddComponent5` answers | yes | | — |
| `IAssemblyDoc::AddComponent4` | 2003 SP5, Revision Number 11.5 | yes | obsolete → IAssemblyDoc::AddComponent5 | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iassemblydoc~addcomponent4.html) |
| `IAssemblyDoc::AddComponent5` | 2010 FCS, Revision Number 18.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iassemblydoc~addcomponent5.html) |
| `ISketchManager::AddToDB` | 2008 FCS, Revision Number 16.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchmanager~addtodb.html) |
| `IMassProperty::CenterOfMass` | 2003 SP2, Revision Number 11.2 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imassproperty~centerofmass.html) |
| `IModelDoc2::ClearSelection2` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~clearselection2.html) |
| `ISldWorks::CloseAllDocuments` | 2006 SP2, Revision Number 14.2 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~closealldocuments.html) |
| `ISldWorks::CloseDoc` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~closedoc.html) |
| `ISldWorks::CommandInProgress` | 2006 SP2, Revision Number 14.2 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~commandinprogress.html) |
| `IInterference::Components` | 2007 FCS, Revision Number 15 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iinterference~components.html) |
| `IModelDoc2::ConfigurationManager` | 2003 FCS, Revision Number 11.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~configurationmanager.html) |
| `ISketchSegment::ConstructionGeometry` | not verified (0.11.0) | not verified | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchsegment~constructiongeometry.html) |
| `ISketchManager::CreateArc` | 2008 FCS, Revision Number 16.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchmanager~createarc.html) |
| `ISketchManager::CreateCenterLine` | 2008 FCS, Revision Number 16.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchmanager~createcenterline.html) |
| `ISketchManager::CreateCircle` | 2008 FCS, Revision Number 16.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchmanager~createcircle.html) |
| `ISketchManager::CreateCircleByRadius` | 2008 FCS, Revision Number 16.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchmanager~createcirclebyradius.html) |
| `ISketchManager::CreateCornerRectangle` | 2008 FCS, Revision Number 16.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchmanager~createcornerrectangle.html) |
| `ISketchManager::CreateLine` | 2008 FCS, Revision Number 16.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchmanager~createline.html) |
| `IModelDocExtension::CreateMassProperty` | 2003 SP2, Revision Number 11.2 | yes | obsolete → IModelDocExtension::CreateMassProperty2 | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~createmassproperty.html) |
| `ISelectionMgr::CreateSelectData` | 2004 FCS, Revision Number 12 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iselectionmgr~createselectdata.html) |
| `IMathUtility::CreateTransform` | 2001 FCS, Revision Number 9.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imathutility~createtransform.html) |
| `IModelDocExtension::CustomPropertyManager` | 2007 FCS, Revision Number 15.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~custompropertymanager.html) |
| `IModelDocExtension::DeleteSelection2` | 2006 SP1, Revision Number 14.1 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~deleteselection2.html) |
| `IMassProperty::Density` | 2003 SP2, Revision Number 11.2 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imassproperty~density.html) |
| `IModelView::DisplayMode` | 2004 SP1, Revision Number 12.1 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodelview~displaymode.html) |
| `ISldWorks::DocumentVisible` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~documentvisible.html) |
| `IInterferenceDetectionMgr::Done` | 2007 FCS, Revision Number 15.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iinterferencedetectionmgr~done.html) |
| `IModelDoc2::EditDelete` | 2001Plus FCS, Revision Number 10.0; the offset segments on the wrong side, deleted (0.11.4) | yes | | [help](https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~editdelete.html) |
| `IModelDoc2::EditRebuild3` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~editrebuild3.html) |
| `ISelectionMgr::EnableContourSelection` | 2003 FCS, Revision Number 11.0; on for a sketch-region pick, put back as it was (0.11.4) | yes | | [help](https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iselectionmgr~enablecontourselection.html) |
| `IEquationMgr::Equation` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iequationmgr~equation.html) |
| `ICurve::Evaluate2` | 2007 SP5, Revision Number 15.5 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icurve~evaluate2.html) |
| `ISurface::EvaluateAtPoint` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isurface~evaluateatpoint.html) |
| `ISldWorks::ExitApp` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~exitapp.html) |
| `IModelDoc2::Extension` | 2003 FCS, Revision Number 11.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~extension.html) |
| `IFace2::FaceInSurfaceSense` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iface2~faceinsurfacesense.html) |
| `IFeatureManager::FeatureCircularPattern4` | 2013 FCS, Revision Number 21.0 | yes | obsolete → IFeatureManager::FeatureCircularPattern5 | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeaturemanager~featurecircularpattern4.html) |
| `IFeatureManager::FeatureCut4` | 2017 FCS, Revision Number 25.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeaturemanager~featurecut4.html) |
| `IFeatureManager::FeatureExtrusion3` | 2014 FCS, Revision Number 22.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeaturemanager~featureextrusion3.html) |
| `IFeatureManager::FeatureFillet3` | 2015 FCS, Revision Number 23.0 | yes | obsolete → IFeatureManager::CreateDefinition/CreateFeature + ISimpleFilletFeatureData2 / IPartialEdgeFilletData | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeaturemanager~featurefillet3.html) |
| `IFeatureManager::FeatureLinearPattern4` | 2015 FCS, Revision Number 23.0 | yes | obsolete → IFeatureManager::FeatureLinearPattern5 | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeaturemanager~featurelinearpattern4.html) |
| `IModelDoc2::FeatureManager` | 2003 FCS, Revision Number 11.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~featuremanager.html) |
| `IFeatureManager::FeatureRevolve2` | 2011 FCS, Revision Number 19.0 | yes | FeatureRevolveCut2 is obsolete → FeatureRevolve2 with IsCut | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeaturemanager~featurerevolve2.html) |
| `IModelDoc2::FirstFeature` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~firstfeature.html) |
| `IAssemblyDoc::FixComponent` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iassemblydoc~fixcomponent.html) |
| `IModelDoc2::ForceRebuild3` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~forcerebuild3.html) |
| `ISldWorks::Frame` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~frame.html) |
| `ICustomPropertyManager::Get4` | 2011 SP4, Revision Number 19.4 | yes | obsolete → ICustomPropertyManager::Get5 | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icustompropertymanager~get4.html) |
| `IPartDoc::GetBodies2` | 2003 FCS, Revision Number 11.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ipartdoc~getbodies2.html) |
| `IBody2::GetBodyBox` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ibody2~getbodybox.html) |
| `IEdge::GetClosestPointOn` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iedge~getclosestpointon.html) |
| `IFace2::GetClosestPointOn` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iface2~getclosestpointon.html) |
| `IAssemblyDoc::GetComponentCount` | 2006 FCS, Revision Number 14 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iassemblydoc~getcomponentcount.html) |
| `IAssemblyDoc::GetComponents` | 2006 FCS, Revision Number 14 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iassemblydoc~getcomponents.html) |
| `IModelDoc2::GetConfigurationNames` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~getconfigurationnames.html) |
| `IEquationMgr::GetCount` | 99, datecode 1999207 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iequationmgr~getcount.html) |
| `ISldWorks::GetCurrentLicenseType` | 2017 FCS, Revision Number 25.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getcurrentlicensetype.html) |
| `IEdge::GetCurve` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iedge~getcurve.html) |
| `IEdge::GetCurveParams2` | 2000 FCS, Revision Number 8.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iedge~getcurveparams2.html) |
| `ISldWorks::GetDocumentCount` | 2009 FCS, Revision Number 17.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getdocumentcount.html) |
| `ISldWorks::GetDocuments` | 2009 FCS, Revision Number 17.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getdocuments.html) |
| `IPackAndGo::GetDocumentSaveToNames` | 2011 FCS, Revision Number 19.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ipackandgo~getdocumentsavetonames.html) |
| `ISldWorks::GetDocumentTemplate` | 2001Plus SP4, Revision Number 10.4 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getdocumenttemplate.html) |
| `IFace2::GetEdges` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iface2~getedges.html) |
| `ILoop2::GetEdges` | 2001Plus FCS, Revision Number 10.0; the outer loop's edges, for Offset Entities (0.11.4) | yes | | [help](https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iloop2~getedges.html) |
| `ISketchArc::GetEndPoint2` | 2000 FCS, Revision Number 8.0; an offset segment's end, for the side check (0.11.4) | yes | | [help](https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketcharc~getendpoint2.html) |
| `ISketchLine::GetEndPoint2` | 2000 FCS, Revision Number 8.0; as above | yes | | [help](https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchline~getendpoint2.html) |
| `IModelDoc2::GetEquationMgr` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~getequationmgr.html) |
| `IFeature::GetErrorCode` | 2001Plus FCS, Revision Number 10 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeature~geterrorcode.html) |
| `ISldWorks::GetExecutablePath` | 2003 SP3, Revision Number 11.3 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getexecutablepath.html) |
| `IBody2::GetFaceCount` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ibody2~getfacecount.html) |
| `IFeature::GetFaces` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeature~getfaces.html) |
| `ISldWorks::GetFirstDocument` | 98Plus, datecode 1998319 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getfirstdocument.html) |
| `IFrame::GetHWnd` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iframe~gethwnd.html) |
| `ISldWorks::GetImportFileData` | 2005 SP3, Revision Number 13.3 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getimportfiledata.html) |
| `IInterferenceDetectionMgr::GetInterferenceCount` | 2007 FCS, Revision Number 15.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iinterferencedetectionmgr~getinterferencecount.html) |
| `IInterferenceDetectionMgr::GetInterferences` | 2007 FCS, Revision Number 15.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iinterferencedetectionmgr~getinterferences.html) |
| `IFace2::GetLoops` | 2009 FCS, Revision Number 17.0; the face's loops, for Offset Entities (0.11.4) | yes | | [help](https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iface2~getloops.html) |
| `IBody2::GetMassProperties` | 2001Plus FCS Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ibody2~getmassproperties.html) |
| `IPartDoc::GetMaterialPropertyName2` | 2005 FCS, Revision Number 13.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ipartdoc~getmaterialpropertyname2.html) |
| `ISldWorks::GetMathUtility` | 2001 FCS, Revision Number 9.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getmathutility.html) |
| `IComponent2::GetModelDoc2` | 2009 FCS, Revision Number 17.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icomponent2~getmodeldoc2.html) |
| `ISketchSegment::GetName` | not verified (0.11.0) | not verified | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchsegment~getname.html) |
| `ICustomPropertyManager::GetNames` | 2004 FCS, Revision number 12.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icustompropertymanager~getnames.html) |
| `IModelDoc2::GetNext` | 2001Plus FCS, Revision Number 10 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~getnext.html) |
| `IFeature::GetNextFeature` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeature~getnextfeature.html) |
| `ISldWorks::GetOpenDocumentByName` | 2000 FCS, Revision Number 8.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getopendocumentbyname.html) |
| `IModelDocExtension::GetPackAndGo` | 2011 FCS, Revision Number 19.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~getpackandgo.html) |
| `IPartDoc::GetPartBox` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ipartdoc~getpartbox.html) |
| `IComponent2::GetPathName` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icomponent2~getpathname.html) |
| `IModelDoc2::GetPathName` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~getpathname.html) |
| `ISldWorks::GetProcessID` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getprocessid.html) |
| `IModelDoc2::GetSaveFlag` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~getsaveflag.html) |
| `ISelectionMgr::GetSelectedObject6` | 2006 FCS, Revision Number 14 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iselectionmgr~getselectedobject6.html) |
| `ISelectionMgr::GetSelectedObjectCount2` | 2006 FCS, Revision Number 14.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iselectionmgr~getselectedobjectcount2.html) |
| `ISketch::GetSketchSegments` | SOLIDWORKS 99, datecode 1999207; what Offset Entities added to the sketch (0.11.4) | yes | | [help](https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketch~getsketchsegments.html) |
| `ISketchArc::GetStartPoint2` | 2000 FCS, Revision Number 8.0; as GetEndPoint2 | yes | | [help](https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketcharc~getstartpoint2.html) |
| `ISketchLine::GetStartPoint2` | 2000 FCS, Revision Number 8.0; as GetEndPoint2 | yes | | [help](https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchline~getstartpoint2.html) |
| `IComponent2::GetSuppression` | 2001Plus FCS, Revision Number 10.0 | yes | obsolete → IComponent2::GetSuppression2 | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icomponent2~getsuppression.html) |
| `IFace2::GetSurface` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iface2~getsurface.html) |
| `IModelDoc2::GetTitle` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~gettitle.html) |
| `IEdge::GetTwoAdjacentFaces2` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iedge~gettwoadjacentfaces2.html) |
| `IModelDoc2::GetType` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~gettype.html) |
| `IFeature::GetTypeName2` | 2008 FCS, Revision Number 16.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeature~gettypename2.html) |
| `IModelDocExtension::GetUserPreferenceDouble` | not verified (0.11.0) | not verified | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~getuserpreferencedouble.html) |
| `IModelDocExtension::GetUserPreferenceInteger` | 2009 FCS, Revision Number 17.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~getuserpreferenceinteger.html) |
| `ISldWorks::GetUserPreferenceIntegerValue` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getuserpreferenceintegervalue.html) |
| `ISldWorks::GetUserPreferenceStringValue` | 2000 FCS, Revision Number 8.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getuserpreferencestringvalue.html) |
| `ISldWorks::GetUserPreferenceToggle` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getuserpreferencetoggle.html) |
| `IModelDocExtension::GetWhatsWrongCount` | 2009 SP3, Revision Number 17.3 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~getwhatswrongcount.html) |
| `IModelDoc2::GraphicsRedraw2` | 2001Plus FCS, Revision Number 10.0 | yes | obsolete → IModelView::GraphicsRedraw | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~graphicsredraw2.html) |
| `IModelView::HasPerspective` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodelview~hasperspective.html) |
| `IPackAndGo::IncludeDrawings` | 2011 FCS, Revision Number 19.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ipackandgo~includedrawings.html) |
| `IModelDoc2::InsertAxis2` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~insertaxis2.html) |
| `IFeatureManager::InsertFeatureChamfer` | 2005 FCS, Revision Number 13.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeaturemanager~insertfeaturechamfer.html) |
| `IModelDoc2::InsertFeatureShell` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~insertfeatureshell.html) |
| `IFeatureManager::InsertMirrorFeature` | — (obsolete; used only when swFeatureScope_e cannot be read from the interop) | yes | obsolete → InsertMirrorFeature2 | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeaturemanager~insertmirrorfeature.html) |
| `IFeatureManager::InsertMirrorFeature2` | 2008 FCS, Revision Number 16.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeaturemanager~insertmirrorfeature2.html) |
| `IFeatureManager::InsertRefPlane` | 2010 FCS, Revision Number 18.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeaturemanager~insertrefplane.html) |
| `IModelDoc2::InsertSketch` | — (no Availability line: an original-API member) | yes | obsolete → ISketchManager::InsertSketch | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~insertsketch.html) |
| `ISketchManager::InsertSketch` | 2007 FCS, Revision Number 15.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchmanager~insertsketch.html) |
| `IAssemblyDoc::InterferenceDetectionManager` | 2007 FCS, Revision Number 15 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iassemblydoc~interferencedetectionmanager.html) |
| `ILoop2::IsOuter` | 2001Plus FCS, Revision Number 10.0; which loop is the outer one (0.11.4) | yes | | [help](https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iloop2~isouter.html) |
| `ISldWorks::LoadFile2` | — (no Availability line: an original-API member) | yes | obsolete → ISldWorks::LoadFile4 | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~loadfile2.html) |
| `ISldWorks::LoadFile4` | 2006 SP1, Revision Number 14.1 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~loadfile4.html) |
| `IInterferenceDetectionMgr::MakeInterferingPartsTransparent` | 2007 FCS, Revision Number 15.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iinterferencedetectionmgr~makeinterferingpartstransparent.html) |
| `ISelectData::Mark` | 2004 FCS, Revision Number 12 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iselectdata~mark.html) |
| `IMassProperty::Mass` | 2003 SP2, Revision Number 11.2 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imassproperty~mass.html) |
| `IModelDocExtension::MultiSelect2` | 2012 SP04, Revision Number 20.4 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~multiselect2.html) |
| `IBody2::Name` | 2005 FCS, Revision Number 13 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ibody2~name.html) |
| `IConfiguration::Name` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iconfiguration~name.html) |
| `IFeature::Name` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeature~name.html) |
| `IComponent2::Name2` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icomponent2~name2.html) |
| `IModelDocExtension::NeedsRebuild2` | 2012 FCS, Revision Number 20.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~needsrebuild2.html) |
| `ISldWorks::NewDocument` | 2000 FCS, Revision Number 8.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~newdocument.html) |
| `IFace2::Normal` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iface2~normal.html) |
| `ISldWorks::OpenDoc6` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~opendoc6.html) |
| `IModelView::Orientation3` | 2001Plus SP2, Revision Number 10.2 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodelview~orientation3.html) |
| `IModelDoc2::Parameter` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~parameter.html) |
| `IComponent2::ReferencedConfiguration` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icomponent2~referencedconfiguration.html) |
| `ISldWorks::RevisionNumber` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~revisionnumber.html) |
| `ISldWorks::RunCommand` | 2008 FCS, Revision Number 16.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~runcommand.html) |
| `ISldWorks::RunMacro2` | 2009 FCS, Revision Number 17.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~runmacro2.html) |
| `IModelDoc2::Save3` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~save3.html) |
| `IModelDoc2::SaveAs3` | — (no Availability line: an original-API member) | yes | obsolete → IModelDocExtension::SaveAs3 (chain: SaveAs3 -> IModelDocExtension::SaveAs -> SaveAs2 -> SaveAs3) | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~saveas3.html) |
| `IModelDoc2::SaveBMP` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~savebmp.html) |
| `IModelDocExtension::SavePackAndGo` | 2011 FCS, Revision Number 19.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~savepackandgo.html) |
| `IModelView::Scale2` | 99, datecode 1999207 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodelview~scale2.html) |
| `IBody2::Select2` | not verified (0.11.0): a body selected for a mirror (mark 256) | not verified | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ibody2~select2.html) |
| `IFeature::Select2` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeature~select2.html) |
| `IEntity::Select4` | 2004 FCS, Revision Number 12.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ientity~select4.html) |
| `ISketchSegment::Select4` | not verified (0.11.0): the revolve axis's fallback selection | not verified | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchsegment~select4.html) |
| `IModelDoc2::SelectByID` | — (no Availability line: an original-API member) | yes | obsolete → IModelDocExtension::SelectByID2 | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~selectbyid.html) |
| `IModelDocExtension::SelectByID2` | 2005 FCS, Revision Number 13.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~selectbyid2.html) |
| `IModelDocExtension::SelectByRay` | 2017 FCS, Revision Number 25.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~selectbyray.html) |
| `IModelDoc2::SelectionManager` | 2001Plus FCS, Revision Number 10 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~selectionmanager.html) |
| `IPartDoc::SetMaterialPropertyName2` | 2005 FCS, Revision Number 13.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ipartdoc~setmaterialpropertyname2.html) |
| `IPackAndGo::SetSaveToName` | 2011 FCS, Revision Number 19.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ipackandgo~setsavetoname.html) |
| `IModelDocExtension::SetUserPreferenceDouble` | not verified (0.11.0): swMaterialPropertyDensity, read from the interop | not verified | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~setuserpreferencedouble.html) |
| `IModelDocExtension::SetUserPreferenceInteger` | 2009 FCS, Revision Number 17.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~setuserpreferenceinteger.html) |
| `ISldWorks::SetUserPreferenceIntegerValue` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~setuserpreferenceintegervalue.html) |
| `ISldWorks::SetUserPreferenceToggle` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~setuserpreferencetoggle.html) |
| `IModelDoc2::ShowNamedView2` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~shownamedview2.html) |
| `IModelDoc2::SketchManager` | 2005 FCS, Revision Number 13.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~sketchmanager.html) |
| `IModelDoc2::SketchOffsetEntities2` | 2001Plus FCS, Revision Number 10.0; Offset Entities of a face or its outer loop (0.11.4); its sign does not decide the side, so the bridge checks it | yes | | [help](https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~sketchoffsetentities2.html) |
| `ISldWorks::StartupProcessCompleted` | 2015 FCS, Revision Number 23.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~startupprocesscompleted.html) |
| `IMassProperty::SurfaceArea` | 2003 SP2, Revision Number 11.2 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imassproperty~surfacearea.html) |
| `IDimension::SystemValue` | — (no Availability line: an original-API member) | yes | obsolete → IDimension::GetSystemValue3 | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.idimension~systemvalue.html) |
| `IComponent2::Transform2` | 2003 FCS, Revision Number 11.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icomponent2~transform2.html) |
| `IModelView::Translation3` | 2001Plus SP2, Revision Number 10.2 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodelview~translation3.html) |
| `IInterferenceDetectionMgr::TreatCoincidenceAsInterference` | 2007 FCS, Revision Number 15.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iinterferencedetectionmgr~treatcoincidenceasinterference.html) |
| `ISldWorks::UserControl` | — (no Availability line: an original-API member) | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~usercontrol.html) |
| `ISldWorks::UserControlBackground` | 2005 FCS, Revision Number 13.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~usercontrolbackground.html) |
| `IMassProperty::UseSystemUnits` | 2003 SP2, Revision Number 11.2 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imassproperty~usesystemunits.html) |
| `IInterferenceDetectionMgr::UseTransform` | 2015 FCS, Revision Number 23.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iinterferencedetectionmgr~usetransform.html) |
| `IEquationMgr::Value` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iequationmgr~value.html) |
| `IModelDocExtension::ViewDisplayRealView` | 2005 FCS, Revision Number 13.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~viewdisplayrealview.html) |
| `IModelDoc2::ViewZoomtofit2` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~viewzoomtofit2.html) |
| `IBody2::Visible` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ibody2~visible.html) |
| `IModelDoc2::Visible` | 2001Plus FCS, Revision Number 10.0 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~visible.html) |
| `IMassProperty::Volume` | 2003 SP2, Revision Number 11.2 | yes | | [help](https://help.solidworks.com/2024/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imassproperty~volume.html) |
| `ISketchPoint::X` | SOLIDWORKS 99, datecode 1999207; with Y and Z: a sketch point, in sketch space (0.11.4) | yes | | [help](https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isketchpoint~x.html) |
Enum values the DSL passes are read from the published swconst pages (cited
in `com.rs`):
- `swEndConditions_e`: Blind 0, ThroughAll 1, UpToSurface 4, OffsetFromSurface 5, MidPlane 6, ThroughAllBoth 9, UpToNext 11 (0.11.4; measured 2026-10-16: the help's UpToSelection 10 with the face at mark 1 built with an EMPTY direction box and stopped at the next face on 2026, for a boss and for a cut; 4, the id the macro recorder writes, is what the bridge sends). `Ddir1` TRUE drafts OUTWARD on 2026 (the help says inward); the bridge passes `outward` as is.
- `ISketchManager::CreateArc` Direction: +1 counter-clockwise, −1 clockwise (a `short`).
- `InsertMirrorFeature2` marks: features 1, plane or planar face 2, bodies 256. `FeatureRevolve2` marks: sketch 0, axis 4 (the bridge tries 16 when 4 builds nothing).
- A sketch REGION (0.11.4) is selected the way SOLIDWORKS' own "Enable Contour Selection Example" does it: `ISelectionMgr::EnableContourSelection = true`, then `SelectByID2(<sketch name>, "SKETCHREGION", x, y, z, Append true, MARK 4, null, 0)` at a model point inside the region, then the feature, then contour selection put back.
- `IModelDoc2::SketchOffsetEntities2(Offset metres, BothDirections, Chain)` (0.11.4) takes "an edge, loop, face, external sketch curve, external sketch contour, set of edges, or set of external sketch curves"; its sign does not fix the side (a forum report: −0.01 landed inside on one face, outside on another), so the bridge reads where the new segments landed and redoes it with the other sign once.
- `swFeatureScope_e` and `swUserPreferenceDoubleValue_e.swMaterialPropertyDensity` are NOT on the help pages with numbers: they are read from the installed `SolidWorks.Interop.swconst.dll` by reflection, never guessed.
- `swRefPlaneReferenceConstraints_e`: Distance 8, OptionFlip 256.
- `swFeatureFilletOptions_e`: Propagate 1, UniformRadius 2.
- `swFeatureFilletType_e`: Simple 0.
- `swChamferType_e`: AngleDistance 1.
- `swFeatureChamferOption_e`: TangentPropagation 4.
All are unchanged since well before 2021.
## How to test a release we do not have: `swx_selftest`
We have no 2021 machine. `swx_selftest` is how Michael, or anyone, sends back
one JSON that says, verb by verb, what works on their install:
```
swx_selftest {} # level "read": changes nothing
swx_selftest {"level": "write"} # also builds, reads back, exports, saves and closes a scratch part
swx_selftest {"level": "cswa"} # builds the CSWA benchmark parts and checks their mass against the published keys
```
- **`read`** runs these and changes nothing:
- `swx_status`, including the version facts above;
- `swx_readiness`, `swx_docs` and `swx_get_preferences`;
- the read verbs on whatever document is active: document info, design info,
parameters, properties and mass properties, plus bodies for a part or a BOM
for an assembly.
- **`write`** (0.10.2) is a **geometric proof**, not just a success check. It
runs the same 32 checks as `tools/dsl-live-check.py`. Each check builds its
own scratch part (never a user document), MEASURES it with
`swx_inspect_bodies` / `swx_mass_properties`, and compares the measurement
with geometry computed in the self-test itself from closed-form formulas and
the documented conventions. Each row carries `expected`, `measured` and
`fails`, and the check then closes what it made. The checks cover:
- the conventions: the corner anchor, Top Plane +y = model −Z, a centred
anchor;
- sketches on a +10 mm and a −5 mm offset plane, on the top face, and on the
hidden BOTTOM face, which must extrude OUTWARD;
- a default cut into empty space, which must FAIL loudly; reverse and
through-all cuts; an asymmetric two-way cut;
- both-direction and mid-plane extents;
- a ring and two bodies from one sketch;
- appearance on the part and on a face;
- an appearance followed by a material (the colour must survive);
- a fillet of every edge (both a box and a cylinder);
- a chamfer of one edge;
- shells removing the top and the bottom face;
- linear patterns with positive and negative spacing, and a circular pattern;
- an op between a sketch and its extrude;
- issue #2's density and mass;
- the LEGO brick.
Then, on one part made with `swx_new_document`, it checks issue #2's
ownership (scripted by path), sets a dimension, exports a STEP copy, saves,
**closes it**, and re-activates the document that was active before. `only:
["T25", …]` runs a subset of the checks.
Each verb row is `{name, verb, pass, ms, errorCode, error, hostError}`; each
geometry row adds `expected`, `measured` and `fails`. The
`summary` gives passed, failed and skipped counts. Every sub-call goes through
the normal dispatcher, readiness gate included. The self-test is itself exempt
from the gate, so a check held at the gate is reported, not hidden.
**Run it with SOLIDWORKS started.** With SOLIDWORKS closed (measured
2026-10-13), only `swx_status` and `swx_readiness` can run:
- every check that needs SOLIDWORKS is `skipped`, with the reason, and is never
counted as a failure;
- the summary carries `solidworksRunning: false`;
- the `_hint` begins "Start SOLIDWORKS (swx_start, or by hand) and run this
again".
`level:"write"` with SOLIDWORKS closed is refused up front
(`solidworks_not_running`) and changes nothing.
## Live validation: the CSWA benchmark (0.11.0)
Every release can be checked against EXAM PARTS with published answers, not only against the
bridge's own closed-form checks. The specs live in `resources/cswa/` (shipped in the zip); the
schema and rules are in [`tools/cswa/README.md`](../tools/cswa/README.md).
- `swx_selftest {"level":"cswa"}` on any install: one row per part, and the summary
`"N of M CSWA parts within tolerance"`. On a release we have not run, this is the most direct
evidence that a modelled part weighs what SOLIDWORKS says it should.
- `tools/cswa-check.py` from a dev container writes `cswa-report.json`.
- `tools/release.sh --require-live <report.json> --publish` refuses to publish without a report from
THIS version that passed every part and is newer than the last code commit; since 0.11.4 a bare
`--publish` is refused too (only `--docs-only`, for a release that changes no code, skips the gate).
- **The live run tests the very bytes that ship (the canary).** `tools/release.sh --canary` publishes
the build as the release candidate `<version>-rc<N>`, with `manifests/canary.json` naming it. Only
the test machine installs it, by hand: `bridge_install {manifestUrl: .../manifests/canary.json}`.
`cswa-check` records the installed exe's sha256 (read back through ab's `read_file`), and
`--require-live` publishes that zip unchanged, only when the report ran its exe.
The canary never pins the machine. ab resolves a bridge's update URL from the bridge's own
`bridge.json` `updateManifestUrl` first, before the URL it was installed from
(`adom-bridge help bridge_check_updates`). Every zip declares the MAIN manifest there, and the
canary file does too. Since the release has the canary's version, the machine runs the published
bytes as they are; the next release reaches it like any other.
The first live run (2026-10-15, bridge 0.11.2, SOLIDWORKS 2026: 8 of 8 within 0.0015 % of their keys)
measured the lines and arcs of a contour, the face-offset plane, the plain hole and the density
(docs/LIVE-RESULTS.md). Still NOT MEASURED on any release, each step using them reporting
`proven.live:false`: revolve and revolve-cut, mirror, the counterbored and countersunk hole, the
up-to end conditions, draft, construction geometry, and 0.11.4's Offset Entities and sketch regions.
The community specs `cswa-09` to `cswa-12` and the Step 4 pair `cswa-08` / `cswa-08b` build every one
of them, so the next live run measures them.
## What is still unmeasured on 2021
- The classic launch route (`CoCreateInstance`) and the `Setup\SolidWorks
Folder` lookup.
- The readiness signals without the 3DEXPERIENCE add-in.
- Every op added in 0.10.0: offset and face sketches, multi-profile sketches,
cut direction, both-direction and mid-plane extents, fillet, chamfer, shell,
the patterns and appearance. An independent review (2026-10-13) checked every
COM call against the 2021 API help: the signatures, argument counts, units
and enum values are right. 0.10.2 fixed the BEHAVIOURAL risks it found:
- picks through the view, now geometric;
- a face's normal sign, now followed;
- duplicate edges toggling themselves off, now de-duplicated;
- a material wiping the colour, now re-applied;
- the pinned document not activated, now activated;
- a negative offset plane's and an axis's orientation, now read back.
On 2026 they are now MEASURED ([LIVE-RESULTS.md](LIVE-RESULTS.md)). On 2021
they are not, and each step's `proven.live` says `false` there.
Eight more variants were measured on 2026 later the same day, with bridge
0.10.4 ([LIVE-RESULTS.md](LIVE-RESULTS.md)):
- a reversed boss;
- a boss through all, one way;
- Right Plane's axes;
- sketches on the +X and −Z side faces;
- a plane offset from Front Plane;
- a two-direction linear pattern;
- an outward shell.
Some variants have not been measured on any release yet. Steps that use them
report `proven.live:false` and name them under `unmeasured`:
- through all with `direction:"both"` on a boss;
- a sketch on a named plane, on a plane offset from Right Plane or from a named
plane, on a negative offset from Front Plane, or on a face facing −X or +Z;
- a linear pattern along Y or Z alone, and a circular pattern about X or Z;
- a chamfer on all of a feature's edges;
- a colour on one body of a multi-body part;
- the later rungs of the selection ladder;
- the CreateDefinition fillet fallback.
- SELECTION after a geometric pick (0.10.3). On SOLIDWORKS 2026 `MultiSelect2`
with a VARIANT array selected nothing. This was measured, and it broke face
sketches, fillet, chamfer and shell. The bridge now climbs a verified ladder:
a typed-array `MultiSelect2`, then `IEntity::Select4`, then `SelectByRay`
(2017+) with its own ray, then `SelectByID2` at the point. Each step's
`selectedVia` says which rung worked. Which rung works on 2021 is unmeasured.
`SelectByRay` is skipped below 2017.
`swx_selftest {"level":"write"}` on a 2021 machine answers every one of them
with MEASURED geometry in one reply. A pass there is a proof, not a "the call
returned".