From 376a4ba6e4d7036f222bb7d0514532c9a2a8023d Mon Sep 17 00:00:00 2001 From: Andrew Bartels Date: Fri, 6 Nov 2026 20:22:21 -0800 Subject: [PATCH 1/3] feat(tools): a support level for every tool, in its tags, description and results Every registered tool now has one level in tools/support_levels.py: stable (checked live, no known fault), beta (a known fault or partial COM coverage), experimental (never checked live) or planned (not implemented). The registrar adds a level: tag, opens a beta or experimental tool's description with "Beta: " and adds the same sentence as `warning` to its successful results. A check keeps the table honest: every tool listed, planned exactly when "Not available yet", stable only with a live test. tutorial_simple_hole is now planned; its cut step fails on SolidWorks. Also archives the circuit-breaker-recovery plan (#208). --- .../.openspec.yaml | 0 .../design.md | 0 .../proposal.md | 0 .../specs/adapters/circuit-breaker/spec.md | 0 .../tasks.md | 0 .../design.md | 27 ++ .../specs/tools/tool-descriptions/spec.md | 2 +- .../tool-support-levels-and-progress/tasks.md | 10 +- .../specs/adapters/circuit-breaker/spec.md | 41 +++ src/solidworks_mcp/tools/sketching.py | 7 +- src/solidworks_mcp/tools/support_levels.py | 282 ++++++++++++++++++ src/solidworks_mcp/tools/tool_boundary.py | 75 ++++- tests/integration/test_support_levels.py | 104 +++++++ .../tools/test_modeling_measured_change.py | 13 +- .../tools/test_support_levels.py | 46 +++ .../tools/test_tool_boundary.py | 89 +++++- tests/solidworks_mcp/tools/test_tool_hints.py | 4 +- 17 files changed, 667 insertions(+), 33 deletions(-) rename openspec/changes/{circuit-breaker-recovery => archive/2026-11-06-circuit-breaker-recovery}/.openspec.yaml (100%) rename openspec/changes/{circuit-breaker-recovery => archive/2026-11-06-circuit-breaker-recovery}/design.md (100%) rename openspec/changes/{circuit-breaker-recovery => archive/2026-11-06-circuit-breaker-recovery}/proposal.md (100%) rename openspec/changes/{circuit-breaker-recovery => archive/2026-11-06-circuit-breaker-recovery}/specs/adapters/circuit-breaker/spec.md (100%) rename openspec/changes/{circuit-breaker-recovery => archive/2026-11-06-circuit-breaker-recovery}/tasks.md (100%) create mode 100644 openspec/specs/adapters/circuit-breaker/spec.md create mode 100644 src/solidworks_mcp/tools/support_levels.py create mode 100644 tests/integration/test_support_levels.py create mode 100644 tests/solidworks_mcp/tools/test_support_levels.py diff --git a/openspec/changes/circuit-breaker-recovery/.openspec.yaml b/openspec/changes/archive/2026-11-06-circuit-breaker-recovery/.openspec.yaml similarity index 100% rename from openspec/changes/circuit-breaker-recovery/.openspec.yaml rename to openspec/changes/archive/2026-11-06-circuit-breaker-recovery/.openspec.yaml diff --git a/openspec/changes/circuit-breaker-recovery/design.md b/openspec/changes/archive/2026-11-06-circuit-breaker-recovery/design.md similarity index 100% rename from openspec/changes/circuit-breaker-recovery/design.md rename to openspec/changes/archive/2026-11-06-circuit-breaker-recovery/design.md diff --git a/openspec/changes/circuit-breaker-recovery/proposal.md b/openspec/changes/archive/2026-11-06-circuit-breaker-recovery/proposal.md similarity index 100% rename from openspec/changes/circuit-breaker-recovery/proposal.md rename to openspec/changes/archive/2026-11-06-circuit-breaker-recovery/proposal.md diff --git a/openspec/changes/circuit-breaker-recovery/specs/adapters/circuit-breaker/spec.md b/openspec/changes/archive/2026-11-06-circuit-breaker-recovery/specs/adapters/circuit-breaker/spec.md similarity index 100% rename from openspec/changes/circuit-breaker-recovery/specs/adapters/circuit-breaker/spec.md rename to openspec/changes/archive/2026-11-06-circuit-breaker-recovery/specs/adapters/circuit-breaker/spec.md diff --git a/openspec/changes/circuit-breaker-recovery/tasks.md b/openspec/changes/archive/2026-11-06-circuit-breaker-recovery/tasks.md similarity index 100% rename from openspec/changes/circuit-breaker-recovery/tasks.md rename to openspec/changes/archive/2026-11-06-circuit-breaker-recovery/tasks.md diff --git a/openspec/changes/tool-support-levels-and-progress/design.md b/openspec/changes/tool-support-levels-and-progress/design.md index 11ad9f7e..e25285ce 100644 --- a/openspec/changes/tool-support-levels-and-progress/design.md +++ b/openspec/changes/tool-support-levels-and-progress/design.md @@ -29,6 +29,24 @@ First assignment, by rule, then reviewed by hand with the user: - `stable`: called by a live test or a demo script a live test runs, or a tool that never calls SolidWorks and is unit-tested (the VBA generators, the API lookups); - `experimental`: the rest. +First assignment (2026-11-06, 155 tools): 81 stable, 24 beta, 10 +experimental, 40 planned. Corrections to the rule, reviewed with the user: +- The rule's text match named three tools only because a fault's wording + mentions them (`exit_sketch`, `create_cut_extrude`, `create_drawing_view`): + stable. +- The five `export_*` file tools ignore `format_type` and `options` (a fault + the rule's text match missed): beta. `export_image` has no such field: + stable. +- `get_material` and `add_mate` cover only part of their COM call: beta. +- Tools that work on SolidWorks but ignore one optional input (`create_part`, + `create_assembly`, `create_drawing`, `create_sketch`, `create_extrusion`, + `create_revolve`, the `export_*` tools, ...): beta, the user's call. Each + fix moves its tool up. +- `tutorial_simple_hole` always fails at its cut step on SolidWorks: + planned, the user's call; its description now says "Not available yet". +- `generate_vba_code`, `compare_drawing_versions` and `compare_templates` go + through the adapter but have no live test: experimental. + ### "Stable needs a live test", checked by text The check looks for the tool's name as a whole word in `tests/live/*.py` and in the `scripts/demo_*.py` files those tests load. Tools of the offline families (`vba_generation`, `type_library`, `docs_discovery`) are exempt. Alternative, recording which tools a live run actually called: rejected, live runs don't happen in CI. @@ -37,6 +55,15 @@ The check looks for the tool's name as a whole word in `tests/live/*.py` and in Added by the boundary to a successful result of a beta or experimental tool. It's additive, so existing clients and the stable payload shape (`status`, `message`, `execution_time`, data) are unaffected. Errors don't get it: they already carry `hint`. +### Level in the description: added by the registrar + +`ToolRegistrar` opens a beta or experimental tool's description with the same +sentence as its `warning` ("Beta: "), followed by the docstring's text +(FastMCP's `parse_docstring`). Alternative, writing that sentence into ~35 +docstrings by hand: rejected during implementation, the reason would live in +two places and go stale when a level changes. A tool's own `warning` (a cut +that removed nothing) and the level's are joined, the tool's first. + ### COM snapshot: `docs/assets/progress/com_snapshot.json` `{sw_version, interfaces: {name: [methods]}}`, written by `src/utils/snapshot_com_api.py` (Windows only, run by hand after a SolidWorks upgrade). Committed so the generator and the check run anywhere. About 150 KB, acceptable. diff --git a/openspec/changes/tool-support-levels-and-progress/specs/tools/tool-descriptions/spec.md b/openspec/changes/tool-support-levels-and-progress/specs/tools/tool-descriptions/spec.md index e4a5d9bc..d081dde4 100644 --- a/openspec/changes/tool-support-levels-and-progress/specs/tools/tool-descriptions/spec.md +++ b/openspec/changes/tool-support-levels-and-progress/specs/tools/tool-descriptions/spec.md @@ -10,4 +10,4 @@ A `beta` or `experimental` tool's description SHALL open with its level and the #### Scenario: The level changes - **WHEN** a tool's level changes in the table -- **THEN** the description check fails until the opening sentence matches the new level +- **THEN** its description's opening sentence changes with it, with no edit to the tool, because the server adds that sentence from the table at registration; the check fails if a tool's description doesn't open with its level diff --git a/openspec/changes/tool-support-levels-and-progress/tasks.md b/openspec/changes/tool-support-levels-and-progress/tasks.md index 5bcd9bee..0563bae5 100644 --- a/openspec/changes/tool-support-levels-and-progress/tasks.md +++ b/openspec/changes/tool-support-levels-and-progress/tasks.md @@ -1,10 +1,10 @@ ## 1. Support levels -- [ ] 1.1 `src/solidworks_mcp/tools/support_levels.py`: the table, filled by the rules in design.md; tests in `tests/solidworks_mcp/tools/test_support_levels.py` -- [ ] 1.2 Review the first assignment with the user, tool by tool for the borderline ones; record the reasons -- [ ] 1.3 `tool_boundary.py`: add the `level:` tag and the `warning` on beta/experimental successes; tests beside it -- [ ] 1.4 `tests/integration/test_support_levels.py`: every tool listed, no stale names, planned ⇔ "Not available yet", stable has a live test or is offline -- [ ] 1.5 Rewrite the opening sentence of every beta and experimental tool's description; extend the description check +- [x] 1.1 `src/solidworks_mcp/tools/support_levels.py`: the table, filled by the rules in design.md; tests in `tests/solidworks_mcp/tools/test_support_levels.py` +- [x] 1.2 Review the first assignment with the user, tool by tool for the borderline ones; record the reasons +- [x] 1.3 `tool_boundary.py`: add the `level:` tag and the `warning` on beta/experimental successes; tests beside it +- [x] 1.4 `tests/integration/test_support_levels.py`: every tool listed, no stale names, planned ⇔ "Not available yet", stable has a live test or is offline +- [x] 1.5 Open every beta and experimental tool's description with its level (done by the registrar from the table; see design.md); extend the description check ## 2. COM coverage diff --git a/openspec/specs/adapters/circuit-breaker/spec.md b/openspec/specs/adapters/circuit-breaker/spec.md new file mode 100644 index 00000000..b235d5bf --- /dev/null +++ b/openspec/specs/adapters/circuit-breaker/spec.md @@ -0,0 +1,41 @@ +# adapters/circuit-breaker Specification + +## Purpose +TBD - created by archiving change circuit-breaker-recovery. Update Purpose after archive. +## Requirements +### Requirement: A success never leaves a breaker open + +A successful call SHALL close its operation's breaker, and the next call SHALL be allowed. + +#### Scenario: Success then a second call +- **WHEN** `create_extrusion` succeeds and is called again at once +- **THEN** the second call reaches the adapter + +### Requirement: An open breaker recovers after its timeout + +An open breaker SHALL let one trial call through once its timeout has passed since the last failure, and close when that call succeeds. + +#### Scenario: Waiting out the timeout +- **WHEN** a breaker opened after repeated failures and the timeout has passed +- **THEN** the next call reaches the adapter, and on success the breaker is closed + +### Requirement: Breakers can be reset by a tool + +A `reset_circuit_breaker` tool SHALL close all breakers, or the one named, and report which were open. + +#### Scenario: Reset one operation +- **WHEN** an agent calls `reset_circuit_breaker` with `operation: create_extrusion` while it is open +- **THEN** the result lists it as reset and the next `create_extrusion` call reaches the adapter + +#### Scenario: No breaker in use +- **WHEN** the adapter has no circuit breaker (mock mode) +- **THEN** the tool succeeds and reports that nothing was open + +### Requirement: An open breaker explains itself + +The error for a refused call SHALL name the operation, and its `hint` SHALL name the reset tool and the timeout setting. + +#### Scenario: Refused call +- **WHEN** a call is refused by an open breaker +- **THEN** `error_type` is `circuit_open` and `hint` names `reset_circuit_breaker` and `SOLIDWORKS_MCP_CIRCUIT_BREAKER_TIMEOUT` + diff --git a/src/solidworks_mcp/tools/sketching.py b/src/solidworks_mcp/tools/sketching.py index 0a3eeaa9..340c899c 100644 --- a/src/solidworks_mcp/tools/sketching.py +++ b/src/solidworks_mcp/tools/sketching.py @@ -1062,9 +1062,10 @@ async def tutorial_simple_hole( ) -> dict[str, Any]: """Draw a circle on a plane and cut it as a hole, as one worked example. - On real SolidWorks the cut step is not implemented yet: the call draws and - closes the sketch, then fails. Use `create_sketch`, `add_circle`, `exit_sketch` - and `create_cut_extrude` instead. Needs: an open part with a solid body. + Not available yet on real SolidWorks: its cut step has no COM implementation, + so the call draws and closes the sketch, then fails. It is planned for a future + release. Use `create_sketch`, `add_circle`, `exit_sketch` and + `create_cut_extrude` instead. Needs: an open part with a solid body. Changes: adds a sketch (and, with the mock adapter, a cut). Returns: `tutorial` with `plane`, `diameter`, `depth` and `steps`. diff --git a/src/solidworks_mcp/tools/support_levels.py b/src/solidworks_mcp/tools/support_levels.py new file mode 100644 index 00000000..c0a18093 --- /dev/null +++ b/src/solidworks_mcp/tools/support_levels.py @@ -0,0 +1,282 @@ +"""How far to trust each registered tool, in one reviewable table. + +Every tool has exactly one support level: + +- **stable**: checked by a live test on real SolidWorks, every input used, + no known fault (or it never calls SolidWorks and is unit-tested); +- **beta**: works on SolidWorks, but has a known fault or covers only part + of its COM call; +- **experimental**: implemented, never checked on real SolidWorks; +- **planned**: registered, but no adapter implements it yet (its + description says "Not available yet"). + +``ToolRegistrar`` adds the level to each tool's tags and, for a beta or +experimental tool, a ``warning`` to its successful results. Fixing a fault +in the queue's small-faults list moves its tool up a level here. +""" + +from __future__ import annotations + +from dataclasses import dataclass +from enum import StrEnum + + +class SupportLevel(StrEnum): + """The four support levels, most trusted first.""" + + STABLE = "stable" + BETA = "beta" + EXPERIMENTAL = "experimental" + PLANNED = "planned" + + +@dataclass(frozen=True) +class Support: + """One tool's support level and why it isn't higher. + + Attributes: + level: The tool's support level. + reason: One line on the gap; empty only for a stable tool. + """ + + level: SupportLevel + reason: str = "" + + def __post_init__(self) -> None: + """Require a reason for every level below stable. + + Raises: + ValueError: If a level below stable has no reason, or a stable + tool has one. + """ + if (self.level is SupportLevel.STABLE) == bool(self.reason): + raise ValueError( + "a reason is required below stable, and only there: " + f"{self.level.value!r} with reason {self.reason!r}" + ) + + def warning(self) -> str | None: + """The sentence a successful beta or experimental result carries. + + Returns: + str | None: ``"Beta: "`` or ``"Experimental: "``; + None for stable and planned tools (a planned tool never succeeds). + """ + if self.level in (SupportLevel.BETA, SupportLevel.EXPERIMENTAL): + return f"{self.level.value.capitalize()}: {self.reason}" + return None + + +#: Tool families that never call SolidWorks; their tools are stable on unit +#: tests alone. +OFFLINE_FAMILIES = frozenset({"docs_discovery", "server_admin", "vba_generation"}) + +_STABLE = Support(SupportLevel.STABLE) +_UNCHECKED = Support( + SupportLevel.EXPERIMENTAL, "not yet checked by a live test on real SolidWorks." +) +_PLANNED = Support(SupportLevel.PLANNED, "no adapter implements it yet.") + + +def _beta(reason: str) -> Support: + return Support(SupportLevel.BETA, reason) + + +_EXPORT_FORMAT = _beta( + "the file extension sets the format; `format_type` and `options` are ignored." +) + +SUPPORT_LEVELS: dict[str, Support] = { + # analysis + "analyze_geometry": _PLANNED, + "calculate_mass_properties": _beta( + "moments of inertia are labelled kg·mm² but are kg·m²; its input fields " + "are unused." + ), + "check_interference": _beta("`include_hidden` has no effect."), + "get_mass_properties": _STABLE, + "get_material_properties": _PLANNED, + "verify_model": _STABLE, + # automation + "automation_start_macro_recording": _PLANNED, + "automation_stop_macro_recording": _PLANNED, + "batch_process_files": _PLANNED, + "create_template": _PLANNED, + "execute_workflow": _PLANNED, + "generate_vba_code": _UNCHECKED, + "manage_design_table": _PLANNED, + "optimize_performance": _PLANNED, + # docs_discovery + "discover_solidworks_docs": _STABLE, + "find_related_api_members": _STABLE, + "lookup_api_interface": _STABLE, + "lookup_api_method": _STABLE, + "search_solidworks_api_help": _STABLE, + # drawing + "add_annotation": _PLANNED, + "add_dimension": _PLANNED, + "add_drawing_view": _beta( + "only ever adds a view, whatever `operation` says; use `create_drawing_view`." + ), + "add_note": _STABLE, + "auto_center_marks": _STABLE, + "auto_dimension_view": _PLANNED, + "check_drawing_standards": _PLANNED, + "create_detail_view": _PLANNED, + "create_drawing_view": _STABLE, + "create_section_view": _PLANNED, + "create_technical_drawing": _beta( + "ignores `template`, `sheet_size`, `title` and `output_path`; it only " + "places three views." + ), + "list_drawing_views": _STABLE, + "update_sheet_format": _PLANNED, + "update_title_block": _PLANNED, + # drawing_analysis + "analyze_drawing_annotations": _PLANNED, + "analyze_drawing_comprehensive": _PLANNED, + "analyze_drawing_dimensions": _PLANNED, + "analyze_drawing_views": _PLANNED, + "check_drawing_compliance": _PLANNED, + "compare_drawing_versions": _UNCHECKED, + "generate_drawing_report": _PLANNED, + "validate_drawing_completeness": _PLANNED, + # drawing_automation + "add_datum_tag": _STABLE, + "add_gtol": _STABLE, + "arrange_dimensions": _STABLE, + "generate_drawing_package": _STABLE, + "insert_bom_table": _STABLE, + "insert_model_dimensions": _STABLE, + "set_sheet_scale": _STABLE, + # engineering_data + "export_flat_pattern": _STABLE, + "get_custom_properties": _STABLE, + "get_material": _beta("reads the material's name and library, not its properties."), + "list_available_materials": _STABLE, + "list_model_dimensions": _STABLE, + "measure_entities": _STABLE, + "set_custom_property": _STABLE, + "set_material": _STABLE, + # export + "batch_export": _PLANNED, + "export_dwg": _EXPORT_FORMAT, + "export_iges": _EXPORT_FORMAT, + "export_image": _STABLE, + "export_pdf": _EXPORT_FORMAT, + "export_step": _EXPORT_FORMAT, + "export_stl": _EXPORT_FORMAT, + # file_management + "activate_document": _STABLE, + "batch_file_operations": _PLANNED, + "classify_feature_tree": _UNCHECKED, + "convert_file_format": _PLANNED, + "get_file_properties": _UNCHECKED, + "get_model_info": _STABLE, + "get_selected_entities": _STABLE, + "list_configurations": _UNCHECKED, + "list_features": _STABLE, + "list_open_documents": _STABLE, + "load_assembly": _UNCHECKED, + "load_part": _UNCHECKED, + "manage_file_properties": _PLANNED, + "pack_and_go_assembly": _UNCHECKED, + "save_as": _beta("replaces an existing file whatever `overwrite` says."), + "save_assembly": _STABLE, + "save_body_as_part": _STABLE, + "save_file": _beta("`force_save` is ignored."), + "save_part": _STABLE, + # macro_recording + "analyze_macro": _PLANNED, + "batch_execute_macros": _PLANNED, + "create_macro_library": _PLANNED, + "execute_macro": _beta( + "runs the macro once whatever `repeat_count` says, and only binary .swp files." + ), + "optimize_macro": _PLANNED, + "start_macro_recording": _PLANNED, + "stop_macro_recording": _PLANNED, + # modeling + "add_chamfer": _STABLE, + "add_fillet": _STABLE, + "add_mate": _beta("mates only reference planes and axes, by name, not faces."), + "close_model": _STABLE, + "create_assembly": _beta("`components` is ignored; use `insert_component`."), + "create_axis": _STABLE, + "create_cut_extrude": _STABLE, + "create_drawing": _beta("`model_path` and `sheet_format` are ignored."), + "create_extrusion": _beta( + "`sketch_name` and `direction` are ignored; it extrudes the sketch closed last." + ), + "create_loft": _STABLE, + "create_part": _beta("`material` is ignored; use `set_material`."), + "create_reference_plane": _STABLE, + "create_reference_point": _STABLE, + "create_revolve": _beta( + "`sketch_name` and `axis_entity` are ignored; it revolves the sketch " + "closed last around its centreline." + ), + "create_sweep": _STABLE, + "delete_feature": _beta( + "on SolidWorks its message doesn't name the dependent features it removed." + ), + "get_dimension": _UNCHECKED, + "insert_component": _STABLE, + "list_components": _STABLE, + "mirror_feature": _beta("mirroring a cut is reported as an error."), + "open_model": _STABLE, + "pattern_circular": _beta("patterning a cut is reported as an error."), + "rebuild_model": _STABLE, + "rename_feature": _STABLE, + "select_face_edges": _STABLE, + "select_feature": _STABLE, + "set_dimension": _STABLE, + "set_units": _STABLE, + "suppress_feature": _STABLE, + "undo": _STABLE, + # server_admin + "reset_circuit_breaker": _STABLE, + # sketching + "add_arc": _STABLE, + "add_centerline": _STABLE, + "add_circle": _STABLE, + "add_ellipse": _STABLE, + "add_line": _STABLE, + "add_polygon": _STABLE, + "add_rectangle": _STABLE, + "add_sketch_constraint": _STABLE, + "add_sketch_dimension": _STABLE, + "add_spline": _STABLE, + "check_sketch_fully_defined": _STABLE, + "create_sketch": _beta( + "echoes a `sketch_name` you pass instead of SolidWorks' own name." + ), + "exit_sketch": _STABLE, + "sketch_circular_pattern": _STABLE, + "sketch_linear_pattern": _STABLE, + "sketch_mirror": _STABLE, + "sketch_offset": _STABLE, + "sketch_tutorial_simple_hole": _beta( + "suggests a negative-depth extrusion for the hole instead of " + "`create_cut_extrude`." + ), + "tutorial_simple_hole": _PLANNED, # its cut step fails on real SolidWorks + # template_management + "apply_template": _PLANNED, + "batch_apply_template": _PLANNED, + "compare_templates": _UNCHECKED, + "extract_template": _PLANNED, + "list_template_library": _PLANNED, + "save_to_template_library": _PLANNED, + # vba_generation + "generate_vba_assembly_insert": _STABLE, + "generate_vba_assembly_mates": _STABLE, + "generate_vba_batch_export": _STABLE, + "generate_vba_drawing_dimensions": _STABLE, + "generate_vba_drawing_views": _STABLE, + "generate_vba_extrusion": _STABLE, + "generate_vba_file_operations": _STABLE, + "generate_vba_macro_recorder": _STABLE, + "generate_vba_part_modeling": _STABLE, + "generate_vba_revolve": _STABLE, +} diff --git a/src/solidworks_mcp/tools/tool_boundary.py b/src/solidworks_mcp/tools/tool_boundary.py index 100e5ce2..5cee766b 100644 --- a/src/solidworks_mcp/tools/tool_boundary.py +++ b/src/solidworks_mcp/tools/tool_boundary.py @@ -11,7 +11,9 @@ ``status``, ``message``, ``error_type``, ``hint`` and ``execution_time`` (the adapter's timing, else the tool's own wall time) - using :class:`ErrorClassifier` to name the failure. :class:`ToolRegistrar` applies the boundary to every tool at registration, so no -tool can forget it. +tool can forget it. It also adds each tool's support level (from +``support_levels.py``) to its tags and, for a beta or experimental tool, a +``warning`` to its successful results. """ from __future__ import annotations @@ -21,6 +23,7 @@ from collections.abc import Awaitable, Callable, Mapping from typing import Any, cast +from fastmcp.utilities.docstring_parsing import parse_docstring from loguru import logger from pydantic import BaseModel, ValidationError @@ -33,6 +36,7 @@ Classification, ErrorClassifier, ) +from .support_levels import SUPPORT_LEVELS, Support from .tool_hints import TOOL_HINTS, ToolHints _INVALID_INPUT_HINT = ( @@ -177,11 +181,22 @@ def error_payload( def tool_boundary( fn: Callable[..., Awaitable[dict[str, Any]]], classifier: ErrorClassifier = _CLASSIFIER, + warning: str | None = None, ) -> Callable[..., Awaitable[dict[str, Any]]]: """Wrap an async tool so every failure becomes an error payload. ``functools.wraps`` keeps the signature, so FastMCP builds the same input schema for the wrapped tool. + + Args: + fn: The tool function. + classifier: Names the failure in an error payload. + warning: Added as ``warning`` to every successful result (a beta or + experimental tool's level), after any warning of the tool's own; + errors carry a ``hint`` instead. + + Returns: + The wrapped tool. """ tool_name = fn.__name__ @@ -193,7 +208,7 @@ def elapsed() -> float: return time.perf_counter() - started try: - return await fn(*args, **kwargs) + result = await fn(*args, **kwargs) except InvalidInputError as exc: return error_payload( f"Invalid input: {exc}", @@ -228,6 +243,11 @@ def elapsed() -> float: classifier.classify(str(exc), exc, fallback=INTERNAL), elapsed(), ) + if warning is not None and result.get("status") == "success": + # A tool's own warning (e.g. a cut that removed nothing) comes first. + own = result.get("warning") + return {**result, "warning": f"{own} {warning}" if own else warning} + return result wrapper.__tool_boundary__ = True # type: ignore[attr-defined] return wrapper @@ -254,8 +274,10 @@ class ToolRegistrar: """A FastMCP stand-in whose ``tool()`` applies :func:`tool_boundary` first. It also gives each tool its title and behaviour hints from the hints - table, and its family tag (see :func:`tool_family`). Everything else is - forwarded to the wrapped server unchanged. + table, its family tag (see :func:`tool_family`), and its support level + from the levels table: a ``level:`` tag and, below stable, a + ``warning`` on success. Everything else is forwarded to the wrapped + server unchanged. """ def __init__( @@ -263,18 +285,36 @@ def __init__( mcp: Any, classifier: ErrorClassifier = _CLASSIFIER, hints: Mapping[str, ToolHints] = TOOL_HINTS, + levels: Mapping[str, Support] = SUPPORT_LEVELS, ) -> None: self._mcp = mcp self._classifier = classifier self._hints = hints + self._levels = levels + + def _support(self, name: str) -> Support: + """The support entry of a tool being registered. + + Raises: + KeyError: If the tool has no entry in the levels table. + """ + support = self._levels.get(name) + if support is None: + raise KeyError( + f"Tool {name!r} has no entry in tools/support_levels.py; add its " + "support level (stable, beta, experimental or planned) there." + ) + return support def _metadata( self, fn: Callable[..., Any], kwargs: dict[str, Any] ) -> dict[str, Any]: """The registration kwargs with the tool's title, hints and tag added. - Explicit ``title``/``annotations`` kwargs win over the table; tags - are merged. + Explicit ``title``/``annotations``/``description`` kwargs win over + the tables; tags are merged. A beta or experimental tool's + description opens with its level sentence, the same as its + ``warning``. Args: fn: The tool function being registered. @@ -284,7 +324,7 @@ def _metadata( dict[str, Any]: The keyword arguments to pass on to FastMCP. Raises: - KeyError: If the tool has no entry in the hints table. + KeyError: If the tool has no entry in the hints or levels table. """ name = kwargs.get("name") or fn.__name__ hints = self._hints.get(name) @@ -296,9 +336,22 @@ def _metadata( merged = dict(kwargs) merged.setdefault("title", hints.title) merged.setdefault("annotations", hints.annotations()) - merged["tags"] = {tool_family(fn), *(kwargs.get("tags") or ())} + support = self._support(name) + merged["tags"] = { + tool_family(fn), + f"level:{support.level.value}", + *(kwargs.get("tags") or ()), + } + warning = support.warning() + if warning is not None and "description" not in kwargs: + body = parse_docstring(fn).description + merged["description"] = "\n\n".join(filter(None, (warning, body))) return merged + def _wrap(self, fn: Callable[..., Awaitable[dict[str, Any]]], name: str) -> Any: + """The tool inside the boundary, with its level's success warning.""" + return tool_boundary(fn, self._classifier, self._support(name).warning()) + @classmethod def of(cls, mcp: Any) -> ToolRegistrar: """Wrap ``mcp`` unless it already is a registrar (idempotent). @@ -312,9 +365,7 @@ def tool(self, *args: Any, **kwargs: Any) -> Any: """Same contract as ``FastMCP.tool``, with the boundary and hints applied.""" if args and callable(args[0]) and len(args) == 1 and not kwargs: fn = args[0] - return self._mcp.tool(**self._metadata(fn, {}))( - tool_boundary(fn, self._classifier) - ) + return self._mcp.tool(**self._metadata(fn, {}))(self._wrap(fn, fn.__name__)) if args and isinstance(args[0], str): kwargs = {"name": args[0], **kwargs} @@ -322,7 +373,7 @@ def tool(self, *args: Any, **kwargs: Any) -> Any: def decorator(fn: Callable[..., Awaitable[dict[str, Any]]]) -> Any: register = self._mcp.tool(*args, **self._metadata(fn, kwargs)) - return register(tool_boundary(fn, self._classifier)) + return register(self._wrap(fn, kwargs.get("name") or fn.__name__)) return decorator diff --git a/tests/integration/test_support_levels.py b/tests/integration/test_support_levels.py new file mode 100644 index 00000000..1ff27f9e --- /dev/null +++ b/tests/integration/test_support_levels.py @@ -0,0 +1,104 @@ +"""The support-level table agrees with the code (spec: tools/support-levels). + +"Stable" is checked by text: the tool's name, as a whole word, in a test +under ``tests/live/`` or in a ``scripts/demo_*.py`` file such a test loads. +Tools of the offline families never call SolidWorks and are exempt. +""" + +from __future__ import annotations + +import re +from pathlib import Path +from typing import Any + +import pytest +from fastmcp import FastMCP + +from solidworks_mcp.tools import register_tools +from solidworks_mcp.tools.support_levels import ( + OFFLINE_FAMILIES, + SUPPORT_LEVELS, + SupportLevel, +) +from solidworks_mcp.tools.tool_boundary import tool_family + +_ROOT = Path(__file__).resolve().parents[2] +_NOT_AVAILABLE = "Not available yet" + + +async def _tools(adapter: Any) -> list[Any]: + mcp = FastMCP("levels") + await register_tools(mcp, adapter, {}) + return list(await mcp.list_tools()) + + +def _live_text() -> str: + """Every live test, plus the demo scripts those tests load.""" + text = "\n".join( + p.read_text(encoding="utf-8") for p in (_ROOT / "tests/live").glob("*.py") + ) + demos = [ + p.read_text(encoding="utf-8") + for p in (_ROOT / "scripts").glob("demo_*.py") + if p.name in text + ] + return "\n".join([text, *demos]) + + +@pytest.mark.asyncio +async def test_the_table_lists_exactly_the_registered_tools(mock_adapter) -> None: + registered = {t.name for t in await _tools(mock_adapter)} + + assert sorted(set(SUPPORT_LEVELS) - registered) == [], "stale names in the table" + assert sorted(registered - set(SUPPORT_LEVELS)) == [], "tools with no level" + + +@pytest.mark.asyncio +async def test_planned_means_not_available_yet(mock_adapter) -> None: + wrong = sorted( + t.name + for t in await _tools(mock_adapter) + if (_NOT_AVAILABLE in (t.description or "")) + != (SUPPORT_LEVELS[t.name].level is SupportLevel.PLANNED) + ) + + assert wrong == [], f"level and '{_NOT_AVAILABLE}' disagree" + + +@pytest.mark.asyncio +async def test_a_stable_tool_has_a_live_test(mock_adapter) -> None: + live = _live_text() + unchecked = sorted( + t.name + for t in await _tools(mock_adapter) + if SUPPORT_LEVELS[t.name].level is SupportLevel.STABLE + and tool_family(t.fn) not in OFFLINE_FAMILIES + and not re.search(rf"\b{t.name}\b", live) + ) + + assert unchecked == [], "stable, but no live test names it" + + +@pytest.mark.asyncio +async def test_a_description_opens_with_its_level(mock_adapter) -> None: + wrong = [] + for tool in await _tools(mock_adapter): + text = tool.description or "" + warning = SUPPORT_LEVELS[tool.name].warning() + if warning is not None and not text.startswith(warning): + wrong.append(tool.name) + if warning is None and text.startswith(("Beta:", "Experimental:")): + wrong.append(tool.name) + + assert wrong == [] + + +@pytest.mark.asyncio +async def test_every_tool_is_tagged_with_its_level(mock_adapter) -> None: + wrong = sorted( + t.name + for t in await _tools(mock_adapter) + if f"level:{SUPPORT_LEVELS[t.name].level.value}" not in t.tags + ) + + assert wrong == [] diff --git a/tests/solidworks_mcp/tools/test_modeling_measured_change.py b/tests/solidworks_mcp/tools/test_modeling_measured_change.py index 17e157fc..bcde5759 100644 --- a/tests/solidworks_mcp/tools/test_modeling_measured_change.py +++ b/tests/solidworks_mcp/tools/test_modeling_measured_change.py @@ -70,7 +70,7 @@ async def test_reports_volume_and_size_change(mcp_server, mock_adapter, name): "solid_body_count_before": 0, "solid_body_count_after": 1, } - assert "warning" not in result + assert "changed no volume" not in result.get("warning", "") @pytest.mark.asyncio @@ -96,7 +96,14 @@ class _BareAdapter: _CALLS["create_extrusion"] ) - assert set(result) == {"status", "message", "extrusion", "execution_time"} + # create_extrusion is beta, so the boundary adds its level warning. + assert set(result) == { + "status", + "message", + "extrusion", + "execution_time", + "warning", + } @pytest.mark.asyncio @@ -131,7 +138,7 @@ async def test_failed_after_read_does_not_fail_the_feature(mcp_server, mock_adap assert change["volume_delta_mm3"] is None assert change["solid_body_count_after"] is None assert change["note"].endswith("COM call timed out") - assert "warning" not in result + assert "changed no volume" not in result.get("warning", "") @pytest.mark.asyncio diff --git a/tests/solidworks_mcp/tools/test_support_levels.py b/tests/solidworks_mcp/tools/test_support_levels.py new file mode 100644 index 00000000..3de2e37e --- /dev/null +++ b/tests/solidworks_mcp/tools/test_support_levels.py @@ -0,0 +1,46 @@ +"""The support-level table and its entries (spec: tools/support-levels).""" + +from __future__ import annotations + +import pytest + +from solidworks_mcp.tools.support_levels import ( + SUPPORT_LEVELS, + Support, + SupportLevel, +) + + +def test_a_level_below_stable_needs_a_reason() -> None: + with pytest.raises(ValueError, match="reason is required"): + Support(SupportLevel.BETA) + + +def test_a_stable_tool_has_no_reason() -> None: + with pytest.raises(ValueError, match="reason is required"): + Support(SupportLevel.STABLE, "works") + + +@pytest.mark.parametrize( + ("level", "expected"), + [ + (SupportLevel.BETA, "Beta: one input is ignored."), + (SupportLevel.EXPERIMENTAL, "Experimental: one input is ignored."), + (SupportLevel.PLANNED, None), + ], +) +def test_the_warning_names_the_level_and_reason( + level: SupportLevel, expected: str | None +) -> None: + assert Support(level, "one input is ignored.").warning() == expected + + +def test_a_stable_tool_has_no_warning() -> None: + assert Support(SupportLevel.STABLE).warning() is None + + +def test_every_reason_is_one_sentence() -> None: + for name, support in SUPPORT_LEVELS.items(): + if support.reason: + assert support.reason.endswith("."), name + assert "\n" not in support.reason, name diff --git a/tests/solidworks_mcp/tools/test_tool_boundary.py b/tests/solidworks_mcp/tools/test_tool_boundary.py index 9ce24c7f..5345e4e9 100644 --- a/tests/solidworks_mcp/tools/test_tool_boundary.py +++ b/tests/solidworks_mcp/tools/test_tool_boundary.py @@ -11,6 +11,7 @@ from solidworks_mcp.adapters.base import AdapterResult, AdapterResultStatus from solidworks_mcp.tools.error_classifier import RPC_S_SERVER_UNAVAILABLE +from solidworks_mcp.tools.support_levels import Support, SupportLevel from solidworks_mcp.tools.tool_boundary import ( InvalidInputError, ToolOperationError, @@ -266,12 +267,14 @@ class _Args(BaseModel): name: ToolHints(name.title(), read_only=False, destructive=False, idempotent=False) for name in ("body", "renamed", "second", "positional") } +#: Support levels for the same stand-in tools: all stable. +_TEST_LEVELS = {name: Support(SupportLevel.STABLE) for name in _TEST_HINTS} @pytest.mark.asyncio async def test_registrar_keeps_the_schema_and_applies_the_boundary() -> None: plain, wrapped = FastMCP("plain"), FastMCP("wrapped") - registrar = ToolRegistrar(wrapped, hints=_TEST_HINTS) + registrar = ToolRegistrar(wrapped, hints=_TEST_HINTS, levels=_TEST_LEVELS) async def body(input_data: _Args) -> dict[str, Any]: raise ToolOperationError("Feature not found: X") @@ -294,7 +297,7 @@ async def test_registrar_applies_the_title_hints_and_family_tag() -> None: "body": ToolHints("Body", read_only=True, destructive=False, idempotent=True) } - @ToolRegistrar(mcp, hints=hints).tool() + @ToolRegistrar(mcp, hints=hints, levels=_TEST_LEVELS).tool() async def body() -> dict[str, Any]: return {"status": "success"} @@ -304,7 +307,7 @@ async def body() -> dict[str, Any]: assert tool.annotations.readOnlyHint is True assert tool.annotations.destructiveHint is False assert tool.annotations.idempotentHint is True - assert tool.tags == {"test_tool_boundary"} + assert tool.tags == {"test_tool_boundary", "level:stable"} @pytest.mark.asyncio @@ -312,7 +315,7 @@ async def test_registrar_keeps_explicit_metadata_and_merges_tags() -> None: mcp = FastMCP("t") explicit = ToolHints("Explicit", read_only=True, destructive=False, idempotent=True) - @ToolRegistrar(mcp, hints=_TEST_HINTS).tool( + @ToolRegistrar(mcp, hints=_TEST_HINTS, levels=_TEST_LEVELS).tool( title="Mine", annotations=explicit.annotations(), tags={"extra"} ) async def body() -> dict[str, Any]: @@ -322,14 +325,14 @@ async def body() -> dict[str, Any]: assert tool.title == "Mine" assert tool.annotations is not None assert tool.annotations.title == "Explicit" - assert tool.tags == {"extra", "test_tool_boundary"} + assert tool.tags == {"extra", "test_tool_boundary", "level:stable"} @pytest.mark.asyncio async def test_registrar_reads_a_positional_name() -> None: mcp = FastMCP("t") - @ToolRegistrar(mcp, hints=_TEST_HINTS).tool("positional") + @ToolRegistrar(mcp, hints=_TEST_HINTS, levels=_TEST_LEVELS).tool("positional") async def body() -> dict[str, Any]: return {"status": "success"} @@ -354,7 +357,7 @@ async def unlisted() -> dict[str, Any]: @pytest.mark.asyncio async def test_registrar_forwards_tool_kwargs_and_bare_decorator() -> None: mcp = FastMCP("t") - registrar = ToolRegistrar(mcp, hints=_TEST_HINTS) + registrar = ToolRegistrar(mcp, hints=_TEST_HINTS, levels=_TEST_LEVELS) @registrar.tool(name="renamed") async def first() -> dict[str, Any]: @@ -370,6 +373,78 @@ async def second() -> dict[str, Any]: assert result.structured_content["error_type"] == "internal" +def test_registrar_refuses_a_tool_with_no_level_entry() -> None: + registrar = ToolRegistrar(FastMCP("t"), hints=_TEST_HINTS, levels={}) + + async def body() -> dict[str, Any]: + return {"status": "success"} + + with pytest.raises( + KeyError, match="'body' has no entry in tools/support_levels.py" + ): + registrar.tool()(body) + + +@pytest.mark.asyncio +async def test_a_beta_tool_tags_its_level_and_warns_on_success_only() -> None: + mcp = FastMCP("t") + beta = Support(SupportLevel.BETA, "one input is ignored.") + registrar = ToolRegistrar( + mcp, hints=_TEST_HINTS, levels={"body": beta, "second": beta} + ) + + @registrar.tool() + async def body() -> dict[str, Any]: + """Do the thing.""" + return {"status": "success", "message": "done", "data": {"x": 1}} + + @registrar.tool() + async def second() -> dict[str, Any]: + raise ToolOperationError("Feature not found: X") + + listed = {t.name: t for t in await mcp.list_tools()} + assert listed["body"].description == ( + "Beta: one input is ignored.\n\nDo the thing." + ) + assert listed["second"].description == "Beta: one input is ignored." + tags = {name: t.tags for name, t in listed.items()} + ok = (await mcp.call_tool("body", {})).structured_content + failed = (await mcp.call_tool("second", {})).structured_content + assert tags["body"] == {"test_tool_boundary", "level:beta"} + assert ok == { + "status": "success", + "message": "done", + "data": {"x": 1}, + "warning": "Beta: one input is ignored.", + } + assert failed["status"] == "error" and "warning" not in failed + + +@pytest.mark.asyncio +async def test_a_tools_own_warning_comes_before_its_level() -> None: + mcp = FastMCP("t") + beta = Support(SupportLevel.BETA, "one input is ignored.") + + @ToolRegistrar(mcp, hints=_TEST_HINTS, levels={"body": beta}).tool() + async def body() -> dict[str, Any]: + return {"status": "success", "warning": "The cut removed nothing."} + + result = (await mcp.call_tool("body", {})).structured_content + + assert result["warning"] == ("The cut removed nothing. Beta: one input is ignored.") + + +@pytest.mark.asyncio +async def test_a_stable_tool_result_has_no_warning() -> None: + mcp = FastMCP("t") + + @ToolRegistrar(mcp, hints=_TEST_HINTS, levels=_TEST_LEVELS).tool() + async def body() -> dict[str, Any]: + return {"status": "success"} + + assert (await mcp.call_tool("body", {})).structured_content == {"status": "success"} + + def test_registrar_forwards_other_attributes() -> None: mcp = FastMCP("forward-me") diff --git a/tests/solidworks_mcp/tools/test_tool_hints.py b/tests/solidworks_mcp/tools/test_tool_hints.py index 3e6e0efe..783b9554 100644 --- a/tests/solidworks_mcp/tools/test_tool_hints.py +++ b/tests/solidworks_mcp/tools/test_tool_hints.py @@ -31,7 +31,7 @@ async def test_every_tool_carries_its_hints_and_family(mock_adapter) -> None: hints = TOOL_HINTS[name] assert tool.title == hints.title, name assert tool.annotations == hints.annotations(), name - assert tool.tags == {tool.fn.__module__.rsplit(".", 1)[-1]}, name + assert tool.fn.__module__.rsplit(".", 1)[-1] in tool.tags, name @pytest.mark.asyncio @@ -41,7 +41,7 @@ async def test_spot_checks(mock_adapter) -> None: assert tools["list_features"].annotations.readOnlyHint is True assert tools["delete_feature"].annotations.destructiveHint is True assert tools["create_extrusion"].annotations.readOnlyHint is False - assert tools["create_extrusion"].tags == {"modeling"} + assert tools["create_extrusion"].tags == {"modeling", "level:beta"} assert tools["save_file"].annotations.destructiveHint is True From 1bc0ba33f2c598166b456d02a1a9c63f77a1dfd3 Mon Sep 17 00:00:00 2001 From: Andrew Bartels Date: Fri, 6 Nov 2026 20:31:55 -0800 Subject: [PATCH 2/3] feat(docs): progress bars for tools by level and COM coverage, and a progress page A committed snapshot of the SolidWorks type library (418 interfaces, 5,985 method names) and a text scan of the adapters give the COM coverage: 208 of 2,838 methods of the twelve core interfaces, 232 of 5,985 across the API. `python -m solidworks_mcp.progress.generate` draws the progress SVG (tools by level, core COM coverage) and writes its data and the docs page's tables; a test fails when they're stale. The new Progress page lists every tool with its level and reason, filterable by level and family, and works without scripts. --- docs/assets/progress/com_snapshot.json | 423 +++++ docs/assets/progress/progress.json | 1391 +++++++++++++++++ docs/assets/progress/progress.svg | 53 + docs/assets/progress/tables.html | 182 +++ docs/javascripts/progress.js | 58 + docs/progress.md | 46 + docs/stylesheets/extra.css | 28 +- mkdocs.yml | 2 + .../design.md | 14 + .../tool-support-levels-and-progress/tasks.md | 10 +- src/solidworks_mcp/adapters/sw_type_info.py | 22 + src/solidworks_mcp/progress/__init__.py | 8 + src/solidworks_mcp/progress/com_coverage.py | 186 +++ src/solidworks_mcp/progress/generate.py | 224 +++ src/solidworks_mcp/progress/snapshot.py | 58 + src/solidworks_mcp/progress/svg.py | 188 +++ tests/integration/test_progress_up_to_date.py | 30 + .../adapters/test_sw_type_info.py | 30 + tests/solidworks_mcp/progress/__init__.py | 0 .../progress/test_com_coverage.py | 59 + .../solidworks_mcp/progress/test_generate.py | 102 ++ .../solidworks_mcp/progress/test_snapshot.py | 50 + tests/solidworks_mcp/progress/test_svg.py | 59 + 23 files changed, 3217 insertions(+), 6 deletions(-) create mode 100644 docs/assets/progress/com_snapshot.json create mode 100644 docs/assets/progress/progress.json create mode 100644 docs/assets/progress/progress.svg create mode 100644 docs/assets/progress/tables.html create mode 100644 docs/javascripts/progress.js create mode 100644 docs/progress.md create mode 100644 src/solidworks_mcp/progress/__init__.py create mode 100644 src/solidworks_mcp/progress/com_coverage.py create mode 100644 src/solidworks_mcp/progress/generate.py create mode 100644 src/solidworks_mcp/progress/snapshot.py create mode 100644 src/solidworks_mcp/progress/svg.py create mode 100644 tests/integration/test_progress_up_to_date.py create mode 100644 tests/solidworks_mcp/progress/__init__.py create mode 100644 tests/solidworks_mcp/progress/test_com_coverage.py create mode 100644 tests/solidworks_mcp/progress/test_generate.py create mode 100644 tests/solidworks_mcp/progress/test_snapshot.py create mode 100644 tests/solidworks_mcp/progress/test_svg.py diff --git a/docs/assets/progress/com_snapshot.json b/docs/assets/progress/com_snapshot.json new file mode 100644 index 00000000..5a087c34 --- /dev/null +++ b/docs/assets/progress/com_snapshot.json @@ -0,0 +1,423 @@ +{ + "type_library": "83A33D31-27C5-11CE-BFD4-00400513BB57x0x34x0", + "interfaces": { + "IAdvancedHoleFeatureData": ["AccessSelections", "GetFarSideElements", "GetNearSideElements", "ReleaseSelectionAccess", "SetFarSideElements", "SetNearSideElements"], + "IAdvancedSaveAsOptions": ["GetItemsNameAndPath", "ModifyItemsNameAndPath", "SetPrefixSuffixToAll"], + "IAdvancedSelectionCriteria": ["AddItem", "AddItem2", "DeleteItem", "GetItem", "GetItem2", "GetItemCount", "LoadCriteria", "SaveCriteria", "Select"], + "IAnimation": ["Beginning", "Close", "End", "Pause", "Play", "Stop"], + "IAnnotation": ["AddOrUpdateStyle", "ApplyDefaultStyleAttributes", "CanShowInAnnotationView", "CanShowInMultipleAnnotationViews", "CheckSpelling", "ConvertToMultiJog", "DeSelect", "DeleteStyle", "GetArrowHeadCount", "GetArrowHeadSizeAtIndex", "GetArrowHeadStyleAtIndex", "GetAttachedEntities", "GetAttachedEntities2", "GetAttachedEntities3", "GetAttachedEntityCount2", "GetAttachedEntityCount3", "GetAttachedEntityTypes", "GetBentLeader", "GetDashedLeader", "GetDimXpertFeature", "GetDimXpertName", "GetDisplayData", "GetFlipPlaneTransform", "GetLeader", "GetLeaderAllAround", "GetLeaderCount", "GetLeaderPerpendicular", "GetLeaderPointsAtIndex", "GetLeaderSide", "GetLeaderStyle", "GetMultiJogLeaderCount", "GetMultiJogLeaders", "GetName", "GetNext", "GetNext2", "GetNext3", "GetPMIData", "GetPMIType", "GetParagraphs", "GetPlane", "GetPosition", "GetSmartArrowHeadStyle", "GetSpecificAnnotation", "GetStyleName", "GetTextFormat", "GetTextFormatCount", "GetType", "GetUseDocTextFormat", "GetVisualProperties", "IGetAttachedEntities", "IGetAttachedEntityCount", "IGetAttachedEntityTypes", "IGetDisplayData", "IGetLeaderPointsAtIndex", "IGetMultiJogLeaders", "IGetNext", "IGetNext2", "IGetPosition", "IGetSpecificAnnotation", "IGetTextFormat", "IGetVisualProperties", "ISetAttachedEntities", "ISetTextFormat", "IsDangling", "IsDimXpert", "LoadStyle", "SaveStyle", "Select", "Select2", "Select3", "SelectByMark", "SetArrowHeadSizeAtIndex", "SetArrowHeadStyleAtIndex", "SetAttachedEntities", "SetLeader", "SetLeader2", "SetLeader3", "SetLeaderAttachmentPointAtIndex", "SetName", "SetPosition", "SetPosition2", "SetStyleName", "SetTextFormat"], + "IAnnotationView": ["Activate", "ActivateAndReorient", "GetAnnotations2", "GetViewRotation", "Hide", "IGetAnnotations", "IGetViewRotation", "IsShown", "MoveAnnotations", "Orient", "Show"], + "IAssemblyDoc": ["ActivateGroundPlane", "AddComponent", "AddComponent2", "AddComponent4", "AddComponent5", "AddComponentConfiguration", "AddComponents", "AddComponents3", "AddConcentricMateWithTolerance", "AddDistanceMate", "AddMate", "AddMate2", "AddMate3", "AddMate4", "AddMate5", "AddPLMComponent", "AddPipePenetration", "AddPipingFitting", "AddSmartComponent", "AddToFeatureScope", "AssemblyPartToggle", "AutoAngleAxis", "AutoExplode", "AutoMateRepair", "CollectAllSupportiveMates", "CompConfigProperties", "CompConfigProperties2", "CompConfigProperties3", "CompConfigProperties4", "CompConfigProperties5", "CompConfigProperties6", "ComponentReload", "ComponentReload2", "CopyWithMates", "CopyWithMates2", "CreateExplodedView", "CreateMate", "CreateMateData", "CreateSmartComponent", "CreateSpeedPak", "DeleteSelections", "DissolveComponentPattern", "DissolveSubAssembly", "Dummy1", "Dummy2", "Dummy3", "Dummy4", "Dummy5", "Dummy6", "Dummy7", "EditAssembly", "EditConcentricMate", "EditDistanceMate", "EditExplodeParameters", "EditMate", "EditMate2", "EditMate3", "EditMate4", "EditPart", "EditPart2", "EditRebuild", "ExitIsolate", "FeatureByName", "FeatureExtrusion", "FileDeriveComponentPart", "FixComponent", "ForceRebuild", "ForceRebuild2", "ForceUpdateElectricalData", "ForceUpdateElectricalData2", "GetActiveGroundPlane", "GetAdvancedSelection", "GetBox", "GetComponentByID", "GetComponentByName", "GetComponentCount", "GetComponents", "GetDragOperator", "GetDroppedAtEntity", "GetEditTarget", "GetEditTargetComponent", "GetExplodedViewConfigurationName", "GetExplodedViewCount", "GetExplodedViewCount2", "GetExplodedViewNames", "GetExplodedViewNames2", "GetFeatureScope", "GetFeatureScopeCount", "GetFirstMember", "GetLargeDesignReviewState", "GetLightWeightComponentCount", "GetPhysicalSimulationComponents", "GetRouteManager", "GetSelectedMember", "GetSimulation", "GetUnloadedComponentNames", "GetVisibleComponentsInView", "GetVisibleComponentsInViewCount", "HasUnloadedComponents", "HideComponent", "IAddComponent2", "IAddComponent3", "IAddComponents", "IAddComponents2", "IAddComponents3", "IComponentReload2", "IComponentReload3", "IFeatureByName", "IGetBox", "IGetComponents", "IGetDragOperator", "IGetEditTarget", "IGetEditTarget2", "IGetExplodedViewNames", "IGetFeatureScope", "IGetFirstMember", "IGetSelectedMember", "IGetVisibleComponentsInView", "IMirrorComponents", "IReorderComponents", "IReorganizeComponents", "ISetComponentState", "ISetComponentVisibility", "IToolsCheckInterference2", "IToolsCheckInterference3", "InsertCavity", "InsertCavity2", "InsertCavity3", "InsertCavity4", "InsertDerivedPattern", "InsertEnvelope", "InsertImportedComponent", "InsertJoin", "InsertJoin2", "InsertLoadReference", "InsertNewAssembly", "InsertNewPart", "InsertNewPart2", "InsertNewVirtualAssembly", "InsertNewVirtualPart", "InsertWeld", "InsertWeld2", "IsComponentTreeValid", "IsRouteAssembly", "Isolate", "LightweightAllResolved", "MakeAssemblyFromSelectedComponents", "MakeIndependent", "MakeLightWeight", "MirrorComponents", "MirrorComponents2", "MirrorComponents3", "OpenCompFile", "RemoveFromFeatureScope", "ReorderComponents", "ReorganizeComponents", "ReplaceComponents", "ReplaceComponents2", "ReplacePLMComponents", "ResolveAllLightWeightComponents", "ResolveAllLightweight", "ResolveOutOfDateLightWeightComponents", "RotateComponent", "RotateComponentAxis", "SaveIsolate", "SelectComponentsBySize", "SelectiveOpen", "SetComponentState", "SetComponentSuppression", "SetComponentTransparent", "SetComponentVisibility", "SetDroppedFileConfigName", "SetDroppedFileFeatureName", "SetDroppedFileName", "SetForceResetConfigName", "SetIsolateVisibility", "SetSpeedPakConfigurations", "SetSpeedPakToParent", "ShowComponent", "ShowExploded", "ShowExploded2", "TemporaryFixGroup", "TemporaryFixGroupExit", "ToolsCheckInterference", "ToolsCheckInterference2", "TranslateComponent", "UnfixComponent", "UngroupComponents", "UpdateBox", "UpdateFeatureScope", "UpdateSpeedPak", "UpdateToolboxComponent", "UseSpeedPak", "ViewCollapseAssembly", "ViewExplodeAssembly", "ViewFeatureManagerByDependencies", "ViewFeatureManagerByFeatures", "ViewFeatureManagerFeatureDetail"], + "IAttribute": ["Delete", "GetBody", "GetComponent", "GetDefinition", "GetEntity", "GetEntity2", "GetEntityState", "GetName", "GetParameter", "IGetComponent", "IGetComponent2", "IGetDefinition", "IGetEntity", "IGetEntity2", "IGetParameter"], + "IAttributeDef": ["AddCallback", "AddParameter", "CreateInstance", "CreateInstance2", "CreateInstance3", "CreateInstance4", "CreateInstance5", "GetOption", "ICreateInstance", "ICreateInstance2", "ICreateInstance3", "ICreateInstance4", "Register", "SetOption"], + "IBSurfParamData": ["GetControlPoints", "IGetControlPoints"], + "IBalloonStack": ["AddTo", "IGetStack"], + "IBaseFlangeFeatureData": ["AccessSelections", "GetCustomBendAllowance", "GetD1OffsetReferenceType", "GetD2OffsetReferenceType", "GetTableRadii", "GetTableRadiiCount", "GetTableThicknesses", "GetTableThicknessesCount", "IAccessSelections", "IAccessSelections2", "IGetTableRadii", "IGetTableThicknesses", "Initialize", "ReleaseSelectionAccess"], + "IBeltChainFeatureData": ["AccessBeltPart", "AccessSelections", "GetMemberIndex", "ModifyMemberParameters", "ReleaseSelectionAccess"], + "IBendTable": ["GetFeature", "GetTableAnnotationCount", "GetTableAnnotations", "IGetTableAnnotations"], + "IBendsFeatureData": ["AccessSelections", "GetCustomBendAllowance", "GetFixedFace", "IAccessSelections", "IAccessSelections2", "ReleaseSelectionAccess", "SetCustomBendAllowance"], + "IBlockDefinition": ["GetBasePoint", "GetBlockInstanceCount", "GetBlockInstances", "GetDimensionCount", "GetDimensions", "GetExternalFileName", "GetNoteCount", "GetNotes", "GetSketch", "GetUseExternalFile", "IGetBasePoint", "IGetBlockInstances", "IGetDimensions", "IGetNotes", "ISetBasePoint", "InsertInstance", "SetBasePoint", "SetExternalFileName", "SetUseExternalFile"], + "IBlockInstance": ["GetAnnotation", "GetAttributeCount", "GetAttributeValue", "GetAttributes", "GetNext", "IGetAttributes", "SetAttributeValue"], + "IBody": ["AddProfileArc", "AddProfileBspline", "AddProfileLine", "AddPropertyExtension", "AddVertexPoint", "Check", "Copy", "CreateBaseFeature", "CreateBlendSurface", "CreateBodyFromFaces", "CreateBodyFromSurfaces", "CreateBoundedSurface", "CreateBsplineSurface", "CreateExtrusionSurface", "CreateNewSurface", "CreateOffsetSurface", "CreatePlanarSurface", "CreateRevolutionSurface", "CreateTempBodyFromSurfaces", "CreateTrimmedSurface", "DeleteBlends", "DeleteBlends2", "DeleteFaces", "DeleteFaces2", "Display", "DisplayWireFrameXOR", "DraftBody", "EnumFaces", "GetBodyBox", "GetEdgeCount", "GetExcessBodyArray", "GetExtremePoint", "GetFaceCount", "GetFirstFace", "GetFirstSelectedFace", "GetIgesErrorCode", "GetIgesErrorCount", "GetIntersectionEdges", "GetMassProperties", "GetMaterialIdName", "GetMaterialUserName", "GetNextSelectedFace", "GetProcessedBody", "GetProcessedBodyWithSelFace", "GetPropertyExtension", "GetSelectedFaceCount", "GetSheetBody", "GetTessellation", "GetType", "Hide", "IAddProfileArc", "IAddProfileArcDLL", "IAddProfileBspline", "IAddProfileBsplineDLL", "IAddProfileLine", "IAddProfileLineDLL", "IAddVertexPoint", "ICombineVolumes", "ICopy", "ICreateBaseFeature", "ICreateBlendSurface", "ICreateBodyFromFaces", "ICreateBoundedSurface", "ICreateBsplineSurface", "ICreateBsplineSurfaceDLL", "ICreateExtrusionSurface", "ICreateExtrusionSurfaceDLL", "ICreateNewSurface", "ICreateOffsetSurface", "ICreatePlanarSurface", "ICreatePlanarSurfaceDLL", "ICreatePlanarTrimSurfaceDLL", "ICreatePsplineSurfaceDLL", "ICreateRevolutionSurface", "ICreateRevolutionSurfaceDLL", "ICreateTempBodyFromSurfaces", "IDeleteBlends", "IDeleteBlends2", "IDeleteFaces2", "IDeleteFaces3", "IDisplay", "IDisplayWireFrameXOR", "IDraftBody", "IGetBodyBox", "IGetExcessBodyArray", "IGetExcessBodyCount", "IGetFirstFace", "IGetFirstSelectedFace", "IGetIntersectionEdgeCount", "IGetIntersectionEdges", "IGetMassProperties", "IGetNextSelectedFace", "IGetProcessedBody", "IGetProcessedBodyWithSelFace", "IGetSheetBody", "IGetTessellation", "IHide", "IMatchedBoolean", "IOperations", "IOperations2", "IRemoveFacesFromSheet", "ISave", "ISectionBySheet", "ISetCurrentSurface", "ISetXform", "MatchedBoolean", "Operations", "Operations2", "RemoveFacesFromSheet", "RemoveRedundantTopology", "ResetPropertyExtension", "Save", "SetCurrentSurface", "SetIgesInfo", "SetMaterialIdName", "SetMaterialUserName", "SetXform"], + "IBody2": ["AddConstantFillets", "AddProfileArc", "AddProfileBspline", "AddProfileBsplineByPts", "AddProfileLine", "AddPropertyExtension", "AddPropertyExtension2", "AddVertexPoint", "ApplyTransform", "Check", "Check2", "ConvertToMeshBody", "Copy", "Copy2", "CreateBaseFeature", "CreateBlendSurface", "CreateBodyFromFaces", "CreateBodyFromSurfaces", "CreateBoundedSurface", "CreateBsplineSurface", "CreateExtrusionSurface", "CreateNewSurface", "CreateOffsetSurface", "CreatePlanarSurface", "CreatePlanarTrimSurfaceDLL", "CreateRevolutionSurface", "CreateRuledSurface", "CreateTempBodyFromSurfaces", "CreateTrimmedSurface", "DeSelect", "DeleteBlends", "DeleteBlends2", "DeleteBlends3", "DeleteFaces", "DeleteFaces2", "DeleteFaces3", "DeleteFaces4", "DeleteFaces5", "DeleteFacesMakeSheetBodies", "Diagnose", "Display", "Display2", "Display3", "DisplayWireFrameXOR", "DraftBody", "DraftBody2", "EnumFaces", "ExtendSurface", "FindAttribute", "GetBodyBox", "GetCoincidenceTransform", "GetCoincidenceTransform2", "GetEdgeCount", "GetEdges", "GetExcessBodyArray", "GetExtremePoint", "GetFaceCount", "GetFaces", "GetFeatureCount", "GetFeatures", "GetFirstFace", "GetFirstSelectedFace", "GetGraphicsBody", "GetIgesErrorCode", "GetIgesErrorCount", "GetIntersectionEdges", "GetIntersectionEdges2", "GetMassProperties", "GetMaterialIdName", "GetMaterialIdName2", "GetMaterialPropertyName", "GetMaterialUserName", "GetMaterialUserName2", "GetMeshBody", "GetMiddleSurface", "GetNextSelectedFace", "GetOriginalPatternedBody", "GetProcessedBody", "GetProcessedBody2", "GetProcessedBodyWithSelFace", "GetPropertyExtension", "GetPropertyExtension2", "GetSafeBody", "GetSelectedFaceCount", "GetSelectedFaces", "GetSelectionId", "GetSheetBody", "GetTessellation", "GetTexture", "GetTrackingIDs", "GetTrackingIDsCount", "GetType", "GetUpdateStamp", "GetVertexCount", "GetVertices", "HasMaterialPropertyValues", "Hide", "HideBody", "IAddProfileArc", "IAddProfileArcDLL", "IAddProfileBspline", "IAddProfileBsplineByPts", "IAddProfileBsplineDLL", "IAddProfileLine", "IAddProfileLineDLL", "IAddVertexPoint", "ICombineVolumes", "ICopy", "ICreateBaseFeature", "ICreateBlendSurface", "ICreateBodyFromFaces", "ICreateBoundedSurface", "ICreateBsplineSurface", "ICreateBsplineSurfaceDLL", "ICreateExtrusionSurface", "ICreateExtrusionSurfaceDLL", "ICreateNewSurface", "ICreateOffsetSurface", "ICreatePlanarSurface", "ICreatePlanarSurfaceDLL", "ICreatePlanarTrimSurfaceDLL", "ICreatePsplineSurfaceDLL", "ICreateRevolutionSurface", "ICreateRevolutionSurfaceDLL", "ICreateRuledSurface", "ICreateTempBodyFromSurfaces", "IDeleteBlends", "IDeleteBlends2", "IDeleteBlends3", "IDeleteFaces2", "IDeleteFaces3", "IDeleteFacesMakeSheetBodies", "IDeleteFacesMakeSheetBodiesCount", "IDisplay", "IDisplayWireFrameXOR", "IDraftBody", "IDraftBody2", "IExtendSurface", "IGetBodyBox", "IGetEdges", "IGetExcessBodyArray", "IGetExcessBodyCount", "IGetFaces", "IGetFeatures", "IGetFirstFace", "IGetFirstSelectedFace", "IGetIntersectionEdgeCount", "IGetIntersectionEdges", "IGetMassProperties", "IGetMaterialPropertyValuesForFace", "IGetMiddleSurface", "IGetNextSelectedFace", "IGetProcessedBody", "IGetProcessedBodyWithSelFace", "IGetSelectedFaces", "IGetSheetBody", "IGetTessellation", "IGetTrackingIDs", "IGetVertices", "IHide", "IMatchedBoolean", "IMatchedBoolean2", "IMatchedBoolean3", "IMatchedBoolean4", "IOperations", "IOperations2", "IRemoveFacesFromSheet", "IRemoveMaterialProperty", "ISave", "ISectionBySheet", "ISetCurrentSurface", "ISetXform", "IsGraphicsBody", "IsMeshBody", "IsPatternSeed", "IsSheetMetal", "IsTemporaryBody", "MakeOffset", "MatchedBoolean", "MatchedBoolean2", "MatchedBoolean3", "MatchedBoolean4", "MinimumRadius", "Negate", "OffsetPlanarWireBody", "Operations", "Operations2", "RemoveFacesFromSheet", "RemoveMaterialProperty", "RemoveRedundantTopology", "RemoveTexture", "RemoveTextureByDisplayState", "RemoveTrackingID", "ResetEdgeTolerances", "ResetPropertyExtension", "ResetPropertyExtension2", "Save", "Select", "Select2", "SetCurrentSurface", "SetIgesInfo", "SetMaterialIdName", "SetMaterialIdName2", "SetMaterialProperty", "SetMaterialUserName", "SetMaterialUserName2", "SetTexture", "SetTextureByDisplayState", "SetTrackingID", "SetXform"], + "IBodyFolder": ["GetAutomaticCutList", "GetAutomaticUpdate", "GetBodies", "GetBodyCount", "GetCutListSortOptions", "GetCutListType", "GetFeature", "GetTopLevelFeatureCount", "GetTopLevelFeatures", "IGetBodies", "SetAutomaticCutList", "SetAutomaticUpdate", "SortCutList", "UpdateCutList"], + "IBomFeature": ["FollowAssemblyOrder", "GetConfigurationCount", "GetConfigurations", "GetFeature", "GetLinkToDisplayState", "GetReferencedModelName", "GetTableAnnotationCount", "GetTableAnnotations", "IGetConfigurations", "IGetTableAnnotations", "ISetConfigurations", "SetConfigurations", "SetLinkToDisplayState"], + "IBomTable": ["Attach", "Attach2", "Attach3", "DeSelect", "Detach", "GetColumnCount", "GetColumnWidth", "GetDisplayData", "GetEntryText", "GetEntryValue", "GetExtent", "GetHeaderText", "GetRowCount", "GetRowHeight", "GetTotalColumnCount", "GetTotalRowCount", "IGetDisplayData", "IGetExtent", "IsVisible", "Select"], + "IBomTableAnnotation": ["ApplySavedSortScheme", "Collapse", "Dissolve", "Expand", "GetAllCustomProperties", "GetAllCustomPropertiesCount", "GetBomTableSortData", "GetColumnCustomProperty", "GetColumnUseTitleAsPartNumber", "GetComponents", "GetComponents2", "GetComponentsCount", "GetComponentsCount2", "GetModelPathNames", "GetModelPathNamesCount", "IGetAllCustomProperties", "IGetComponents", "IGetComponents2", "IGetModelPathNames", "RestoreRestructuredComponents", "SaveAsExcel", "SetColumnCustomProperty", "SetColumnUseTitleAsPartNumber", "Sort"], + "IBomTableSortData": ["Ascending", "ColumnIndex", "SetAscending", "SetColumnIndex"], + "IBoundaryBossFeatureData": ["AccessSelections", "GetAlignmentType", "GetCurvesCount", "GetDirectionVector", "GetDraftAngle", "GetDraftAngleReverseDirection", "GetGuideTangencyType", "GetTangentApplyToAll", "GetTangentDirectionReversed", "GetTangentInfluence", "GetTangentLength", "IsThinFeature", "ReleaseSelectionAccess", "SetAlignmentType", "SetDirectionVector", "SetDraftAngle", "SetDraftAngleReverseDirection", "SetGuideTangencyType", "SetTangentApplyToAll", "SetTangentDirectionReversed", "SetTangentInfluence", "SetTangentLength", "SetThinFeatureThickness", "ThinFeatureThickness"], + "IBoundingBoxFeatureData": ["AccessSelections", "ReleaseSelectionAccess"], + "IBreakCornerFeatureData": ["AccessSelections", "GetEntitiesCount", "IAccessSelections", "IGetEntities", "ISetEntities", "ReleaseSelectionAccess"], + "IBreakLine": ["GetPosition", "GetView", "Select", "SetPosition"], + "IBrokenOutSectionFeatureData": ["AccessSelections", "GetSketchSegmentCount", "IAccessSelections", "IGetSketchSegment", "ReleaseSelectionAccess"], + "ICThread": ["GetAnnotation", "GetDisplayData", "GetNext", "GetPatternedTransformsCount", "IGetAnnotation", "IGetDisplayData", "IGetNext", "IGetPatternedTransforms"], + "ICallout": ["Display", "GetLeader", "GetTargetPoint", "IgnoreValue", "Label2", "SetIgnoreValue", "SetLabel2", "SetLeader", "SetTargetPoint", "SetTextColor", "SetValue", "SetValueInactive", "TextColor", "UpdatePosition", "Value", "ValueInactive"], + "ICamFollowerMateFeatureData": ["EntitiesToMate", "SetEntitiesToMate"], + "ICamera": ["GetFocalDistance", "GetPointOfInterestDistance", "GetPosition", "GetPositionCartesian", "GetPositionEntity", "GetPositionSpherical", "GetTargetPointEntity", "GetUpVector", "GetViewVector", "SetPositionCartesian", "SetPositionEntity", "SetPositionSpherical", "SetTargetPointEntity"], + "ICavityFeatureData": ["AccessSelections", "GetComponentsCount", "GetScale", "IGetComponents", "ISetComponents", "ReleaseSelectionAccess", "SetScale"], + "ICenterLine": ["GetAnnotation", "GetNext"], + "ICenterMark": ["AddToCenterMarkGroup", "GetAnnotation", "GetExtendedLength", "GetNext", "GetPosition", "HasDetachCenterMark", "IsDeleted", "IsDetached", "ReattachToCenterMarkGroup", "Select", "SetExtendedLength"], + "ICenterOfMass": ["GetAnnotation", "GetCoordinates", "GetNext", "IGetAnnotation", "IGetCoordinates", "IGetNext"], + "IChainPatternFeatureData": ["AccessSelections", "ClearGroup2Selections", "ReleaseSelectionAccess", "SetEqualSpacing"], + "IChamferFeatureData": ["GetEdgeChamferDistance", "GetVertexChamferDistance", "SetEdgeChamferDistance", "SetVertexChamferDistance"], + "IChamferFeatureData2": ["AccessSelections", "GetEdgeChamferDistance", "GetEdgeCount", "GetFaceCount", "GetIsFlipped", "GetVertexChamferDistance", "IAccessSelections", "IGetEdges", "IGetFaces", "IGetLoops", "ISetEdges", "ISetFaces", "ISetLoops", "ReleaseSelectionAccess", "SetEdgeChamferDistance", "SetIsFlipped", "SetVertexChamferDistance"], + "ICircularPatternFeatureData": ["AccessSelections", "GetAxisType", "GetInstanceToVaryOptions", "GetPatternBodyCount", "GetPatternFaceCount", "GetPatternFeatureCount", "GetSkippedItemCount", "GetTransform", "IAccessSelections", "IAccessSelections2", "IGetPatternBodyArray", "IGetPatternFaceArray", "IGetPatternFeatureArray", "IGetSkippedItemArray", "ISetPatternBodyArray", "ISetPatternFaceArray", "ISetPatternFeatureArray", "ISetSkippedItemArray", "ReleaseSelectionAccess", "SetFeatureScope", "SetInstanceToVaryOptions"], + "IClearanceVerificationMgr": ["CalculateClearances", "GetComponentsOrFacesToCheck", "GetMinimumAcceptableClearance", "SetComponentsOrFacesToCheck", "SetMinimumAcceptableClearance"], + "IClosedCornerFeatureData": ["AccessSelections", "IAccessSelections", "IAccessSelections2", "IGetFaces", "IGetFacesCount", "ISetFaces", "ReleaseSelectionAccess"], + "ICoEdge": ["Evaluate", "Evaluate2", "GetCurve", "GetCurveParams", "GetEdge", "GetLoop", "GetNext", "GetPartner", "GetSense", "IEvaluate", "IEvaluate2", "IGetCurve", "IGetCurveParams", "IGetEdge", "IGetLoop", "IGetLoop2", "IGetNext", "IGetPartner"], + "ICollision": ["GetComponents", "GetTransforms", "IsPenetrating"], + "ICollisionDetectionGroup": ["ApplyTransforms", "GetComponentCount", "GetComponents", "GetTransforms", "RemoveAllTransforms", "SetComponents"], + "ICollisionDetectionManager": ["CreateGroup", "GetAssembly", "GetCollisions", "GetGroup", "GetGroupCount", "IsCollisionPresent", "RemoveGroup", "SetAssembly"], + "IColorTable": ["GetBasicColorCount", "GetBasicColors", "GetColorRefAtIndex", "GetCount", "GetCustomColorCount", "GetCustomColors", "GetNameAtIndex", "GetStandardCount", "IGetBasicColors", "IGetCustomColors", "SetColorRefAtIndex", "SetCustomColor"], + "ICombineBodiesFeatureData": ["AccessSelections", "GetBodiesToCombineCount", "IGetBodiesToCombine", "ISetBodiesToCombine", "ReleaseSelectionAccess"], + "ICommandGroup": ["Activate", "AddCommandItem", "AddCommandItem2", "AddSpacer", "AddSpacer2", "CommandID", "GetToolbarVisibility", "MenuPosition", "SetMenuPosition", "SetToolbarVisibility"], + "ICommandManager": ["AddCommandTab", "AddContextMenu", "CommandTabs", "CreateCommandGroup", "CreateCommandGroup2", "CreateFlyoutGroup", "CreateFlyoutGroup2", "GetCommandGroup", "GetCommandIDsCount", "GetCommandTab", "GetCommandTabCount", "GetFlyoutGroup", "GetFlyoutGroups", "GetGroupDataFromRegistry", "GetGroups", "IGetCommandTabs", "IGetGroupDataFromRegistry", "IGetGroups", "RemoveCommandGroup", "RemoveCommandGroup2", "RemoveCommandTab", "RemoveFlyoutGroup"], + "ICommandTab": ["AddCommandTabBox", "AddSeparator", "CommandTabBoxes", "GetCommandTabBoxCount", "IGetCommandTabBoxes", "RemoveCommandTabBox"], + "ICommandTabBox": ["AddCommands", "GetCommands", "IAddCommands", "IGetCommands", "IRemoveCommands", "RemoveCommands"], + "IComment": ["Delete"], + "ICommentFolder": ["AddComment", "GetCommentCount", "GetComments", "GetFeature", "IGetComments"], + "IComplexCornerTreatmentFeatureData": ["GetBodyTrimMembers", "GetPlanarTrimMembers", "GetTrimToolMember", "SetBodyTrimMembers", "SetPlanarTrimMembers", "SetTrimToolMember"], + "IComponent": ["AddPropertyExtension", "DeSelect", "EnumRelatedBodies", "EnumSectionedBodies", "FindAttribute", "GetBody", "GetBox", "GetChildren", "GetConstrainedStatus", "GetMaterialIdName", "GetMaterialUserName", "GetModelDoc", "GetPathName", "GetPropertyExtension", "GetSectionedBodies", "GetSuppression", "GetTessNorms", "GetTessTriStripEdges", "GetTessTriStripNorms", "GetTessTriStrips", "GetTessTriangles", "GetXform", "IFindAttribute", "IGetBody", "IGetBox", "IGetChildren", "IGetChildrenCount", "IGetModelDoc", "IGetTemporaryBodyID", "IGetTessNorms", "IGetTessTriStripEdgeSize", "IGetTessTriStripEdges", "IGetTessTriStripNorms", "IGetTessTriStripSize", "IGetTessTriStrips", "IGetTessTriangleCount", "IGetTessTriangles", "IGetXform", "ISetXform", "ISetXformAndSolve", "IsDisplayDataOutOfDate", "IsFixed", "IsHidden", "IsSuppressed", "RemoveMaterialProperty", "ResetPropertyExtension", "Select", "SelectByMark", "SetMaterialIdName", "SetMaterialUserName", "SetSuppression", "SetXform", "SetXformAndSolve"], + "IComponent2": ["AddPropertyExtension", "CustomPropertyManager", "DeSelect", "EnumBodies", "EnumBodies2", "EnumBodies3", "EnumRelatedBodies", "EnumSectionedBodies", "FeatureByName", "FindAttribute", "FirstFeature", "GetBodies", "GetBodies2", "GetBodies3", "GetBody", "GetBox", "GetChildren", "GetConfigurationCount", "GetConfigurationNames", "GetConstrainedStatus", "GetCorresponding", "GetCorrespondingEntity", "GetDecals", "GetDecalsCount", "GetDrawingComponent", "GetExcludeFromBOM2", "GetHiddenUnloadedChildrenCount", "GetID", "GetImportedPath", "GetMaterialIdName", "GetMaterialPropertyValues2", "GetMaterialUserName", "GetMates", "GetModelDoc", "GetModelDoc2", "GetModelMaterialPropertyValues", "GetModelTexture", "GetPLMID", "GetParent", "GetPathName", "GetPropertyExtension", "GetReferencedDisplayStates", "GetRemainingDOFs", "GetRenderMaterials", "GetRenderMaterials2", "GetRenderMaterialsCount", "GetRenderMaterialsCount2", "GetRepresentationParent", "GetSectionedBodies", "GetSelectByIDString", "GetSmartComponentData", "GetSpecificTransform", "GetSuppression", "GetSuppression2", "GetTessNorms", "GetTessTriStripEdges", "GetTessTriStripNorms", "GetTessTriStrips", "GetTessTriangles", "GetTexture", "GetTotalTransform", "GetType", "GetUnloadedComponentNames", "GetVisibility", "GetVisibilityInAsmDisplayStates", "GetXform", "HasAssemblyFeatures", "HasMaterialPropertyValues", "HasUnloadedComponents", "IFindAttribute", "IGetBody", "IGetBox", "IGetChildren", "IGetChildrenCount", "IGetCorrespondingEntity", "IGetDecals", "IGetMaterialPropertyValues2", "IGetMaterialPropertyValuesForFace", "IGetModelDoc", "IGetModelMaterialPropertyValues", "IGetRenderMaterials", "IGetTemporaryBodyID", "IGetTessNorms", "IGetTessTriStripEdgeSize", "IGetTessTriStripEdges", "IGetTessTriStripNorms", "IGetTessTriStripSize", "IGetTessTriStrips", "IGetTessTriangleCount", "IGetTessTriangles", "IGetVisibility", "IGetXform", "IListExternalFileReferences", "IListExternalFileReferences2", "IRemoveMaterialProperty2", "ISetMaterialPropertyValues2", "ISetVisibility", "ISetXform", "ISetXformAndSolve", "IsDisplayDataOutOfDate", "IsEnvelope", "IsFixed", "IsHidden", "IsLoaded", "IsMirrored", "IsNameOverridden", "IsPatternInstance", "IsRoot", "IsSmartComponent", "IsSuppressed", "ListExternalFileReferences", "ListExternalFileReferences2", "ListExternalFileReferencesCount", "MakeVirtual", "MakeVirtual2", "RemoveMaterialProperty", "RemoveMaterialProperty2", "RemovePresentationTransform", "RemoveTexture", "RemoveTextureByDisplayState", "ReplaceReference", "ResetPropertyExtension", "SaveVirtualComponent", "Select", "Select2", "Select3", "Select4", "SelectByMark", "SetCosmosWorksMaterial", "SetExcludeFromBOM2", "SetMaterialIdName", "SetMaterialPropertyValues2", "SetMaterialUserName", "SetReferencedDisplayStates", "SetSmartComponentData", "SetSuppression", "SetSuppression2", "SetTexture", "SetTextureByDisplayState", "SetTransformAndSolve", "SetTransformAndSolve2", "SetTransformAndSolve3", "SetVisibility", "SetVisibilityInAsmDisplayStates", "SetXform", "SetXformAndSolve", "UpdateExternalFileReferences"], + "ICompositeCurveFeatureData": ["AccessSelections", "GetEntitiesToJoin", "GetEntitiesToJoinCount", "IGetEntitiesToJoin", "ISetEntitiesToJoin", "ReleaseSelectionAccess", "SetEntitiesToJoin"], + "IConfiguration": ["AddExplodeStep", "AddExplodeStep2", "AddPartExplodeStep", "AddRadialExplodeStep", "ApplyDisplayState", "CopyDisplayStateFromConfiguration", "CreateDisplayState", "DeleteDisplayState", "DeleteExplodeStep", "DimXpertManager", "Get3DExperienceType", "GetChildren", "GetChildrenCount", "GetComponentConfigName", "GetComponentSuppressionState", "GetCurrentPartExplodeViewName", "GetCustomProperties", "GetCustomPropertiesCount", "GetCutListItems", "GetDisplayStateBodyProperties", "GetDisplayStateComponentProperties", "GetDisplayStateComponentVisibility", "GetDisplayStateFaceProperties", "GetDisplayStateFeatureProperties", "GetDisplayStateProperties", "GetDisplayStates", "GetDisplayStatesCount", "GetExpanded", "GetExplodeStep", "GetID", "GetNumberOfExplodeSteps", "GetNumberOfPartExplodeSteps", "GetParameterCount", "GetParameters", "GetParent", "GetPartExplodeStep", "GetRepresentationParent", "GetRootComponent", "GetRootComponent3", "GetScene", "GetStreamName", "IAddExplodeStep", "IGetChildren", "IGetCustomProperties", "IGetDisplayStates", "IGetExplodeStep", "IGetParameters", "IGetRootComponent", "IGetRootComponent2", "ISetParameters", "IsDefeature", "IsDerived", "IsDirty", "IsLoaded", "IsSpeedPak", "RenameDisplayState", "Select", "Select2", "Set3DExperienceType", "SetColor", "SetExpanded", "SetParameters", "UpdateSpeedPak"], + "IConfigurationManager": ["AddCADFamilyConfiguration", "AddConfiguration", "AddConfiguration2", "AddRebuildSaveMark", "AddSpeedPak", "AddSpeedPak2", "GetConfigurationParams", "GetConfigurationParamsCount", "IGetConfigurationParams", "ISetConfigurationParams", "RemoveMarkForAllConfigurations", "SetConfigurationParams", "SetExpanded", "SortConfigurationTree"], + "IConnectionPointFeatureData": ["AccessSelections", "IAccessSelections", "ReleaseSelectionAccess"], + "IConvertSolidFeatureData": ["AccessSelections", "GetBendEdgesCount", "GetCustomBendAllowance", "GetFixedFace", "Initialize", "ReleaseSelectionAccess", "SetFixedFace"], + "ICoordinateSystemElement": ["GetCoordinateSystem", "GetElementType"], + "ICoordinateSystemFeatureData": ["AccessSelections", "GetOriginEntityType", "GetXAxisEntitiesCount", "GetXAxisEntitiesTypes", "GetYAxisEntitiesCount", "GetYAxisEntitiesTypes", "GetZAxisEntitiesCount", "GetZAxisEntitiesTypes", "IAccessSelections", "IGetOriginEntity", "IGetOriginEntityType", "IGetXAxisEntities", "IGetXAxisEntitiesTypes", "IGetYAxisEntities", "IGetYAxisEntitiesTypes", "IGetZAxisEntities", "IGetZAxisEntitiesTypes", "ISetOriginEntity", "ISetXAxisEntities", "ISetYAxisEntities", "ISetZAxisEntities", "ReleaseSelectionAccess"], + "ICoreFeatureData": ["AccessSelections", "Depth", "EndCondition", "GetExtractionDirection", "ReleaseSelectionAccess", "SetDepth", "SetEndCondition", "SetExtractionDirection"], + "ICornerManagementFolder": ["GetFeature", "GetStructureSystemFolder", "GetTreatmentGroupFolderCount", "GetTreatmentGroupFolders"], + "ICornerMember": ["GetUnderlyingMemberFeature"], + "ICornerReliefFeatureData": ["AccessSelections", "AddNewCorner", "CollectAllCorners", "GetBodyScope", "GetCornerAtIndex", "GetCorners", "Initialize", "ReleaseSelectionAccess", "RemoveCorner", "SetBodyScope"], + "ICornerTreatmentFeatureData": ["AccessSelections", "GetFeature", "ReleaseSelectionAccess"], + "ICornerTreatmentGroupFolder": ["GetCornerTreatmentCount", "GetCornerTreatments", "GetFeature"], + "ICosmeticThreadFeatureData": ["AccessSelections", "GetPatternedTransformsCount", "IAccessSelections", "IGetPatternedTransforms", "ReleaseSelectionAccess"], + "ICosmeticWeldBeadFeatureData": ["AccessSelections", "GetEntities", "GetEntitiesWeldFrom", "GetEntitiesWeldPath", "GetEntitiesWeldTo", "GetReferenceEdges", "GetWeldBeadFolder", "ReleaseSelectionAccess", "SetEntities", "SetEntitiesWeldFrom", "SetEntitiesWeldPath", "SetEntitiesWeldTo"], + "ICrossBreakFeatureData": ["AccessSelections", "ReleaseSelectionAccess"], + "ICurve": ["ApplyTransform", "ConvertArcToBcurve", "ConvertLineToBcurve", "Copy", "CreateSurfaceCurve", "CreateTrimmedCurve", "CreateTrimmedCurve2", "CreateWireBody", "Evaluate", "Evaluate2", "ExtentCurve", "FindMinimumRadius", "GetBCurveParams", "GetBCurveParams3", "GetBCurveParams4", "GetBCurveParams5", "GetBaseCurve", "GetClosestPointOn", "GetEllipseParams", "GetEndParams", "GetLength", "GetLength2", "GetLength3", "GetPCurveParams", "GetPCurveParams2", "GetSplinePts", "GetTessPts", "IConvertArcToBcurveSize", "IConvertLineToBcurveSize", "IConvertPcurveToBcurveSize", "ICopy", "ICreateTrimmedCurve", "IEvaluate", "IEvaluate2", "IFindMinimumRadius", "IGetBCurveParams", "IGetBCurveParams3", "IGetBCurveParamsSize", "IGetBCurveParamsSize2", "IGetBCurveParamsSize3", "IGetClosestPointOn", "IGetEllipseParams", "IGetPCurveParams", "IGetPCurveParamsSize", "IGetSplinePts", "IGetSplinePtsSize", "IGetTessPts", "IGetTessPtsSize", "IIntersectCurve", "IIntersectCurveSize", "IJoinCurves", "IReverseCurve", "Identity", "IntersectCurve", "IsBcurve", "IsCircle", "IsEllipse", "IsLine", "IsTrimmedCurve", "JoinCurves", "MakeBsplineCurve", "MakeBsplineCurve2", "ReverseCurve", "ReverseEvaluate", "SimplifyBCurve"], + "ICurveDrivenPatternFeatureData": ["AccessSelections", "GetPatternBodyCount", "GetPatternFaceCount", "GetPatternFeatureCount", "GetSkippedItemCount", "GetTransform", "IAccessSelections", "IGetPatternBodyArray", "IGetPatternFaceArray", "IGetPatternFeatureArray", "IGetSkippedItemArray", "ISetPatternBodyArray", "ISetPatternFaceArray", "ISetPatternFeatureArray", "ISetSkippedItemArray", "ReleaseSelectionAccess", "SetFeatureScope"], + "ICustomPropertyManager": ["Add", "Add2", "Add3", "Delete", "Delete2", "Get", "Get2", "Get3", "Get4", "Get5", "Get6", "GetAll", "GetAll2", "GetAll3", "GetNames", "GetType", "GetType2", "IGetAll", "IGetNames", "IsCustomPropertyEditable", "LinkProperty", "Set", "Set2"], + "ICustomSymbol": ["GetAnnotation", "GetArcAtIndex", "GetArcCount", "GetArrowHeadAtIndex", "GetArrowHeadCount", "GetArrowHeadInfo", "GetLeaderAtIndex", "GetLeaderCount", "GetLineAtIndex", "GetLineCount", "GetNext", "GetNoteCount", "GetNotes", "GetSketch", "GetSketchPosition", "GetText", "GetTextAngleAtIndex", "GetTextAtIndex", "GetTextCount", "GetTextHeightAtIndex", "GetTextInvertAtIndex", "GetTextJustificationAtIndex", "GetTextLineSpacingAtIndex", "GetTextPositionAtIndex", "GetTextRefPositionAtIndex", "GetTriangleAtIndex", "GetTriangleCount", "HasExtraLeader", "IGetAnnotation", "IGetArcAtIndex", "IGetArrowHeadAtIndex", "IGetArrowHeadInfo", "IGetLeaderAtIndex", "IGetLineAtIndex", "IGetNext", "IGetNotes", "IGetSketch", "IGetSketchPosition", "IGetTextPositionAtIndex", "IGetTriangleAtIndex", "IsAttached", "SetText", "SetTextJustificationAtIndex"], + "ICutListSortOptions": ["GetFacesOrFeaturesToExclude", "SetFacesOrFeaturesToExclude"], + "IDatumOrigin": ["GetAnnotation", "GetAxisPoints", "GetAxisPoints2", "GetNext", "IGetAxisPoints", "IGetAxisPoints2", "ISetAxisPoints", "Reattach", "SetAxisPoints"], + "IDatumTag": ["GetAnnotation", "GetArcAtIndex", "GetArcCount", "GetArrowHeadAtIndex", "GetArrowHeadCount", "GetDisplayStyle", "GetLabel", "GetLineAtIndex", "GetLineCount", "GetNext", "GetTextAngleAtIndex", "GetTextAtIndex", "GetTextCount", "GetTextHeightAtIndex", "GetTextInvertAtIndex", "GetTextPositionAtIndex", "GetTextRefPositionAtIndex", "GetTriangleAtIndex", "GetTriangleCount", "GetUseDocDisplayStyle", "IGetAnnotation", "IGetArcAtIndex", "IGetArrowHeadAtIndex", "IGetLineAtIndex", "IGetNext", "IGetTextPositionAtIndex", "IGetTriangleAtIndex", "SetDisplayStyle", "SetLabel", "SetText"], + "IDatumTargetSym": ["GetAnnotation", "GetArcAtIndex", "GetArcCount", "GetArrowHeadAtIndex", "GetArrowHeadCount", "GetDatumReferenceLabel", "GetDisplaySizeOutside", "GetDisplaySymbol", "GetDisplayTargetArea", "GetLineAtIndex", "GetLineCount", "GetNext", "GetTargetAreaSize", "GetTargetShape", "GetTextAngleAtIndex", "GetTextAtIndex", "GetTextCount", "GetTextHeightAtIndex", "GetTextInvertAtIndex", "GetTextPositionAtIndex", "GetTextRefPositionAtIndex", "GetTriangleAtIndex", "GetTriangleCount", "IGetAnnotation", "IGetArcAtIndex", "IGetArrowHeadAtIndex", "IGetLineAtIndex", "IGetNext", "IGetTextPositionAtIndex", "IGetTriangleAtIndex", "SetDatumReferenceLabel", "SetDatumTargetHorizontal", "SetDatumTargetNotMoveable", "SetDatumTargetRotational", "SetDisplay", "SetTargetArea"], + "IDecal": ["GetMaskExcludedColorsCount", "IGetMaskExcludedColors", "ISetMaskExcludedColors"], + "IDeleteBodyFeatureData": ["AccessSelections", "GetBodiesCount", "IGetBodies", "ISetBodies", "ReleaseSelectionAccess"], + "IDeleteFaceFeatureData": ["AccessSelections", "GetDeletedFaces", "GetDeletedFacesCount", "IAccessSelections", "IGetDeletedFaces", "ISetDeletedFaces", "ReleaseSelectionAccess", "SetDeletedFaces"], + "IDerivedPartFeatureData": ["AccessSelections", "GetModelDoc", "GetMoveFeature", "IAccessSelections", "ReleaseSelectionAccess"], + "IDerivedPatternFeatureData": ["AccessSelections", "GetSeedComponentCount", "GetSkippedItemCount", "GetTransform", "IAccessSelections", "IAccessSelections2", "IGetSeedComponentArray", "IGetSkippedItemArray", "ISetSeedComponentArray", "ISetSkippedItemArray", "ReleaseSelectionAccess"], + "IDesignTable": ["AddRow", "Attach", "ColumnHidden", "Detach", "EditFeature", "EditTable", "EditTable2", "GetColumnCount", "GetEntryText", "GetEntryValue", "GetHeaderText", "GetRowCount", "GetStartColumnNumber", "GetStartRowNumber", "GetTitle", "GetTotalColumnCount", "GetTotalRowCount", "GetVisibleColumnCount", "GetVisibleLeftColumnNumber", "GetVisibleRowCount", "GetVisibleTopRowNumber", "IsActive", "RowHidden", "SaveAsExcelFile", "SetEntryText", "SetEntryValue", "SetRowChanged", "UpdateFeature", "UpdateModel", "UpdateTable"], + "IDetailCircle": ["GetArrowInfo", "GetConnectingLine", "GetDetailView", "GetDisplay", "GetLabel", "GetLabelPosition", "GetLeaderInfo", "GetName", "GetProfileItems", "GetProfileItemsCount", "GetStyle", "GetTextFormat", "GetUseDocTextFormat", "GetView", "HasFullOutline", "IGetArrowInfo", "IGetConnectingLine", "IGetLeaderInfo", "IGetProfileItems", "Select", "SetDisplay", "SetFullOutline", "SetLabel", "SetLabelPosition", "SetName", "SetParameters", "SetStyle", "SetTextFormat"], + "IDetailingDefaults": ["GetAllValues", "GetDetailTextFormat", "GetDimensionTextFormat", "GetSectionTextFormat", "GetTextFormat", "IGetAllValues", "IGetDetailTextFormat", "IGetDimensionTextFormat", "IGetSectionTextFormat", "IGetTextFormat", "ISetDetailTextFormat", "ISetDimensionTextFormat", "ISetSectionTextFormat", "ISetTextFormat", "SetDetailTextFormat", "SetDimensionTextFormat", "SetSectionTextFormat", "SetTextFormat"], + "IDiagnoseResult": ["GetCoEdgesAtGap", "GetCoEdgesCountAtGap", "GetGapsCount", "IGetCoEdgesAtGap"], + "IDimPatternFeatureData": ["AccessSelections", "AddDimension", "AddInstanceAt", "DeleteDimension", "DeleteInstanceAt", "ExportToExcel", "GetControllingDimensionCount", "GetControllingDimensionName", "GetInstanceCount", "GetInstanceDimensionName", "GetInstanceIndex", "GetInstanceNameByIndex", "GetInstanceSuppressStateByIndex", "GetInstanceSuppressStateByName", "GetTableRowIndex", "ImportFromExcel", "ReleaseSelectionAccess", "SetInstanceDimensionValue", "SetInstanceSuppressStateByIndex", "SetInstanceSuppressStateByName"], + "IDimension": ["GetArcEndCondition", "GetFeatureOwner", "GetNameForSelection", "GetReferencePointsCount", "GetSystemChamferValues", "GetSystemValue2", "GetSystemValue3", "GetToleranceFitValues", "GetToleranceFontInfo", "GetToleranceType", "GetToleranceValues", "GetType", "GetUserValueIn", "GetValue2", "GetValue3", "IGetReferencePoints", "IGetSystemValue3", "IGetToleranceFontInfo", "IGetToleranceValues", "IGetUserValueIn", "IGetUserValueIn2", "IGetValue3", "ISetReferencePoints", "ISetSystemValue3", "ISetUserValueIn", "ISetUserValueIn2", "ISetUserValueIn3", "ISetValue3", "IsAppliedToAllConfigurations", "IsDesignTableDimension", "IsReference", "SetArcEndCondition", "SetSystemValue2", "SetSystemValue3", "SetToleranceFitValues", "SetToleranceFontInfo", "SetToleranceType", "SetToleranceValues", "SetUserValueIn", "SetUserValueIn2", "SetValue2", "SetValue3"], + "IDimensionSensorData": ["GetDisplayDimension"], + "IDimensionTolerance": ["GetFitFontHeight", "GetFitFontScale", "GetFitFontUseDimension", "GetFitFontUseScale", "GetFontHeight", "GetFontScale", "GetFontUseDimension", "GetFontUseScale", "GetHoleFitValue", "GetMaxValue", "GetMaxValue2", "GetMinValue", "GetMinValue2", "GetShaftFitValue", "SetFitFont", "SetFitValues", "SetFont", "SetValues", "SetValues2"], + "IDisplayData": ["Dummy1", "Dummy2", "Dummy3", "Dummy4", "GetArcAtIndex", "GetArcAtIndex2", "GetArcCount", "GetArrowHeadAtIndex", "GetArrowHeadAtIndex2", "GetArrowHeadCount", "GetEllipseAtIndex", "GetEllipseAtIndex2", "GetEllipseCount", "GetLineAtIndex", "GetLineAtIndex2", "GetLineAtIndex3", "GetLineCount", "GetParabolaAtIndex", "GetParabolaCount", "GetPointAtIndex", "GetPointCount", "GetPolyLineCount", "GetPolygonAtIndex", "GetPolygonCount", "GetPolygonSizeAtIndex", "GetPolylineAtIndex", "GetPolylineAtIndex2", "GetPolylineSizeAtIndex", "GetPolylineSizeAtIndex2", "GetTextAngleAtIndex", "GetTextAtIndex", "GetTextCount", "GetTextFontAtIndex", "GetTextHeightAtIndex", "GetTextInBoxHeightAtIndex", "GetTextInBoxStyleAtIndex", "GetTextInBoxWidthAtIndex", "GetTextInvertAtIndex", "GetTextLineSpacingAtIndex", "GetTextPlaneAtIndex", "GetTextPositionAtIndex", "GetTextRefPositionAtIndex", "GetTriangleAtIndex", "GetTriangleCount", "IGetArcAtIndex", "IGetArcAtIndex2", "IGetArrowHeadAtIndex", "IGetEllipseAtIndex", "IGetEllipseAtIndex2", "IGetLineAtIndex", "IGetLineAtIndex2", "IGetLineAtIndex3", "IGetParabolaAtIndex", "IGetPointAtIndex", "IGetPolygonAtIndex", "IGetPolylineAtIndex", "IGetPolylineAtIndex2", "IGetTextPositionAtIndex", "IGetTriangleAtIndex"], + "IDisplayDimension": ["AddDisplayEnt", "AddDisplayText", "AlignToEdge", "AutoJogOrdinate", "ChamferPrecision", "ExplementaryAngle", "GetAlternatePrecision", "GetAlternatePrecision2", "GetAlternateTolPrecision", "GetAlternateTolPrecision2", "GetAnnotation", "GetArcLengthLeader", "GetArrowHeadStyle", "GetArrowHeadStyle2", "GetAutoArcLengthLeader", "GetBentLeaderLength", "GetBrokenLeader2", "GetChamferUnits", "GetDefinitionTransform", "GetDimension", "GetDimension2", "GetDisplayData", "GetExtensionLineAsCenterline", "GetFractionBase", "GetFractionValue", "GetHoleCalloutVariables", "GetJogParameters", "GetLinkedText", "GetLowerText", "GetNameForSelection", "GetNext", "GetNext2", "GetNext3", "GetNext4", "GetNext5", "GetOrdinateDimensionArrowSize", "GetOverride", "GetOverrideValue", "GetPrimaryPrecision", "GetPrimaryPrecision2", "GetPrimaryTolPrecision", "GetPrimaryTolPrecision2", "GetRoundToFraction", "GetSecondArrow", "GetSupportsGenericText", "GetText", "GetTextFormat", "GetTextFormatItems", "GetType", "GetUnits", "GetUseDocArrowHeadStyle", "GetUseDocBentLeaderLength", "GetUseDocBrokenLeader", "GetUseDocDual", "GetUseDocPrecision", "GetUseDocSecondArrow", "GetUseDocTextFormat", "GetUseDocUnits", "GetWitnessLineGap", "IAddDisplayEnt", "IAddDisplayText", "IGetAnnotation", "IGetDimension", "IGetDisplayData", "IGetNext", "IGetNext2", "IGetNext3", "IGetTextFormat", "ISetTextFormat", "IsDimXpert", "IsHoleCallout", "IsReferenceDim", "ResetExtensionLineStyle", "SetArcLengthLeader", "SetArrowHeadStyle", "SetArrowHeadStyle2", "SetBentLeaderLength", "SetBrokenLeader2", "SetChamferPrecision", "SetDual", "SetDual2", "SetExtensionLineAsCenterline", "SetHorizontal", "SetJogParameters", "SetLineFontDimensionStyle", "SetLineFontDimensionThickness", "SetLineFontExtensionStyle", "SetLineFontExtensionThickness", "SetLinkedText", "SetLowerText", "SetOrdinateDimensionArrowSize", "SetOverride", "SetPrecision", "SetPrecision2", "SetPrecision3", "SetSecondArrow", "SetText", "SetTextFormat", "SetUnits", "SetUnits2", "SetVertical", "SetWitnessLineGap", "SupplementaryAngle", "Unlink", "VerticallyOppositeAngle"], + "IDisplayStateSetting": ["GetEntityCount", "GetNameCount", "IGetEntities", "IGetNames", "ISetEntities", "ISetNames"], + "IDomeFeatureData": ["AccessSelections", "IAccessSelections", "ReleaseSelectionAccess"], + "IDomeFeatureData2": ["AccessSelections", "GetFaceCount", "IAccessSelections", "IGetFaces", "ISetFaces", "ReleaseSelectionAccess"], + "IDowelSymbol": ["GetAnnotation", "GetArcPoints", "GetNext", "IGetAnnotation", "IGetArcPoints", "IGetNext"], + "IDrSection": ["EnumExcludedComponents", "EnumExcludedComponents2", "GetArrowInfo", "GetAutoHatch", "GetDisplayOnlySpeedPakBodies", "GetDisplayOnlySurfaceCut", "GetDontCutAllInstances", "GetExcludedComponents", "GetLabel", "GetLineInfo", "GetName", "GetPartialSection", "GetReversedCutDirection", "GetScaleWithModelChanges", "GetSectionView", "GetTextFormat", "GetTextInfo", "GetUseDocTextFormat", "GetView", "IGetArrowInfo", "IGetLineInfo", "IGetLineSegmentCount", "IGetSectionView", "IGetTextFormat", "IGetTextInfo", "IGetView", "ISetExcludedComponents", "ISetLineInfo", "ISetTextFormat", "IsAligned", "SetAutoHatch", "SetDisplayOnlySpeedPakBodies", "SetDisplayOnlySurfaceCut", "SetDontCutAllInstances", "SetExcludedComponents", "SetLabel", "SetLabel2", "SetLineInfo", "SetPartialSection", "SetReversedCutDirection", "SetScaleWithModelChanges", "SetTextFormat"], + "IDraftFeatureData2": ["AccessSelections", "GetDraftedEntities", "GetDraftedEntityCount", "GetFacesToDraftCount", "GetOtherFacesFlagAtIndex", "GetPartingLinesCount", "IAccessSelections", "IGetDraftedEntities", "IGetFacesToDraft", "IGetPartingLines", "ISetFacesToDraft", "ISetPartingLines", "ReleaseSelectionAccess", "SetOtherFacesFlagAtIndex"], + "IDragArrowManipulator": ["Update"], + "IDragOperator": ["AddComponent", "AddDynamicClearance", "BeginDrag", "Clearance", "CollisionDetection", "Drag", "DragAsUI", "EndDrag", "GetDragPoint", "IAddComponent", "IAddDynamicClearance", "ICollisionDetection", "IDrag", "IGetDragPoint", "ISetDragPoint", "SetDragPoint"], + "IDrawingComponent": ["DeSelect", "GetChildren", "GetChildrenCount", "GetLineStyle", "GetLineThickness", "IGetChildren", "IsRoot", "Select", "SetLineStyle", "SetLineThickness"], + "IDrawingDoc": ["ActivateSheet", "ActivateView", "AddCenterMark", "AddChamferDim", "AddHoleCallout", "AddHoleCallout2", "AddLineStyle", "AddOrdinateDimension", "AddOrdinateDimension2", "AlignHorz", "AlignOrdinate", "AlignVert", "AttachAnnotation", "AttachDimensions", "AutoBalloon", "AutoBalloon2", "AutoBalloon3", "AutoBalloon4", "AutoBalloon5", "AutoDimension", "BreakLineSplineCut", "BreakLineStraightCut", "BreakLineZigZagCut", "BreakView", "CenterMark", "ChangeComponentLayer", "ChangeOrdDir", "ChangeRefConfigurationOfFlatPatternView", "Create1stAngleViews", "Create1stAngleViews2", "Create3rdAngleViews", "Create3rdAngleViews2", "CreateAngDim", "CreateAngDim2", "CreateAngDim3", "CreateAngDim4", "CreateAutoBalloonOptions", "CreateAuxiliaryView", "CreateAuxiliaryViewAt", "CreateAuxiliaryViewAt2", "CreateBlockDefinition", "CreateBreakOutSection", "CreateCompoundNote", "CreateConstructionGeometry", "CreateCustomSymbol", "CreateDetailView", "CreateDetailViewAt", "CreateDetailViewAt2", "CreateDetailViewAt3", "CreateDetailViewAt4", "CreateDiamDim", "CreateDiamDim2", "CreateDiamDim3", "CreateDiamDim4", "CreateDrawViewFromModelView", "CreateDrawViewFromModelView2", "CreateDrawViewFromModelView3", "CreateFlatPatternViewFromModelView", "CreateFlatPatternViewFromModelView2", "CreateFlatPatternViewFromModelView3", "CreateLayer", "CreateLayer2", "CreateLinearDim", "CreateLinearDim2", "CreateLinearDim3", "CreateLinearDim4", "CreateOrdinateDim", "CreateOrdinateDim2", "CreateOrdinateDim3", "CreateOrdinateDim4", "CreateRelativeView", "CreateSectionView", "CreateSectionViewAt", "CreateSectionViewAt2", "CreateSectionViewAt3", "CreateSectionViewAt4", "CreateSectionViewAt5", "CreateText", "CreateText2", "CreateUnfoldedViewAt", "CreateUnfoldedViewAt2", "CreateUnfoldedViewAt3", "CreateViewport", "CreateViewport2", "CreateViewport3", "DeleteAllCosmeticThreads", "DeleteLineStyle", "Dimensions", "DragModelDimension", "DrawingViewRotate", "DropDrawingViewFromPalette", "DropDrawingViewFromPalette2", "Dummy018", "EditCenterMarkProperties", "EditOrdinate", "EditRebuild", "EditSelectedGtol", "EditSheet", "EditSheet2", "EditSketch", "EditTemplate", "EndDrawing", "ExplodeBlockInstance", "ExplodeCustomSymbol", "FeatureByName", "FlipSectionLine", "ForceRebuild", "GenerateViewPaletteViews", "GetBlockDefinition", "GetBlockDefinitionCount", "GetBlockDefinitions", "GetCurrentSheet", "GetDrawingPaletteViewNames", "GetEditBlock", "GetEditSheet", "GetFirstView", "GetInsertionPoint", "GetLineFontCount", "GetLineFontCount2", "GetLineFontId", "GetLineFontInfo", "GetLineFontInfo2", "GetLineFontName", "GetLineFontName2", "GetLineStyles", "GetPenCount", "GetPenInfo", "GetSheetCount", "GetSheetNames", "GetViewCount", "GetViews", "HideEdge", "HideShowDimensions", "HideShowDrawingViews", "IAddChamferDim", "IAddHoleCallout2", "ICreateAngDim", "ICreateAngDim2", "ICreateAngDim3", "ICreateAngDim4", "ICreateAuxiliaryViewAt2", "ICreateBlockDefinition", "ICreateCompoundNote", "ICreateCustomSymbol", "ICreateDetailViewAt3", "ICreateDiamDim", "ICreateDiamDim2", "ICreateDiamDim3", "ICreateDiamDim4", "ICreateLinearDim", "ICreateLinearDim2", "ICreateLinearDim3", "ICreateLinearDim4", "ICreateOrdinateDim", "ICreateOrdinateDim2", "ICreateOrdinateDim3", "ICreateOrdinateDim4", "ICreateSectionViewAt2", "ICreateSectionViewAt3", "ICreateSectionViewAt4", "ICreateSectionViewAt5", "ICreateText2", "IEditSelectedGtol", "IFeatureByName", "IGetBlockDefinitions", "IGetCurrentSheet", "IGetFirstView", "IGetInsertionPoint", "IGetPenInfo", "IGetSheetNames", "IInsertCustomSymbol2", "IInsertDowelSymbol", "IInsertMultiJogLeader2", "IInsertMultiJogLeader3", "IInsertRevisionCloud", "IMakeCustomSymbol2", "INewGtol", "IReorderSheets", "InsertAngularRunningDim", "InsertBaseDim", "InsertBlock", "InsertBreakHorizontal", "InsertBreakVertical", "InsertCenterLine", "InsertCenterLine2", "InsertCenterMark", "InsertCenterMark2", "InsertCenterMark3", "InsertChainDim", "InsertCircularNotePattern", "InsertCustomSymbol", "InsertCustomSymbol2", "InsertDatumTag", "InsertDowelSymbol", "InsertGroup", "InsertHorizontalOrdinate", "InsertLinearNotePattern", "InsertModelAnnotations", "InsertModelAnnotations2", "InsertModelAnnotations3", "InsertModelAnnotations4", "InsertModelDimensions", "InsertModelInPredefinedView", "InsertMultiJogLeader", "InsertMultiJogLeader2", "InsertMultiJogLeader3", "InsertNewNote", "InsertNewNote2", "InsertOrdinate", "InsertRefDim", "InsertRevisionCloud", "InsertRevisionSymbol", "InsertSurfaceFinishSymbol", "InsertTableAnnotation", "InsertTableAnnotation2", "InsertThreadCallout", "InsertVerticalOrdinate", "InsertWeldSymbol", "IsDetailingMode", "IsolateChangedDimensions", "LoadLineStyles", "MakeBlockDefinition", "MakeCustomSymbol", "MakeCustomSymbol2", "MakeSectionLine", "ModifySurfaceFinishSymbol", "NewGtol", "NewNote", "NewSheet", "NewSheet2", "NewSheet3", "NewSheet4", "OnComponentProperties", "PasteSheet", "ReorderSheets", "ReplaceViewModel", "ResolveOutOfDateLightWeightComponents", "RestoreRotation", "SaveBlock", "SaveCustomSymbol", "SaveLineStyles", "SetCurrentLayer", "SetLineColor", "SetLineStyle", "SetLineWidth", "SetLineWidthCustom", "SetSheetsSelected", "SetupSheet", "SetupSheet2", "SetupSheet3", "SetupSheet4", "SetupSheet5", "SetupSheet6", "Sheet", "SheetNext", "SheetPrevious", "ShowEdge", "SketchDim", "StartDrawing", "SuppressView", "ToggleGrid", "TranslateDrawing", "UnBreakView", "UnsuppressView", "ViewDisplayHidden", "ViewDisplayHiddengreyed", "ViewDisplayShaded", "ViewDisplayWireframe", "ViewFullPage", "ViewHlrQuality", "ViewModelEdges", "ViewTangentEdges"], + "IEdge": ["CreateWireBody", "Display", "EdgeInFaceSense", "EnumCoEdges", "Evaluate", "Evaluate2", "GetBody", "GetClosestPointOn", "GetCoEdges", "GetCurve", "GetCurveParams", "GetCurveParams2", "GetCurveParams3", "GetEndVertex", "GetID", "GetParameter", "GetStartVertex", "GetTangentEdges", "GetTangentEdgesCount", "GetTrackingIDs", "GetTrackingIDsCount", "GetTwoAdjacentFaces", "GetTwoAdjacentFaces2", "Highlight", "IEdgeInFaceSense", "IEdgeInFaceSense2", "IEvaluate", "IEvaluate2", "IGetClosestPointOn", "IGetCurve", "IGetCurveParams", "IGetCurveParams2", "IGetEndVertex", "IGetParameter", "IGetStartVertex", "IGetTangentEdges", "IGetTrackingIDs", "IGetTwoAdjacentFaces", "IGetTwoAdjacentFaces2", "IsParamReversed", "IsTolerant", "RemoveId", "RemoveRedundantTopology", "RemoveTrackingID", "SetId", "SetTrackingID"], + "IEdgeFlangeFeatureData": ["AccessSelections", "AddEdges", "GetCustomBendAllowance", "GetEdgeCount", "GetPositionReferenceType", "IAccessSelections", "IAccessSelections2", "IGetEdges", "ISetEdges", "ReleaseSelectionAccess", "RemoveEdges", "SetCustomBendAllowance"], + "IEdgePoint": ["GetPointCoordinates", "Select"], + "IEndCapFeatureData": ["AccessSelections", "ReleaseSelectionAccess"], + "IEntity": ["CreateStringAttribute", "CreateStringAttributeDefinition", "DeSelect", "DeleteModelName", "FindAttribute", "FindStringAttribute", "GetComponent", "GetDistance", "GetDrawingComponent", "GetSafeEntity", "GetType", "IFindAttribute", "IGetComponent", "IGetComponent2", "IGetDistance", "RemoveStringAttribute", "Select", "Select2", "Select3", "Select4", "SelectByMark"], + "IEnvironment": ["GetIsBound", "GetSymArcs", "GetSymArcs2", "GetSymCircles", "GetSymEdgeCounts", "GetSymLines", "GetSymText", "GetSymTextPoints", "GetSymTriangles", "IGetSymArcs", "IGetSymCircles", "IGetSymEdgeCounts", "IGetSymLines", "IGetSymTextPoints", "IGetSymTriangles"], + "IEquationMgr": ["Add", "Add2", "Add3", "ChangeSuppressionForAllConfigurations", "ChangeSuppressionForConfiguration", "Delete", "Disabled", "Equation", "EvaluateAll", "GetConfigurationOption", "GetCount", "GetDisabledEquationCount", "GlobalVariable", "IAdd3", "ISetEquationAndConfigurationOption", "SetDisabled", "SetEquation", "SetEquationAndConfigurationOption", "SetSuppression", "Suppression", "UpdateValuesFromExternalEquationFile", "Value"], + "IExplodeStep": ["GetComponent", "GetComponentName", "GetComponentXform", "GetComponents", "GetExplodeDirection", "GetNumOfComponents", "GetRotationAxis", "GetSpecificComponentXForm", "GetSubAssemblyExplodeSteps", "IGetComponent", "IGetComponentXform", "IsSubAssemblyRigid", "SetComponents", "SetExplodeDirection", "SetRotationAxis"], + "IExportPdfData": ["GetSheets", "GetWhichSheets", "SetSheets"], + "IExtrudeFeatureData": ["AccessSelections", "GetDepth", "GetDraftAngle", "GetDraftOutward", "GetDraftWhileExtruding", "GetEndCondition", "GetFace", "GetVertex", "GetWallThickness", "IAccessSelections", "IGetFace", "IGetVertex", "ISetFace", "ISetVertex", "IsBaseExtrude", "IsBossFeature", "IsThinFeature", "ReleaseSelectionAccess", "SetDepth", "SetDraftAngle", "SetDraftOutward", "SetDraftWhileExtruding", "SetEndCondition", "SetFace", "SetVertex", "SetWallThickness"], + "IExtrudeFeatureData2": ["AccessSelections", "GetAutoFilletCorners", "GetAutoFilletRadius", "GetContoursCount", "GetDepth", "GetDirectionReference", "GetDraftAngle", "GetDraftOutward", "GetDraftWhileExtruding", "GetEndCondition", "GetEndConditionReference", "GetFace", "GetFeatureScopeBodiesCount", "GetFromEntity", "GetReverseOffset", "GetTranslateSurface", "GetVertex", "GetWallThickness", "IAccessSelections", "IGetContours", "IGetFace", "IGetFeatureScopeBodies", "IGetVertex", "ISetChangeToConfigurations", "ISetContours", "ISetFace", "ISetFeatureScopeBodies", "ISetVertex", "IsBaseExtrude", "IsBossFeature", "IsThinFeature", "ReleaseSelectionAccess", "SetAutoFillet", "SetChangeToConfigurations", "SetDepth", "SetDirectionReference", "SetDraftAngle", "SetDraftOutward", "SetDraftWhileExtruding", "SetEndCondition", "SetEndConditionReference", "SetFace", "SetFromEntity", "SetReverseOffset", "SetTranslateSurface", "SetVertex", "SetWallThickness"], + "IFace": ["AddPropertyExtension", "CreateSheetBody", "CreateSheetBodyByFaceExtension", "EnumEdges", "EnumLoops", "FaceInSurfaceSense", "GetArea", "GetBody", "GetBox", "GetClosestPointOn", "GetEdgeCount", "GetEdges", "GetFaceId", "GetFeature", "GetFeatureId", "GetFirstLoop", "GetLoopCount", "GetNextFace", "GetPatternSeedFeature", "GetPropertyExtension", "GetShellType", "GetSilhoutteEdges", "GetSilhoutteEdgesVB", "GetSurface", "GetTessNorms", "GetTessTriStripEdges", "GetTessTriStripNorms", "GetTessTriStripSize", "GetTessTriStrips", "GetTessTriangleCount", "GetTessTriangles", "GetTrimCurveTopology", "GetTrimCurveTopologyCount", "GetTrimCurveTopologyTypes", "GetTrimCurves", "GetTrimCurves2", "GetUVBounds", "Highlight", "ICreateSheetBody", "ICreateSheetBodyByFaceExtension", "IGetBody", "IGetBox", "IGetClosestPointOn", "IGetEdges", "IGetFacetData", "IGetFeature", "IGetFirstLoop", "IGetNextFace", "IGetPatternSeedFeature", "IGetSilhoutteEdgeCount", "IGetSilhoutteEdges", "IGetSurface", "IGetTessNorms", "IGetTessTriStripEdgeSize", "IGetTessTriStripEdges", "IGetTessTriStripNorms", "IGetTessTriStrips", "IGetTessTriangles", "IGetTrimCurve", "IGetTrimCurveSize", "IGetTrimCurveSize2", "IGetTrimCurveTopology", "IGetTrimCurveTopologyTypes", "IGetUVBounds", "IHighlight", "IIsSame", "IRemoveInnerLoops", "IsSame", "RemoveFaceId", "RemoveInnerLoops", "RemoveMaterialProperty", "RemoveRedundantTopology", "ResetPropertyExtension", "SetFaceId"], + "IFace2": ["AddPropertyExtension", "AttachSurface", "CreateSheetBody", "CreateSheetBodyByFaceExtension", "DetachSurface", "EnumEdges", "EnumLoops", "FaceInSurfaceSense", "GetAllAssemblyDecalProperties", "GetAllDecalProperties", "GetArea", "GetBody", "GetBox", "GetClosestPointOn", "GetDecalsCount", "GetEdgeCount", "GetEdges", "GetFaceId", "GetFeature", "GetFeatureId", "GetFirstLoop", "GetLoopCount", "GetLoops", "GetMaterialPropertyValues2", "GetNextFace", "GetPatternSeedFeature", "GetProjectedPointOn", "GetPropertyExtension", "GetSeedFeature", "GetShellType", "GetSilhoutteEdges", "GetSilhoutteEdgesVB", "GetSurface", "GetTessNorms", "GetTessTextures", "GetTessTriStripEdges", "GetTessTriStripNorms", "GetTessTriStripSize", "GetTessTriStripTextures", "GetTessTriStrips", "GetTessTriangleCount", "GetTessTriangles", "GetTexture", "GetTrackingIDs", "GetTrackingIDsCount", "GetTrimCurveTopology", "GetTrimCurveTopologyCount", "GetTrimCurveTopologyTypes", "GetTrimCurves", "GetTrimCurves2", "GetUVBounds", "HasMaterialPropertyValues", "HasTextureCoordinates", "Highlight", "ICreateSheetBody", "ICreateSheetBodyByFaceExtension", "IGetAllDecalProperties", "IGetBody", "IGetBox", "IGetClosestPointOn", "IGetDecalProperties", "IGetEdges", "IGetFacetData", "IGetFeature", "IGetFirstLoop", "IGetLoops", "IGetMaterialPropertyValues2", "IGetNextFace", "IGetPatternSeedFeature", "IGetSilhoutteEdgeCount", "IGetSilhoutteEdges", "IGetSurface", "IGetTessNorms", "IGetTessTextures", "IGetTessTriStripEdgeSize", "IGetTessTriStripEdges", "IGetTessTriStripNorms", "IGetTessTriStrips", "IGetTessTriangles", "IGetTrackingIDs", "IGetTrimCurve", "IGetTrimCurveSize", "IGetTrimCurveSize2", "IGetTrimCurveTopology", "IGetTrimCurveTopologyTypes", "IGetUVBounds", "IHighlight", "IImprintCurve", "IIsCoincident", "IIsSame", "IRemoveInnerLoops", "IRemoveMaterialProperty2", "IReverseEvaluate", "ISetMaterialPropertyValues2", "ImprintCurve", "ImprintCurveCount", "IsCoincident", "IsSame", "RemoveFaceId", "RemoveInnerLoops", "RemoveMaterialProperty", "RemoveMaterialProperty2", "RemoveRedundantTopology", "RemoveTexture", "RemoveTexture2", "RemoveTextureByDisplayState", "RemoveTrackingID", "ResetPropertyExtension", "ReverseEvaluate", "SetFaceId", "SetMaterialPropertyValues2", "SetTexture", "SetTextureByDisplayState", "SetTrackingID"], + "IFacet": ["GetBody", "GetFacetEdges", "GetFacetVertices", "Select"], + "IFamilyTableAnnotation": ["GetSheet"], + "IFamilyTableFeature": ["GetConfigurations", "GetFeature", "GetFollowConfigTreeOrder", "GetModelName", "GetSequenceNumberIncrement", "GetSequenceStartNumber", "GetTableAnnotationCount", "GetTableAnnotations", "GetUseAllConfigurations", "SetConfigurations", "SetFollowConfigTreeOrder", "SetSequenceNumberIncrement", "SetSequenceStartNumber", "SetUseAllConfigurations"], + "IFaultEntity": ["Entity", "Entity2", "ErrorCode"], + "IFeatMgrView": ["ActivateView", "DeActivateView", "DeleteView", "GetControl", "GetFeatMgrViewWnd", "GetFeatMgrViewWndx64", "IGetControl"], + "IFeature": ["AddComment", "AddPropertyExtension", "BreakLink", "DeSelect", "EnumDisplayDimensions", "GetAffectedFaceCount", "GetAffectedFaces", "GetBody", "GetBox", "GetChildren", "GetCreatedVersion", "GetDefinition", "GetDisplayDimension", "GetEditStatus", "GetErrorCode", "GetErrorCode2", "GetFaceCount", "GetFaces", "GetFirstDisplayDimension", "GetFirstSubFeature", "GetID", "GetImportedFeatureParameters", "GetImportedFileName", "GetMaterialIdName", "GetMaterialPropertyValues", "GetMaterialPropertyValues2", "GetMaterialUserName", "GetModifiedVersion", "GetNameForSelection", "GetNextDisplayDimension", "GetNextFeature", "GetNextSubFeature", "GetOwnerFeature", "GetParents", "GetPropertyExtension", "GetSpecificFeature", "GetSpecificFeature2", "GetTexture", "GetTypeName", "GetTypeName2", "GetUIState", "GetUpdateStamp", "HasFrozenUpdatePending", "HasMaterialPropertyValues", "IGetAffectedFaces", "IGetBody", "IGetBody2", "IGetBox", "IGetChildCount", "IGetChildren", "IGetDefinition", "IGetFaces", "IGetFaces2", "IGetFirstSubFeature", "IGetMaterialPropertyValues", "IGetMaterialPropertyValues2", "IGetNextFeature", "IGetNextSubFeature", "IGetParentCount", "IGetParents", "IGetSpecificFeature", "IIsSuppressed2", "IListExternalFileReferences", "IListExternalFileReferences2", "IModifyDefinition", "IModifyDefinition2", "IParameter", "IRemoveMaterialProperty2", "ISetBody", "ISetBody2", "ISetBody3", "ISetMaterialPropertyValues", "ISetMaterialPropertyValues2", "ISetSuppression2", "IsBase", "IsBase2", "IsDimXpertAnnotation", "IsDimXpertFeature", "IsFrozen", "IsHiddenLock", "IsRolledBack", "IsSuppressed", "IsSuppressed2", "ListExternalFileReferences", "ListExternalFileReferences2", "ListExternalFileReferencesCount", "MakeSubFeature", "ModifyDefinition", "MoveFreezeBarTo", "MoveFreezeBarTo2", "Parameter", "RemoveMaterialProperty", "RemoveMaterialProperty2", "RemoveTexture", "RemoveTextureByDisplayState", "ResetPropertyExtension", "Select", "Select2", "SelectByMark", "SetBodiesToKeep", "SetBody", "SetBody2", "SetImportedFeatureParameters", "SetImportedFileName", "SetMaterialIdName", "SetMaterialPropertyValues", "SetMaterialPropertyValues2", "SetMaterialUserName", "SetSuppression", "SetSuppression2", "SetTexture", "SetTextureByDisplayState", "SetUIState", "Update3DInterconnectModel", "UpdateExternalFileReferences"], + "IFeatureFolder": ["GetFeatureCount", "GetFeatures", "IGetFeatures"], + "IFeatureManager": ["AddCornerReliefCorner", "AddCornerReliefType", "AddSMNormalCut", "AddSMNormalCutType", "AddVariablePitchHelixFirstPitchAndDiameter", "AddVariablePitchHelixSegment", "AdvancedHole", "AdvancedHole2", "ConvertLoftOrSweepToNetBlend", "CreateCoordinateSystem", "CreateCoordinateSystemUsingNumericalValues", "CreateCustomBendAllowance", "CreateDefinition", "CreateFeature", "CreateFormTool", "CreateFormTool2", "CreateSaveBodyFeature", "CreateStructuralMemberGroup", "CutListFolderLocation", "DraftXpertChange", "DraftXpertRemove", "EditDeleteFace", "EditFreeze", "EditFreeze2", "EditReferencePoint", "EditRollback", "EndVariablePitchHelix", "ExpandFeature", "FeatureAdvancedTableDrivenPattern", "FeatureBossThicken", "FeatureChainPattern", "FeatureCircularPattern", "FeatureCircularPattern2", "FeatureCircularPattern3", "FeatureCircularPattern4", "FeatureCircularPattern5", "FeatureCut", "FeatureCut2", "FeatureCut3", "FeatureCut4", "FeatureCutThicken", "FeatureCutThin", "FeatureCutThin2", "FeatureDimensionPattern", "FeatureExtruRefSurface", "FeatureExtruRefSurface2", "FeatureExtruRefSurface3", "FeatureExtrusion", "FeatureExtrusion2", "FeatureExtrusion3", "FeatureExtrusionThin", "FeatureExtrusionThin2", "FeatureFillPattern", "FeatureFillet", "FeatureFillet2", "FeatureFillet3", "FeatureFolderLocation", "FeatureLinearPattern", "FeatureLinearPattern2", "FeatureLinearPattern3", "FeatureLinearPattern4", "FeatureLinearPattern5", "FeatureLocalCurveDrivenPattern", "FeatureLocalSketchDrivenPattern", "FeatureName", "FeatureRevolve", "FeatureRevolve2", "FeatureRevolveCut", "FeatureRevolveCut2", "FeatureRevolveThin", "FeatureRevolveThinCut", "FeatureSketchDrivenPattern", "FilletXpertChange", "FilletXpertMakeCorner", "FilletXpertRemove", "FinishCornerRelief", "FinishSMNormalCut", "GetCornerManagementFolders", "GetCreateFeatureErrors", "GetFeatureCount", "GetFeatureTreeRootItem", "GetFeatureTreeRootItem2", "GetFeatures", "GetFlatPatternFolder", "GetFreezeLocation", "GetPlasticsShellType", "GetPreTrimmedBodies", "GetSelectionSetFolder", "GetSheetMetalFolder", "GetSlicingData", "GetStructureSystemFolders", "HideBodies", "HoleWizard", "HoleWizard2", "HoleWizard3", "HoleWizard4", "HoleWizard5", "IFeatureFillet", "IFeatureFillet2", "IGetFeatures", "IInsertCombineFeature", "IInsertMacroFeature", "IInsertMacroFeature2", "IInsertMacroFeature3", "IInsertMoveFace2", "IInsertReferencePoint", "IInsertSheetMetalEdgeFlange2", "IInsertTableDrivenPattern", "InsertCenterOfMass", "InsertCenterOfMassReferencePoint", "InsertCombineFeature", "InsertConnectionPoint", "InsertConvertToSheetMetal", "InsertConvertToSheetMetal2", "InsertCoordinateSystem", "InsertCosmeticThread", "InsertCosmeticThread2", "InsertCosmeticThread3", "InsertCosmeticWeldBead", "InsertCosmeticWeldBead2", "InsertCrossBreak", "InsertCutBlend", "InsertCutSurface", "InsertCutSwept", "InsertCutSwept2", "InsertCutSwept3", "InsertCutSwept4", "InsertCutSwept5", "InsertDeleteBody", "InsertDeleteBody2", "InsertDeleteHoleForSurface", "InsertDerivedPattern", "InsertDerivedPattern2", "InsertDwgOrDxfFile", "InsertDwgOrDxfFile2", "InsertEdgeMerge", "InsertEndCapFeature", "InsertEndCapFeature2", "InsertEndCapFeature3", "InsertFeatureChamfer", "InsertFeatureLock", "InsertFeatureTreeFolder", "InsertFeatureTreeFolder2", "InsertFillSurface", "InsertFillSurface2", "InsertFilletBeadFeature", "InsertFilletBeadFeature2", "InsertFilletBeadFeature3", "InsertFlattenSurface", "InsertFlattenSurface2", "InsertFlexFeature", "InsertFormToolFeature", "InsertFreeform", "InsertFreeform2", "InsertGlobalBoundingBox", "InsertGlobalBoundingBox2", "InsertGridFeature", "InsertGroundPlane", "InsertGussetFeature", "InsertGussetFeature2", "InsertGussetFeature3", "InsertIndent", "InsertLiveSectionPlane", "InsertMacroFeature", "InsertMacroFeature2", "InsertMacroFeature3", "InsertMateReference", "InsertMateReference2", "InsertMidSurface", "InsertMirrorFeature", "InsertMirrorFeature2", "InsertMoldCoreCavitySolids", "InsertMoldPartingLine", "InsertMoldPartingSurface", "InsertMoldShutOffSurface", "InsertMoveCopyBody", "InsertMoveCopyBody2", "InsertMoveFace", "InsertMoveFace2", "InsertMoveFace3", "InsertMultiFaceDraft", "InsertNetBlend", "InsertNetBlend2", "InsertProtrusionBlend", "InsertProtrusionBlend2", "InsertProtrusionSwept", "InsertProtrusionSwept2", "InsertProtrusionSwept3", "InsertProtrusionSwept4", "InsertRefPlane", "InsertReferencePoint", "InsertRevolvedRefSurface", "InsertRib", "InsertRuledSurfaceFromEdge", "InsertRuledSurfaceFromEdge2", "InsertSaveOutBodies", "InsertScale", "InsertSecurityNote", "InsertSewRefSurface", "InsertSheetMetal3dBend", "InsertSheetMetalBaseFlange", "InsertSheetMetalBaseFlange2", "InsertSheetMetalCornerTrim", "InsertSheetMetalEdgeFlange", "InsertSheetMetalEdgeFlange2", "InsertSheetMetalGussetFeature", "InsertSheetMetalGussetFeature2", "InsertSheetMetalGussetFeature3", "InsertSheetMetalHem", "InsertSheetMetalHem2", "InsertSheetMetalLoftedBend", "InsertSheetMetalLoftedBend2", "InsertSheetMetalMiterFlange", "InsertSlicing", "InsertSplitLineIntersect", "InsertStructuralWeldment", "InsertStructuralWeldment2", "InsertStructuralWeldment3", "InsertStructuralWeldment4", "InsertStructuralWeldment5", "InsertSubFolder", "InsertSubWeldFolder", "InsertSubWeldFolder2", "InsertSweepSurface", "InsertSweepSurface2", "InsertSweepSurface3", "InsertTableDrivenPattern", "InsertTableDrivenPattern2", "InsertUntrimSurface", "InsertUntrimSurface2", "InsertVariablePitchHelix", "InsertVaryInstanceIncrement", "InsertVaryInstanceOverride", "InsertWeldmentCutList", "InsertWeldmentCutList2", "InsertWeldmentFeature", "InsertWeldmentTrimFeature", "InsertWeldmentTrimFeature2", "InsertWrapFeature", "InsertWrapFeature2", "IsNameUsed", "MakeStyledCurves", "MakeStyledCurves2", "MoldUndercutDetect", "MoldUndercutDetect2", "MoveRotateLiveSectionPlane", "MoveToFolder", "PostIntersect", "PostSplitBody", "PostSplitBody2", "PostTrimSurface", "PreIntersect", "PreIntersect2", "PreSplitBody", "PreSplitBody2", "PreTrimSurface", "SetComponentIdentifiers", "SetFreeformBoundaryContinuity", "SetFreeformCurveData", "SetFreeformPointData", "SetNetBlendCenterlineData", "SetNetBlendCurveData", "SetNetBlendDirectionData", "ShowBodies", "SimpleFeatureBossExtrude", "SimpleHole", "SimpleHole2", "UpdateFeatureTree"], + "IFeatureStatistics": ["Refresh"], + "IFillPatternFeatureData": ["AccessSelections", "ReleaseSelectionAccess"], + "IFillSurfaceFeatureData": ["AccessSelections", "GetAlternateFace", "GetConstraintCurves", "GetConstraintCurvesCount", "GetCurvatureControl", "GetPatchBoundary", "GetPatchBoundaryCount", "IAccessSelections", "IGetConstraintCurves", "IGetPatchBoundary", "ISetConstraintCurves", "ISetPatchBoundary", "ReleaseSelectionAccess", "SetConstraintCurves", "SetCurvatureControl", "SetPatchBoundary", "ToggleAlternateFace"], + "IFlatPatternFeatureData": ["AccessSelections", "GetAddCornerTrim", "GetBreakCorners", "IAccessSelections", "IAccessSelections2", "IGetExcludedFaces", "IGetExcludedFacesCount", "ISetExcludedFaces", "ReleaseSelectionAccess", "SetAddCornerTrim", "SetBreakCorners"], + "IFlatPatternFolder": ["GetFeature", "GetFlatPatternCount", "GetFlatPatterns"], + "IFlyoutGroup": ["AddCommandItem", "AddContextMenuFlyout", "RemoveAllCommandItems", "RemoveCommandItem", "ReplaceCommandItem"], + "IFoldsFeatureData": ["AccessSelections", "IAccessSelections", "IAccessSelections2", "IGetBends", "IGetBendsCount", "ISetBends", "ReleaseSelectionAccess"], + "IFrame": ["AddMenu", "AddMenuItem", "AddMenuItem2", "AddMenuPopupIcon", "AddMenuPopupIcon2", "AddMenuPopupIcon3", "AddMenuPopupItem", "AddMenuPopupItem2", "Dummy003", "Dummy004", "GetHWnd", "GetHWndx64", "GetMenu", "GetMenuState", "GetMenux64", "GetModelWindowCount", "GetStatusBarPane", "GetSubMenuCount", "GetSubMenus", "IGetModelWindows", "IGetSubMenus", "RemoveMenu", "RemoveMenuPopupIcon", "RenameMenu", "SetStatusBarText", "ShowModelWindow"], + "IFreePointCurveFeatureData": ["GetPointCount", "IGetPointArray", "ISetPointArray", "LoadPointsFromFile", "SavePointsToFile"], + "IGeneralTableAnnotation": ["Sort"], + "IGeneralTableFeature": ["GetFeature", "GetTableAnnotationCount", "GetTableAnnotations", "IGetTableAnnotations"], + "IGeneralToleranceTableFeature": ["GetFeature", "GetTableAnnotations"], + "IGraphicsBody": ["GetBody", "GetFacetCount", "GetFacets", "SurfaceFromMesh"], + "IGroundPlaneFeatureData": ["AccessSelections", "ReleaseSelectionAccess"], + "IGtol": ["AddFrame", "CanConvertFormat", "ConvertFormat", "DeleteBelowFrameTextAt", "DeleteFrame", "Dummy1", "Dummy2", "Dummy3", "GetAllAround", "GetAllAroundThisSide", "GetAllOver", "GetAllOverThisSide", "GetAnnotation", "GetArcAtIndex", "GetArcCount", "GetArrowHeadAtIndex", "GetArrowHeadCount", "GetArrowHeadInfo", "GetAttachPos", "GetBelowFrameTextAt", "GetBelowFrameTextLineCount", "GetBetweenTwoPoints", "GetBetweenTwoPointsText", "GetCompositeFrame", "GetCompositeFrame2", "GetDatumIdentifier", "GetDisplayDualDimensionInRangeValues", "GetFontInfo", "GetFormat", "GetFrame", "GetFrameCount", "GetFrameDiameterSymbols", "GetFrameSymbols", "GetFrameSymbols2", "GetFrameSymbols3", "GetFrameValues", "GetFromTo", "GetFromToText", "GetHeight", "GetLeaderAtIndex", "GetLeaderAtIndex2", "GetLeaderCount", "GetLeaderInfo", "GetLeaderSide", "GetLineAtIndex", "GetLineCount", "GetNextGTOL", "GetPTZHeight", "GetPTZHeight2", "GetSymArcs", "GetSymCircles", "GetSymDesc", "GetSymEdgeCounts", "GetSymLines", "GetSymName", "GetSymText", "GetSymTextPoints", "GetText", "GetTextAngleAtIndex", "GetTextAtIndex", "GetTextCount", "GetTextFont", "GetTextFormat", "GetTextHeightAtIndex", "GetTextInvertAtIndex", "GetTextPoint", "GetTextPositionAtIndex", "GetTextRefPositionAtIndex", "GetTriangleAtIndex", "GetTriangleCount", "GetUseDocTextFormat", "GetWitnessLine", "HasExtraLeader", "IGetAnnotation", "IGetArcAtIndex", "IGetArrowHeadAtIndex", "IGetArrowHeadInfo", "IGetAttachPos", "IGetFontInfo", "IGetFrameDiameterSymbols", "IGetFrameSymbols", "IGetFrameSymbols2", "IGetFrameValues", "IGetLeaderAtIndex", "IGetLeaderAtIndex2", "IGetLeaderInfo", "IGetLineAtIndex", "IGetNextGTOL", "IGetSymArcs", "IGetSymCircles", "IGetSymEdgeCounts", "IGetSymLines", "IGetSymText", "IGetSymTextPoints", "IGetTextFormat", "IGetTextPoint", "IGetTextPositionAtIndex", "IGetTriangleAtIndex", "IGetWitnessLine", "ISetTextFormat", "InsertBelowFrameTextAt", "IsAttached", "SetAllAroundThisSide", "SetAllOver", "SetAllOverThisSide", "SetBelowFrameTextAt", "SetBetweenTwoPoints", "SetCompositeFrame", "SetCompositeFrame2", "SetDatumIdentifier", "SetDisplayDualDimensionInRangeValues", "SetFrameSymbols", "SetFrameSymbols2", "SetFrameValues", "SetFrameValues2", "SetFromToText", "SetLeader", "SetPTZHeight", "SetPTZHeight2", "SetPosition", "SetText", "SetTextFormat"], + "IGtolFrame": ["AddIndicator", "DeleteIndicator", "GetFrameToleranceType", "GetIndicator", "GetIndicatorCount", "GetSymbolXml", "SetFrameToleranceType", "SetIndicator", "SetSymbolXml"], + "IGussetFeatureData": ["AccessSelections", "GetSupportingFaces", "ReleaseSelectionAccess", "SetSupportingFaces"], + "IHealEdgesFeatureData": ["AccessSelections", "GetEdgeInformation", "GetFacesCount", "HealEdges", "IGetFaces", "ISetFaces", "ReleaseSelectionAccess"], + "IHelixFeatureData": ["AddLastRecord", "DeleteRecord", "GetRegionParameterAtIndex", "InsertRecord", "SetRegionParameterAtIndex"], + "IHemFeatureData": ["AccessSelections", "GetCustomBendAllowance", "GetEdgesCount", "IAccessSelections", "IGetEdges", "ISetEdges", "ReleaseSelectionAccess", "SetCustomBendAllowance"], + "IHingeMateFeatureData": ["EntitiesToMate", "SetEntitiesToMate"], + "IHoleDataTable": ["GetCellData", "GetColumnNames", "GetRowCount", "GetRowData"], + "IHoleSeriesFeatureData": ["AccessSelections", "GetComponents", "GetComponentsCount", "GetHoleBottomMateEntity", "GetHoleTopMateEntity", "GetSketchPoints", "GetSketchPointsCount", "IAccessSelections", "IGetComponents", "IGetHoleBottomMateEntity", "IGetHoleTopMateEntity", "IGetSketchPoints", "ReleaseSelectionAccess", "Size", "Type"], + "IHoleSeriesFeatureData2": ["AccessSelections", "GetComponents", "GetComponentsCount", "GetHoleBottomMateEntity", "GetHoleTopMateEntity", "GetSketchPoints", "GetSketchPointsCount", "IAccessSelections", "IGetComponents", "IGetHoleBottomMateEntity", "IGetHoleTopMateEntity", "IGetSketchPoints", "ReleaseSelectionAccess", "Size", "Type"], + "IHoleStandardsData": ["GetFastenerTable", "GetFastenerTableTypes", "GetFastenerTypes", "GetHoleStandards"], + "IHoleTable": ["AddHole", "AssignTagPrefix", "GetFeature", "GetHoleLocationPrecision", "GetHoleLocationUseDocPrecision", "GetTableAnnotationCount", "GetTableAnnotations", "HoleTag", "IGetTableAnnotations", "SetHoleLocationPrecision", "SetHoleTag"], + "IHoleTableAnnotation": ["Sort"], + "IImport3DInterconnectData": ["GetAuthoringInfo", "GetReferencedFileName", "SetReferencedFileName"], + "IImportDxfDwgData": ["AddSketchConstraints", "GetImportLayerToSheetFormat", "GetImportLayerVisibility", "GetMergeDistance", "GetMergePoints", "GetPaperSize", "GetPosition", "GetSheetScale", "ImportDimensions", "ImportHatch", "ImportMethod", "LengthUnit", "SetAddSketchConstraints", "SetImportDimensions", "SetImportHatch", "SetImportLayerToSheetFormat", "SetImportLayerVisibility", "SetImportMethod", "SetLengthUnit", "SetMergePoints", "SetPaperSize", "SetPosition", "SetSheetName", "SetSheetScale", "SheetName"], + "IImportIgesData": ["SetLevels"], + "IImportedCurveFeatureData": ["GetCurveCount", "IGetCurves", "ISetCurves", "SetBody"], + "IIndentFeatureData": ["AccessSelections", "GetBodiesCount", "ReleaseSelectionAccess"], + "IInstanceToVaryOptions": ["GetD1IncrementDimensions", "GetD1ModifiedSpacingValue", "GetD2IncrementDimensions", "GetD2ModifiedSpacingValue", "GetModifiedDimensions", "GetModifiedInstances", "ModifyD1SpacingValue", "ModifyD2SpacingValue", "ModifyDimensions", "SetD1IncrementDimensions", "SetD2IncrementDimensions"], + "IInterference": ["GetComponentCount", "GetInterferenceBody", "IGetComponents"], + "IInterferenceDetectionMgr": ["Done", "ExportResults", "GetComponentsAndTransforms", "GetComponentsTransformInterference", "GetComponentsTransformInterferenceCount", "GetInterferenceComponentCount", "GetInterferenceComponents", "GetInterferenceCount", "GetInterferences", "IGetComponentsTransformInterference", "IGetInterferenceComponents", "IGetInterferences", "SetComponentsAndTransforms"], + "IIntersectFeatureData": ["AccessSelections", "GetIntersections", "GetIntersectionsCount", "GetIntersectionsTools", "GetIntersectionsToolsCount", "ReleaseSelectionAccess", "SetIntersections", "SetIntersectionsTools"], + "IJogFeatureData": ["AccessSelections", "GetCustomBendAllowance", "GetOffsetReferenceType", "IAccessSelections", "IGetFixedPoint", "ISetFixedPoint", "ReleaseSelectionAccess", "SetCustomBendAllowance"], + "IJoinFeatureData": ["AccessSelections", "GetJoinedPartsCount", "IGetJoinedParts", "ISetJoinedParts", "ReleaseSelectionAccess"], + "IJournalManager": ["ActivateNamedView", "ClickDialogControl", "ExportSwSettings", "FileDrop", "FileDropAt", "GetDialogButtonState", "GetDialogControlText", "GetModelView", "GetUIAutomationMacroFolderPath", "GetUIAutomationRegFolderPath", "ImportSwSettings", "MakeCOMCall", "RecordBrowsePath", "RecordCOMCall", "RecordCOMCall2", "RecordColorSelection", "RecordDialogButtonState", "RecordDialogClick", "RecordDialogControl", "RecordDialogControlText", "RecordKeyBoardState", "RecordPropertyPage", "RunCommand", "RunXMLCommand", "SetDialogButtonState", "SetDialogControlText", "SetKeyBoardState", "SetMaterialPropertyName2", "SetModelViewXForms", "ShowJournalDialog", "SimulateKeyboardEvent", "WriteJournalToMacro", "WriteToJournalFile"], + "ILayer": ["GetID", "GetItems"], + "ILayerMgr": ["AddLayer", "DeleteLayer", "GetCount", "GetCurrentLayer", "GetLayer", "GetLayerById", "GetLayerList", "IGetLayer", "IGetLayerById", "IGetLayerList", "SetCurrentLayer"], + "ILibraryFeatureData": ["AccessSelections", "GetAllConfigurationNames", "GetConfigurationCount", "GetDimensions", "GetDimensionsCount", "GetPlacementPlane", "GetPlacementPlane2", "GetReferences", "GetReferences2", "GetReferences3", "GetReferencesCount", "IGetAllConfigurationNames", "IGetDimensions", "IGetReferences", "IGetReferences2", "IGetReferences3", "ISetReferences", "Initialize", "ReleaseSelectionAccess", "SetDimension", "SetPlacementPlane", "SetReferences"], + "ILibraryFormToolFeatureData": ["AccessSelections", "GetPunchID", "OverrideDocumentSettings", "ReleaseSelectionAccess", "SetPlacementFace"], + "ILight": ["GetID"], + "ILightDialog": ["AddSubDialog", "GetLightId"], + "ILinearPatternFeatureData": ["AccessSelections", "GetD1AxisType", "GetD2AxisType", "GetInstanceToVaryOptions", "GetPatternBodyCount", "GetPatternFaceCount", "GetPatternFeatureCount", "GetSkippedItemCount", "GetTransform", "IAccessSelections", "IAccessSelections2", "IGetPatternBodyArray", "IGetPatternFaceArray", "IGetPatternFeatureArray", "IGetSkippedItemArray", "ISetPatternBodyArray", "ISetPatternFaceArray", "ISetPatternFeatureArray", "ISetSkippedItemArray", "IsDirection2Specified", "ReleaseSelectionAccess", "SetFeatureScope", "SetInstanceToVaryOptions"], + "ILocalCircularPatternFeatureData": ["AccessSelections", "GetAxisType", "GetModifiedInstance", "GetModifiedInstances", "GetSeedComponentCount", "GetSkippedItemCount", "GetTransform", "IAccessSelections", "IAccessSelections2", "IGetSeedComponentArray", "IGetSkippedItemArray", "ISetSeedComponentArray", "ISetSkippedItemArray", "ModifyInstance", "ReleaseSelectionAccess"], + "ILocalCurvePatternFeatureData": ["AccessSelections", "GetPatternComponentCount", "GetSkippedItemCount", "GetTransform", "ReleaseSelectionAccess"], + "ILocalLinearPatternFeatureData": ["AccessSelections", "GetD1AxisType", "GetD2AxisType", "GetModifiedInstance", "GetModifiedInstances", "GetSeedComponentCount", "GetSkippedItemCount", "GetTransform", "IAccessSelections", "IAccessSelections2", "IGetSeedComponentArray", "IGetSkippedItemArray", "ISetSeedComponentArray", "ISetSkippedItemArray", "ModifyInstance", "ReleaseSelectionAccess"], + "ILocalSketchPatternFeatureData": ["AccessSelections", "GetBasePoint", "GetPatternComponentCount", "GetReferencePointType", "GetSkippedItemCount", "GetTransform", "ReleaseSelectionAccess"], + "ILoftFeatureData": ["AccessSelections", "GetFeatureScopeBodiesCount", "GetGuideCurvesCount", "GetGuideCurvesType", "GetGuideTangencyType", "GetProfileCount", "GetWallThickness", "IAccessSelections", "IGetFeatureScopeBodies", "IGetGuideCurves", "IGetGuideCurvesType", "IGetProfiles", "ISetFeatureScopeBodies", "ISetGuideCurves", "ISetProfiles", "IsBossFeature", "IsThinFeature", "ReleaseSelectionAccess", "SetGuideTangencyType", "SetWallThickness"], + "ILoftedBendsFeatureData": ["AccessSelections", "CanCreateBendLines", "GetProfileCount", "IAccessSelections", "IGetProfiles", "ISetProfiles", "ReleaseSelectionAccess"], + "ILoop": ["Dummy015", "Dummy016", "EnumCoEdges", "EnumEdges", "GetEdgeCount", "GetEdges", "GetFace", "GetFirstCoEdge", "GetNext", "IGetEdges", "IGetFace", "IGetFirstCoEdge", "IGetNext", "IRevolvePlanarLoop", "ISweepPlanarLoop", "IsOuter", "RevolvePlanarLoop", "SweepPlanarLoop"], + "ILoop2": ["Dummy015", "Dummy016", "EnumCoEdges", "EnumEdges", "GetCoEdgeCount", "GetCoEdges", "GetEdgeCount", "GetEdges", "GetFace", "GetFirstCoEdge", "GetNext", "GetTrackingIDs", "GetTrackingIDsCount", "GetVertexCount", "GetVertices", "IGetCoEdges", "IGetEdges", "IGetFace", "IGetFirstCoEdge", "IGetNext", "IGetTrackingIDs", "IGetVertices", "IRevolvePlanarLoop", "ISweepPlanarLoop", "IsOuter", "IsSingular", "RemoveTrackingID", "RevolvePlanarLoop", "Select", "SetTrackingID", "SweepPlanarLoop"], + "IMBD3DPdfData": ["GetAttachments", "GetBomAreaCount", "GetImportedNotes", "GetMoreViews", "GetStandardViews", "GetTextAndCustomProperties", "SetAttachments", "SetBomTable", "SetImportedNote", "SetIndependentViewPort", "SetMoreViews", "SetStandardViews"], + "IMacroFeatureData": ["AccessSelections", "EmbedMacroFile", "GetBaseName", "GetDisplayDimensionCount", "GetDisplayDimensions", "GetDoubleByName", "GetEdgeIdType", "GetEdgeUserId", "GetEditBodiesCount", "GetEditTargetTransform", "GetEntitiesNeedUserId", "GetEntitiesNeedUserIdCount", "GetFaceIdType", "GetFaceUserId", "GetIconFileCount", "GetIntegerByName", "GetModuleCount", "GetModuleNames", "GetParameterCount", "GetParameters", "GetParentsCount", "GetProcedureCount", "GetProcedureNames", "GetProgId", "GetPropertyManagerHandleModuleCount", "GetPropertyManagerHandleModuleNames", "GetPropertyManagerHandleProcedureCount", "GetPropertyManagerHandleProcedureNames", "GetSelectionCount", "GetSelections", "GetSelections2", "GetSelections3", "GetStringByName", "IAccessSelections", "IAddDisplayDimensions", "IGetDisplayDimensions", "IGetEditBodies", "IGetEntitiesNeedUserId", "IGetIconFiles", "IGetModuleNames", "IGetParameters", "IGetParents", "IGetProcedureNames", "IGetPropertyManagerHandleModuleNames", "IGetPropertyManagerHandleProcedureNames", "IGetSelections", "IGetSelections2", "IGetSelections3", "ISetEditBodies", "ISetIconFiles", "ISetParameters", "ISetParents", "ISetSelections", "ISetSelections2", "IsCOMFeature", "ReleaseSelectionAccess", "SetDoubleByName", "SetEdgeUserId", "SetFaceUserId", "SetIntegerByName", "SetParameters", "SetProgId", "SetSelections", "SetSelections2", "SetStringByName"], + "IMagneticLine": ["AddNote", "GetNotes", "GetNotesCount", "IGetNotes", "RemoveNote"], + "IManipulator": ["GetSpecificManipulator", "Remove", "Select", "Show"], + "IMassProperty": ["AddBodies", "GetMomentOfInertia", "IAddBodies", "IGetCenterOfMass", "IGetMomentOfInertia", "IGetPrincipleAxesOfInertia", "IGetPrincipleMomentsOfInertia", "ISetAssignedMassProp", "ISetOverrideCenterOfMassValue", "ISetOverrideMassValue", "ISetOverrideMomentsOfInertiaValue", "ISetOverridePrincipleAxesOrientation", "ISetOverridePrincipleMomentsOfInertia", "PrincipleAxesOfInertia", "SetAssignedMassProp", "SetCoordinateSystem", "SetOverrideCenterOfMassValue", "SetOverrideMassValue", "SetOverrideMomentsOfInertiaValue", "SetOverridePrincipleAxesOrientation", "SetOverridePrincipleMomentsOfInertia"], + "IMassProperty2": ["GetMomentOfInertia", "GetOverrideOptions", "PrincipalAxesOfInertia", "Recalculate", "SetCoordinateSystem", "SetOverrideOptions"], + "IMassPropertyOverrideOptions": ["GetOverrideCenterOfMassValue", "GetOverrideMassValue", "GetOverrideMomentsOfInertiaValue", "GetOverridePrincipalAxesOrientation", "GetOverridePrincipalMomentsOfInertia", "SetOverrideCenterOfMassValue", "SetOverrideMassValue", "SetOverrideMomentsOfInertiaValue", "SetOverridePrincipalAxesOrientation", "SetOverridePrincipalMomentsOfInertia"], + "IMate": ["GetEntity", "GetMateDimensionValue", "GetMateEntities", "GetMateParams", "IGetEntity", "IGetMateDimensionValue", "IGetMateEntities", "IGetMateParams"], + "IMate2": ["DisplayDimension2", "ForceMisalignment", "GetConcentricAlignmentType", "GetCurrentMisalignedDeviation", "GetForce", "GetLinkedMate", "GetMateEntityCount", "GetMaximumMisalignedDeviation", "GetSupplementalFaces", "GetTorque", "GetUseMisalignedDeviationDocumentProperty", "IGetSupplementalFaces", "MateEntity", "RemoveMisalignment", "SetConcentricAlignmentType", "SetForce", "SetMaximumMisalignedDeviation", "SetTorque", "SetUseMisalignedDeviationDocumentProperty"], + "IMateControllerFeatureData": ["AccessSelections", "AddConfigurationFromPosition", "AddNewPosition", "DeletePosition", "GetPositions", "GetValues", "Initialize", "ReOrderPositions", "ReleaseSelectionAccess", "SetValues"], + "IMateEntity": ["GetComponent", "GetComponentName", "GetEntityParams", "GetEntityType", "GetMember", "IGetComponent", "IGetComponent2", "IGetEntityParams", "IGetMember"], + "IMateEntity2": ["GetEntityParamsSize", "IGetEntityParams"], + "IMateInPlace": ["GetMateEntityCount", "MateComponentName", "MateEntity", "MateEntityType"], + "IMateLoadReference": ["Component", "Delete", "GetFaces", "GetFacesCount", "IGetFaces"], + "IMateReference": ["Edit", "ReferenceAlignment", "ReferenceEntity", "ReferenceEntity2", "ReferenceEntityType", "ReferenceType"], + "IMathPoint": ["AddVector", "ConvertToVector", "IAddVector", "IConvertToVector", "IMultiplyTransform", "IScale", "ISubtract", "ISubtractVector", "MultiplyTransform", "Scale", "Subtract", "SubtractVector"], + "IMathTransform": ["GetData", "GetData2", "IGetData", "IGetData2", "IInverse", "IMultiply", "ISetData", "Inverse", "Multiply", "SetData"], + "IMathUtility": ["ComposeTransform", "CreatePoint", "CreateTransform", "CreateTransformRotateAxis", "CreateVector", "ICreatePoint", "ICreateTransform", "ICreateTransformRotateAxis", "ICreateVector"], + "IMathVector": ["Add", "ConvertToPoint", "Cross", "Dot", "GetLength", "IAdd", "IConvertToPoint", "ICross", "IDot", "IMultiplyTransform", "IScale", "ISubtract", "MultiplyTransform", "Normalise", "Scale", "Subtract"], + "IMeasure": ["Calculate", "SetProjectionEntity"], + "IMember": ["Dummy002", "Dummy003", "Dummy004", "Dummy005", "Dummy006", "Dummy007", "Dummy008", "Dummy009", "Dummy010", "Dummy011"], + "IMeshBody": ["GetBody", "GetFacetCount", "GetFacets", "SurfaceFromMesh"], + "IMidSurface": ["EdgeGetFace", "GetFaceCount", "GetFacePairCount", "GetFirstFace", "GetFirstFaceArray", "GetFirstFacePair", "GetFirstNeutralSheet", "GetNeutralSheetCount", "GetNextFace", "GetNextFaceArray", "GetNextFacePair", "GetNextNeutralSheet", "IEdgeGetFace", "IGetFirstFace", "IGetFirstFaceArray", "IGetFirstFacePair", "IGetFirstNeutralSheet", "IGetNextFace", "IGetNextFaceArray", "IGetNextFacePair", "IGetNextNeutralSheet"], + "IMidSurface2": ["EdgeGetFace", "GetFaceCount", "GetFacePairCount", "GetFirstFace", "GetFirstFaceArray", "GetFirstFacePair", "GetFirstNeutralSheet", "GetNeutralSheetCount", "GetNextFace", "GetNextFaceArray", "GetNextFacePair", "GetNextNeutralSheet", "IEdgeGetFace", "IGetFirstFace", "IGetFirstFaceArray", "IGetFirstFacePair", "IGetFirstNeutralSheet", "IGetNextFace", "IGetNextFaceArray", "IGetNextFacePair", "IGetNextNeutralSheet"], + "IMidSurface3": ["EdgeGetFace", "GetFaceCount", "GetFacePairCount", "GetFaces", "GetFirstFace", "GetFirstFaceArray", "GetFirstFacePair", "GetFirstNeutralSheet", "GetNeutralSheetCount", "GetNextFace", "GetNextFaceArray", "GetNextFacePair", "GetNextNeutralSheet", "IEdgeGetFace", "IGetFaces", "IGetFirstFace", "IGetFirstFaceArray", "IGetFirstFacePair", "IGetFirstNeutralSheet", "IGetNextFace", "IGetNextFaceArray", "IGetNextFacePair", "IGetNextNeutralSheet"], + "IMirrorComponentFeatureData": ["AccessSelections", "ReleaseSelectionAccess"], + "IMirrorPartFeatureData": ["AccessSelections", "GetMirrorPlane", "GetMirrorPlaneType", "GetModelDoc", "GetTransform", "ReleaseSelectionAccess"], + "IMirrorPatternFeatureData": ["AccessSelections", "GetFeatureScopeBodiesCount", "GetMirrorFaceCount", "GetMirrorPlaneType", "GetPatternFeatureCount", "IAccessSelections", "IAccessSelections2", "IGetFeatureScopeBodies", "IGetMirrorFaceArray", "IGetPatternFeatureArray", "ISetFeatureScopeBodies", "ISetMirrorFaceArray", "ISetPatternFeatureArray", "ReleaseSelectionAccess"], + "IMirrorSolidFeatureData": ["AccessSelections", "GetPatternBodyCount", "GetTransform", "IAccessSelections", "IAccessSelections2", "IGetPatternBodyArray", "ISetPatternBodyArray", "ReleaseSelectionAccess"], + "IMiterFlangeFeatureData": ["AccessSelections", "GetCustomBendAllowance", "IAccessSelections", "IAccessSelections2", "IGetEdges", "IGetEdgesCount", "ISetEdges", "ReleaseSelectionAccess", "SetCustomBendAllowance"], + "IModelDoc": ["ActivateFeatureMgrView", "ActivateSelectedFeature", "AddConfiguration", "AddConfiguration2", "AddCustomInfo", "AddCustomInfo2", "AddCustomInfo3", "AddDiameterDimension", "AddDiameterDimension2", "AddDimension", "AddDimension2", "AddFeatureMgrView", "AddFeatureMgrView2", "AddFeatureMgrView3", "AddHorizontalDimension", "AddHorizontalDimension2", "AddIns", "AddLightSource", "AddLightSourceExtProperty", "AddLightToScene", "AddPropertyExtension", "AddRadialDimension", "AddRadialDimension2", "AddRelation", "AddSceneExtProperty", "AddVerticalDimension", "AddVerticalDimension2", "AlignDimensions", "AlignOrdinate", "AlignParallelDimensions", "AndSelect", "AndSelectByID", "AndSelectByMark", "AutoInferToggle", "AutoSolveToggle", "BlankRefGeom", "BlankSketch", "BreakAllExternalReferences", "BreakDimensionAlignment", "ChangeSketchPlane", "ClearSelection", "ClearUndoList", "Close", "CloseFamilyTable", "ClosePrintPreview", "Create3PointArc", "CreateArc", "CreateArc2", "CreateArcByCenter", "CreateArcDB", "CreateArcVB", "CreateCenterLine", "CreateCenterLineVB", "CreateCircle", "CreateCircle2", "CreateCircleByRadius", "CreateCircleByRadius2", "CreateCircleDB", "CreateCircleVB", "CreateCircularSketchStepAndRepeat", "CreateClippedSplines", "CreateEllipse", "CreateEllipse2", "CreateEllipseVB", "CreateEllipticalArc2", "CreateEllipticalArcByCenter", "CreateEllipticalArcByCenterVB", "CreateFeatureMgrView", "CreateFeatureMgrView2", "CreateFeatureMgrView3", "CreateGroup", "CreateLine", "CreateLine2", "CreateLineDB", "CreateLineVB", "CreateLinearSketchStepAndRepeat", "CreatePlaneAtAngle", "CreatePlaneAtAngle2", "CreatePlaneAtOffset", "CreatePlaneAtOffset2", "CreatePlaneAtSurface", "CreatePlaneAtSurface2", "CreatePlaneFixed", "CreatePlanePerCurveAndPassPoint", "CreatePlanePerCurveAndPassPoint2", "CreatePlaneThru3Points", "CreatePlaneThru3Points2", "CreatePoint", "CreatePoint2", "CreatePointDB", "CreateSpline", "CreateSplineByEqnParams", "CreateSplinesByEqnParams", "CreateTangentArc", "CreateTangentArc2", "CustomInfo", "CustomInfo2", "DeActivateFeatureMgrView", "DeSelectByID", "DebugCheckBody", "DebugCheckIgesGeom", "DeleteAllRelations", "DeleteBendTable", "DeleteBkgImage", "DeleteConfiguration", "DeleteConfiguration2", "DeleteCustomInfo", "DeleteCustomInfo2", "DeleteDesignTable", "DeleteFeatureMgrView", "DeleteLightSource", "DeleteNamedView", "DeleteSelection", "DeriveSketch", "DimPreferences", "DragTo", "DrawLightIcons", "Dummy1", "Dummy2", "Dummy3", "Dummy5", "Dummy6", "Dummy7", "Dummy8", "EditBalloonProperties", "EditClearAll", "EditConfiguration", "EditConfiguration2", "EditCopy", "EditCut", "EditDatumTargetSymbol", "EditDelete", "EditDimensionProperties", "EditDimensionProperties2", "EditOrdinate", "EditRebuild3", "EditRedo", "EditRollback", "EditRollback2", "EditRoute", "EditSeedFeat", "EditSketch", "EditSketchOrSingleSketchFeature", "EditSuppress", "EditSuppress2", "EditUndo", "EditUnsuppress", "EditUnsuppress2", "EditUnsuppressDependent", "EditUnsuppressDependent2", "EntityProperties", "EnumModelViews", "FeatEdit", "FeatEditDef", "FeatureBoss", "FeatureBossThicken", "FeatureBossThicken2", "FeatureBossThin", "FeatureByPositionReverse", "FeatureChamfer", "FeatureChamferType", "FeatureCirPattern", "FeatureCut", "FeatureCut2", "FeatureCut3", "FeatureCut4", "FeatureCutThicken", "FeatureCutThicken2", "FeatureCutThin", "FeatureExtruRefSurface", "FeatureFillet", "FeatureFillet2", "FeatureFillet3", "FeatureFillet4", "FeatureLinearPattern", "FeatureReferenceCurve", "FeatureRevolve2", "FeatureRevolveCut2", "FeatureSketchDrivenPattern", "FileReload", "FileSummaryInfo", "FirstFeature", "FontBold", "FontFace", "FontItalic", "FontPoints", "FontUnderline", "FontUnits", "ForceRebuild3", "GetActiveConfiguration", "GetActiveSketch", "GetActiveSketch2", "GetAddToDB", "GetAmbientLightProperties", "GetAngularUnits", "GetArcCentersDisplayed", "GetBendState", "GetBlockingState", "GetColorTable", "GetConfigurationByName", "GetConfigurationCount", "GetConfigurationNames", "GetConsiderLeadersAsLines", "GetCoordinateSystemXformByName", "GetCurrentCoordinateSystemName", "GetCustomInfoCount", "GetCustomInfoCount2", "GetCustomInfoNames", "GetCustomInfoNames2", "GetCustomInfoType", "GetCustomInfoType2", "GetCustomInfoType3", "GetDefaultTextHeight", "GetDependencies", "GetDependencies2", "GetDesignTable", "GetDetailingDefaults", "GetDirectionLightProperties", "GetDisplayWhenAdded", "GetEntityName", "GetExternalReferenceName", "GetFeatureCount", "GetFeatureManagerWidth", "GetFirstAnnotation", "GetFirstAnnotation2", "GetFirstModelView", "GetGridSettings", "GetInferenceMode", "GetLayerManager", "GetLightSourceCount", "GetLightSourceExtProperty", "GetLightSourceIdFromName", "GetLightSourceName", "GetLineCount", "GetLines", "GetMassProperties", "GetMassProperties2", "GetModelViewCount", "GetModelViewNames", "GetNext", "GetNumDependencies", "GetPathName", "GetPointLightProperties", "GetPopupMenuMode", "GetPropertyExtension", "GetPropertyManagerPage", "GetRayIntersectionsPoints", "GetRayIntersectionsTopology", "GetSaveFlag", "GetSceneBkgDIB", "GetSceneExtProperty", "GetSpotlightProperties", "GetStandardViewRotation", "GetTessellationQuality", "GetTitle", "GetToolbarVisibility", "GetType", "GetUnits", "GetUpdateStamp", "GetUserPreferenceDoubleValue", "GetUserPreferenceIntegerValue", "GetUserPreferenceStringValue", "GetUserPreferenceTextFormat", "GetUserPreferenceToggle", "GetUserUnit", "GetVisibilityOfConstructPlanes", "GraphicsRedraw", "GraphicsRedraw2", "GridOptions", "HideComponent2", "HideCosmeticThread", "HideDimension", "HideFeatureDimensions", "HideShowBodies", "HideSolidBody", "HoleWizard", "IAddDiameterDimension2", "IAddDimension2", "IAddHorizontalDimension2", "IAddRadialDimension2", "IAddVerticalDimension2", "ICreateArc", "ICreateArc2", "ICreateCenterLine", "ICreateCircle2", "ICreateCircleByRadius", "ICreateCircleByRadius2", "ICreateClippedSplines", "ICreateEllipse", "ICreateEllipse2", "ICreateEllipticalArc2", "ICreateEllipticalArcByCenter", "ICreateFeatureMgrView", "ICreateFeatureMgrView2", "ICreateFeatureMgrView3", "ICreateLine", "ICreateLine2", "ICreatePlaneAtAngle2", "ICreatePlaneAtOffset2", "ICreatePlaneAtSurface2", "ICreatePlaneFixed", "ICreatePlanePerCurveAndPassPoint2", "ICreatePlaneThru3Points2", "ICreatePoint2", "ICreateSpline", "ICreateSplineByEqnParams", "ICreateSplinesByEqnParams", "IFeatureByPositionReverse", "IFeatureFillet2", "IFeatureFillet3", "IFeatureFillet4", "IFeatureReferenceCurve", "IFirstFeature", "IGet3rdPartyStorage", "IGetActiveConfiguration", "IGetActiveSketch", "IGetActiveSketch2", "IGetAngularUnits", "IGetColorTable", "IGetConfigurationByName", "IGetConfigurationNames", "IGetCoordinateSystemXformByName", "IGetCustomInfoNames", "IGetCustomInfoNames2", "IGetDependencies", "IGetDependencies2", "IGetDesignTable", "IGetDetailingDefaults", "IGetEntityName", "IGetFirstAnnotation", "IGetFirstAnnotation2", "IGetFirstModelView", "IGetLayerManager", "IGetLines", "IGetMassProperties", "IGetMassProperties2", "IGetModelViewNames", "IGetNext", "IGetNumDependencies", "IGetNumDependencies2", "IGetRayIntersectionsPoints", "IGetRayIntersectionsTopology", "IGetStandardViewRotation", "IGetUnits", "IGetUserPreferenceTextFormat", "IGetUserUnit", "IGetVersionHistoryCount", "IInsertBOMBalloon2", "IInsertDatumTag2", "IInsertGtol", "IInsertMidSurfaceExt", "IInsertNote", "IInsertProjectedSketch2", "IInsertWeldSymbol3", "ILightSourcePropertyValues", "IListExternalFileReferences", "IMultiSelectByRay", "IParameter", "IRayIntersections", "IRelease3rdPartyStorage", "ISelectByRay", "ISetAngularUnits", "ISetNextSelectionGroupId", "ISetUserPreferenceTextFormat", "ISketchSplineByEqnParams", "IVersionHistory", "Insert3DSketch", "Insert3DSketch2", "Insert3DSplineCurve", "InsertAxis", "InsertBOMBalloon", "InsertBOMBalloon2", "InsertBendTableEdit", "InsertBendTableNew", "InsertBendTableOpen", "InsertBkgImage", "InsertCompositeCurve", "InsertConnectionPoint", "InsertCoordinateSystem", "InsertCosmeticThread", "InsertCurveFile", "InsertCurveFileBegin", "InsertCurveFileEnd", "InsertCurveFilePoint", "InsertCutBlend", "InsertCutBlend2", "InsertCutBlend3", "InsertCutBlend4", "InsertCutSurface", "InsertCutSwept", "InsertCutSwept2", "InsertCutSwept3", "InsertCutSwept4", "InsertDatumTag2", "InsertDatumTargetSymbol", "InsertDeleteFace", "InsertDeleteHole", "InsertDome", "InsertExtendSurface", "InsertFamilyTableEdit", "InsertFamilyTableNew", "InsertFamilyTableOpen", "InsertFeatureShell", "InsertFeatureShellAddThickness", "InsertFramePoint", "InsertGtol", "InsertHatchedFace", "InsertHelix", "InsertLibraryFeature", "InsertLoftRefSurface", "InsertLoftRefSurface2", "InsertMfDraft", "InsertMfDraft2", "InsertMidSurfaceExt", "InsertNewNote3", "InsertNote", "InsertObject", "InsertObjectFromFile", "InsertOffsetSurface", "InsertPlanarRefSurface", "InsertPoint", "InsertProjectedSketch", "InsertProjectedSketch2", "InsertProtrusionBlend", "InsertProtrusionBlend2", "InsertProtrusionBlend3", "InsertProtrusionBlend4", "InsertProtrusionSwept", "InsertProtrusionSwept2", "InsertProtrusionSwept3", "InsertProtrusionSwept4", "InsertRadiateSurface", "InsertRefPoint", "InsertRevolvedRefSurface", "InsertRib", "InsertRib2", "InsertRoutePoint", "InsertScale", "InsertSewRefSurface", "InsertShape", "InsertSheetMetal3dBend", "InsertSheetMetalBaseFlange", "InsertSheetMetalClosedCorner", "InsertSheetMetalFold", "InsertSheetMetalMiterFlange", "InsertSheetMetalUnfold", "InsertSketch", "InsertSketch2", "InsertSplinePoint", "InsertSplitLineProject", "InsertSplitLineSil", "InsertSurfaceFinishSymbol2", "InsertSweepRefSurface", "InsertSweepRefSurface2", "InsertTangencySurface", "InsertWeldSymbol2", "InsertWeldSymbol3", "InspectCurvature", "IsActive", "IsEditingSelf", "IsExploded", "IsLightLockedToModel", "IsOpenedReadOnly", "IsOpenedViewOnly", "IsTessellationValid", "LBDownAt", "LBUpAt", "LightSourcePropertyValues", "LightSourceUserName", "Lights", "ListExternalFileReferences", "ListExternalFileReferencesCount", "Lock", "LockAllExternalReferences", "LockFramePoint", "LockLightToModel", "MultiSelectByRay", "NameView", "ObjectDisplayAsIcon", "ObjectDisplayContent", "ObjectResetsize", "Parameter", "ParentChildRelationship", "Paste", "PostTrimSurface", "PreTrimSurface", "PrintDirect", "PrintOut", "PrintOut2", "PrintPreview", "PrintSetup", "PropertySheet", "Quit", "RayIntersections", "ReattachOrdinate", "Rebuild", "RemoveGroups", "RemoveInspectCurvature", "RemoveItemsFromGroup", "ResetBlockingState", "ResetConfiguration", "ResetLightSourceExtProperty", "ResetPropertyExtension", "ResetSceneExtProperty", "Save", "Save2", "SaveAs", "SaveAs2", "SaveAs3", "SaveAsSilent", "SaveBMP", "SaveSilent", "Scale", "ScreenRotate", "Select", "SelectAt", "SelectByID", "SelectByMark", "SelectByName", "SelectByRay", "SelectLoop", "SelectMidpoint", "SelectSketchArc", "SelectSketchItem", "SelectSketchLine", "SelectSketchPoint", "SelectSketchSpline", "SelectTangency", "SelectedEdgeProperties", "SelectedFaceProperties", "SelectedFeatureProperties", "SetAddToDB", "SetAmbientLightProperties", "SetAngularUnits", "SetArcCentersDisplayed", "SetBendState", "SetBlockingState", "SetConsiderLeadersAsLines", "SetCustomInfo", "SetCustomInfo2", "SetDirectionLightProperties", "SetDisplayWhenAdded", "SetFeatureManagerWidth", "SetILightSourcePropertyValues", "SetInferenceMode", "SetLightSourceName", "SetLightSourcePropertyValues", "SetLightSourcePropertyValuesVB", "SetLightSourceUserName", "SetNextSelectionGroupId", "SetParamValue", "SetPickMode", "SetPointLightProperties", "SetPopupMenuMode", "SetPrintSetup", "SetReadOnlyState", "SetSaveAsFileName", "SetSaveFlag", "SetSceneBkgDIB", "SetSpotlightProperties", "SetSummaryInfo", "SetTessellationQuality", "SetTitle2", "SetToolbarVisibility", "SetUnits", "SetUserPreferenceDoubleValue", "SetUserPreferenceIntegerValue", "SetUserPreferenceStringValue", "SetUserPreferenceTextFormat", "SetUserPreferenceToggle", "ShowComponent2", "ShowConfiguration", "ShowConfiguration2", "ShowCosmeticThread", "ShowFeatureDimensions", "ShowNamedView", "ShowNamedView2", "ShowSolidBody", "SimpleHole", "SimpleHole2", "SimplifySpline", "SkToolsAutoConstr", "Sketch3DIntersections", "SketchAddConstraints", "SketchAlign", "SketchArc", "SketchCenterline", "SketchChamfer", "SketchCircle", "SketchConstrainCoincident", "SketchConstrainConcentric", "SketchConstrainParallel", "SketchConstrainPerp", "SketchConstrainTangent", "SketchConstraintsDel", "SketchConstraintsDelAll", "SketchConvertIsoCurves", "SketchFillet", "SketchFillet1", "SketchFillet2", "SketchMirror", "SketchModifyFlip", "SketchModifyRotate", "SketchModifyScale", "SketchModifyTranslate", "SketchOffset", "SketchOffset2", "SketchOffsetEdges", "SketchOffsetEntities", "SketchOffsetEntities2", "SketchParabola", "SketchPoint", "SketchPolygon", "SketchRectangle", "SketchRectangleAtAnyAngle", "SketchSpline", "SketchSplineByEqnParams", "SketchSplineByEqnParams2", "SketchTangentArc", "SketchTrim", "SketchUndo", "SketchUseEdge", "SketchUseEdge2", "SketchUseEdgeCtrline", "SplitClosedSegment", "SplitOpenSegment", "SummaryInfo", "Toolbars", "ToolsConfiguration", "ToolsDistance", "ToolsGrid", "ToolsMacro", "ToolsMassProps", "ToolsSketchScale", "ToolsSketchTranslate", "UnBlankRefGeom", "UnLock", "UnblankSketch", "UnderiveSketch", "UnlockAllExternalReferences", "UnlockFramePoint", "UserFavors", "UserPreferences", "VersionHistory", "ViewConstraint", "ViewDispCoordinateSystems", "ViewDispOrigins", "ViewDispRefPoints", "ViewDispRefaxes", "ViewDispRefplanes", "ViewDispTempRefaxes", "ViewDisplayCurvature", "ViewDisplayFaceted", "ViewDisplayHiddengreyed", "ViewDisplayHiddenremoved", "ViewDisplayShaded", "ViewDisplayWireframe", "ViewOglShading", "ViewOrientationUndo", "ViewRotXMinusNinety", "ViewRotXPlusNinety", "ViewRotYMinusNinety", "ViewRotYPlusNinety", "ViewRotate", "ViewRotateminusx", "ViewRotateminusy", "ViewRotateminusz", "ViewRotateplusx", "ViewRotateplusy", "ViewRotateplusz", "ViewRwShading", "ViewTranslate", "ViewTranslateminusx", "ViewTranslateminusy", "ViewTranslateplusx", "ViewTranslateplusy", "ViewZoomTo2", "ViewZoomToSelection", "ViewZoomin", "ViewZoomout", "ViewZoomto", "ViewZoomtofit", "ViewZoomtofit2", "WindowRedraw"], + "IModelDoc2": ["ActivateFeatureMgrView", "ActivateSelectedFeature", "AddConfiguration", "AddConfiguration2", "AddConfiguration3", "AddCustomInfo", "AddCustomInfo2", "AddCustomInfo3", "AddDiameterDimension", "AddDiameterDimension2", "AddDimension", "AddDimension2", "AddFeatureMgrView", "AddFeatureMgrView2", "AddFeatureMgrView3", "AddHorizontalDimension", "AddHorizontalDimension2", "AddIns", "AddLightSource", "AddLightSourceExtProperty", "AddLightToScene", "AddLoftSection", "AddOrEditConfiguration", "AddPropertyExtension", "AddRadialDimension", "AddRadialDimension2", "AddRelation", "AddSceneExtProperty", "AddVerticalDimension", "AddVerticalDimension2", "AlignDimensions", "AlignOrdinate", "AlignParallelDimensions", "AndSelect", "AndSelectByID", "AndSelectByMark", "AutoInferToggle", "AutoSolveToggle", "BlankRefGeom", "BlankSketch", "BreakAllExternalReferences", "BreakDimensionAlignment", "ChangeSketchPlane", "ClearSelection", "ClearSelection2", "ClearUndoList", "Close", "CloseFamilyTable", "ClosePrintPreview", "ClosestDistance", "Create3PointArc", "CreateArc", "CreateArc2", "CreateArcByCenter", "CreateArcDB", "CreateArcVB", "CreateCenterLine", "CreateCenterLineVB", "CreateCircle", "CreateCircle2", "CreateCircleByRadius", "CreateCircleByRadius2", "CreateCircleDB", "CreateCircleVB", "CreateCircularSketchStepAndRepeat", "CreateClippedSplines", "CreateEllipse", "CreateEllipse2", "CreateEllipseVB", "CreateEllipticalArc2", "CreateEllipticalArcByCenter", "CreateEllipticalArcByCenterVB", "CreateFeatureMgrView", "CreateFeatureMgrView2", "CreateFeatureMgrView3", "CreateGroup", "CreateLine", "CreateLine2", "CreateLineDB", "CreateLineVB", "CreateLinearSketchStepAndRepeat", "CreatePlaneAtAngle", "CreatePlaneAtAngle2", "CreatePlaneAtAngle3", "CreatePlaneAtOffset", "CreatePlaneAtOffset2", "CreatePlaneAtOffset3", "CreatePlaneAtSurface", "CreatePlaneAtSurface2", "CreatePlaneAtSurface3", "CreatePlaneFixed", "CreatePlaneFixed2", "CreatePlanePerCurveAndPassPoint", "CreatePlanePerCurveAndPassPoint2", "CreatePlanePerCurveAndPassPoint3", "CreatePlaneThru3Points", "CreatePlaneThru3Points2", "CreatePlaneThru3Points3", "CreatePlaneThruLineAndPt", "CreatePlaneThruPtParallelToPlane", "CreatePoint", "CreatePoint2", "CreatePointDB", "CreateSpline", "CreateSplineByEqnParams", "CreateSplinesByEqnParams", "CreateTangentArc", "CreateTangentArc2", "CustomInfo", "CustomInfo2", "DeActivateFeatureMgrView", "DeSelectByID", "DebugCheckBody", "DebugCheckIgesGeom", "DeleteAllRelations", "DeleteBendTable", "DeleteBkgImage", "DeleteConfiguration", "DeleteConfiguration2", "DeleteCustomInfo", "DeleteCustomInfo2", "DeleteDesignTable", "DeleteFeatureMgrView", "DeleteLightSource", "DeleteNamedView", "DeleteSelection", "DeriveSketch", "DimPreferences", "DissolveLibraryFeature", "DissolveSketchText", "DragTo", "DrawLightIcons", "Dummy1", "Dummy2", "Dummy3", "Dummy5", "Dummy6", "Dummy7", "Dummy8", "EditBalloonProperties", "EditClearAll", "EditConfiguration", "EditConfiguration2", "EditConfiguration3", "EditCopy", "EditCut", "EditDatumTargetSymbol", "EditDelete", "EditDimensionProperties", "EditDimensionProperties2", "EditDimensionProperties3", "EditOrdinate", "EditRebuild3", "EditRedo", "EditRedo2", "EditRollback", "EditRollback2", "EditRoute", "EditSeedFeat", "EditSketch", "EditSketchOrSingleSketchFeature", "EditSuppress", "EditSuppress2", "EditUndo", "EditUndo2", "EditUnsuppress", "EditUnsuppress2", "EditUnsuppressDependent", "EditUnsuppressDependent2", "EntityProperties", "EnumModelViews", "FeatEdit", "FeatEditDef", "FeatureBoss", "FeatureBoss2", "FeatureBossThicken", "FeatureBossThicken2", "FeatureBossThin", "FeatureBossThin2", "FeatureByPositionReverse", "FeatureChamfer", "FeatureChamferType", "FeatureCirPattern", "FeatureCurvePattern", "FeatureCut", "FeatureCut2", "FeatureCut3", "FeatureCut4", "FeatureCut5", "FeatureCutThicken", "FeatureCutThicken2", "FeatureCutThin", "FeatureCutThin2", "FeatureExtruRefSurface", "FeatureExtruRefSurface2", "FeatureFillet", "FeatureFillet2", "FeatureFillet3", "FeatureFillet4", "FeatureFillet5", "FeatureLinearPattern", "FeatureReferenceCurve", "FeatureRevolve2", "FeatureRevolveCut2", "FeatureSketchDrivenPattern", "FileReload", "FileSummaryInfo", "FirstFeature", "FontBold", "FontFace", "FontItalic", "FontPoints", "FontUnderline", "FontUnits", "ForceRebuild3", "ForceReleaseLocks", "GetActiveConfiguration", "GetActiveSketch", "GetActiveSketch2", "GetAddToDB", "GetAmbientLightProperties", "GetAngularUnits", "GetArcCentersDisplayed", "GetBendState", "GetBlockingState", "GetColorTable", "GetConfigurationByName", "GetConfigurationCount", "GetConfigurationNames", "GetConsiderLeadersAsLines", "GetCoordinateSystemXformByName", "GetCurrentCoordinateSystemName", "GetCustomInfoCount", "GetCustomInfoCount2", "GetCustomInfoNames", "GetCustomInfoNames2", "GetCustomInfoType", "GetCustomInfoType2", "GetCustomInfoType3", "GetCustomInfoValue", "GetDefaultTextHeight", "GetDependencies", "GetDependencies2", "GetDesignTable", "GetDetailingDefaults", "GetDirectionLightProperties", "GetDisplayWhenAdded", "GetEntityName", "GetEquationMgr", "GetExternalReferenceName", "GetFeatureCount", "GetFeatureManagerWidth", "GetFirstAnnotation", "GetFirstAnnotation2", "GetFirstModelView", "GetGridSettings", "GetInferenceMode", "GetLayerManager", "GetLightSourceCount", "GetLightSourceExtProperty", "GetLightSourceIdFromName", "GetLightSourceName", "GetLineCount", "GetLines", "GetMassProperties", "GetMassProperties2", "GetModelViewCount", "GetModelViewNames", "GetNext", "GetNumDependencies", "GetPathName", "GetPointLightProperties", "GetPopupMenuMode", "GetPropertyExtension", "GetPropertyManagerPage", "GetRayIntersectionsPoints", "GetRayIntersectionsTopology", "GetSaveFlag", "GetSceneBkgDIB", "GetSceneExtProperty", "GetSpotlightProperties", "GetStandardViewRotation", "GetTessellationQuality", "GetTitle", "GetToolbarVisibility", "GetType", "GetUnits", "GetUpdateStamp", "GetUserPreferenceDoubleValue", "GetUserPreferenceIntegerValue", "GetUserPreferenceStringValue", "GetUserPreferenceTextFormat", "GetUserPreferenceToggle", "GetUserUnit", "GetVisibilityOfConstructPlanes", "GetZebraStripeData", "GraphicsRedraw", "GraphicsRedraw2", "GridOptions", "HideComponent2", "HideCosmeticThread", "HideDimension", "HideFeatureDimensions", "HideShowBodies", "HideSolidBody", "HoleWizard", "IAddConfiguration3", "IAddDiameterDimension2", "IAddDimension2", "IAddHorizontalDimension2", "IAddOrEditConfiguration", "IAddRadialDimension2", "IAddVerticalDimension2", "IClosestDistance", "ICreateArc", "ICreateArc2", "ICreateCenterLine", "ICreateCircle2", "ICreateCircleByRadius", "ICreateCircleByRadius2", "ICreateClippedSplines", "ICreateEllipse", "ICreateEllipse2", "ICreateEllipticalArc2", "ICreateEllipticalArcByCenter", "ICreateFeatureMgrView", "ICreateFeatureMgrView2", "ICreateFeatureMgrView3", "ICreateLine", "ICreateLine2", "ICreatePlaneAtAngle2", "ICreatePlaneAtAngle3", "ICreatePlaneAtOffset2", "ICreatePlaneAtOffset3", "ICreatePlaneAtSurface2", "ICreatePlaneAtSurface3", "ICreatePlaneFixed", "ICreatePlaneFixed2", "ICreatePlanePerCurveAndPassPoint2", "ICreatePlanePerCurveAndPassPoint3", "ICreatePlaneThru3Points2", "ICreatePlaneThru3Points3", "ICreatePlaneThruLineAndPt", "ICreatePlaneThruPtParallelToPlane", "ICreatePoint2", "ICreateSpline", "ICreateSplineByEqnParams", "ICreateSplinesByEqnParams", "IEditDimensionProperties3", "IFeatureByPositionReverse", "IFeatureFillet2", "IFeatureFillet3", "IFeatureFillet4", "IFeatureFillet5", "IFeatureReferenceCurve", "IFirstFeature", "IGet3rdPartyStorage", "IGetActiveConfiguration", "IGetActiveSketch", "IGetActiveSketch2", "IGetAngularUnits", "IGetColorTable", "IGetConfigurationByName", "IGetConfigurationNames", "IGetCoordinateSystemXformByName", "IGetCustomInfoNames", "IGetCustomInfoNames2", "IGetDependencies", "IGetDependencies2", "IGetDesignTable", "IGetDetailingDefaults", "IGetEntityName", "IGetFirstAnnotation", "IGetFirstAnnotation2", "IGetFirstModelView", "IGetLayerManager", "IGetLines", "IGetMassProperties", "IGetMassProperties2", "IGetModelViewNames", "IGetNext", "IGetNumDependencies", "IGetNumDependencies2", "IGetRayIntersectionsPoints", "IGetRayIntersectionsTopology", "IGetStandardViewRotation", "IGetUnits", "IGetUserPreferenceTextFormat", "IGetUserUnit", "IGetVersionHistoryCount", "IInsertBOMBalloon2", "IInsertDatumTag2", "IInsertGtol", "IInsertMacroFeature", "IInsertMidSurfaceExt", "IInsertNote", "IInsertProjectedSketch2", "IInsertSheetMetalEdgeFlange", "IInsertSketchForEdgeFlange", "IInsertSketchText", "IInsertWeldSymbol3", "ILightSourcePropertyValues", "IListAuxiliaryExternalFileReferences", "IListExternalFileReferences", "IListExternalFileReferences2", "IMultiSelectByRay", "IParameter", "IRayIntersections", "IRelease3rdPartyStorage", "ISelectByRay", "ISetAngularUnits", "ISetNextSelectionGroupId", "ISetUserPreferenceTextFormat", "ISketchSplineByEqnParams", "IVersionHistory", "Insert3DSketch", "Insert3DSketch2", "Insert3DSplineCurve", "InsertAxis", "InsertAxis2", "InsertBOMBalloon", "InsertBOMBalloon2", "InsertBendTableEdit", "InsertBendTableNew", "InsertBendTableOpen", "InsertBkgImage", "InsertCompositeCurve", "InsertConnectionPoint", "InsertCoordinateSystem", "InsertCosmeticThread", "InsertCurveFile", "InsertCurveFileBegin", "InsertCurveFileEnd", "InsertCurveFilePoint", "InsertCutBlend", "InsertCutBlend2", "InsertCutBlend3", "InsertCutBlend4", "InsertCutSurface", "InsertCutSwept", "InsertCutSwept2", "InsertCutSwept3", "InsertCutSwept4", "InsertDatumTag2", "InsertDatumTargetSymbol", "InsertDeleteFace", "InsertDeleteFace2", "InsertDeleteHole", "InsertDome", "InsertExtendSurface", "InsertFamilyTableEdit", "InsertFamilyTableNew", "InsertFamilyTableOpen", "InsertFeatureReplaceFace", "InsertFeatureShell", "InsertFeatureShellAddThickness", "InsertFramePoint", "InsertGtol", "InsertHatchedFace", "InsertHelix", "InsertLibraryFeature", "InsertLoftRefSurface", "InsertLoftRefSurface2", "InsertMacroFeature", "InsertMfDraft", "InsertMfDraft2", "InsertMidSurfaceExt", "InsertNewNote3", "InsertNote", "InsertObject", "InsertObjectFromFile", "InsertOffsetSurface", "InsertPlanarRefSurface", "InsertPoint", "InsertProjectedSketch", "InsertProjectedSketch2", "InsertProtrusionBlend", "InsertProtrusionBlend2", "InsertProtrusionBlend3", "InsertProtrusionBlend4", "InsertProtrusionSwept", "InsertProtrusionSwept2", "InsertProtrusionSwept3", "InsertProtrusionSwept4", "InsertRadiateSurface", "InsertRefPoint", "InsertRevolvedRefSurface", "InsertRib", "InsertRib2", "InsertRip", "InsertRoutePoint", "InsertScale", "InsertSewRefSurface", "InsertShape", "InsertSheetMetal3dBend", "InsertSheetMetalBaseFlange", "InsertSheetMetalBreakCorner", "InsertSheetMetalClosedCorner", "InsertSheetMetalEdgeFlange", "InsertSheetMetalFold", "InsertSheetMetalHem", "InsertSheetMetalJog", "InsertSheetMetalMiterFlange", "InsertSheetMetalUnfold", "InsertSketch", "InsertSketch2", "InsertSketchForEdgeFlange", "InsertSketchPicture", "InsertSketchPictureData", "InsertSketchPictureDatax64", "InsertSketchText", "InsertSplinePoint", "InsertSplitLineProject", "InsertSplitLineSil", "InsertStackedBalloon", "InsertSurfaceFinishSymbol2", "InsertSweepRefSurface", "InsertSweepRefSurface2", "InsertTangencySurface", "InsertWeldSymbol2", "InsertWeldSymbol3", "InspectCurvature", "IsActive", "IsEditingSelf", "IsExploded", "IsLightLockedToModel", "IsOpenedReadOnly", "IsOpenedViewOnly", "IsTessellationValid", "LBDownAt", "LBUpAt", "LightSourcePropertyValues", "LightSourceUserName", "Lights", "ListAuxiliaryExternalFileReferences", "ListAuxiliaryExternalFileReferencesCount", "ListExternalFileReferences", "ListExternalFileReferences2", "ListExternalFileReferencesCount", "ListExternalFileReferencesCount2", "Lock", "LockAllExternalReferences", "LockFramePoint", "LockLightToModel", "MoldDraftAnalysis", "MultiSelectByRay", "NameView", "ObjectDisplayAsIcon", "ObjectDisplayContent", "ObjectResetsize", "Parameter", "ParentChildRelationship", "Paste", "PostTrimSurface", "PreTrimSurface", "PrintDirect", "PrintOut", "PrintOut2", "PrintPreview", "PrintSetup", "PropertySheet", "Quit", "RayIntersections", "ReattachOrdinate", "Rebuild", "ReloadOrReplace", "RemoveGroups", "RemoveInspectCurvature", "RemoveItemsFromGroup", "ResetBlockingState", "ResetConfiguration", "ResetLightSourceExtProperty", "ResetPropertyExtension", "ResetSceneExtProperty", "Save", "Save2", "Save3", "SaveAs", "SaveAs2", "SaveAs3", "SaveAs4", "SaveAsSilent", "SaveBMP", "SaveSilent", "Scale", "ScreenRotate", "Select", "SelectAt", "SelectByID", "SelectByMark", "SelectByName", "SelectByRay", "SelectLoop", "SelectMidpoint", "SelectSketchArc", "SelectSketchItem", "SelectSketchLine", "SelectSketchPoint", "SelectSketchSpline", "SelectTangency", "SelectedEdgeProperties", "SelectedFaceProperties", "SelectedFeatureProperties", "SetAddToDB", "SetAmbientLightProperties", "SetAngularUnits", "SetArcCentersDisplayed", "SetBendState", "SetBlockingState", "SetConsiderLeadersAsLines", "SetCustomInfo", "SetCustomInfo2", "SetDirectionLightProperties", "SetDisplayWhenAdded", "SetFeatureManagerWidth", "SetILightSourcePropertyValues", "SetInferenceMode", "SetLightSourceName", "SetLightSourcePropertyValues", "SetLightSourcePropertyValuesVB", "SetLightSourceUserName", "SetNextSelectionGroupId", "SetParamValue", "SetPickMode", "SetPointLightProperties", "SetPopupMenuMode", "SetPrintSetup", "SetReadOnlyState", "SetSaveAsFileName", "SetSaveFlag", "SetSceneBkgDIB", "SetSpotlightProperties", "SetSummaryInfo", "SetTessellationQuality", "SetTitle2", "SetToolbarVisibility", "SetUnits", "SetUserPreferenceDoubleValue", "SetUserPreferenceIntegerValue", "SetUserPreferenceStringValue", "SetUserPreferenceTextFormat", "SetUserPreferenceToggle", "SetZebraStripeData", "ShowComponent2", "ShowConfiguration", "ShowConfiguration2", "ShowCosmeticThread", "ShowFeatureDimensions", "ShowNamedView", "ShowNamedView2", "ShowSolidBody", "SimpleHole", "SimpleHole2", "SimpleHole3", "SimplifySpline", "SkToolsAutoConstr", "Sketch3DIntersections", "SketchAddConstraints", "SketchAlign", "SketchArc", "SketchCenterline", "SketchChamfer", "SketchCircle", "SketchConstrainCoincident", "SketchConstrainConcentric", "SketchConstrainParallel", "SketchConstrainPerp", "SketchConstrainTangent", "SketchConstraintsDel", "SketchConstraintsDelAll", "SketchConvertIsoCurves", "SketchFillet", "SketchFillet1", "SketchFillet2", "SketchMirror", "SketchModifyFlip", "SketchModifyRotate", "SketchModifyScale", "SketchModifyTranslate", "SketchOffset", "SketchOffset2", "SketchOffsetEdges", "SketchOffsetEntities", "SketchOffsetEntities2", "SketchParabola", "SketchPoint", "SketchPolygon", "SketchRectangle", "SketchRectangleAtAnyAngle", "SketchSpline", "SketchSplineByEqnParams", "SketchSplineByEqnParams2", "SketchTangentArc", "SketchTrim", "SketchUndo", "SketchUseEdge", "SketchUseEdge2", "SketchUseEdgeCtrline", "SplitClosedSegment", "SplitOpenSegment", "SummaryInfo", "Toolbars", "ToolsConfiguration", "ToolsDistance", "ToolsGrid", "ToolsMacro", "ToolsMassProps", "ToolsSketchScale", "ToolsSketchTranslate", "UnBlankRefGeom", "UnLock", "UnblankSketch", "UnderiveSketch", "UnlockAllExternalReferences", "UnlockFramePoint", "UserFavors", "UserPreferences", "VersionHistory", "ViewConstraint", "ViewDispCoordinateSystems", "ViewDispOrigins", "ViewDispRefPoints", "ViewDispRefaxes", "ViewDispRefplanes", "ViewDispTempRefaxes", "ViewDisplayCurvature", "ViewDisplayFaceted", "ViewDisplayHiddengreyed", "ViewDisplayHiddenremoved", "ViewDisplayShaded", "ViewDisplayWireframe", "ViewOglShading", "ViewOrientationUndo", "ViewRotXMinusNinety", "ViewRotXPlusNinety", "ViewRotYMinusNinety", "ViewRotYPlusNinety", "ViewRotate", "ViewRotateminusx", "ViewRotateminusy", "ViewRotateminusz", "ViewRotateplusx", "ViewRotateplusy", "ViewRotateplusz", "ViewRwShading", "ViewTranslate", "ViewTranslateminusx", "ViewTranslateminusy", "ViewTranslateplusx", "ViewTranslateplusy", "ViewZoomTo2", "ViewZoomToSelection", "ViewZoomin", "ViewZoomout", "ViewZoomto", "ViewZoomtofit", "ViewZoomtofit2", "WindowRedraw"], + "IModelDocExtension": ["ActivateFeatureMgrViewx64", "AddAngularRunningDim", "AddComment", "AddDecal", "AddDefaultRenderMaterial", "AddDimension", "AddDisplayStateSpecificRenderMaterial", "AddFeatureMgrView3x64", "AddOrUpdateSearchData", "AddOrdinateDimension", "AddPathLengthDim", "AddRenderMaterial", "AddSpecificDimension", "AddSymmetricDimension", "AlignDimensions", "AlignRunningDimension", "ApplyFormatPainterToAll", "ApplyTexture", "BreakAllExternalFileReferences2", "Capture3DView", "ChangeSketchPlane", "CheckVersionCompatibility", "CloseMessageBar", "CloseUserNotification", "CommandTabVisible", "Compare3DPMI", "CopyDraftingStandard", "Create3DBoundingBox", "CreateAdvancedHoleElementData", "CreateBalloonOptions", "CreateCallout", "CreateDecal", "CreateMassProperty", "CreateMassProperty2", "CreateMeasure", "CreateOLEObject", "CreatePresentation", "CreatePresentation2", "CreateRenderMaterial", "CreateStackedBalloonOptions", "CreateStructureSystem", "CreateStructureSystemMemberData", "CreateTexture", "CustomPropertyBuilderTemplate", "CustomPropertyManager", "DeActivateFeatureMgrViewx64", "DeleteAllDecals", "DeleteAttachment", "DeleteDecal", "DeleteDisplayStateSpecificRenderMaterial", "DeleteDraftingStandard", "DeleteFeatureMgrViewx64", "DeleteRenderMaterial", "DeleteScene", "DeleteSearchData", "DeleteSelection2", "DimXpertManager", "DisplayMode", "DisplayStateSpecMaterialPropertyValues", "EditBalloonProperties", "EditBalloonProperties2", "EditDimensionProperties", "EditRebuildAll", "ExtractImageData", "FindTrackedObjects", "FinishRecordingUndoObject", "FinishRecordingUndoObject2", "ForceRebuildAll", "GeodesicSketchOffset", "Get3DExperienceModelType", "Get3DView", "Get3DViewCount", "Get3DViewNames", "Get3DViews", "GetActiveAnnotationView", "GetActivePropertyManagerPage", "GetAdvancedSaveAsOptions", "GetAdvancedSpotLightProperties", "GetAnnotationCount", "GetAnnotations", "GetAnnotationsByType", "GetAppearanceSetting", "GetAttachmentCount", "GetAttachments", "GetCSYSDistances", "GetCSYSEulersAngularRotation", "GetCSYSXYZAngularRotation", "GetCalloutVariableString", "GetCameraById", "GetCameraCount", "GetCameraDefinition", "GetCommandTabs", "GetCoordinateSystemTransformByName", "GetCorresponding", "GetCorresponding2", "GetCorrespondingEntity", "GetCorrespondingEntity2", "GetCostingManager", "GetDecal", "GetDecals", "GetDecalsCount", "GetDependencies", "GetDisplayStateSetting", "GetDraftingStandardNames", "GetFlattenSheetMetalPersistReference", "GetGeneralTableAnnotation", "GetKeepLightInRenderScene", "GetLastFeatureAdded", "GetLicenseType", "GetLightEnabledInRender", "GetMBD3DPdfData", "GetMBDSTEP242Data", "GetMassProperties", "GetMassProperties2", "GetMaterial", "GetMaterialPropertyValues", "GetModelBreakViewNames", "GetModelView", "GetModelViewCount", "GetModelViews", "GetMotionStudyManager", "GetNamedViewRotation", "GetOLEObjectCount", "GetOLEObjects", "GetObjectByPersistReference", "GetObjectByPersistReference2", "GetObjectByPersistReference3", "GetObjectId", "GetPLMID", "GetPackAndGo", "GetParameterValue", "GetPersistReference", "GetPersistReference3", "GetPersistReferenceCount", "GetPersistReferenceCount3", "GetPrint3DDialog", "GetPrintSpecification", "GetRenderCustomReferences", "GetRenderMaterials", "GetRenderMaterials2", "GetRenderMaterialsCount", "GetRenderMaterialsCount2", "GetRenderStockReferences", "GetRoutingComponentManager", "GetScanto3D", "GetSceneBkgDIBx64", "GetSearchData", "GetSearchDataCount", "GetSectionProperties", "GetSectionProperties2", "GetSheetMetalObjectsByPersistReference", "GetSphericalBoxDiameter", "GetStream", "GetSunLightAdvancedPropertyValues", "GetSunLightSourcePropertyValues", "GetSustainability", "GetTemplateSheetMetal", "GetTexture", "GetUserPreferenceDouble", "GetUserPreferenceDoubleValueRange", "GetUserPreferenceInteger", "GetUserPreferenceString", "GetUserPreferenceTextFormat", "GetUserPreferenceToggle", "GetVisibleBox", "GetWhatsWrong", "GetWhatsWrongCount", "HasDesignTable", "HasLegacyCThreads", "HasMaterialPropertyValues", "HasRenamedDocuments", "HideDecal", "HideFeatureManager", "IAddDisplayStateSpecificRenderMaterial", "IChangeSketchPlane", "ICreateOLEObject", "IDeleteDisplayStateSpecificRenderMaterial", "IEditDimensionProperties", "IGet3rdPartyStorageStore", "IGetAnnotationViews", "IGetAnnotations", "IGetAttachments", "IGetDecals", "IGetFlattenSheetMetalPersistReference", "IGetMassProperties", "IGetMaterialPropertyValues", "IGetModelViews", "IGetNamedViewRotation", "IGetOLEObjects", "IGetObjectByPersistReference", "IGetObjectByPersistReference2", "IGetObjectByPersistReference3", "IGetPersistReference", "IGetPersistReference3", "IGetRenderMaterials", "IGetSearchData", "IGetSectionProperties", "IGetSectionProperties2", "IGetSheetMetalObjectsByPersistReference", "IListExternalFileReferences", "IMultiSelect", "IPrintOut2", "IPrintOut3", "IRelease3rdPartyStorageStore", "IRemoveMaterialProperty", "ISetMaterialPropertyValues", "InsertAnnotationFavorite", "InsertAnnotationView", "InsertAttachment", "InsertBOMBalloon", "InsertBOMBalloon2", "InsertBomTable", "InsertBomTable2", "InsertBomTable3", "InsertBomTable4", "InsertCamera", "InsertChainDimensions", "InsertDatumTargetSymbol2", "InsertDatumTargetSymbol3", "InsertDeleteFace", "InsertDwgOrDxfFile", "InsertGeneralTableAnnotation", "InsertGeneralToleranceTableAnnotation", "InsertObjectFromFile", "InsertScene", "InsertStackedBalloon", "InsertStackedBalloon2", "InsertSurfaceFinishSymbol3", "InsertTitleBlockTable", "InstallModelColorizer", "IsAbbreviatedViewActive", "IsConverted", "IsDisplayPaneVisible", "IsExploded", "IsFutureVersion", "IsSamePersistentID", "IsVirtualComponent", "IsVirtualComponent2", "IsVirtualComponent3", "JogDimension", "ListExternalFileReferences", "ListExternalFileReferences2", "ListExternalFileReferencesCount", "LoadDraftingStandard", "Make3DExperienceCompatible", "MoveDecal", "MoveOrCopy", "MultiSelect", "MultiSelect2", "PrintOut", "PrintOut2", "PrintOut3", "PrintOut4", "PublishSTEP242File", "PublishSTEP242File2", "PublishTo3DPDF", "PurgeDisplayState", "RayIntersections", "ReJogRunningDimension", "Rebuild", "Refresh3DViews", "ReleaseStream", "ReloadOrReplace", "ReloadWithReferences", "RemoveMaterialProperty", "RemoveModelColorizer", "RemoveTexture", "RemoveTexture2", "RemoveTextureByDisplayState", "RemoveVisibleBox", "RenameDocument", "RenameDraftingStandard", "ReorderFeature", "ReorderFeature2", "ResetStandardViews", "ReverseDecalsOrder", "RotateOrCopy", "RunCommand", "SaveAs", "SaveAs2", "SaveAs3", "SaveDeFeaturedFile", "SaveDraftingStandard", "SavePackAndGo", "SaveSelection", "SaveTo3DExperience", "SaveViewToSolidworks", "ScaleOrCopy", "SelectAll", "SelectByID", "SelectByID2", "SelectByRay", "SetAdvancedSpotLightProperties", "SetApiUndoObject", "SetCommandTabVisible", "SetCustomPropertyBuilderTemplate", "SetDisplayMode", "SetDisplayStateSpecMaterialPropertyValues", "SetKeepLightInRenderScene", "SetLightEnabledInRender", "SetMaterialPropertyValues", "SetParameterValue", "SetSceneBkgDIBx64", "SetSunLightAdvancedPropertyValues", "SetSunLightSourcePropertyValues", "SetTexture", "SetTextureByDisplayState", "SetTopLevelTransparency", "SetTransparency", "SetUserPreferenceDouble", "SetUserPreferenceInteger", "SetUserPreferenceString", "SetUserPreferenceTextFormat", "SetUserPreferenceToggle", "SetVisibility", "SetVisibleBox", "ShowMessageBar", "ShowModelBreakView", "ShowSmartMessage", "ShowUserNotification", "SketchBoxSelect", "SketchOffsetOnSurface", "StartFormatPainter", "StartRecordingUndoObject", "StopFormatPainter", "Stretch", "SunLightInformation", "Transparency", "UpdateExternalFileReferences", "UpdateFrozenFeatures", "UpdateRenderMaterialsInSceneGraph", "UpdateStandardViews", "UpdateSunLight", "UpgradeLegacyCThreads", "UpgradeLegacyCustomProperties", "ViewZoomToSheet", "Visibility"], + "IModelView": ["Activate", "AddPerspective", "CreateCallout", "DrawHighlightedItems", "DrawTransparentFeatureTree", "GetBkgdImageDisplayAreaAspectRatio", "GetDIBHeader", "GetDIBHeaderx64", "GetDisplayState", "GetEyePoint", "GetIsoPlaneDistance", "GetModelDoc", "GetMouse", "GetNext", "GetStereoSeparation", "GetStripsOfDIB", "GetStripsOfDIBx64", "GetViewDIB", "GetViewDIBx64", "GetViewHWnd", "GetViewHWndx64", "GetViewPlaneDistance", "GetVisibleBox", "GraphicsRedraw", "HasPerspective", "HideMagnifyingGlass", "IGetEyePoint", "IGetNext", "IGetStereoSeparation", "IGetVisibleBox", "IGraphicsRedraw", "ISetEyePoint", "ISetStereoSeparation", "InitializeShading", "MoveMagnifyingGlass", "ProjectModelPoint", "RemovePerspective", "RollBy", "RotateAboutAxis", "RotateAboutCenter", "RotateAboutPoint", "SectionAnnotationViewAttr", "SetCameraByName", "SetEyePoint", "SetStereoSeparation", "ShowMagnifyingGlass", "StartDynamics", "StopDynamics", "TranslateBy", "TurnBy", "UnprojectModelPoint", "ZoomByFactor"], + "IModelViewManager": ["ActivateControlTab", "ActivateModelTab", "AddControl", "AddControl2", "AddControl3", "AddSnapShot", "CreateFeatureMgrControl", "CreateFeatureMgrControl2", "CreateFeatureMgrControl3", "CreateFeatureMgrControl4", "CreateFeatureMgrView", "CreateFeatureMgrView2", "CreateFeatureMgrWindowFromHandle", "CreateFeatureMgrWindowFromHandlex64", "CreateManipulator", "CreateSectionView", "CreateSectionViewData", "DeleteControlTab", "DeleteSnapShot", "DisplayWindowFromHandle", "DisplayWindowFromHandlex64", "GetConfigurationManagerTabIndex", "GetControl", "GetDimXpertManagerTabIndex", "GetDisplayManagerTabIndex", "GetFeatureManagerTabs", "GetFeatureManagerTreeTabIndex", "GetFeatureMgrViewHWnd", "GetFeatureMgrViewHWndx64", "GetPropertyManagerTabIndex", "GetSectionViewData", "GetSnapShot", "GetSnapShots", "IGetControl", "IsControlTabActive", "IsModelTabActive", "RemoveSectionView"], + "IModelWindow": ["Activate"], + "IModeler": ["CheckInterference", "CheckInterference3", "CheckInterferenceBetweenTwoBodies", "CopyWizardHole", "CreateArc", "CreateBodiesFromSheets", "CreateBodiesFromSheets2", "CreateBodyFromBox", "CreateBodyFromBox3", "CreateBodyFromCone", "CreateBodyFromCyl", "CreateBodyFromFaces2", "CreateBrepBody", "CreateBrepBody3", "CreateBsplineCurve", "CreateBsplineSurface", "CreateConicalSurface", "CreateConicalSurface2", "CreateCoonsBSurface", "CreateCylindricalSurface", "CreateCylindricalSurface2", "CreateEllipse", "CreateExtrudedBody", "CreateExtrusionSurface", "CreateLine", "CreateLoftBody", "CreateLoftBody2", "CreateLoftSurface", "CreateOffsetSurface", "CreatePCurve", "CreatePlanarSurface", "CreatePlanarSurface2", "CreateRevolutionSurface", "CreateRuledSurface", "CreateRuledSurfaceFromEdge", "CreateSheetFromFaces", "CreateSheetFromSurface", "CreateSphericalSurface", "CreateSphericalSurface2", "CreateSpring", "CreateSweptBody", "CreateSweptSurface", "CreateToroidalSurface", "CreateWireBody", "DeleteFacesFromSheetBody", "FindTwoEdgeMaxDeviation", "GetBodyOutline", "GetBodyOutline2", "GetInitKnitGapWidth", "GetManifoldBodiesCount", "GetToleranceValue", "ICheckInterference", "ICheckInterference2", "ICheckInterference3", "ICheckInterferenceCount", "ICheckInterferenceCount2", "ICheckInterferenceCount3", "ICopyWizardHole", "ICreateArc", "ICreateBodiesFromSheets", "ICreateBodiesFromSheets2", "ICreateBodyFromBox", "ICreateBodyFromBox2", "ICreateBodyFromCone", "ICreateBodyFromCone2", "ICreateBodyFromCyl", "ICreateBodyFromCyl2", "ICreateBodyFromFaces", "ICreateBodyFromFaces2", "ICreateBodyFromFaces3", "ICreateBrepBody", "ICreateBrepBody2", "ICreateBrepBody3", "ICreateBsplineCurve", "ICreateBsplineSurface", "ICreateConicalSurface", "ICreateConicalSurface2", "ICreateCylindricalSurface", "ICreateCylindricalSurface2", "ICreateEllipse", "ICreateExtrusionSurface", "ICreateLine", "ICreateLoftSurface", "ICreateOffsetSurface", "ICreatePCurve", "ICreatePlanarSurface", "ICreatePlanarSurface2", "ICreateRevolutionSurface", "ICreateRuledSurface", "ICreateRuledSurfaceFromEdge", "ICreateSheetFromFaces", "ICreateSheetFromSurface", "ICreateSheetFromSurface2", "ICreateSphericalSurface", "ICreateSphericalSurface2", "ICreateSweptSurface", "ICreateToroidalSurface", "ICreateWireBody", "IDeleteFacesFromSheetBody", "IFindTwoEdgeMaxDeviation", "IImprintingFaces", "IImprintingFacesCount", "IImprintingFacesCount2", "IMakeManifoldBodies", "IMergeCurves", "IReplaceSurfaces", "IReplaceSurfaces2", "IRestore", "IRestore2", "ISplitFaceOnParam", "ISplitFaceOnParam2", "ISplitFaceOnParamCount", "ISplitFaceOnParamCount2", "ImprintingFaces", "MakeManifoldBodies", "MergeCurves", "ProjectCurveOnSurface", "ReplaceSurfaces", "Restore", "SetInitKnitGapWidth", "SetToleranceValue", "SetTolerances", "SplitFaceOnParam", "ThickenSheet", "UnsetTolerances"], + "IMotionPlotFeatureData": ["AddYAxis", "GetXAxis", "GetYAxis", "IGetYAxis"], + "IMouse": ["MouseWheelXYZ", "Move", "MoveXYZ"], + "IMoveCopyBodyFeatureData": ["AccessSelections", "AddMate", "GetBodiesCount", "IAddMate", "IGetBodies", "ISetBodies", "ReleaseSelectionAccess"], + "IMoveFaceFeatureData": ["AccessSelections", "GetDirectionReference", "GetEndConditionEntity", "GetFacesCount", "GetFromEntity", "IGetFaces", "IGetTriadRotationParameters", "IGetTriadTranslationParameters", "ISetFaces", "ISetTriadRotationParameters", "ISetTriadTranslationParameters", "ReleaseSelectionAccess", "SetDirectionReference", "SetEndConditionEntity", "SetFromEntity"], + "IMultiJogLeader": ["GetAnnotation", "GetArrowHeadAtIndex", "GetArrowHeadCount", "GetDisplayData", "GetLineAtIndex", "GetLineCount", "GetNext", "IGetAnnotation", "IGetArrowHeadAtIndex", "IGetDisplayData", "IGetLineAtIndex", "IGetNext"], + "INote": ["AddText", "BeginSketchEdit", "EndSketchEdit", "GetAnnotation", "GetArcAtIndex", "GetArcCount", "GetArrowHeadAtIndex", "GetArrowHeadCount", "GetArrowHeadInfo", "GetAttachPos", "GetBalloonInfo", "GetBalloonOptions", "GetBalloonPadding", "GetBalloonSize", "GetBalloonStack", "GetBalloonStyle", "GetBendLineValues", "GetBendLineValues2", "GetBomBalloonText", "GetBomBalloonTextStyle", "GetCompoundTextAtIndex", "GetCompoundTextCount", "GetExtent", "GetExtentAtIndex", "GetFontInfo", "GetHeight", "GetHeightAtIndex", "GetHeightInPoints", "GetHyperlinkText", "GetLeaderAtIndex", "GetLeaderCount", "GetLeaderInfo", "GetLeaderNumPointsAt", "GetLineAtIndex", "GetLineCount", "GetName", "GetNext", "GetSketch", "GetText", "GetTextAngleAtIndex", "GetTextAtIndex", "GetTextCount", "GetTextFontAtIndex", "GetTextFormat", "GetTextFormatAtIndex", "GetTextHeightAtIndex", "GetTextInvertAtIndex", "GetTextJustification", "GetTextJustificationAtIndex", "GetTextLineSpacingAtIndex", "GetTextOffsetAtIndex", "GetTextPoint", "GetTextPoint2", "GetTextPositionAtIndex", "GetTextRefPositionAtIndex", "GetTextTokens", "GetTextVerticalJustification", "GetTriangleAtIndex", "GetTriangleCount", "GetUpperRight", "GetUseDocTextFormat", "HasBalloon", "HasExtraLeader", "IGetAnnotation", "IGetArcAtIndex", "IGetArrowHeadAtIndex", "IGetArrowHeadInfo", "IGetAttachPos", "IGetBalloonInfo", "IGetExtent", "IGetExtentAtIndex", "IGetFontInfo", "IGetLeaderAtIndex", "IGetLeaderInfo", "IGetLineAtIndex", "IGetNext", "IGetSketch", "IGetTextFormat", "IGetTextFormatAtIndex", "IGetTextOffsetAtIndex", "IGetTextPoint", "IGetTextPoint2", "IGetTextPositionAtIndex", "IGetTextTokenCount", "IGetTextTokens", "IGetTriangleAtIndex", "IGetUpperRight", "ISetTextFormat", "ISetTextFormatAtIndex", "IsAttached", "IsAttribute", "IsBomBalloon", "IsCompoundNote", "IsStackedBalloon", "IsStackedBalloonMaster", "MakeStackedBalloon", "SetBalloon", "SetBalloonPadding", "SetBomBalloonText", "SetHeight", "SetHeightInPoints", "SetHyperlinkText", "SetName", "SetText", "SetTextAtIndex", "SetTextFormat", "SetTextFormatAtIndex", "SetTextJustification", "SetTextJustificationAtIndex", "SetTextOffsetAtIndex", "SetTextPoint", "SetTextVerticalJustification", "SetZeroLengthLeader"], + "IOneBendFeatureData": ["AccessSelections", "GetCustomBendAllowance", "GetFlatPatternSketchSegmentCount", "GetFlatPatternSketchSegmentCount2", "GetType", "IAccessSelections", "IAccessSelections2", "IFlatPatternSketchSegments", "IFlatPatternSketchSegments2", "ReleaseSelectionAccess", "SetCustomBendAllowance"], + "IPMIDatumData": ["GetDatumFeature", "GetDatumTarget", "GetDatumType"], + "IPMIDatumTarget": ["GetDatumTargetReferences"], + "IPMIDimensionData": ["GetDimensionItemAtIndex", "GetDimensionItemCount"], + "IPMIDimensionItem": ["IsReferenceOnly"], + "IPMIFrameData": ["GetGtolBoxAtIndex", "GetGtolBoxCount", "GetGtolDatumAtIndex", "GetGtolDatumCount"], + "IPMIGtolBoxData": ["GetAdditionalSymbols", "GetTolTypeValues", "GetTolTypes"], + "IPMIGtolData": ["GetFirstPoint", "GetFrameAtIndex", "GetFrameCount", "GetSecondPoint", "GetText", "GetTextBelowFrames", "IsComposite"], + "IPackAndGo": ["AddExternalDocuments", "GetDocumentNames", "GetDocumentNamesCount", "GetDocumentSaveToNames", "GetExternalDocuments", "GetSaveToName", "IGetDocumentNames", "IGetDocumentSaveToNames", "ISetDocumentSaveToNames", "RemoveExternalDocuments", "SetDocumentSaveToNames", "SetSaveToName", "SetSaveToName2"], + "IPageSetup": ["GetHeaderFooterString", "GetResolution", "GetUseDefaultResolution", "SetFooter", "SetHeader", "SetResolution"], + "IParagraphs": ["GetBulletsAndNumbering", "GetFormatting", "GetIndentation", "GetText", "GetTextSegmentCount", "GetTextSegmentFormat", "GetTextSegmentText", "SetBulletsAndNumbering", "SetFormatting", "SetIndentation", "SetTextSegmentFormat", "UpdateParagraph"], + "IParameter": ["GetDoubleValue", "GetName", "GetOption", "GetStringValue", "GetType", "GetVector", "GetVectorVB", "SetDoubleValue", "SetDoubleValue2", "SetOption", "SetStringValue", "SetStringValue2", "SetVector", "SetVector2"], + "IPartDoc": ["AddPropertyExtension", "Body", "CreateExplodedView", "CreateFeatureFromBody", "CreateFeatureFromBody2", "CreateFeatureFromBody3", "CreateNewBody", "CreateSurfaceFeatureFromBody", "DeleteEntityName", "Dummy1", "Dummy10", "Dummy11", "Dummy12", "Dummy13", "Dummy14", "Dummy15", "Dummy16", "Dummy17", "Dummy18", "Dummy19", "Dummy2", "Dummy3", "Dummy4", "Dummy5", "Dummy6", "Dummy7", "Dummy8", "Dummy9", "Dumpfacets", "EditRebuild", "EditRollback", "EditRollforward", "EditSuppress", "EditUnsuppress", "EditUnsuppressDependent", "EnumBodies", "EnumBodies2", "EnumBodies3", "EnumRelatedBodies", "EnumRelatedBodies2", "EnumRelatedSectionedBodies", "EnumRelatedSectionedBodies2", "ExportFlatPatternView", "ExportToDWG", "ExportToDWG2", "FeatureById", "FeatureByName", "FeatureExtrusion", "FeatureExtrusion2", "FeatureExtrusion3", "FeatureExtrusionThin", "FeatureExtrusionThin2", "FeatureExtrusionThin3", "FeatureRevolve", "FeatureRevolve2", "FeatureRevolveCut", "FeatureRevolveThin", "FeatureRevolveThin2", "FeatureRevolveThinCut", "FeatureStock", "FeatureXpert", "FirstFeature", "ForceRebuild", "GetBodies", "GetBodies2", "GetCorresponding", "GetCorrespondingEntity", "GetEntityByName", "GetEntityName", "GetExplodedViewConfigurationName", "GetExplodedViewCount", "GetExplodedViewNames", "GetMateReferenceEntity", "GetMaterialPropertyName", "GetMaterialPropertyName2", "GetMaterialVisualProperties", "GetNamedEntities", "GetNamedEntitiesCount", "GetPartBox", "GetProcessedBody", "GetProcessedBodyWithSelFace", "GetPropertyExtension", "GetRelatedBodies", "GetRelatedSectionedBodies", "GetSectionedBody", "GetTessNorms", "GetTessTriStripEdges", "GetTessTriStripNorms", "GetTessTriStripSize", "GetTessTriStripTextures", "GetTessTriStrips", "GetTessTriangleCount", "GetTessTriangles", "IBodyObject", "IBodyObject2", "ICreateFeatureFromBody", "ICreateFeatureFromBody2", "ICreateFeatureFromBody3", "ICreateFeatureFromBody4", "ICreateNewBody", "ICreateNewBody2", "ICreateSurfaceFeatureFromBody", "ICreateSurfaceFeatureFromBodyCount", "ICreateSurfaceFeatureFromBodyCount2", "IDeleteEntityName", "IExportToDWG", "IExportToDWG2", "IFeatureById", "IFeatureByName", "IFirstFeature", "IGetCorrespondingEntity", "IGetEntityByName", "IGetEntityName", "IGetNamedEntities", "IGetPartBox", "IGetProcessedBody", "IGetProcessedBody2", "IGetProcessedBodyWithSelFace", "IGetProcessedBodyWithSelFace2", "IGetSectionedBody", "IGetSectionedBody2", "IGetTessNorms", "IGetTessTriStripEdgeSize", "IGetTessTriStripEdges", "IGetTessTriStripNorms", "IGetTessTriStrips", "IGetTessTriangles", "IInsertCombineFeature", "ISetEntityName", "ImportDiagnosis", "ImportDiagnosisGapCloser", "InsertBasePart", "InsertBendNotes", "InsertBendTable", "InsertBends", "InsertBends2", "InsertCombineFeature", "InsertImportedFeature", "InsertMirrorAll", "InsertMirrorFeature", "InsertPart", "InsertPart2", "InsertPart3", "InsertStockTurned", "IsMirrored", "IsWeldment", "MakeSection", "MirrorFeature", "MirrorPart", "MirrorPart2", "RemoveAllDisplayStates", "ReorderFeature", "ResetPropertyExtension", "SaveToFile", "SaveToFile2", "SaveToFile3", "SetCosmosWorksMaterial", "SetDroppedFileName", "SetEntityName", "SetFaceMap", "SetLineColor", "SetLineStyle", "SetLineWidth", "SetMaterialPropertyName", "SetMaterialPropertyName2", "SetMaterialVisualProperties", "ShowExploded"], + "IPartExplodeStep": ["GetBodies", "GetExplodeDirection", "SetBodies", "SetExplodeDirection"], + "IPartialEdgeFilletData": ["SetPartialFilletParameters"], + "IPartingLineFeatureData": ["AccessSelections", "DraftAnalysis", "GetEntitiesToSplit", "GetEntitiesToSplitCount", "GetFacesByType", "GetFacesByTypeCount", "GetPartingLinesCount", "IGetEntitiesToSplit", "IGetFacesByType", "IGetPartingLines", "ISetEntitiesToSplit", "ISetPartingLines", "ReleaseSelectionAccess", "SetEntitiesToSplit", "Status"], + "IPartingSurfaceFeatureData": ["AccessSelections", "GetPartingLinesCount", "GetPartingLinesType", "IGetPartingLines", "ISetPartingLines", "ReleaseSelectionAccess"], + "IPlaneManipulator": ["Update"], + "IPrimaryMemberFacePlaneIntersectionFeatureData": ["GetIntersectingObjectTypes", "GetIntersectingPlanesAndFaces", "GetParameterFaces", "SetIntersectingPlanesAndFaces", "SetParameterFaces"], + "IPrimaryMemberPathSegmentFeatureData": ["GetPathSegments", "GetPathSegmentsTypes", "SetPathSegments"], + "IPrimaryMemberPointLengthFeatureData": ["GetPoints", "GetPointsTypes", "SetPoints"], + "IPrimaryMemberRefPlaneFeatureData": ["GetReferenceAxes", "GetReferenceAxesTypes", "GetReferenceLocations", "GetReferenceLocationsTypes", "GetStartAndEndReferences", "GetStartAndEndReferencesTypes", "SetReferenceAxes", "SetReferenceLocations", "SetStartAndEndReferences"], + "IPrint3DDialog": ["UpdateDialog"], + "IPrintSpecification": ["AddPrintRange", "ResetPrintRange", "RestoreDefaults"], + "IProfileGroupFolder": ["GetFeature", "GetPlane", "GetSketch", "GetStructureSystemMemberCount", "GetStructureSystemMembers"], + "IProjectionArrow": ["GetCoordinates", "GetLabel", "GetProjectedView", "GetTextFormat", "GetUseDocTextFormat", "GetView", "IGetCoordinates", "IGetProjectedView", "IGetTextFormat", "IGetView", "SetLabel"], + "IProjectionCurveFeatureData": ["AccessSelections", "GetFaceArrayCount", "IAccessSelections", "IAccessSelections2", "IGetFaceArray", "ISetFaceArray", "ReleaseSelectionAccess"], + "IPropertyManagerPage": ["GetAllowMultiSelect", "GetDialogWindow", "GetDialogWindowx64", "GetGroupExpanded", "GetGroupVisible", "SetAllowMultiSelect", "SetButtons", "SetGroupExpanded", "SetGroupRange", "SetGroupVisible", "Show"], + "IPropertyManagerPage2": ["AddControl", "AddControl2", "AddGroupBox", "AddMenuPopupItem", "AddTab", "Close", "EnableButton", "GetFocus", "IAddControl", "IAddGroupBox", "SetCursor", "SetExitConfirmationCursor", "SetFocus", "SetMessage", "SetMessage2", "SetMessage3", "SetTitleBitmap", "SetTitleBitmap2", "SetTitleBitmapx64", "Show", "Show2"], + "IPropertyManagerPageActiveX": ["GetControl", "IGetControl", "SetClass"], + "IPropertyManagerPageBitmap": ["SetBitmapByName", "SetStandardBitmap"], + "IPropertyManagerPageBitmapButton": ["SetBitmaps", "SetBitmapsByName", "SetBitmapsByName2", "SetBitmapsByName3", "SetBitmapsx64", "SetStandardBitmaps"], + "IPropertyManagerPageCombobox": ["AddItems", "Clear", "DeleteItem", "IAddItems", "InsertItem", "ItemText"], + "IPropertyManagerPageControl": ["GetGroupBox", "SetPictureLabelByName", "SetStandardPictureLabel", "ShowBubbleTooltip"], + "IPropertyManagerPageGroup": ["AddControl", "AddControl2", "IAddControl"], + "IPropertyManagerPageLabel": ["Bold", "CharacterBackgroundColor", "CharacterColor", "Font", "Italic", "LineOffset", "SetBold", "SetCharacterBackgroundColor", "SetCharacterColor", "SetFont", "SetItalic", "SetLineOffset", "SetSizeRatio", "SetUnderline", "SizeRatio", "Underline"], + "IPropertyManagerPageListbox": ["AddItems", "Clear", "DeleteItem", "GetSelectedItems", "GetSelectedItemsCount", "IAddItems", "IGetSelectedItems", "InsertItem", "ItemText", "SetSelectedItem"], + "IPropertyManagerPageNumberbox": ["AddItems", "Clear", "DeleteItem", "IAddItems", "InsertItem", "ItemText", "SetRange", "SetRange2", "SetSliderParameters"], + "IPropertyManagerPageSelectionbox": ["AddMenuPopupItem", "GetSelectedItems", "GetSelectedItemsCount", "GetSelectionFocus", "IGetSelectedItems", "ISetSelectionFilters", "ItemText", "SelectionIndex", "SetCalloutLabel", "SetSelectedItem", "SetSelectionColor", "SetSelectionFilters", "SetSelectionFocus"], + "IPropertyManagerPageSlider": ["GetRange", "SetRange"], + "IPropertyManagerPageTab": ["Activate", "AddControl", "AddControl2", "AddGroupBox", "IAddControl", "IAddGroupBox"], + "IPropertyManagerPageWindowFromHandle": ["SetWindowHandle", "SetWindowHandlex64"], + "IPtnrPMPage": ["AddPage", "CreatePage", "GetControlTip", "GetCurrentPageNumber", "GetDialogWindow", "GetDialogWindowx64", "GetGroupExpanded", "GetGroupVisible", "GetPageIndex", "GetPageNumber", "GetTotalNumberOfPages", "IsPageActive", "RecalculateVerticalSpacing", "Redraw", "SetAllowProgressiveRender", "SetButtonEnabled", "SetButtons", "SetControlTip", "SetGroupExpanded", "SetGroupRange", "SetGroupVisible", "SetPageNumber", "SetToolTips", "Show", "ShowControl", "SwitchPage"], + "IPunchTable": ["GetFeature", "GetTableAnnotationCount", "GetTableAnnotations", "IGetTableAnnotations"], + "IRackPinionMateFeatureData": ["EntitiesToMate", "SetEntitiesToMate"], + "IRayTraceRenderer": ["AbortFinalRender", "CloseFinalRenderWindow", "CloseRayTraceRender", "DisplayPreviewWindow", "InvokeFinalRender", "RenderToFile"], + "IRayTraceRendererOptions": ["UpdateGraphics"], + "IRefAxis": ["GetRefAxisParams", "GetTempAxisReferenceFace", "IGetRefAxisParams", "IsTempAxis"], + "IRefAxisFeatureData": ["AccessSelections", "GetSelections", "GetSelectionsCount", "IAccessSelections", "IGetSelections", "ISetSelections", "ReleaseSelectionAccess", "SetSelections"], + "IRefPlane": ["GetRefPlaneParams", "IGetBoundingBox", "IGetCornerPoints", "IGetRefPlaneParams"], + "IRefPlaneFeatureData": ["AccessSelections", "AngleOrDistance", "Constraint", "GetSelectionsCount", "IAccessSelections", "IGetSelections", "ISetSelections", "Reference", "ReleaseSelectionAccess", "ReversedReferenceDirection", "SetAngleOrDistance", "SetConstraint", "SetReference", "SetReversedReferenceDirection"], + "IRefPoint": ["GetRefPoint"], + "IRefPointFeatureData": ["AccessSelections", "GetSelectionsCount", "IAccessSelections", "IGetSelections", "ISetSelections", "ReleaseSelectionAccess"], + "IReferenceCurve": ["GetFirstSegment", "GetNextSegment", "GetSegmentCount", "GetSegments", "IGetFirstSegment", "IGetNextSegment", "IGetSegments", "SetColor", "SetVisible"], + "IReferencePointCurveFeatureData": ["AccessSelections", "GetThroughPointCount", "GetThroughPoints", "IGetThroughPoints", "ISetThroughPoints", "ReleaseSelectionAccess", "SetThroughPoints"], + "IRenamedDocumentReferences": ["AddSearchFolder", "GetSearchPath", "ReferencesArray", "RemoveReference", "RemoveSearchFolder", "Search"], + "IRenderMaterial": ["AddEntity", "GetCenterPoint", "GetCenterPoint2", "GetDSPBRMaterial", "GetEntities", "GetEntitiesCount", "GetLinkedDisplayStates", "GetMaterialIds", "GetUDirection", "GetUDirection2", "GetVDirection", "GetVDirection2", "IGetEntities", "RemoveAllEntities", "SetCenterPoint", "SetCenterPoint2", "SetLinkedDisplayStates", "SetUDirection", "SetUDirection2", "SetVDirection", "SetVDirection2"], + "IReplaceFaceFeatureData": ["AccessSelections", "GetFacesForReplacementCount", "GetReplacementSurfacesCount", "IAccessSelections", "IGetFacesForReplacement", "IGetReplacementSurfaces", "ISetFacesForReplacement", "ISetReplacementSurfaces", "ReleaseSelectionAccess"], + "IRevisionCloud": ["Finalize", "GetAnnotation", "GetNext", "GetPathPointAtIndex", "GetPathPointCount", "IGetAnnotation", "IGetNext", "IGetPathPointAtIndex", "SetPathPointAtIndex"], + "IRevisionTableAnnotation": ["AddRevision", "DeleteRevision", "GetAllCustomProperties", "GetAllCustomPropertiesCount", "GetColumnCustomProperty", "GetIdForRowNumber", "GetRevisionForId", "GetRevisionSymbolCount", "GetRevisionSymbols", "GetRowNumberForId", "GetSheet", "IGetAllCustomProperties", "IGetRevisionSymbols", "SetColumnCustomProperty"], + "IRevisionTableFeature": ["GetFeature", "GetTableAnnotationCount", "GetTableAnnotations", "IGetTableAnnotations"], + "IRevolveFeatureData": ["GetRevolutionAngle", "GetWallThickness", "IsBossFeature", "IsThinFeature", "SetRevolutionAngle", "SetWallThickness"], + "IRevolveFeatureData2": ["AccessSelections", "GetAxisType", "GetContoursCount", "GetFeatureScopeBodiesCount", "GetRevolutionAngle", "GetWallThickness", "IAccessSelections", "IGetContours", "IGetFeatureScopeBodies", "ISetContours", "ISetFeatureScopeBodies", "IsBossFeature", "IsThinFeature", "ReleaseSelectionAccess", "SetRevolutionAngle", "SetWallThickness"], + "IRibFeatureData": ["NextReference"], + "IRibFeatureData2": ["AccessSelections", "IAccessSelections", "NextReference", "ReleaseSelectionAccess"], + "IRipFeatureData": ["AccessSelections", "GetDirection", "GetEdgesCount", "IAccessSelections", "IGetEdges", "ISetEdges", "ReleaseSelectionAccess", "SetDirection"], + "IRoutingSettings": ["GetFromToListHeaderDefinitions", "GetRoutingUserPreferenceDoubleValue", "GetRoutingUserPreferenceIntegerValue", "GetRoutingUserPreferenceStringValue", "GetRoutingUserPreferenceToggle", "LoadDefaultRoutingSettings", "LoadRoutingSettingsFromFile", "SaveRoutingSettingsToFile", "SetFromToListHeaderDefinitions", "SetRoutingUserPreferenceDoubleValue", "SetRoutingUserPreferenceIntegerValue", "SetRoutingUserPreferenceStringValue", "SetRoutingUserPreferenceToggle"], + "IRuledSurfaceFeatureData": ["AccessSelections", "GetDirectionReference", "GetEdges", "GetEdgesCount", "IGetEdges", "ISetEdges", "ReleaseSelectionAccess", "SetDirectionReference", "SetEdges"], + "ISFSymbol": ["GetAngle", "GetAnnotation", "GetArcAtIndex", "GetArcCount", "GetArrowHeadAtIndex", "GetArrowHeadCount", "GetArrowHeadInfo", "GetDirectionOfLay", "GetLeaderAtIndex", "GetLeaderCount", "GetLineAtIndex", "GetLineCount", "GetNext", "GetSymbol", "GetSymbolAllAround", "GetSymbolSurfaceTexture", "GetSymbolType", "GetText", "GetTextAngleAtIndex", "GetTextAtIndex", "GetTextCount", "GetTextFontAtIndex", "GetTextHeightAtIndex", "GetTextInvertAtIndex", "GetTextPositionAtIndex", "GetTextRefPositionAtIndex", "GetTriangleAtIndex", "GetTriangleCount", "HasExtraLeader", "IGetAnnotation", "IGetArcAtIndex", "IGetArrowHeadAtIndex", "IGetArrowHeadInfo", "IGetLeaderAtIndex", "IGetLineAtIndex", "IGetNext", "IGetTextPositionAtIndex", "IGetTriangleAtIndex", "IsAttached", "SetAngle", "SetDirectionOfLay", "SetSymbol", "SetSymbolType", "SetText"], + "ISMCornerReliefData": ["GetFaces"], + "ISMGussetFeatureData": ["AccessSelections", "ReleaseSelectionAccess"], + "ISMNormalCutFeatureData": ["AccessSelections", "AddAGroupOfFaces", "GetNumberOfFaceGroups", "ReleaseSelectionAccess", "RemoveAGroupOfFaces"], + "ISMNormalCutFeatureData2": ["AccessSelections", "CreateGroup", "DeleteGroupByName", "GetGroupByName", "GetGroupNames", "ReleaseSelectionAccess"], + "ISMNormalCutGroupData": ["GetGroupName"], + "ISWPropertySheet": ["AddActivePage", "AddPage", "AddPagex64", "GetControl", "RemovePage"], + "ISafeArrayUtility": ["GetBoolean", "GetBstr", "GetByte", "GetDispatch", "GetDouble", "GetInfo", "GetLong", "GetLongLong", "GetShort", "GetUNKNOWN", "PackVariant", "PutBoolean", "PutBstr", "PutByte", "PutDispatch", "PutDouble", "PutLong", "PutLongLong", "PutShort", "PutUNKNOWN", "UnPackVariant"], + "ISaveBodyFeatureData": ["AccessSelections", "AddSaveBodies", "GetSaveBodies", "GetSaveBodiesCount", "ReleaseSelectionAccess", "RemoveSaveBodies"], + "ISaveTo3DExperienceOptions": ["SetRevisionComments"], + "IScaleFeatureData": ["AccessSelections", "GetBodiesCount", "GetScale", "IAccessSelections", "IGetBodies", "ISetBodies", "ReleaseSelectionAccess", "SetScale"], + "ISecondaryMemberBetweenPointsFeatureData": ["GetMemberPairs", "SetMemberPairs"], + "ISecondaryMemberSupportPlaneFeatureData": ["GetIntersectingObjectTypes", "GetIntersectingPlanesAndFaces", "GetMemberPairs", "SetIntersectingPlanesAndFaces", "SetMemberPairs"], + "ISecondaryMemberUpToMembersFeatureData": ["GetFromPoint", "GetFromPointMembers", "GetPointMemberPairs", "SetFromPoint", "SetFromPointMembers", "SetPointMemberPairs"], + "ISectionViewData": ["GetDynamicCenterTransform", "GetFirstPlaneParameters", "GetSecondPlaneParameters", "GetThirdPlaneParameters"], + "ISelectData": ["GetCellRange", "SetCellRange"], + "ISelectionMgr": ["AddSelectionListObject", "AddSelectionListObjects", "ClearSelectionColors", "CreateCallout", "CreateCallout2", "CreateSelectData", "DeSelect", "DeSelect2", "GetPreSelectedObject", "GetSelectByIdSpecification", "GetSelectedCoordSysElement", "GetSelectedObject", "GetSelectedObject2", "GetSelectedObject3", "GetSelectedObject4", "GetSelectedObject5", "GetSelectedObject6", "GetSelectedObjectCount", "GetSelectedObjectCount2", "GetSelectedObjectLoop", "GetSelectedObjectLoop2", "GetSelectedObjectMark", "GetSelectedObjectType", "GetSelectedObjectType2", "GetSelectedObjectType3", "GetSelectedObjectsComponent", "GetSelectedObjectsComponent2", "GetSelectedObjectsComponent3", "GetSelectedObjectsComponent4", "GetSelectedObjectsDrawingView", "GetSelectedObjectsDrawingView2", "GetSelectedObjectsFace", "GetSelectionPoint", "GetSelectionPoint2", "GetSelectionPointInSketchSpace", "GetSelectionPointInSketchSpace2", "GetSelectionSpecification", "IDeSelect", "IDeSelect2", "IGetSelectedObject", "IGetSelectedObject2", "IGetSelectedObject3", "IGetSelectedObject4", "IGetSelectedObjectsComponent", "IGetSelectedObjectsComponent2", "IGetSelectionPoint", "IGetSelectionPoint2", "IGetSelectionPointInSketchSpace", "IGetSelectionPointInSketchSpace2", "IsCoordSysElementSelected", "IsInEditTarget", "IsInEditTarget2", "ResumeSelectionList", "ResumeSelectionList2", "SelectionColor", "SetCallout", "SetSelectedObjectMark", "SetSelectionColor", "SetSelectionPoint", "SetSelectionPoint2", "SuspendSelectionList"], + "ISelectionSet": ["GetName", "GetSelectionSetItemTypes", "GetSelectionSetItems", "RemoveSelectionSet", "Select"], + "ISelectionSetFolder": ["GetSelectionSetByName", "GetSelectionSets"], + "ISelectionSetItem": ["GetCorrespondingItem", "RemoveFromSelectionSet"], + "ISensor": ["GetSensorFeatureData", "GetSensorValue", "UpdateSensor"], + "ISheet": ["CreateOLEObject", "GetBomTable", "GetCustomColorsCount", "GetDrawingZone", "GetID", "GetMagneticLines", "GetMagneticLinesCount", "GetName", "GetOLEObjectCount", "GetOLEObjectData", "GetOLEObjectSettings", "GetProperties", "GetProperties2", "GetSheetFormatName", "GetSize", "GetTemplateName", "GetTemplateSketch", "GetViews", "GetZoneMargin", "GetZoneSizeDistribution", "GetZoneSizeRegion", "ICreateOLEObject", "IGetBomTable", "IGetCustomColors", "IGetMagneticLines", "IGetOLEObjectData", "IGetOLEObjectSettings", "IGetProperties", "InsertFamilyTable", "InsertMagneticLine", "InsertRevisionTable", "InsertRevisionTable2", "InsertTitleBlock", "IsLoaded", "ReloadTemplate", "SaveFormat", "SetAsTableAnchor", "SetName", "SetProperties", "SetProperties2", "SetScale", "SetSheetFormatName", "SetSize", "SetTemplateName", "SetZoneMargin", "SetZoneSizeDistribution", "SetZoneSizeRegion", "TableAnchor"], + "ISheetMetalFeatureData": ["AccessSelections", "GetCustomBendAllowance", "GetOverrideDefaultParameter", "GetOverrideDefaultParameter2", "GetUseGaugeTable", "IAccessSelections", "IAccessSelections2", "ReleaseSelectionAccess", "SetCustomBendAllowance", "SetOverrideDefaultParameter", "SetOverrideDefaultParameter2", "SetUseGaugeTable"], + "ISheetMetalFolder": ["GetFeature", "GetSheetMetalCount", "GetSheetMetals"], + "ISheetMetalGaugeTableParameters": ["GetAvailableGaugeNumbers", "GetAvailableRadii", "GetCurrentGaugeNumber", "GetCurrentRadius", "GetGaugeNumberCount", "GetGaugeTablePath", "GetRadiiCount", "GetThickness", "SetCurrentGaugeNumber", "SetGaugeTablePath", "SetRadius", "SetThickness"], + "IShellFeatureData": ["AccessSelections", "GetMultipleThicknessAtIndex", "GetMultipleThicknessFacesCount", "IAccessSelections", "IGetFacesRemoved", "IGetMultipleThicknessFaces", "ISetFacesRemoved", "ISetMultipleThicknessFaces", "ReleaseSelectionAccess", "SetMultipleThicknessAtIndex"], + "IShutOffSurfaceFeatureData": ["AccessSelections", "FlipFaceTangentTo", "GetEdgeCount", "GetFaceTangentTo", "GetLoopCount", "GetLoopEdgeCount", "IGetEdges", "IGetLoopEdges", "ISetEdges", "LoopEdges", "LoopPatchType", "ReleaseSelectionAccess", "SetAllPatchTypes", "SetLoopPatchType", "Status"], + "ISilhouetteEdge": ["GetCurve", "GetEndPoint", "GetFace", "GetStartPoint", "GetView", "Select", "Select2"], + "ISimpleFilletFeatureData": ["AccessSelections", "GetFilletItemAtIndex", "GetRadius", "IAccessSelections", "IGetFilletItemAtIndex", "IGetRadius", "ISetRadius", "ReleaseSelectionAccess", "SetRadius"], + "ISimpleFilletFeatureData2": ["AccessSelections", "GetConicRhoOrRadius", "GetDistance", "GetEdgeCount", "GetFaceCount", "GetFaces", "GetFeatureCount", "GetFilletItemAtIndex", "GetHoldLineCount", "GetLoopCount", "GetPartialEdgeFilletData", "GetRadius", "GetSetbackDistanceCount", "GetSetbackVertexDistance", "GetSetbackVertices", "GetSetbackVerticesCount", "IAccessSelections", "IGetConicRhoOrRadius", "IGetEdges", "IGetFaces", "IGetFeatures", "IGetFilletItemAtIndex", "IGetHoldLines", "IGetLoops", "IGetRadius", "IGetSetbackVertexDistance", "IGetSetbackVertices", "ISetConicRhoOrRadius", "ISetEdges", "ISetFaces", "ISetFeatures", "ISetHoldLines", "ISetLoops", "ISetRadius", "ISetSetbackVertexDistance", "ISetSetbackVertices", "Initialize", "ReleaseSelectionAccess", "RepairMissingReferences", "ReverseFaceNormal", "SetConicRhoOrRadius", "SetDistance", "SetFaces", "SetPartialEdgeFilletData", "SetRadius", "SetReverseFaceNormal", "SetSetbackVertexDistance", "SetSetbackVertices"], + "ISimpleHoleFeatureData": ["AccessSelections", "IAccessSelections", "ReleaseSelectionAccess"], + "ISimpleHoleFeatureData2": ["AccessSelections", "GetDirectionReference", "GetEndConditionReference", "GetFeatureScopeBodiesCount", "IAccessSelections", "IGetFeatureScopeBodies", "ISetFeatureScopeBodies", "ReleaseSelectionAccess", "SetDirectionReference", "SetEndConditionReference"], + "ISimulation": ["GetFeature", "IsAnimationPlaying", "PlayAnimation", "ResetComponents"], + "ISimulation3DContactFeatureData": ["MaterialID", "SetMaterialID"], + "ISimulationDamperFeatureData": ["GetEndPoints", "SetEndPoints"], + "ISimulationForceFeatureData": ["GetEndPoints", "GetFunctionHarmonicValues", "GetFunctionStepValues", "GetInterpolatedValue", "LoadSplineData", "SetEndPoints", "SetFunctionHarmonicValues", "SetFunctionStepValues"], + "ISimulationLinearSpringFeatureData": ["GetEndPoints", "SetEndPoints"], + "ISimulationMotorFeatureData": ["ConstantSpeedMotor", "DistanceMotor", "GetInterpolatedValue", "InterpolatedMotor", "LoadSplineData", "OscillatingMotor"], + "ISimulationSpringFeatureData": ["GetEndPoints", "SetEndPoints"], + "ISketch": ["AutoDimension", "AutoDimension2", "AutoTraceSketchPicture", "CheckFeatureUse", "ConstrainAll", "GetArcCount", "GetArcs", "GetArcs2", "GetAutomaticSolve", "GetConstrainedStatus", "GetContourEdgeCount", "GetContourEdges", "GetDetachSegmentOnDrag", "GetEllipseCount", "GetEllipses", "GetEllipses2", "GetEllipses3", "GetLineCount", "GetLineCount2", "GetLines", "GetLines2", "GetParabolaCount", "GetParabolas", "GetParabolas2", "GetPolyLineCount", "GetPolylines", "GetReferenceEntity", "GetSketchBlockInstanceCount", "GetSketchBlockInstances", "GetSketchContourCount", "GetSketchContours", "GetSketchHatches", "GetSketchPathCount", "GetSketchPaths", "GetSketchPictureCount", "GetSketchPictures", "GetSketchPoints", "GetSketchPoints2", "GetSketchPointsCount", "GetSketchPointsCount2", "GetSketchRegionCount", "GetSketchRegions", "GetSketchSegments", "GetSketchSlotCount", "GetSketchSlots", "GetSketchTextSegments", "GetSplineCount", "GetSplineInterpolateCount", "GetSplineParams", "GetSplineParams2", "GetSplineParams3", "GetSplineParams4", "GetSplineParams5", "GetSplineParamsCount", "GetSplineParamsCount2", "GetSplineParamsCount3", "GetSplines", "GetSplinesInterpolate", "GetUserPoints", "GetUserPoints2", "GetUserPointsCount", "IEnumSketchHatches", "IEnumSketchPoints", "IEnumSketchSegments", "IEnumSketchTextSegments", "IGetArcs", "IGetArcs2", "IGetContourEdges", "IGetEllipses", "IGetEllipses2", "IGetEllipses3", "IGetLines", "IGetLines2", "IGetParabolas", "IGetParabolas2", "IGetPolylines", "IGetSketchBlockInstances", "IGetSketchContours", "IGetSketchPaths", "IGetSketchPictures", "IGetSketchPoints2", "IGetSketchRegions", "IGetSketchSlots", "IGetSplineParams", "IGetSplineParams2", "IGetSplineParams3", "IGetSplines", "IGetSplinesInterpolate", "IGetUserPoints", "IGetUserPoints2", "InsertRouteLine", "Is3D", "IsBoundaryBoxSketch", "IsDerived", "IsShared", "IsSketchEditable", "MergePoints", "SetAutomaticSolve", "SetDetachSegmentOnDrag", "SetEntityCount", "SetSketchEditable", "SetWorkingPlaneOrientation"], + "ISketchArc": ["GetCenterPoint", "GetCenterPoint2", "GetEndPoint", "GetEndPoint2", "GetNormalVector", "GetRadius", "GetRotationDir", "GetStartPoint", "GetStartPoint2", "IGetCenterPoint", "IGetCenterPoint2", "IGetEndPoint", "IGetEndPoint2", "IGetNormalVector", "IGetStartPoint", "IGetStartPoint2", "IsCircle", "SetRadius"], + "ISketchBlockDefinition": ["GetArcCount", "GetArcs", "GetDisplayDimensionCount", "GetDisplayDimensions", "GetEllipseCount", "GetEllipses", "GetFeature", "GetInstanceCount", "GetInstances", "GetLineCount", "GetLines", "GetNoteCount", "GetNotes", "GetParabolaCount", "GetParabolas", "GetSketch", "GetSplineCount", "GetSplineInterpolateCount", "GetSplineParams", "GetSplineParamsCount", "GetSplines", "GetSplines2", "GetSplinesInterpolate", "GetUserPoints", "GetUserPointsCount", "IGetArcs", "IGetDisplayDimensions", "IGetEllipses", "IGetInstances", "IGetLines", "IGetNotes", "IGetParabolas", "IGetSplineParams", "IGetSplines", "IGetSplines2", "IGetSplinesInterpolate", "IGetUserPoints", "Save"], + "ISketchBlockInstance": ["GetArrowHeadStyle", "GetAttachedEntities", "GetAttributeCount", "GetAttributeValue", "GetAttributes", "GetLeaderPoints", "GetLeaderStyle", "GetScale3", "GetSketch", "IGetAttributes", "IGetLeaderPoints", "IsNested", "Select", "SetAttributeValue", "SetLeader"], + "ISketchContour": ["DeSelect", "GetEdges", "GetEdgesCount", "GetSketchSegments", "GetSketchSegmentsCount", "IGetEdges", "IGetSketchSegments", "IsClosed", "Select", "Select2"], + "ISketchEllipse": ["GetCenterPoint", "GetCenterPoint2", "GetEndPoint", "GetEndPoint2", "GetMajorPoint", "GetMajorPoint2", "GetMinorPoint", "GetMinorPoint2", "GetRotationDir", "GetStartPoint", "GetStartPoint2", "IGetCenterPoint", "IGetCenterPoint2", "IGetEndPoint", "IGetEndPoint2", "IGetMajorPoint", "IGetMajorPoint2", "IGetMinorPoint", "IGetMinorPoint2", "IGetStartPoint", "IGetStartPoint2"], + "ISketchHatch": ["DeSelect", "GetFace", "GetID", "GetSketch", "IGetFace", "IGetFace2", "IGetID", "Select", "Select2", "Select3", "Select4", "SelectByMark"], + "ISketchLine": ["GetBendLineDirection", "GetEndPoint", "GetEndPoint2", "GetStartPoint", "GetStartPoint2", "IGetEndPoint", "IGetEndPoint2", "IGetStartPoint", "IGetStartPoint2", "MakeInfinite"], + "ISketchManager": ["AddAlongXDimension", "AddAlongYDimension", "AddAlongZDimension", "ConvertEntities", "Create3PointArc", "Create3PointCenterRectangle", "Create3PointCornerRectangle", "CreateArc", "CreateBoundaryHatch", "CreateCenterLine", "CreateCenterRectangle", "CreateChamfer", "CreateCircle", "CreateCircleByRadius", "CreateCircularSketchStepAndRepeat", "CreateConic", "CreateConstructionGeometry", "CreateCornerRectangle", "CreateEllipse", "CreateEllipticalArc", "CreateEquationSpline", "CreateEquationSpline2", "CreateFillet", "CreateLine", "CreateLinearSketchStepAndRepeat", "CreateParabola", "CreateParallelogram", "CreatePoint", "CreatePolygon", "CreateRegionHatch", "CreateSketchBelt", "CreateSketchPlane", "CreateSketchSlot", "CreateSpline", "CreateSpline2", "CreateSpline3", "CreateSplineByEqnParams", "CreateSplineParamData", "CreateSplinesByEqnParams", "CreateSplinesByEqnParams2", "CreateTangentArc", "EditCircularSketchStepAndRepeat", "EditLinearSketchStepAndRepeat", "EditSketchBlock", "EndEditSketchBlock", "ExplodeSketchBlockInstance", "FullyDefineSketch", "GetDynamicMirror", "GetSketchBlockDefinitionCount", "GetSketchBlockDefinitions", "ICreateSpline", "ICreateSpline2", "ICreateSplineByEqnParams", "ICreateSplinesByEqnParams", "IGetSketchBlockDefinitions", "Insert3DSketch", "InsertExplodeLineSketch", "InsertSketch", "InsertSketchBlockInstance", "InsertSketchPicture", "InsertSketchPicture2", "IntersectCurves", "MakeSketchBlockFromFile", "MakeSketchBlockFromSelected", "MakeSketchBlockFromSketch", "MakeSketchChain", "PerimeterCircle", "ReverseEndPointTangent", "RotateOrCopy3DAboutVector", "RotateOrCopy3DAboutXYZ", "SetDynamicMirror", "SetGridOptions", "SketchExtend", "SketchOffset", "SketchOffset2", "SketchReplace", "SketchReplace2", "SketchTrim", "SketchUseEdge", "SketchUseEdge2", "SketchUseEdge3", "SplitClosedSegment", "SplitOpenSegment"], + "ISketchParabola": ["GetApexPoint", "GetApexPoint2", "GetEndPoint", "GetEndPoint2", "GetFocalPoint", "GetFocalPoint2", "GetStartPoint", "GetStartPoint2", "IGetApexPoint", "IGetApexPoint2", "IGetEndPoint", "IGetEndPoint2", "IGetFocalPoint", "IGetFocalPoint2", "IGetStartPoint", "IGetStartPoint2", "SetPoints"], + "ISketchPath": ["GetConstraints", "GetConstraintsCount", "GetLength", "GetRelations", "GetRelationsCount", "GetSketch", "GetSketchSegmentCount", "GetSketchSegments", "IGetConstraints", "IGetRelations", "IGetSketchSegments", "Select"], + "ISketchPatternFeatureData": ["AccessSelections", "GetBasePoint", "GetPatternBodyCount", "GetPatternFaceCount", "GetPatternFeatureCount", "GetReferencePointType", "GetTransform", "IAccessSelections", "IAccessSelections2", "IGetBasePoint", "IGetPatternBodyArray", "IGetPatternFaceArray", "IGetPatternFeatureArray", "ISetPatternBodyArray", "ISetPatternFaceArray", "ISetPatternFeatureArray", "ReleaseSelectionAccess", "SetFeatureScope"], + "ISketchPicture": ["Flip", "GetFeature", "GetOrigin", "GetPixelmap", "GetPixelmapSize", "GetPointOnSketchFromPixel", "GetSize", "GetTransparency", "IGetPixelmap", "SetOrigin", "SetSize", "SetTransparency"], + "ISketchPoint": ["DeSelect", "GetCoords", "GetFramePointTangent", "GetID", "GetRelations", "GetRelationsCount", "GetSketch", "GetSketchSlot", "IGetFramePointTangent", "IGetID", "IGetRelations", "ISetFramePointTangent", "Select", "Select2", "Select3", "Select4", "SelectByMark", "SetCoords", "SetFramePointTangent"], + "ISketchRegion": ["DeSelect", "GetEdges", "GetEdgesCount", "GetFirstLoop", "IGetEdges", "Select", "Select2"], + "ISketchRelation": ["GetDefinitionEntities", "GetDefinitionEntities2", "GetDisplayDimension", "GetEntities", "GetEntitiesCount", "GetEntitiesType", "GetRelationType", "IGetDefinitionEntities", "IGetDefinitionEntities2", "IGetEntities", "IGetEntitiesType", "ReplaceEntity"], + "ISketchRelationManager": ["AddRelation", "DeleteAllRelations", "DeleteRelation", "GetAllowedRelations", "GetRelations", "GetRelationsCount", "IAddRelation", "IGetAllowedRelations", "IGetAllowedRelationsCount", "IGetRelations"], + "ISketchSegment": ["CreateWireBody", "DeSelect", "EqualSegment", "GetConstraints", "GetCurve", "GetID", "GetLength", "GetName", "GetRelations", "GetRelationsCount", "GetSketch", "GetSketchPathCount", "GetSketchPaths", "GetSketchSlot", "GetType", "IGetConstraints", "IGetConstraintsCount", "IGetCurve", "IGetID", "IGetRelations", "IGetSketchPaths", "IsBendLine", "JogLine", "Select", "Select2", "Select3", "Select4", "SelectByMark", "SelectChain", "SplitEntity"], + "ISketchSlot": ["GetCenterPoint", "GetCenterPointHandle", "GetSlotPoints"], + "ISketchSpline": ["AddCurvatureControl", "AddTangencyControl", "DeletePoint", "GetControlVertexWeights", "GetEquationParameters", "GetEquationParameters2", "GetPointCount", "GetPoints", "GetPoints2", "GetSplineHandleCount", "GetSplineHandles", "IEnumPoints", "IGetPoints", "IGetSplineHandles", "InsertPoint", "MakeRational", "ModifyControlPoint", "ModifyKnot", "RelaxSpline", "ResetAllHandles", "SetControlVertexWeights", "SetEquationParameters", "SetEquationParameters2", "Simplify"], + "ISketchText": ["EnumEdges", "GetCoordinates", "GetEdges", "GetEdges2", "GetTextFormat", "GetUseDocTextFormat", "IGetCoordinates", "IGetTextFormat", "ISetTextFormat", "SetCoordinates", "SetTextFormat"], + "ISketchedBendFeatureData": ["AccessSelections", "GetCustomBendAllowance", "GetFixedFace", "IAccessSelections", "IAccessSelections2", "ReleaseSelectionAccess", "SetCustomBendAllowance", "SetFixedFace"], + "ISldHotfix": ["Command", "IsSupported"], + "ISldWorks": ["ActivateDoc", "ActivateDoc2", "ActivateDoc3", "ActivateTaskPane", "AddCallback", "AddFileOpenItem", "AddFileOpenItem2", "AddFileOpenItem3", "AddFileSaveAsItem", "AddFileSaveAsItem2", "AddItemToThirdPartyPopupMenu", "AddItemToThirdPartyPopupMenu2", "AddMenu", "AddMenuItem", "AddMenuItem2", "AddMenuItem3", "AddMenuItem4", "AddMenuItem5", "AddMenuPopupItem", "AddMenuPopupItem2", "AddMenuPopupItem3", "AddMenuPopupItem4", "AddToolbar", "AddToolbar2", "AddToolbar3", "AddToolbar4", "AddToolbar5", "AddToolbarCommand", "AddToolbarCommand2", "AllowFailedFeatureCreation", "ArrangeIcons", "ArrangeWindows", "BlockSkinning", "CallBack", "CheckpointConvertedDocument", "CloseAllDocuments", "CloseAndReopen", "CloseAndReopen2", "CloseDoc", "CloseUserNotification", "Command", "CopyAppearance", "CopyDocument", "CreateNewWindow", "CreatePMPage", "CreatePropertyManagerPage", "CreatePrunedModelArchive", "CreateTaskpaneView", "CreateTaskpaneView2", "CreateTaskpaneView3", "DateCode", "DefineAttribute", "DefineMessageBar", "DefineUserNotification", "DisplayStatusBar", "DocumentVisible", "DownloadFromMySolidWorksSettings", "DragToolbarButton", "DragToolbarButtonFromCommandID", "EnablePhotoWorksProgressiveRender", "EnableStereoDisplay", "EnumDocuments", "EnumDocuments2", "ExitApp", "ExportHoleWizardItem", "ExportToolboxItem", "Frame", "Get3DExperienceState", "GetActiveConfigurationName", "GetActiveDisplayPane", "GetAddInObject", "GetApplySelectionFilter", "GetBatchUploadedFilesInfo", "GetBuildNumbers", "GetBuildNumbers2", "GetButtonPosition", "GetCollisionDetectionManager", "GetColorTable", "GetCommandID", "GetCommandManager", "GetConfigurationCount", "GetConfigurationNames", "GetCookie", "GetCookiex64", "GetCurrSolidWorksRegSubKey", "GetCurrentFileUser", "GetCurrentKernelVersions", "GetCurrentLanguage", "GetCurrentLicenseType", "GetCurrentMacroPathFolder", "GetCurrentMacroPathName", "GetCurrentWorkingDirectory", "GetDataFolder", "GetDocumentCount", "GetDocumentDependencies", "GetDocumentDependencies2", "GetDocumentDependenciesCount", "GetDocumentTemplate", "GetDocumentVisible", "GetDocuments", "GetEdition", "GetEnvironment", "GetErrorMessages", "GetExecutablePath", "GetExportFileData", "GetFilePLMID", "GetFirstDocument", "GetGtolFormatData", "GetGtolFrameXMLSchema", "GetHoleStandardsData", "GetImageSize", "GetImportFileData", "GetInterfaceBrightnessThemeColors", "GetLastSaveError", "GetLastToolbarID", "GetLatestSupportedFileVersion", "GetLineStyles", "GetLocalizedMenuName", "GetMacroMethods", "GetMassProperties", "GetMassProperties2", "GetMaterialDatabaseCount", "GetMaterialDatabases", "GetMaterialSchemaPathName", "GetMathUtility", "GetMenuStrings", "GetModelView", "GetModeler", "GetMouseDragMode", "GetOpenDocSpec", "GetOpenDocument", "GetOpenDocumentByName", "GetOpenFileName", "GetOpenFileName2", "GetOpenedFileInfo", "GetPreviewBitmap", "GetPreviewBitmapFile", "GetProcessID", "GetRayTraceRenderer", "GetRecentFiles", "GetRoutingSettings", "GetRunningCommandInfo", "GetSSOFormattedURL", "GetSafeArrayUtility", "GetSaveTo3DExperienceOptions", "GetSearchFolders", "GetSelectionFilter", "GetSelectionFilters", "GetTemplateSizes", "GetToolbarDock", "GetToolbarDock2", "GetToolbarState", "GetToolbarState2", "GetToolbarVisibility", "GetUserPreferenceDoubleValue", "GetUserPreferenceIntegerValue", "GetUserPreferenceStringListValue", "GetUserPreferenceStringValue", "GetUserPreferenceToggle", "GetUserProgressBar", "GetUserTypeLibReferenceCount", "GetUserUnit", "HideBubbleTooltip", "HideToolbar", "HideToolbar2", "HighlightTBButton", "IActivateDoc", "IActivateDoc2", "IActivateDoc3", "ICopyDocument", "ICreatePropertyManagerPage", "IDefineAttribute", "IEnableStereoDisplay", "IFrameObject", "IGetColorTable", "IGetConfigurationNames", "IGetDocumentDependencies", "IGetDocumentDependencies2", "IGetDocumentDependenciesCount2", "IGetDocuments", "IGetEnvironment", "IGetFirstDocument", "IGetFirstDocument2", "IGetMassProperties", "IGetMassProperties2", "IGetMaterialDatabases", "IGetMathUtility", "IGetModeler", "IGetOpenDocumentByName", "IGetOpenDocumentByName2", "IGetRayTraceRenderer", "IGetSelectionFilters", "IGetSelectionFiltersCount", "IGetTemplateSizes", "IGetUserTypeLibReferences", "IGetUserUnit", "IGetVersionHistoryCount", "IMoveDocument", "INewAssembly", "INewDocument", "INewDocument2", "INewDrawing", "INewDrawing2", "INewPart", "IOpenDoc", "IOpenDoc2", "IOpenDoc3", "IOpenDoc4", "IOpenDoc5", "IOpenDocSilent", "IRemoveUserTypeLibReferences", "ISetSelectionFilters", "ISetUserTypeLibReferences", "IVersionHistory", "ImportHoleWizardItem", "ImportToolboxItem", "InstallQuickTipGuide", "IsBackgroundProcessingCompleted", "IsCommandEnabled", "IsRapidDraft", "IsSame", "IsTaskPaneExpanded", "IsTaskPaneVisible", "LoadAddIn", "LoadAdminSettingsFile", "LoadFile", "LoadFile2", "LoadFile3", "LoadFile4", "MoveDocument", "NewAssembly", "NewDocument", "NewDrawing", "NewDrawing2", "NewPart", "OpenDoc", "OpenDoc2", "OpenDoc3", "OpenDoc4", "OpenDoc6", "OpenDoc7", "OpenDocSilent", "OpenModelConfiguration", "PasteAppearance", "PostMessageToApplication", "PostMessageToApplicationx64", "PreSelectDwgTemplateSize", "PresetNewDrawingParameters", "PreviewDoc", "PreviewDocx64", "QuitDoc", "RecordLine", "RecordLineCSharp", "RecordLineVBnet", "RefreshQuickTipWindow", "RefreshTaskpaneContent", "RegisterThirdPartyPopupMenu", "RegisterTrackingDefinition", "RemoveCallback", "RemoveFileOpenItem", "RemoveFileOpenItem2", "RemoveFileSaveAsItem", "RemoveFileSaveAsItem2", "RemoveFromMenu", "RemoveFromPopupMenu", "RemoveItemFromThirdPartyPopupMenu", "RemoveMenu", "RemoveMenuPopupItem", "RemoveMenuPopupItem2", "RemoveToolbar", "RemoveToolbar2", "RemoveUserMenu", "RemoveUserTypeLibReferences", "ReplaceReferencedDocument", "ResetPresetDrawingParameters", "ResetUntitledCount", "RestoreSettings", "ResumeSkinning", "RevisionNumber", "RunAttachedMacro", "RunBatchSaveProcess", "RunCommand", "RunJournalCmd", "RunMacro", "RunMacro2", "SanityCheck", "SanityCheck4", "SanityCheck5", "SanityCheck6", "SaveSettings", "SendMsgToUser", "SendMsgToUser2", "SetAddinCallbackInfo", "SetAddinCallbackInfo2", "SetApplySelectionFilter", "SetCurrentWorkingDirectory", "SetMissingReferencePathName", "SetMouseDragMode", "SetMultipleFilenamesPrompt", "SetNewFilename", "SetOptions", "SetPromptFilename", "SetPromptFilename2", "SetSearchFolders", "SetSelectionFilter", "SetSelectionFilters", "SetThirdPartyPopupMenuState", "SetToolbarDock", "SetToolbarDock2", "SetToolbarVisibility", "SetUserPreferenceDoubleValue", "SetUserPreferenceIntegerValue", "SetUserPreferenceStringListValue", "SetUserPreferenceStringValue", "SetUserPreferenceToggle", "ShowBatchSaveTo3DExperienceDlg", "ShowBubbleTooltip", "ShowBubbleTooltipAt", "ShowBubbleTooltipAt2", "ShowHelp", "ShowThirdPartyPopupMenu", "ShowToolbar", "ShowToolbar2", "ShowTooltip", "ShowUserNotification", "SolidWorksExplorer", "UnInstallQuickTipGuide", "UnloadAddIn", "UploadToMySolidWorksSettings", "VersionHistory"], + "ISlicingData": ["GetBoundingBoxDirection1", "GetBoundingBoxDirection2", "GetBoundingBoxDirection3", "GetBoundingBoxDirection4", "SetBoundingBoxDirection1", "SetBoundingBoxDirection2", "SetBoundingBoxDirection3", "SetBoundingBoxDirection4"], + "ISmartComponentFeatureData": ["AccessSelections", "ReleaseSelectionAccess"], + "ISnapShot": ["Activate"], + "ISplineHandle": ["Reset", "Select", "SetTangentMagnitude", "TangentMagnitude"], + "ISplineParamData": ["GetControlPoints", "GetKnotPoints", "GetSegments", "IGetControlPoints", "IGetKnotPoints", "IGetSegments", "SetControlPoints", "SetKnotPoints"], + "ISplitBodyFeatureData": ["AccessSelections", "GetSplitBodies", "GetSplitBodiesCount", "GetTrimToolsCount", "IGetSplitBodies", "IGetTrimTools", "ISetSplitBodies", "ISetTrimTools", "ReleaseSelectionAccess", "SetSplitBodies", "SetSplitBodies2"], + "ISplitLineFeatureData": ["AccessSelections", "GetContoursCount", "GetFacesCount", "GetSplitTargetsCount", "GetSplitToolsCount", "GetType", "IGetContours", "IGetFaces", "IGetSplitTargets", "IGetSplitTools", "ISetContours", "ISetFaces", "ISetSplitTargets", "ISetSplitTools", "ReleaseSelectionAccess"], + "ISpring": ["GetProfilePoints", "GetSpringBody"], + "IStructuralMemberFeatureData": ["AccessSelections", "ConnectionType", "GetConnectionPoints", "GetConnectionPointsCount", "GetGroupsCount", "GetPathSegmentAt", "GetPathSegmentsCount", "GetSketchSegments", "IGetConnectionPoints", "IGetGroups", "IGetPathSegments", "ISetGroups", "ISetPathSegments", "ReleaseSelectionAccess", "SetConnectionType"], + "IStructuralMemberGroup": ["GetSegmentsCount", "IGetSegments", "ISetSegments"], + "IStructureSystemFolder": ["GetCornerManagementFolder", "GetFeature", "GetProfileGroupFolders", "GetProfileGroupFoldersCount"], + "IStructureSystemMemberFeatureData": ["AccessSelections", "GetBody", "GetFeature", "GetSplitMember", "ReleaseSelectionAccess"], + "IStructureSystemMemberProfile": ["GetSketch"], + "IStructureSystemSplitMember": ["GetSplitReferenceObjectTypes", "GetSplitReferences", "SetSplitReferences"], + "ISurfExtrudeFeatureData": ["AccessSelections", "GetDepth", "GetEndCondition", "GetFace", "GetReverseOffset", "GetTranslateSurface", "GetVertex", "IAccessSelections", "IGetFace", "IGetVertex", "ISetFace", "ISetVertex", "ReleaseSelectionAccess", "SetDepth", "SetEndCondition", "SetFace", "SetReverseOffset", "SetTranslateSurface", "SetVertex"], + "ISurfRevolveFeatureData": ["AccessSelections", "GetRevolutionAngle", "IAccessSelections", "ReleaseSelectionAccess", "SetRevolutionAngle"], + "ISurface": ["AddTrimmingLoop", "AddTrimmingLoop2", "Copy", "CreateNewCurve", "CreateTrimmedSheet", "CreateTrimmedSheet4", "CreateTrimmedSheet5", "Evaluate", "EvaluateAtPoint", "FindMinimumRadius", "GetBSurfParams", "GetBSurfParams2", "GetBSurfParams3", "GetClosestPointOn", "GetExtrusionsurfParams", "GetIntersectCurveCount", "GetIntersectCurveCount2", "GetIntersectSurfaceCount", "GetOffsetSurfParams", "GetOffsetSurfParams2", "GetProfileCurve", "GetProjectedPointOn", "GetRevsurfParams", "IAddTrimmingLoop", "IAddTrimmingLoop2", "ICopy", "ICreateNewCurve", "ICreateTrimmedSheet", "ICreateTrimmedSheet2", "ICreateTrimmedSheet3", "ICreateTrimmedSheet4", "IEvaluate", "IEvaluateAtPoint", "IFindMinimumRadius", "IGetBSurfParams", "IGetBSurfParamsSize", "IGetBSurfParamsSize2", "IGetBSurfParamsSize3", "IGetClosestPointOn", "IGetExtrusionsurfParams", "IGetMakeIsoCurvesCount", "IGetOffsetSurfParams2", "IGetProfileCurve", "IGetRevsurfParams", "IIntersectCurve", "IIntersectCurve2", "IIntersectSurface", "IMakeIsoCurve", "IMakeIsoCurves", "IParameterization", "IReverseEvaluate", "Identity", "IntersectCurve", "IntersectCurve2", "IntersectSurface", "IsBlending", "IsCone", "IsCylinder", "IsForeign", "IsOffset", "IsParametric", "IsPlane", "IsRevolved", "IsSphere", "IsSwept", "IsTorus", "MakeIsoCurve", "MakeIsoCurve2", "MakeIsoCurves", "Parameterization", "Parameterization2", "ReverseEvaluate"], + "ISurfaceCutFeatureData": ["AccessSelections", "GetBodyIndexKept", "GetFeatureScopeBodiesCount", "IAccessSelections", "IGetFeatureScopeBodies", "ISetFeatureScopeBodies", "ReleaseSelectionAccess"], + "ISurfaceExtendFeatureData": ["AccessSelections", "GetItemsCount", "GetPropagatingEdgesCount", "IAccessSelections", "IGetItems", "IGetPropagatingEdges", "ISetItems", "ISetPropagatingEdges", "ReleaseSelectionAccess"], + "ISurfaceFlattenFeatureData": ["AccessSelections", "ReleaseSelectionAccess"], + "ISurfaceKnitFeatureData": ["AccessSelections", "GetEntitiesCount", "IAccessSelections", "IGetEntities", "ISetEntities", "ReleaseSelectionAccess"], + "ISurfaceOffsetFeatureData": ["AccessSelections", "GetEntitiesCount", "GetFacesCount", "IAccessSelections", "IGetEntities", "IGetFaces", "ISetEntities", "ISetFaces", "ReleaseSelectionAccess"], + "ISurfacePlanarFeatureData": ["AccessSelections", "GetBoundingEntitiesCount", "IAccessSelections", "IGetBoundingEntities", "ISetBoundingEntities", "ReleaseSelectionAccess"], + "ISurfaceRadiateFeatureData": ["AccessSelections", "GetRadiatedEntitiesCount", "IAccessSelections", "IGetRadiatedEntities", "ISetRadiatedEntities", "ReleaseSelectionAccess"], + "ISurfaceTrimFeatureData": ["AccessSelections", "GetPiecesToKeepCount", "GetTrimToolsCount", "GetType", "IAccessSelections", "IGetPiecesToKeep", "IGetTrimTools", "ISetPiecesToKeep", "ISetTrimTools", "ReleaseSelectionAccess"], + "ISwOLEObject": ["IGetBoundaries", "IGetBuffer", "ISetBoundaries", "Refresh", "Select", "SetActive"], + "ISwPEClassFactory": ["SetPartnerKey"], + "ISwScene": ["AddOrEditFloorAppearance", "DeleteFloorAppearance", "GetFloorAppearance", "GetFloorNormal", "GetP2SFileName", "Modify", "OffsetToGeometry"], + "ISweepFeatureData": ["AccessSelections", "GetCutSweepOption", "GetD2TwistAngle", "GetFeatureScopeBodiesCount", "GetGuideCurvesCount", "GetGuideCurvesType", "GetPathAlignmentDirectionVector", "GetPathType", "GetProfileType", "GetTwistAngle", "GetWallThickness", "IAccessSelections", "IGetFeatureScopeBodies", "IGetGuideCurves", "IGetGuideCurvesType", "ISetFeatureScopeBodies", "ISetGuideCurves", "IsBossFeature", "IsThinFeature", "ReleaseSelectionAccess", "SetD2TwistAngle", "SetPathAlignmentDirectionVector", "SetTwistAngle", "SetWallThickness"], + "ISweptFlangeFeatureData": ["AccessSelections", "GetCustomBendAllowance", "GetErrorCodes", "GetGaugeTableParameters", "GetPathType", "ReleaseSelectionAccess", "SetCustomBendAllowance", "SetGaugeTableParameters"], + "ITabAndSlotFeatureData": ["AccessSelections", "ReleaseSelectionAccess", "SelectionAddNewGroup", "SelectionGetGroups"], + "ITableAnchor": ["GetFeature", "IGetPosition", "ISetPosition"], + "ITableAnnotation": ["CellTextHorizontalJustification", "CellTextVerticalJustification", "ColumnHidden", "DeleteColumn", "DeleteColumn2", "DeleteRow", "DeleteRow2", "DisplayedText", "DisplayedText2", "EvaluateCellEquation", "GetAnnotation", "GetCellEquation", "GetCellRange", "GetCellTextFormat", "GetCellTextOrientation", "GetCellUseDocTextFormat", "GetColumnTitle", "GetColumnTitle2", "GetColumnType", "GetColumnType2", "GetColumnType3", "GetColumnWidth", "GetHeaderCount", "GetHeaderStyle", "GetLockColumnWidth", "GetLockRowHeight", "GetNext", "GetRowHeight", "GetRowVerticalGap", "GetSplitInformation", "GetTextFormat", "GetUseDocTextFormat", "HorizontalAutoSplit", "InsertColumn", "InsertColumn2", "InsertRow", "IsCellMerged", "IsCellTextEditable", "Merge", "MergeCells", "MoveColumn", "MoveRow", "RowHidden", "SaveAsPDF", "SaveAsTemplate", "SaveAsText", "SaveAsText2", "SetCellEquation", "SetCellRange", "SetCellTextFormat", "SetCellTextHorizontalJustification", "SetCellTextOrientation", "SetCellTextVerticalJustification", "SetColumnHidden", "SetColumnTitle", "SetColumnTitle2", "SetColumnType", "SetColumnType2", "SetColumnType3", "SetColumnWidth", "SetHeader", "SetLockColumnWidth", "SetLockRowHeight", "SetRowHeight", "SetRowHidden", "SetRowVerticalGap", "SetText", "SetText2", "SetTextFormat", "Split", "Text", "Text2", "UnmergeCells"], + "ITablePatternFeatureData": ["AccessSelections", "GetBasePoint", "GetPatternBodyCount", "GetPatternFaceCount", "GetPatternFeatureCount", "GetPointCount", "GetReferencePointType", "GetSkippedItemCount", "GetTransform", "IAccessSelections", "IAccessSelections2", "IGetBasePoint", "IGetPatternBodyArray", "IGetPatternFaceArray", "IGetPatternFeatureArray", "IGetPointArray", "IGetSkippedItemArray", "ISetPatternBodyArray", "ISetPatternFaceArray", "ISetPatternFeatureArray", "ISetPointArray", "ISetSkippedItemArray", "LoadPointsFromFile", "ReleaseSelectionAccess", "SavePointsToFile"], + "ITaskpaneView": ["AddControl", "AddCustomButton", "AddCustomButton2", "AddStandardButton", "DeleteView", "DisplayWindowFromHandle", "DisplayWindowFromHandlex64", "GetButtonState", "GetControl", "GetTaskpaneViewWnd", "GetTaskpaneViewWndx64", "HideView", "IGetControl", "IsActiveTab", "SetButtonState", "ShowView"], + "ITessellation": ["GetEdgeFins", "GetErrorList", "GetFaceFacets", "GetFacetCount", "GetFacetFace", "GetFacetFins", "GetFinCoFin", "GetFinCount", "GetFinEdge", "GetFinVertices", "GetVertexCount", "GetVertexNormal", "GetVertexParams", "GetVertexPoint", "IGetEdgeFins", "IGetEdgeFinsCount", "IGetErrorList", "IGetErrorList2", "IGetErrorListCount", "IGetFaceFacets", "IGetFaceFacets2", "IGetFaceFacetsCount", "IGetFaceFacetsCount2", "IGetFacetFace", "IGetFacetFace2", "IGetFacetFins", "IGetFacetFinsCount", "IGetFinEdge", "IGetFinVertices", "IGetVertexNormal", "IGetVertexParams", "IGetVertexPoint", "Tessellate"], + "ITextFormat": ["GetAllValues", "IGetAllValues", "IsHeightSpecifiedInPts"], + "ITexture": ["GetSystemTextureName"], + "IThickenFeatureData": ["AccessSelections", "GetFeatureScopeBodiesCount", "IAccessSelections", "IGetFeatureScopeBodies", "ISetFeatureScopeBodies", "IsBossFeature", "ReleaseSelectionAccess"], + "IThreadFeatureData": ["AccessSelections", "GetEndConditionReference", "InitializeThreadData", "ReleaseSelectionAccess", "SetEndConditionReference"], + "ITitleBlock": ["GetExtents", "GetFeature", "GetNoteCount", "GetNotes", "IGetNotes", "SetExtents"], + "ITitleBlockTableFeature": ["GetFeature", "GetTableAnnotationCount", "GetTableAnnotations", "IGetTableAnnotations"], + "IToolingSplitFeatureData": ["AccessSelections", "Depth", "GetCavitySurfacesCount", "GetCoreSurfacesCount", "GetPartingSurfacesCount", "IGetCavitySurfaces", "IGetCoreSurfaces", "IGetPartingSurfaces", "ISetCavitySurfaces", "ISetCoreSurfaces", "ISetPartingSurfaces", "ReleaseSelectionAccess", "SetDepth"], + "ITreeControlItem": ["GetFirstChild", "GetNext", "GetParent", "GetPrevious", "GetRoot"], + "ITriadManipulator": ["SetColorRefAtIndex", "UpdatePosition", "UpdateScale"], + "ITwoMemberCornerTreatmentFeatureData": ["GetCornerGroupMembers", "SwapMembers"], + "IUserProgressBar": ["End", "Start", "UpdateProgress", "UpdateTitle"], + "IUserUnit": ["ConvertDoubleToSystemValue", "ConvertToSystemValue", "ConvertToUserUnit", "GetConversionFactor", "GetFullUnitName", "GetUnitsString", "GetUserAngleTolerance", "IsMetric"], + "IVariableFilletFeatureData": ["AccessSelections", "GetFilletEdgeAtIndex", "GetRadius", "IAccessSelections", "IGetFilletEdgeAtIndex", "IGetRadius", "ISetRadius", "ReleaseSelectionAccess", "SetRadius"], + "IVariableFilletFeatureData2": ["AccessSelections", "GetConicRhoOrRadius", "GetConicRhoOrRadius2", "GetControlPointConicRhoOrRadiusAtIndex", "GetControlPointDistanceAtIndex", "GetControlPointRadiusAtIndex", "GetControlPointsCount", "GetDistance", "GetFilletEdgeAtIndex", "GetRadius", "GetRadius2", "GetSetbackDistanceCount", "GetSetbackVertexDistance", "GetSetbackVertices", "GetSetbackVerticesCount", "IAccessSelections", "IGetConicRhoOrRadius", "IGetFilletEdgeAtIndex", "IGetRadius", "IGetSetbackVertexDistance", "IGetSetbackVertices", "ISetConicRhoOrRadius", "ISetRadius", "ISetSetbackVertexDistance", "ISetSetbackVertices", "ReleaseSelectionAccess", "SetConicRhoOrRadius", "SetControlPointConicRhoOrRadiusAtIndex", "SetControlPointDistanceAtIndex", "SetControlPointRadiusAtIndex", "SetDistance", "SetRadius", "SetSetbackVertexDistance", "SetSetbackVertices"], + "IVertex": ["Display", "EnumEdges", "EnumEdgesOriented", "GetAdjacentFaces", "GetClosestPointOn", "GetEdges", "GetEdgesOriented", "GetPoint", "GetTrackingIDs", "GetTrackingIDsCount", "IGetAdjacentFaces", "IGetAdjacentFacesCount", "IGetClosestPointOn", "IGetPoint", "IGetTrackingIDs", "IsTolerant", "RemoveTrackingID", "SetTrackingID"], + "IView": ["AlignDrawingView", "AlignHorizontalTo", "AlignVerticalTo", "AlignWithView", "AutoInsertCenterMarks", "AutoInsertCenterMarks2", "CreateViewArrow", "Crop", "Crop2", "EnumHiddenComponents", "EnumHiddenComponents2", "EnumSectionLines", "EnumSectionLines2", "GetAlignment", "GetAnnotationCount", "GetAnnotations", "GetAnnotationsByType", "GetArcCount", "GetArcs", "GetArcs2", "GetArcs3", "GetArcs4", "GetBaseView", "GetBendLineCount", "GetBendLines", "GetBendNoteAttributeString", "GetBendNoteTextFormat", "GetBodiesCount", "GetBomTable", "GetBreakLineCount", "GetBreakLineCount2", "GetBreakLineInfo", "GetBreakLineInfo2", "GetBreakLines", "GetBreakOutSectionCount", "GetBreakOutSections", "GetCThreadCount", "GetCThreadQuality", "GetCThreads", "GetCenterLineCount", "GetCenterLineSketch", "GetCenterLines", "GetCenterMarkCount", "GetCenterMarkCount2", "GetCenterMarkInfo", "GetCenterMarks", "GetCorresponding", "GetCorrespondingEntity", "GetDatumOriginCount", "GetDatumOrigins", "GetDatumPoints", "GetDatumPoints2", "GetDatumPointsCount", "GetDatumTagCount", "GetDatumTags", "GetDatumTargetSymCount", "GetDatumTargetSyms", "GetDependentViewCount", "GetDependentViews", "GetDesignTableExtent", "GetDetail", "GetDetailCircleCount", "GetDetailCircleCount2", "GetDetailCircleInfo", "GetDetailCircleInfo2", "GetDetailCircleStrings", "GetDetailCircles", "GetDimensionCount", "GetDimensionCount2", "GetDimensionCount3", "GetDimensionCount4", "GetDimensionDisplayInfo", "GetDimensionDisplayInfo2", "GetDimensionDisplayInfo3", "GetDimensionDisplayInfo4", "GetDimensionDisplayInfo5", "GetDimensionDisplayInfoSize", "GetDimensionDisplayInfoSize2", "GetDimensionDisplayString", "GetDimensionDisplayString2", "GetDimensionDisplayString3", "GetDimensionDisplayString4", "GetDimensionDisplayString5", "GetDimensionIds", "GetDimensionIds2", "GetDimensionIds3", "GetDimensionIds4", "GetDimensionInfo", "GetDimensionInfo2", "GetDimensionInfo3", "GetDimensionInfo4", "GetDimensionInfo5", "GetDimensionInfo6", "GetDimensionInfo7", "GetDimensionString", "GetDimensionString2", "GetDimensionString3", "GetDimensionString4", "GetDisplayData", "GetDisplayData2", "GetDisplayData3", "GetDisplayData4", "GetDisplayDimensionCount", "GetDisplayDimensions", "GetDisplayEdgesInShadedMode", "GetDisplayMode", "GetDisplayMode2", "GetDisplayTangentEdges", "GetDisplayTangentEdges2", "GetDowelSymbolCount", "GetDowelSymbols", "GetEllipseCount", "GetEllipses", "GetEllipses2", "GetEllipses3", "GetEllipses4", "GetEllipses5", "GetFaceHatchCount", "GetFaceHatches", "GetFacettedHlrDisplay", "GetFirstAnnotation", "GetFirstAnnotation2", "GetFirstAnnotation3", "GetFirstBlockInstance", "GetFirstCThread", "GetFirstCenterLine", "GetFirstCenterMark", "GetFirstCenterMark2", "GetFirstCenterOfMass", "GetFirstCustomSymbol", "GetFirstDatumOrigin", "GetFirstDatumTag", "GetFirstDatumTargetSym", "GetFirstDisplayDimension", "GetFirstDisplayDimension2", "GetFirstDisplayDimension3", "GetFirstDisplayDimension4", "GetFirstDisplayDimension5", "GetFirstDisplayDimension6", "GetFirstDowelSymbol", "GetFirstGTOL", "GetFirstMultiJogLeader", "GetFirstMultiJogLeader2", "GetFirstNote", "GetFirstNote2", "GetFirstRevisionCloud", "GetFirstRevisionCloud2", "GetFirstSFSymbol", "GetFirstTableAnnotation", "GetFirstTableAnnotation2", "GetFirstWeldBead", "GetFirstWeldSymbol", "GetGTolCount", "GetGTols", "GetHiddenComponents", "GetHiddenEdgeCount", "GetKeepLinkedToBOM", "GetKeepLinkedToBOMName", "GetLineCount", "GetLineCount2", "GetLines", "GetLines2", "GetLines3", "GetLines4", "GetMirrorViewOrientation", "GetMultiJogLeaderCount", "GetMultiJogLeaders", "GetName2", "GetNextView", "GetNoteCount", "GetNotes", "GetOrientationName", "GetOutline", "GetParabolaCount", "GetParabolas", "GetParabolas2", "GetPolyLineCount", "GetPolyLineCount2", "GetPolyLineCount3", "GetPolyLineCount4", "GetPolyLineCount5", "GetPolyLinesAndCurves", "GetPolyLinesAndCurvesCount", "GetPolylines", "GetPolylines2", "GetPolylines3", "GetPolylines4", "GetPolylines5", "GetPolylines6", "GetPolylines7", "GetProjectionArrow", "GetProjectionLineCount", "GetProjectionLines", "GetReferencedModelName", "GetRelatedTangentEdgeCount", "GetRelatedTangentEdges", "GetRevisionCloudCount", "GetRevisionClouds", "GetSFSymbolCount", "GetSFSymbols", "GetSMBoundaryBoxDisplayData", "GetSMBoundaryBoxDisplayData2", "GetSection", "GetSectionLineCount", "GetSectionLineCount2", "GetSectionLineInfo", "GetSectionLineInfo2", "GetSectionLineStrings", "GetSectionLines", "GetSketch", "GetSketchPictureCount", "GetSketchPictures", "GetSolidHatchCount", "GetSolidHatchInfo", "GetSplineCount", "GetSplines", "GetSplines2", "GetSplines3", "GetTableAnnotationCount", "GetTableAnnotations", "GetTemporaryAxes", "GetTemporaryAxesCount", "GetUniqueName", "GetUseParentDisplayMode", "GetUserPoints", "GetUserPoints2", "GetUserPointsCount", "GetViewXform", "GetVisible", "GetVisibleComponentCount", "GetVisibleComponents", "GetVisibleDrawingComponents", "GetVisibleEntities", "GetVisibleEntities2", "GetVisibleEntityCount", "GetVisibleEntityCount2", "GetWeldBeadCount", "GetWeldBeads", "GetWeldSymbolCount", "GetWeldSymbols", "GetWitnessEntitiesCount", "GetWitnessGeomInfo", "GetXform", "HasDesignTable", "IGetAnnotations", "IGetArcs", "IGetArcs2", "IGetArcs3", "IGetArcs4", "IGetBaseView", "IGetBendLines", "IGetBodies", "IGetBomTable", "IGetBreakLineInfo", "IGetBreakLineInfo2", "IGetBreakLines", "IGetBreakOutSections", "IGetCThreads", "IGetCenterLines", "IGetCenterMarkInfo", "IGetCenterMarks", "IGetDatumOrigins", "IGetDatumPoints", "IGetDatumPoints2", "IGetDatumTags", "IGetDatumTargetSyms", "IGetDependentViews", "IGetDesignTableExtent", "IGetDetail", "IGetDetailCircleInfo", "IGetDetailCircleInfo2", "IGetDetailCircleStrings", "IGetDetailCircles", "IGetDimensionDisplayInfo", "IGetDimensionDisplayInfo2", "IGetDimensionDisplayInfo3", "IGetDimensionDisplayInfo4", "IGetDimensionDisplayInfo5", "IGetDimensionDisplayString", "IGetDimensionDisplayString2", "IGetDimensionDisplayString3", "IGetDimensionDisplayString4", "IGetDimensionIds", "IGetDimensionIds2", "IGetDimensionIds3", "IGetDimensionIds4", "IGetDimensionInfo", "IGetDimensionInfo2", "IGetDimensionInfo3", "IGetDimensionInfo4", "IGetDimensionInfo5", "IGetDimensionInfo6", "IGetDimensionString", "IGetDimensionString2", "IGetDimensionString3", "IGetDimensionString4", "IGetDisplayData", "IGetDisplayData2", "IGetDisplayData3", "IGetDisplayDimensions", "IGetDowelSymbols", "IGetEllipses", "IGetEllipses2", "IGetEllipses3", "IGetEllipses4", "IGetEllipses5", "IGetFaceHatches", "IGetFirstAnnotation", "IGetFirstAnnotation2", "IGetFirstCThread", "IGetFirstCenterOfMass", "IGetFirstCustomSymbol", "IGetFirstDatumTag", "IGetFirstDatumTargetSym", "IGetFirstDisplayDimension", "IGetFirstDisplayDimension2", "IGetFirstDisplayDimension3", "IGetFirstDowelSymbol", "IGetFirstGTOL", "IGetFirstMultiJogLeader", "IGetFirstNote", "IGetFirstRevisionCloud", "IGetFirstSFSymbol", "IGetFirstWeldSymbol", "IGetGTols", "IGetHiddenEdges", "IGetLines", "IGetLines2", "IGetLines3", "IGetLines4", "IGetMultiJogLeaders", "IGetNextView", "IGetNotes", "IGetOutline", "IGetParabolas", "IGetParabolas2", "IGetPolyLinesAndCurves", "IGetPolylines", "IGetPolylines2", "IGetPolylines3", "IGetPolylines4", "IGetPolylines5", "IGetPolylines6", "IGetPolylines7", "IGetProjectionArrow", "IGetProjectionLines", "IGetRelatedTangentEdges", "IGetRevisionClouds", "IGetSFSymbols", "IGetSMBoundaryBoxDisplayData", "IGetSection", "IGetSectionLineInfo", "IGetSectionLineInfo2", "IGetSectionLineStrings", "IGetSectionLines", "IGetSketch", "IGetSketchPictures", "IGetSolidHatchInfo", "IGetSplines", "IGetSplines2", "IGetSplines3", "IGetTableAnnotations", "IGetTemporaryAxes", "IGetUserPoints", "IGetUserPoints2", "IGetViewXform", "IGetVisibleComponents", "IGetVisibleEntities", "IGetVisibleEntities2", "IGetWeldBeads", "IGetWeldSymbols", "IGetWitnessGeomInfo", "IGetXform", "IInsertBomTable", "ISelectEntity", "ISetBodies", "ISetHiddenEdges", "ISetXform", "ImportAnnotations", "InsertAlternateView", "InsertBendTable", "InsertBomTable", "InsertBomTable2", "InsertBomTable3", "InsertBomTable4", "InsertBomTable5", "InsertBomTable6", "InsertBreak", "InsertBreak2", "InsertBreak3", "InsertCutListPropertyNote", "InsertHoleTable", "InsertHoleTable2", "InsertHoleTable3", "InsertPunchTable", "InsertViewAsBlock", "InsertWeldTable", "InsertWeldmentTable", "IsBroken", "IsCropped", "IsExploded", "IsFlatPatternView", "IsLightweight", "IsModelBreakState", "IsModelLoaded", "IsModelOutOfDate", "IsPerspectiveView", "LoadModel", "MergeBendTags", "ModifyViewArrow", "MoveViewArrow", "RemoveAlignment", "ReplaceViewWithBlock", "ReplaceViewWithSketch", "ResetSketchVisibility", "RootDrawingComponent2", "SelectEntity", "SetBendNoteTextFormat", "SetDisplayMode", "SetDisplayMode2", "SetDisplayMode3", "SetDisplayMode4", "SetDisplayTangentEdges", "SetDisplayTangentEdges2", "SetKeepLinkedToBOM", "SetLightweightToResolved", "SetMirrorViewOrientation", "SetName2", "SetResolvedToLightweight", "SetViewPosition", "SetVisible", "SetXform", "ShowExploded", "ShowModelBreakState", "UpdateViewDisplayGeometry", "UseDefaultAlignment"], + "IView3D": ["Activate", "Deactivate", "Get3DViewAnnotationTextScale"], + "IWeldBead": ["GetAnnotation", "GetNext"], + "IWeldSymbol": ["GetAnnotation", "GetArcAtIndex", "GetArcCount", "GetArrowHeadAtIndex", "GetArrowHeadCount", "GetArrowHeadInfo", "GetContour", "GetFieldWeld", "GetLeaderAtIndex", "GetLeaderCount", "GetLineAtIndex", "GetLineCount", "GetNext", "GetPeripheral", "GetProcess", "GetProcessReference", "GetStagger", "GetSymmetric", "GetText", "GetTextAngleAtIndex", "GetTextAtIndex", "GetTextCount", "GetTextHeightAtIndex", "GetTextInvertAtIndex", "GetTextPositionAtIndex", "GetTextRefPositionAtIndex", "GetTriangleAtIndex", "GetTriangleCount", "HasExtraLeader", "IGetAnnotation", "IGetArcAtIndex", "IGetArrowHeadAtIndex", "IGetArrowHeadInfo", "IGetLeaderAtIndex", "IGetLineAtIndex", "IGetNext", "IGetTextPositionAtIndex", "IGetTriangleAtIndex", "IsAttached", "SetFieldWeld", "SetPeripheral", "SetProcess", "SetStagger", "SetSymmetric", "SetText"], + "IWeldmentBeadFeatureData": ["AccessSelections", "BeadLength", "BeadPitch", "BeadSize", "BeadType", "GetFaces", "GetFacesCount", "GetVirtualEdges", "GetVirtualEdgesCount", "IGetFaces", "IGetVirtualEdges", "ISetFaces", "ISetVirtualEdges", "ReleaseSelectionAccess", "SetBeadLength", "SetBeadPitch", "SetBeadSize", "SetBeadType", "SetFaces", "SetVirtualEdges"], + "IWeldmentCutListAnnotation": ["GetAllCustomProperties", "GetAllCustomPropertiesCount", "GetColumnCustomProperty", "IGetAllCustomProperties", "SetColumnCustomProperty", "Sort"], + "IWeldmentCutListFeature": ["GetFeature", "GetReferencedModelName", "GetTableAnnotationCount", "GetTableAnnotations", "IGetTableAnnotations"], + "IWeldmentTrimExtendFeatureData": ["AccessSelections", "GetBodiesToBeTrimmedCount", "GetTrimmingBoundary", "GetTrimmingBoundaryCount", "IGetBodiesToBeTrimmed", "IGetTrimmingBoundary", "ISetBodiesToBeTrimmed", "ISetTrimmingBoundary", "ReleaseSelectionAccess", "SetTrimmingBoundary"], + "IWizardHoleFeatureData": ["AccessSelections", "IAccessSelections", "ReleaseSelectionAccess"], + "IWizardHoleFeatureData2": ["AccessSelections", "ChangeStandard", "GetEndConditionReference", "GetFeatureScopeBodiesCount", "GetSketchPointCount", "GetSketchPoints", "IAccessSelections", "IGetFeatureScopeBodies", "IGetSketchPoints", "ISetFeatureScopeBodies", "InitializeHole", "ReleaseSelectionAccess", "RestoreDefaultValues", "SetEndConditionReference"], + "IWrapSketchFeatureData": ["AccessSelections", "ReleaseSelectionAccess"] + } +} diff --git a/docs/assets/progress/progress.json b/docs/assets/progress/progress.json new file mode 100644 index 00000000..4ee5efa7 --- /dev/null +++ b/docs/assets/progress/progress.json @@ -0,0 +1,1391 @@ +{ + "tools": { + "total": 155, + "by_level": { + "stable": 81, + "beta": 24, + "experimental": 10, + "planned": 40 + }, + "list": [ + { + "name": "activate_document", + "family": "file_management", + "level": "stable", + "reason": "", + "summary": "Make an already-open document the active one, so the next tools act on it." + }, + { + "name": "add_annotation", + "family": "drawing", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Add an annotation (a note, balloon or surface-finish symbol) to the active drawing." + }, + { + "name": "add_arc", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Draw a circular arc in the open sketch from its centre, start point and end point, in mm." + }, + { + "name": "add_centerline", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Draw a centreline (construction line) in the open sketch, in mm." + }, + { + "name": "add_chamfer", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Bevel edges of the active part with an equal-distance chamfer at 45 degrees." + }, + { + "name": "add_circle", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Draw a circle in the open sketch from its centre and radius, in mm." + }, + { + "name": "add_datum_tag", + "family": "drawing_automation", + "level": "stable", + "reason": "", + "summary": "Add a datum feature symbol (A, B, C, ...) on an edge of the active drawing." + }, + { + "name": "add_dimension", + "family": "drawing", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Add one dimension between drawing entities at a position on the sheet." + }, + { + "name": "add_drawing_view", + "family": "drawing", + "level": "beta", + "reason": "only ever adds a view, whatever `operation` says; use `create_drawing_view`.", + "summary": "Place one named view of a part or assembly on the active drawing sheet; the same as `create_drawing_view`." + }, + { + "name": "add_ellipse", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Draw an ellipse in the open sketch from its centre and axis lengths, in mm." + }, + { + "name": "add_fillet", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Round edges of the active part with a constant-radius fillet." + }, + { + "name": "add_gtol", + "family": "drawing_automation", + "level": "stable", + "reason": "", + "summary": "Add a GD&T feature control frame to the active drawing, e.g. position Ø0.2 (M) to A|B|C." + }, + { + "name": "add_line", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Draw a straight line between two points in the open sketch, in mm." + }, + { + "name": "add_mate", + "family": "modeling", + "level": "beta", + "reason": "mates only reference planes and axes, by name, not faces.", + "summary": "Mate two components of the active assembly: coincident, concentric, parallel, perpendicular, tangent, distance or angle." + }, + { + "name": "add_note", + "family": "drawing", + "level": "stable", + "reason": "", + "summary": "Place a text note on the active drawing sheet at a position in millimetres." + }, + { + "name": "add_polygon", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Draw a regular polygon (e.g. a hexagon) in the open sketch from its centre, radius and number of sides." + }, + { + "name": "add_rectangle", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Draw a closed, axis-aligned rectangle in the open sketch from two opposite corners, in mm." + }, + { + "name": "add_sketch_constraint", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Add a geometric relation between sketch entities: horizontal, vertical, parallel, perpendicular, tangent, coincident, concentric, equal, symmetric, collinear or fix." + }, + { + "name": "add_sketch_dimension", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Add a driving dimension to sketch entities: linear, angular, radial or diameter." + }, + { + "name": "add_spline", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Draw a smooth spline through a list of points in the open sketch, in mm." + }, + { + "name": "analyze_drawing_annotations", + "family": "drawing_analysis", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Check a drawing's notes, symbols and text styles for consistency." + }, + { + "name": "analyze_drawing_comprehensive", + "family": "drawing_analysis", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Run every drawing check (dimensions, views, annotations, standards) on a drawing file in one call." + }, + { + "name": "analyze_drawing_dimensions", + "family": "drawing_analysis", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Check a drawing's dimensions for consistent precision, tolerance formatting and completeness." + }, + { + "name": "analyze_drawing_views", + "family": "drawing_analysis", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Check how a drawing's views are chosen and laid out." + }, + { + "name": "analyze_geometry", + "family": "analysis", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Run a geometry analysis on the active model, such as curvature, draft or wall thickness." + }, + { + "name": "analyze_macro", + "family": "macro_recording", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Analyse a macro's structure, dependencies and complexity, and suggest optimisations." + }, + { + "name": "apply_template", + "family": "template_management", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Apply a saved template's properties, dimensions and materials to a model." + }, + { + "name": "arrange_dimensions", + "family": "drawing_automation", + "level": "stable", + "reason": "", + "summary": "Move drawing dimensions out of their views into tidy rows so nothing overlaps, then check the sheet." + }, + { + "name": "auto_center_marks", + "family": "drawing", + "level": "stable", + "reason": "", + "summary": "Insert centre marks on the holes, slots and (optionally) fillets of one drawing view." + }, + { + "name": "auto_dimension_view", + "family": "drawing", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Dimension a drawing view automatically with SolidWorks' auto-dimension scheme." + }, + { + "name": "automation_start_macro_recording", + "family": "automation", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Start SolidWorks' macro recorder (the automation family's copy of `start_macro_recording`)." + }, + { + "name": "automation_stop_macro_recording", + "family": "automation", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Stop a macro recording and save it (the automation family's copy of `stop_macro_recording`)." + }, + { + "name": "batch_apply_template", + "family": "template_management", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Apply one template to every matching model in a folder." + }, + { + "name": "batch_execute_macros", + "family": "macro_recording", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Run several macros in sequence against the files in a folder." + }, + { + "name": "batch_export", + "family": "export", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Export every matching SolidWorks file in a folder to one format." + }, + { + "name": "batch_file_operations", + "family": "file_management", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Copy, move, rename or delete SolidWorks files on disk in one call." + }, + { + "name": "batch_process_files", + "family": "automation", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Run one operation (rebuild, save as, export or property update) on every matching file in a folder." + }, + { + "name": "calculate_mass_properties", + "family": "analysis", + "level": "beta", + "reason": "moments of inertia are labelled kg·mm² but are kg·m²; its input fields are unused.", + "summary": "Measure the active part or assembly's mass properties: volume, surface area, mass, centre of mass and moments of inertia." + }, + { + "name": "check_drawing_compliance", + "family": "drawing_analysis", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Check a drawing's title block and sheet format against a drafting standard (ISO, ANSI or DIN)." + }, + { + "name": "check_drawing_standards", + "family": "drawing", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Check the active drawing against a drafting standard and score it." + }, + { + "name": "check_interference", + "family": "analysis", + "level": "beta", + "reason": "`include_hidden` has no effect.", + "summary": "Find where the components of the active assembly overlap (Tools > Interference Detection)." + }, + { + "name": "check_sketch_fully_defined", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Check whether a sketch is fully defined, under-defined or over-defined." + }, + { + "name": "classify_feature_tree", + "family": "file_management", + "level": "experimental", + "reason": "not yet checked by a live test on real SolidWorks.", + "summary": "Classify the active model's kind (part, sheet metal, assembly, drawing and so on) from its feature tree, and suggest how to work on it." + }, + { + "name": "close_model", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Close the active document, saving it first only if asked." + }, + { + "name": "compare_drawing_versions", + "family": "drawing_analysis", + "level": "experimental", + "reason": "not yet checked by a live test on real SolidWorks.", + "summary": "Compare two drawing files on disk: whether they are byte-identical, and how their sizes differ." + }, + { + "name": "compare_templates", + "family": "template_management", + "level": "experimental", + "reason": "not yet checked by a live test on real SolidWorks.", + "summary": "Compare two template files on disk: whether they are byte-identical, and how their sizes differ." + }, + { + "name": "convert_file_format", + "family": "file_management", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Convert a SolidWorks file on disk to another format without opening it first." + }, + { + "name": "create_assembly", + "family": "modeling", + "level": "beta", + "reason": "`components` is ignored; use `insert_component`.", + "summary": "Create a new, empty assembly document and make it active, ready for `insert_component`." + }, + { + "name": "create_axis", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Add a reference axis along the model's x, y or z direction, through the origin." + }, + { + "name": "create_cut_extrude", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Cut material from the active part with a closed sketch profile: holes, slots, windows." + }, + { + "name": "create_detail_view", + "family": "drawing", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Magnify a circular area of a drawing view as a detail view." + }, + { + "name": "create_drawing", + "family": "modeling", + "level": "beta", + "reason": "`model_path` and `sheet_format` are ignored.", + "summary": "Create a new, empty drawing document and make it active." + }, + { + "name": "create_drawing_view", + "family": "drawing", + "level": "stable", + "reason": "", + "summary": "Place one named view of a part or assembly on the active drawing sheet." + }, + { + "name": "create_extrusion", + "family": "modeling", + "level": "beta", + "reason": "`sketch_name` and `direction` are ignored; it extrudes the sketch closed last.", + "summary": "Extrude the sketch you just closed into a solid boss, added to the active part." + }, + { + "name": "create_loft", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Loft a solid through two or more closed profile sketches, in order (Insert > Boss/Base > Loft)." + }, + { + "name": "create_macro_library", + "family": "macro_recording", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Set up a shared folder of categorised, documented macros." + }, + { + "name": "create_part", + "family": "modeling", + "level": "beta", + "reason": "`material` is ignored; use `set_material`.", + "summary": "Create a new, empty part document and make it active, ready for `create_sketch`." + }, + { + "name": "create_reference_plane", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Add a reference plane parallel to a plane or flat face, offset by a distance in mm." + }, + { + "name": "create_reference_point", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Add a reference point on an edge (at a distance or percentage along it) or at the centre of a face." + }, + { + "name": "create_revolve", + "family": "modeling", + "level": "beta", + "reason": "`sketch_name` and `axis_entity` are ignored; it revolves the sketch closed last around its centreline.", + "summary": "Revolve the sketch you just closed around the centreline drawn in it, adding a solid to the active part." + }, + { + "name": "create_section_view", + "family": "drawing", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Cut a section view along a line across a drawing view." + }, + { + "name": "create_sketch", + "family": "sketching", + "level": "beta", + "reason": "echoes a `sketch_name` you pass instead of SolidWorks' own name.", + "summary": "Open a new sketch on a plane of the active part, ready for lines, circles and other sketch entities." + }, + { + "name": "create_sweep", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Sweep a closed profile sketch along a path sketch to make a solid (Insert > Boss/Base > Sweep)." + }, + { + "name": "create_technical_drawing", + "family": "drawing", + "level": "beta", + "reason": "ignores `template`, `sheet_size`, `title` and `output_path`; it only places three views.", + "summary": "Place a model's three standard views (front, top and side) on the active drawing sheet in one call." + }, + { + "name": "create_template", + "family": "automation", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Create a part, assembly or drawing template file (.prtdot, .asmdot, .drwdot) with standard settings." + }, + { + "name": "delete_feature", + "family": "modeling", + "level": "beta", + "reason": "on SolidWorks its message doesn't name the dependent features it removed.", + "summary": "Delete a feature or sketch from the active model, along with the features that depend on it." + }, + { + "name": "discover_solidworks_docs", + "family": "docs_discovery", + "level": "stable", + "reason": "", + "summary": "Rebuild the SolidWorks API index on purpose. The lookups don't need it." + }, + { + "name": "execute_macro", + "family": "macro_recording", + "level": "beta", + "reason": "runs the macro once whatever `repeat_count` says, and only binary .swp files.", + "summary": "Run a binary SolidWorks macro (.swp, or legacy .swb) in the running SolidWorks, calling its `main` procedure once." + }, + { + "name": "execute_workflow", + "family": "automation", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Run a named sequence of tool steps, in order or in parallel, with an error policy." + }, + { + "name": "exit_sketch", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Close the open sketch so a feature can use it." + }, + { + "name": "export_dwg", + "family": "export", + "level": "beta", + "reason": "the file extension sets the format; `format_type` and `options` are ignored.", + "summary": "Export the active document to DWG, like File > Save As with the DWG type." + }, + { + "name": "export_flat_pattern", + "family": "engineering_data", + "level": "stable", + "reason": "", + "summary": "Export the active sheet-metal part's flat pattern to DXF or DWG, for laser or waterjet cutting." + }, + { + "name": "export_iges", + "family": "export", + "level": "beta", + "reason": "the file extension sets the format; `format_type` and `options` are ignored.", + "summary": "Export the active document to IGES, like File > Save As with the IGES type." + }, + { + "name": "export_image", + "family": "export", + "level": "stable", + "reason": "", + "summary": "Save a picture of the active model in a standard view, as PNG or JPG, at a chosen size." + }, + { + "name": "export_pdf", + "family": "export", + "level": "beta", + "reason": "the file extension sets the format; `format_type` and `options` are ignored.", + "summary": "Export the active document to PDF, like File > Save As with the PDF type." + }, + { + "name": "export_step", + "family": "export", + "level": "beta", + "reason": "the file extension sets the format; `format_type` and `options` are ignored.", + "summary": "Export the active document to STEP, like File > Save As with the STEP type." + }, + { + "name": "export_stl", + "family": "export", + "level": "beta", + "reason": "the file extension sets the format; `format_type` and `options` are ignored.", + "summary": "Export the active document to STL, like File > Save As with the STL type." + }, + { + "name": "extract_template", + "family": "template_management", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Capture a model's settings (custom properties, dimensions, units) as a reusable template file." + }, + { + "name": "find_related_api_members", + "family": "docs_discovery", + "level": "stable", + "reason": "", + "summary": "Find SolidWorks API members related to an interface or member name." + }, + { + "name": "generate_drawing_package", + "family": "drawing_automation", + "level": "stable", + "reason": "", + "summary": "Create a complete A3 drawing of a part or assembly in one call, and save it with a PDF." + }, + { + "name": "generate_drawing_report", + "family": "drawing_analysis", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Write a quality report that combines every drawing check." + }, + { + "name": "generate_vba_assembly_insert", + "family": "vba_generation", + "level": "stable", + "reason": "", + "summary": "Write a VBA macro that inserts a component into the active assembly at a point." + }, + { + "name": "generate_vba_assembly_mates", + "family": "vba_generation", + "level": "stable", + "reason": "", + "summary": "Write a VBA macro that adds a concentric, distance, parallel, perpendicular or coincident mate between two selected faces or edges." + }, + { + "name": "generate_vba_batch_export", + "family": "vba_generation", + "level": "stable", + "reason": "", + "summary": "Write a VBA macro that opens every matching file in a folder and saves a STEP copy of each to another folder." + }, + { + "name": "generate_vba_code", + "family": "automation", + "level": "experimental", + "reason": "not yet checked by a live test on real SolidWorks.", + "summary": "Write a VBA macro skeleton for an operation you describe: the SolidWorks connection, the active document and optional error handling, with the operation itself left as a TODO." + }, + { + "name": "generate_vba_drawing_dimensions", + "family": "vba_generation", + "level": "stable", + "reason": "", + "summary": "Write a VBA macro that adds a dimension to the selected drawing entities and sets its precision." + }, + { + "name": "generate_vba_drawing_views", + "family": "vba_generation", + "level": "stable", + "reason": "", + "summary": "Write a VBA macro that places a model's standard views (front, top, right) on the active drawing." + }, + { + "name": "generate_vba_extrusion", + "family": "vba_generation", + "level": "stable", + "reason": "", + "summary": "Write a VBA macro that makes an extrusion with the full FeatureExtrusion options: both directions, draft, thin wall, end conditions." + }, + { + "name": "generate_vba_file_operations", + "family": "vba_generation", + "level": "stable", + "reason": "", + "summary": "Write a VBA macro that sets a custom property in every configuration, or runs Pack and Go on the active document." + }, + { + "name": "generate_vba_macro_recorder", + "family": "vba_generation", + "level": "stable", + "reason": "", + "summary": "Write a VBA starting point: a macro skeleton to fill in, or a note on starting and stopping SolidWorks' macro recorder." + }, + { + "name": "generate_vba_part_modeling", + "family": "vba_generation", + "level": "stable", + "reason": "", + "summary": "Write a VBA macro for a shell or a fillet on the active part." + }, + { + "name": "generate_vba_revolve", + "family": "vba_generation", + "level": "stable", + "reason": "", + "summary": "Write a VBA macro that revolves the selected sketch, with both-direction and thin-wall options." + }, + { + "name": "get_custom_properties", + "family": "engineering_data", + "level": "stable", + "reason": "", + "summary": "Read the active document's custom properties, such as PartNo, Description or Revision." + }, + { + "name": "get_dimension", + "family": "modeling", + "level": "experimental", + "reason": "not yet checked by a live test on real SolidWorks.", + "summary": "Read one dimension of the active model by its full name, e.g. \"D1@Sketch1\"." + }, + { + "name": "get_file_properties", + "family": "file_management", + "level": "experimental", + "reason": "not yet checked by a live test on real SolidWorks.", + "summary": "Report the active document's file details: name, path, size, dates, type, configuration and unsaved changes." + }, + { + "name": "get_mass_properties", + "family": "analysis", + "level": "stable", + "reason": "", + "summary": "Measure the active part or assembly's mass properties: volume, surface area, mass, centre of mass and moments of inertia." + }, + { + "name": "get_material", + "family": "engineering_data", + "level": "beta", + "reason": "reads the material's name and library, not its properties.", + "summary": "Report the material assigned to the active part." + }, + { + "name": "get_material_properties", + "family": "analysis", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Report the physical properties of the active part's material: density, modulus, Poisson's ratio, strength." + }, + { + "name": "get_model_info", + "family": "file_management", + "level": "stable", + "reason": "", + "summary": "Report the active document's title, path, type, active configuration, unsaved changes, feature count and rebuild status." + }, + { + "name": "get_selected_entities", + "family": "file_management", + "level": "stable", + "reason": "", + "summary": "Describe the faces, edges and vertices selected in the SolidWorks window right now." + }, + { + "name": "insert_bom_table", + "family": "drawing_automation", + "level": "stable", + "reason": "", + "summary": "Insert a bill-of-materials table for an assembly view on the active drawing." + }, + { + "name": "insert_component", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Insert a part or sub-assembly file into the active assembly at a position in mm." + }, + { + "name": "insert_model_dimensions", + "family": "drawing_automation", + "level": "stable", + "reason": "", + "summary": "Bring the model's dimensions into the active drawing's views, each dimension shown once." + }, + { + "name": "list_available_materials", + "family": "engineering_data", + "level": "stable", + "reason": "", + "summary": "List the materials in the installed SolidWorks material libraries." + }, + { + "name": "list_components", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "List the top-level components of the active assembly by instance name, e.g. \"bracket-1\"." + }, + { + "name": "list_configurations", + "family": "file_management", + "level": "experimental", + "reason": "not yet checked by a live test on real SolidWorks.", + "summary": "List the names of the active model's configurations." + }, + { + "name": "list_drawing_views", + "family": "drawing", + "level": "stable", + "reason": "", + "summary": "List the views on the active drawing, by name." + }, + { + "name": "list_features", + "family": "file_management", + "level": "stable", + "reason": "", + "summary": "List the feature tree of the active part or assembly, in order." + }, + { + "name": "list_model_dimensions", + "family": "engineering_data", + "level": "stable", + "reason": "", + "summary": "List every dimension in the active part or assembly with its full name and value." + }, + { + "name": "list_open_documents", + "family": "file_management", + "level": "stable", + "reason": "", + "summary": "List every document open in SolidWorks and say which one is active." + }, + { + "name": "list_template_library", + "family": "template_management", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "List the templates in the shared template library." + }, + { + "name": "load_assembly", + "family": "file_management", + "level": "experimental", + "reason": "not yet checked by a live test on real SolidWorks.", + "summary": "Open an assembly (.sldasm) from disk and make it the active document." + }, + { + "name": "load_part", + "family": "file_management", + "level": "experimental", + "reason": "not yet checked by a live test on real SolidWorks.", + "summary": "Open a part (.sldprt) from disk and make it the active document." + }, + { + "name": "lookup_api_interface", + "family": "docs_discovery", + "level": "stable", + "reason": "", + "summary": "List every method and property of a SolidWorks COM interface." + }, + { + "name": "lookup_api_method", + "family": "docs_discovery", + "level": "stable", + "reason": "", + "summary": "Look up one SolidWorks API method or property: parameters, return type, description." + }, + { + "name": "manage_design_table", + "family": "automation", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Create, read or update a design table (an Excel sheet that drives a model's configurations)." + }, + { + "name": "manage_file_properties", + "family": "file_management", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Read or change the file-level properties of a SolidWorks file on disk." + }, + { + "name": "measure_entities", + "family": "engineering_data", + "level": "stable", + "reason": "", + "summary": "Measure faces, edges or vertices of the active model with SolidWorks' Measure tool." + }, + { + "name": "mirror_feature", + "family": "modeling", + "level": "beta", + "reason": "mirroring a cut is reported as an error.", + "summary": "Mirror solid bodies or features of the active part about a plane." + }, + { + "name": "open_model", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Open a part, assembly or drawing from disk and make it the active document." + }, + { + "name": "optimize_macro", + "family": "macro_recording", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Suggest improvements to a macro's code for speed and reliability." + }, + { + "name": "optimize_performance", + "family": "automation", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Review SolidWorks' performance settings and apply faster ones." + }, + { + "name": "pack_and_go_assembly", + "family": "file_management", + "level": "experimental", + "reason": "not yet checked by a live test on real SolidWorks.", + "summary": "Copy an assembly and every part it references into one folder, with the references updated (SolidWorks Pack and Go)." + }, + { + "name": "pattern_circular", + "family": "modeling", + "level": "beta", + "reason": "patterning a cut is reported as an error.", + "summary": "Repeat features of the active part around an axis, e.g. a ring of bosses or ribs." + }, + { + "name": "rebuild_model", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Rebuild the active model and report each feature that fails, with the reason and a fix." + }, + { + "name": "rename_feature", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Rename a feature in the active model's feature tree." + }, + { + "name": "reset_circuit_breaker", + "family": "server_admin", + "level": "stable", + "reason": "", + "summary": "Let calls through again to operations the server paused after repeated failures." + }, + { + "name": "save_as", + "family": "file_management", + "level": "beta", + "reason": "replaces an existing file whatever `overwrite` says.", + "summary": "Save the active document under a new path, as a SolidWorks file or in an exchange format such as STEP or IGES." + }, + { + "name": "save_assembly", + "family": "file_management", + "level": "stable", + "reason": "", + "summary": "Save the active assembly in place, or as a new .sldasm, optionally copying the parts it uses alongside." + }, + { + "name": "save_body_as_part", + "family": "file_management", + "level": "stable", + "reason": "", + "summary": "Save one solid body of the active multibody part as a new part file (Insert > Features > Save Bodies)." + }, + { + "name": "save_file", + "family": "file_management", + "level": "beta", + "reason": "`force_save` is ignored.", + "summary": "Save the active document, to its own path or to a new path in its own format." + }, + { + "name": "save_part", + "family": "file_management", + "level": "stable", + "reason": "", + "summary": "Save the active part in place, or as a new .sldprt with the target path checked first." + }, + { + "name": "save_to_template_library", + "family": "template_management", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Add a template to a shared, categorised template library." + }, + { + "name": "search_solidworks_api_help", + "family": "docs_discovery", + "level": "stable", + "reason": "", + "summary": "Search SolidWorks API interface and member names by keyword." + }, + { + "name": "select_face_edges", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Select every edge of one face of the active part, ready for `add_fillet` or `add_chamfer` with no edge names." + }, + { + "name": "select_feature", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Select a feature, sketch, plane or component by name in the active document." + }, + { + "name": "set_custom_property", + "family": "engineering_data", + "level": "stable", + "reason": "", + "summary": "Create or overwrite one text custom property on the active document, e.g. PartNo or DrawnBy." + }, + { + "name": "set_dimension", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Change one length dimension of the active model, in mm, and rebuild." + }, + { + "name": "set_material", + "family": "engineering_data", + "level": "stable", + "reason": "", + "summary": "Assign a library material to the active part, e.g. \"AISI 1020\" or \"6061-T6 (SS)\"." + }, + { + "name": "set_sheet_scale", + "family": "drawing_automation", + "level": "stable", + "reason": "", + "summary": "Set the active drawing sheet's scale, e.g. 1:2; views that use the sheet scale follow it." + }, + { + "name": "set_units", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Set the active document's length units: mm, cm, m, in or ft." + }, + { + "name": "sketch_circular_pattern", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Repeat sketch entities around the sketch origin, e.g. a bolt circle." + }, + { + "name": "sketch_linear_pattern", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Repeat sketch entities in a straight line at a fixed spacing." + }, + { + "name": "sketch_mirror", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Mirror sketch entities about a centreline in the open sketch." + }, + { + "name": "sketch_offset", + "family": "sketching", + "level": "stable", + "reason": "", + "summary": "Offset sketch entities by a distance in mm, outward or inward, e.g. for a wall or a clearance." + }, + { + "name": "sketch_tutorial_simple_hole", + "family": "sketching", + "level": "beta", + "reason": "suggests a negative-depth extrusion for the hole instead of `create_cut_extrude`.", + "summary": "Demonstrate the sketch steps: draw a 5 mm circle at the origin on the Top plane and close the sketch." + }, + { + "name": "start_macro_recording", + "family": "macro_recording", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Start SolidWorks' macro recorder, to capture what the user does as a macro." + }, + { + "name": "stop_macro_recording", + "family": "macro_recording", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Stop the macro recorder and save the recorded macro." + }, + { + "name": "suppress_feature", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Suppress or unsuppress a feature of the active model; suppressed features stay in the tree but are not built." + }, + { + "name": "tutorial_simple_hole", + "family": "sketching", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Draw a circle on a plane and cut it as a hole, as one worked example." + }, + { + "name": "undo", + "family": "modeling", + "level": "stable", + "reason": "", + "summary": "Undo the last operations in the active model (Edit > Undo)." + }, + { + "name": "update_sheet_format", + "family": "drawing", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Change the active drawing's sheet format file and title-block fields." + }, + { + "name": "update_title_block", + "family": "drawing", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Fill in the active drawing's title-block fields (title, drawn by, drawing number and so on)." + }, + { + "name": "validate_drawing_completeness", + "family": "drawing_analysis", + "level": "planned", + "reason": "no adapter implements it yet.", + "summary": "Check that a drawing carries everything needed to manufacture the part." + }, + { + "name": "verify_model", + "family": "analysis", + "level": "stable", + "reason": "", + "summary": "Check the active part or assembly against what you meant to build, one pass/fail check per expected value." + } + ] + }, + "com": { + "type_library": "83A33D31-27C5-11CE-BFD4-00400513BB57x0x34x0", + "core": { + "covered": 208, + "total": 2838 + }, + "api": { + "covered": 232, + "total": 5985 + }, + "interfaces": [ + { + "name": "ISldWorks", + "covered": [ + "ActivateDoc3", + "CloseAllDocuments", + "CloseDoc", + "Frame", + "GetConfigurationNames", + "GetCurrentLanguage", + "GetDocuments", + "GetExecutablePath", + "GetExportFileData", + "GetMassProperties", + "GetOpenDocumentByName", + "GetUserPreferenceStringValue", + "GetUserPreferenceToggle", + "NewAssembly", + "NewDocument", + "NewDrawing2", + "NewPart", + "OpenDoc6", + "RevisionNumber", + "RunMacro2", + "SetUserPreferenceIntegerValue", + "SetUserPreferenceToggle" + ], + "total": 330 + }, + { + "name": "IModelDoc2", + "covered": [ + "AddDiameterDimension2", + "AddDimension", + "AddDimension2", + "AddRadialDimension2", + "AddRelation", + "ClearSelection2", + "CreateArc", + "CreateCenterLine", + "CreateCircleByRadius", + "CreateCircularSketchStepAndRepeat", + "CreateEllipse", + "CreateLine", + "CreateLinearSketchStepAndRepeat", + "EditDelete", + "EditRebuild3", + "EditSuppress2", + "EditUndo", + "EditUndo2", + "EditUnsuppress2", + "FeatureByPositionReverse", + "FeatureChamferType", + "FeatureCut3", + "FeatureCut4", + "FeatureFillet3", + "FeatureRevolve2", + "FirstFeature", + "ForceRebuild3", + "GetActiveConfiguration", + "GetActiveSketch2", + "GetConfigurationNames", + "GetFeatureCount", + "GetLineCount", + "GetMassProperties", + "GetNext", + "GetPathName", + "GetSaveFlag", + "GetTitle", + "GetType", + "GetUserPreferenceStringValue", + "GetUserPreferenceToggle", + "GraphicsRedraw2", + "InsertAxis2", + "InsertDatumTag2", + "InsertGtol", + "InsertNote", + "InsertProtrusionBlend2", + "InsertProtrusionSwept4", + "InsertSketch", + "Lock", + "Parameter", + "Save", + "Save3", + "SaveAs", + "SaveAs2", + "SaveAs3", + "SaveBMP", + "Select", + "SetSaveFlag", + "SetUserPreferenceIntegerValue", + "SetUserPreferenceToggle", + "ShowNamedView2", + "SketchAddConstraints", + "SketchMirror", + "SketchOffset2", + "ViewZoomtofit", + "ViewZoomtofit2" + ], + "total": 758 + }, + { + "name": "IModelDocExtension", + "covered": [ + "AddDimension", + "CreateMassProperty", + "CreateMeasure", + "CustomPropertyManager", + "DeleteSelection2", + "GetAnnotations", + "GetMassProperties", + "GetPackAndGo", + "GetUserPreferenceInteger", + "GetUserPreferenceToggle", + "GetWhatsWrong", + "GetWhatsWrongCount", + "InsertBomTable4", + "SaveAs", + "SaveAs2", + "SaveAs3", + "SavePackAndGo", + "SelectByID2", + "SetUserPreferenceInteger", + "SetUserPreferenceToggle" + ], + "total": 337 + }, + { + "name": "IPartDoc", + "covered": [ + "ExportToDWG2", + "FeatureByName", + "FeatureExtrusion2", + "FeatureExtrusion3", + "FeatureExtrusionThin2", + "FeatureRevolve2", + "FirstFeature", + "GetBodies2", + "GetMaterialPropertyName2", + "GetPartBox", + "InsertMirrorFeature", + "SetMaterialPropertyName2" + ], + "total": 167 + }, + { + "name": "IAssemblyDoc", + "covered": [ + "AddComponent4", + "AddComponent5", + "AddMate5", + "FeatureByName", + "GetBox", + "GetComponentByName", + "GetComponentCount", + "GetComponents" + ], + "total": 198 + }, + { + "name": "IDrawingDoc", + "covered": [ + "ActivateView", + "AutoDimension", + "Create1stAngleViews2", + "Create3rdAngleViews2", + "CreateDrawViewFromModelView3", + "EditSheet", + "EditTemplate", + "FeatureByName", + "GetCurrentSheet", + "GetFirstView", + "GetViews", + "InsertModelAnnotations3", + "SetupSheet5" + ], + "total": 272 + }, + { + "name": "IFeatureManager", + "covered": [ + "CreateSaveBodyFeature", + "FeatureCircularPattern5", + "FeatureCut3", + "FeatureCut4", + "FeatureExtrusion2", + "FeatureExtrusion3", + "FeatureExtrusionThin2", + "FeatureFillet3", + "FeatureRevolve2", + "GetFeatureCount", + "InsertFeatureChamfer", + "InsertMirrorFeature", + "InsertProtrusionBlend2", + "InsertProtrusionSwept4", + "InsertRefPlane", + "InsertReferencePoint" + ], + "total": 268 + }, + { + "name": "ISketchManager", + "covered": [ + "CreateArc", + "CreateCenterLine", + "CreateCircleByRadius", + "CreateCircularSketchStepAndRepeat", + "CreateCornerRectangle", + "CreateEllipse", + "CreateLine", + "CreateLinearSketchStepAndRepeat", + "CreatePolygon", + "CreateSpline2", + "InsertSketch", + "SketchOffset2" + ], + "total": 83 + }, + { + "name": "ISelectionMgr", + "covered": [ + "CreateSelectData", + "GetSelectedObject6", + "GetSelectedObjectCount2", + "GetSelectedObjectType3" + ], + "total": 61 + }, + { + "name": "IComponent2", + "covered": [ + "CustomPropertyManager", + "FeatureByName", + "FirstFeature", + "GetBodies2", + "GetBox", + "GetConfigurationNames", + "GetID", + "GetModelDoc2", + "GetPathName", + "GetType", + "IsSuppressed", + "Select", + "Select2", + "Select4" + ], + "total": 147 + }, + { + "name": "IFeature", + "covered": [ + "GetBox", + "GetErrorCode2", + "GetFaces", + "GetFirstDisplayDimension", + "GetFirstSubFeature", + "GetID", + "GetNameForSelection", + "GetNextDisplayDimension", + "GetNextFeature", + "GetNextSubFeature", + "GetParents", + "GetSpecificFeature2", + "GetTypeName2", + "IsSuppressed", + "IsSuppressed2", + "Parameter", + "Select", + "Select2" + ], + "total": 115 + }, + { + "name": "ISketch", + "covered": [ + "AutoDimension", + "GetLineCount", + "GetSketchSegments" + ], + "total": 102 + } + ] + } +} diff --git a/docs/assets/progress/progress.svg b/docs/assets/progress/progress.svg new file mode 100644 index 00000000..1cd0a7c4 --- /dev/null +++ b/docs/assets/progress/progress.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + +MCP tools: 155 +68% work on SolidWorks today + + + + + + + + + + +stable 81 + +beta 24 + +experimental 10 + +planned 40 +Core SolidWorks COM API (12 interfaces) +208 of 2,838 methods · 7.3% + + + + + + + +Whole API: 232 of 5,985 method names (3.9%), counted by a text scan of the adapters. + diff --git a/docs/assets/progress/tables.html b/docs/assets/progress/tables.html new file mode 100644 index 00000000..35b8fa6e --- /dev/null +++ b/docs/assets/progress/tables.html @@ -0,0 +1,182 @@ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ToolFamilyLevelWhat it does
activate_documentfile_managementstableMake an already-open document the active one, so the next tools act on it.
add_annotationdrawingplanned
no adapter implements it yet.
Add an annotation (a note, balloon or surface-finish symbol) to the active drawing.
add_arcsketchingstableDraw a circular arc in the open sketch from its centre, start point and end point, in mm.
add_centerlinesketchingstableDraw a centreline (construction line) in the open sketch, in mm.
add_chamfermodelingstableBevel edges of the active part with an equal-distance chamfer at 45 degrees.
add_circlesketchingstableDraw a circle in the open sketch from its centre and radius, in mm.
add_datum_tagdrawing_automationstableAdd a datum feature symbol (A, B, C, ...) on an edge of the active drawing.
add_dimensiondrawingplanned
no adapter implements it yet.
Add one dimension between drawing entities at a position on the sheet.
add_drawing_viewdrawingbeta
only ever adds a view, whatever `operation` says; use `create_drawing_view`.
Place one named view of a part or assembly on the active drawing sheet; the same as `create_drawing_view`.
add_ellipsesketchingstableDraw an ellipse in the open sketch from its centre and axis lengths, in mm.
add_filletmodelingstableRound edges of the active part with a constant-radius fillet.
add_gtoldrawing_automationstableAdd a GD&T feature control frame to the active drawing, e.g. position Ø0.2 (M) to A|B|C.
add_linesketchingstableDraw a straight line between two points in the open sketch, in mm.
add_matemodelingbeta
mates only reference planes and axes, by name, not faces.
Mate two components of the active assembly: coincident, concentric, parallel, perpendicular, tangent, distance or angle.
add_notedrawingstablePlace a text note on the active drawing sheet at a position in millimetres.
add_polygonsketchingstableDraw a regular polygon (e.g. a hexagon) in the open sketch from its centre, radius and number of sides.
add_rectanglesketchingstableDraw a closed, axis-aligned rectangle in the open sketch from two opposite corners, in mm.
add_sketch_constraintsketchingstableAdd a geometric relation between sketch entities: horizontal, vertical, parallel, perpendicular, tangent, coincident, concentric, equal, symmetric, collinear or fix.
add_sketch_dimensionsketchingstableAdd a driving dimension to sketch entities: linear, angular, radial or diameter.
add_splinesketchingstableDraw a smooth spline through a list of points in the open sketch, in mm.
analyze_drawing_annotationsdrawing_analysisplanned
no adapter implements it yet.
Check a drawing's notes, symbols and text styles for consistency.
analyze_drawing_comprehensivedrawing_analysisplanned
no adapter implements it yet.
Run every drawing check (dimensions, views, annotations, standards) on a drawing file in one call.
analyze_drawing_dimensionsdrawing_analysisplanned
no adapter implements it yet.
Check a drawing's dimensions for consistent precision, tolerance formatting and completeness.
analyze_drawing_viewsdrawing_analysisplanned
no adapter implements it yet.
Check how a drawing's views are chosen and laid out.
analyze_geometryanalysisplanned
no adapter implements it yet.
Run a geometry analysis on the active model, such as curvature, draft or wall thickness.
analyze_macromacro_recordingplanned
no adapter implements it yet.
Analyse a macro's structure, dependencies and complexity, and suggest optimisations.
apply_templatetemplate_managementplanned
no adapter implements it yet.
Apply a saved template's properties, dimensions and materials to a model.
arrange_dimensionsdrawing_automationstableMove drawing dimensions out of their views into tidy rows so nothing overlaps, then check the sheet.
auto_center_marksdrawingstableInsert centre marks on the holes, slots and (optionally) fillets of one drawing view.
auto_dimension_viewdrawingplanned
no adapter implements it yet.
Dimension a drawing view automatically with SolidWorks' auto-dimension scheme.
automation_start_macro_recordingautomationplanned
no adapter implements it yet.
Start SolidWorks' macro recorder (the automation family's copy of `start_macro_recording`).
automation_stop_macro_recordingautomationplanned
no adapter implements it yet.
Stop a macro recording and save it (the automation family's copy of `stop_macro_recording`).
batch_apply_templatetemplate_managementplanned
no adapter implements it yet.
Apply one template to every matching model in a folder.
batch_execute_macrosmacro_recordingplanned
no adapter implements it yet.
Run several macros in sequence against the files in a folder.
batch_exportexportplanned
no adapter implements it yet.
Export every matching SolidWorks file in a folder to one format.
batch_file_operationsfile_managementplanned
no adapter implements it yet.
Copy, move, rename or delete SolidWorks files on disk in one call.
batch_process_filesautomationplanned
no adapter implements it yet.
Run one operation (rebuild, save as, export or property update) on every matching file in a folder.
calculate_mass_propertiesanalysisbeta
moments of inertia are labelled kg·mm² but are kg·m²; its input fields are unused.
Measure the active part or assembly's mass properties: volume, surface area, mass, centre of mass and moments of inertia.
check_drawing_compliancedrawing_analysisplanned
no adapter implements it yet.
Check a drawing's title block and sheet format against a drafting standard (ISO, ANSI or DIN).
check_drawing_standardsdrawingplanned
no adapter implements it yet.
Check the active drawing against a drafting standard and score it.
check_interferenceanalysisbeta
`include_hidden` has no effect.
Find where the components of the active assembly overlap (Tools > Interference Detection).
check_sketch_fully_definedsketchingstableCheck whether a sketch is fully defined, under-defined or over-defined.
classify_feature_treefile_managementexperimental
not yet checked by a live test on real SolidWorks.
Classify the active model's kind (part, sheet metal, assembly, drawing and so on) from its feature tree, and suggest how to work on it.
close_modelmodelingstableClose the active document, saving it first only if asked.
compare_drawing_versionsdrawing_analysisexperimental
not yet checked by a live test on real SolidWorks.
Compare two drawing files on disk: whether they are byte-identical, and how their sizes differ.
compare_templatestemplate_managementexperimental
not yet checked by a live test on real SolidWorks.
Compare two template files on disk: whether they are byte-identical, and how their sizes differ.
convert_file_formatfile_managementplanned
no adapter implements it yet.
Convert a SolidWorks file on disk to another format without opening it first.
create_assemblymodelingbeta
`components` is ignored; use `insert_component`.
Create a new, empty assembly document and make it active, ready for `insert_component`.
create_axismodelingstableAdd a reference axis along the model's x, y or z direction, through the origin.
create_cut_extrudemodelingstableCut material from the active part with a closed sketch profile: holes, slots, windows.
create_detail_viewdrawingplanned
no adapter implements it yet.
Magnify a circular area of a drawing view as a detail view.
create_drawingmodelingbeta
`model_path` and `sheet_format` are ignored.
Create a new, empty drawing document and make it active.
create_drawing_viewdrawingstablePlace one named view of a part or assembly on the active drawing sheet.
create_extrusionmodelingbeta
`sketch_name` and `direction` are ignored; it extrudes the sketch closed last.
Extrude the sketch you just closed into a solid boss, added to the active part.
create_loftmodelingstableLoft a solid through two or more closed profile sketches, in order (Insert > Boss/Base > Loft).
create_macro_librarymacro_recordingplanned
no adapter implements it yet.
Set up a shared folder of categorised, documented macros.
create_partmodelingbeta
`material` is ignored; use `set_material`.
Create a new, empty part document and make it active, ready for `create_sketch`.
create_reference_planemodelingstableAdd a reference plane parallel to a plane or flat face, offset by a distance in mm.
create_reference_pointmodelingstableAdd a reference point on an edge (at a distance or percentage along it) or at the centre of a face.
create_revolvemodelingbeta
`sketch_name` and `axis_entity` are ignored; it revolves the sketch closed last around its centreline.
Revolve the sketch you just closed around the centreline drawn in it, adding a solid to the active part.
create_section_viewdrawingplanned
no adapter implements it yet.
Cut a section view along a line across a drawing view.
create_sketchsketchingbeta
echoes a `sketch_name` you pass instead of SolidWorks' own name.
Open a new sketch on a plane of the active part, ready for lines, circles and other sketch entities.
create_sweepmodelingstableSweep a closed profile sketch along a path sketch to make a solid (Insert > Boss/Base > Sweep).
create_technical_drawingdrawingbeta
ignores `template`, `sheet_size`, `title` and `output_path`; it only places three views.
Place a model's three standard views (front, top and side) on the active drawing sheet in one call.
create_templateautomationplanned
no adapter implements it yet.
Create a part, assembly or drawing template file (.prtdot, .asmdot, .drwdot) with standard settings.
delete_featuremodelingbeta
on SolidWorks its message doesn't name the dependent features it removed.
Delete a feature or sketch from the active model, along with the features that depend on it.
discover_solidworks_docsdocs_discoverystableRebuild the SolidWorks API index on purpose. The lookups don't need it.
execute_macromacro_recordingbeta
runs the macro once whatever `repeat_count` says, and only binary .swp files.
Run a binary SolidWorks macro (.swp, or legacy .swb) in the running SolidWorks, calling its `main` procedure once.
execute_workflowautomationplanned
no adapter implements it yet.
Run a named sequence of tool steps, in order or in parallel, with an error policy.
exit_sketchsketchingstableClose the open sketch so a feature can use it.
export_dwgexportbeta
the file extension sets the format; `format_type` and `options` are ignored.
Export the active document to DWG, like File > Save As with the DWG type.
export_flat_patternengineering_datastableExport the active sheet-metal part's flat pattern to DXF or DWG, for laser or waterjet cutting.
export_igesexportbeta
the file extension sets the format; `format_type` and `options` are ignored.
Export the active document to IGES, like File > Save As with the IGES type.
export_imageexportstableSave a picture of the active model in a standard view, as PNG or JPG, at a chosen size.
export_pdfexportbeta
the file extension sets the format; `format_type` and `options` are ignored.
Export the active document to PDF, like File > Save As with the PDF type.
export_stepexportbeta
the file extension sets the format; `format_type` and `options` are ignored.
Export the active document to STEP, like File > Save As with the STEP type.
export_stlexportbeta
the file extension sets the format; `format_type` and `options` are ignored.
Export the active document to STL, like File > Save As with the STL type.
extract_templatetemplate_managementplanned
no adapter implements it yet.
Capture a model's settings (custom properties, dimensions, units) as a reusable template file.
find_related_api_membersdocs_discoverystableFind SolidWorks API members related to an interface or member name.
generate_drawing_packagedrawing_automationstableCreate a complete A3 drawing of a part or assembly in one call, and save it with a PDF.
generate_drawing_reportdrawing_analysisplanned
no adapter implements it yet.
Write a quality report that combines every drawing check.
generate_vba_assembly_insertvba_generationstableWrite a VBA macro that inserts a component into the active assembly at a point.
generate_vba_assembly_matesvba_generationstableWrite a VBA macro that adds a concentric, distance, parallel, perpendicular or coincident mate between two selected faces or edges.
generate_vba_batch_exportvba_generationstableWrite a VBA macro that opens every matching file in a folder and saves a STEP copy of each to another folder.
generate_vba_codeautomationexperimental
not yet checked by a live test on real SolidWorks.
Write a VBA macro skeleton for an operation you describe: the SolidWorks connection, the active document and optional error handling, with the operation itself left as a TODO.
generate_vba_drawing_dimensionsvba_generationstableWrite a VBA macro that adds a dimension to the selected drawing entities and sets its precision.
generate_vba_drawing_viewsvba_generationstableWrite a VBA macro that places a model's standard views (front, top, right) on the active drawing.
generate_vba_extrusionvba_generationstableWrite a VBA macro that makes an extrusion with the full FeatureExtrusion options: both directions, draft, thin wall, end conditions.
generate_vba_file_operationsvba_generationstableWrite a VBA macro that sets a custom property in every configuration, or runs Pack and Go on the active document.
generate_vba_macro_recordervba_generationstableWrite a VBA starting point: a macro skeleton to fill in, or a note on starting and stopping SolidWorks' macro recorder.
generate_vba_part_modelingvba_generationstableWrite a VBA macro for a shell or a fillet on the active part.
generate_vba_revolvevba_generationstableWrite a VBA macro that revolves the selected sketch, with both-direction and thin-wall options.
get_custom_propertiesengineering_datastableRead the active document's custom properties, such as PartNo, Description or Revision.
get_dimensionmodelingexperimental
not yet checked by a live test on real SolidWorks.
Read one dimension of the active model by its full name, e.g. "D1@Sketch1".
get_file_propertiesfile_managementexperimental
not yet checked by a live test on real SolidWorks.
Report the active document's file details: name, path, size, dates, type, configuration and unsaved changes.
get_mass_propertiesanalysisstableMeasure the active part or assembly's mass properties: volume, surface area, mass, centre of mass and moments of inertia.
get_materialengineering_databeta
reads the material's name and library, not its properties.
Report the material assigned to the active part.
get_material_propertiesanalysisplanned
no adapter implements it yet.
Report the physical properties of the active part's material: density, modulus, Poisson's ratio, strength.
get_model_infofile_managementstableReport the active document's title, path, type, active configuration, unsaved changes, feature count and rebuild status.
get_selected_entitiesfile_managementstableDescribe the faces, edges and vertices selected in the SolidWorks window right now.
insert_bom_tabledrawing_automationstableInsert a bill-of-materials table for an assembly view on the active drawing.
insert_componentmodelingstableInsert a part or sub-assembly file into the active assembly at a position in mm.
insert_model_dimensionsdrawing_automationstableBring the model's dimensions into the active drawing's views, each dimension shown once.
list_available_materialsengineering_datastableList the materials in the installed SolidWorks material libraries.
list_componentsmodelingstableList the top-level components of the active assembly by instance name, e.g. "bracket-1".
list_configurationsfile_managementexperimental
not yet checked by a live test on real SolidWorks.
List the names of the active model's configurations.
list_drawing_viewsdrawingstableList the views on the active drawing, by name.
list_featuresfile_managementstableList the feature tree of the active part or assembly, in order.
list_model_dimensionsengineering_datastableList every dimension in the active part or assembly with its full name and value.
list_open_documentsfile_managementstableList every document open in SolidWorks and say which one is active.
list_template_librarytemplate_managementplanned
no adapter implements it yet.
List the templates in the shared template library.
load_assemblyfile_managementexperimental
not yet checked by a live test on real SolidWorks.
Open an assembly (.sldasm) from disk and make it the active document.
load_partfile_managementexperimental
not yet checked by a live test on real SolidWorks.
Open a part (.sldprt) from disk and make it the active document.
lookup_api_interfacedocs_discoverystableList every method and property of a SolidWorks COM interface.
lookup_api_methoddocs_discoverystableLook up one SolidWorks API method or property: parameters, return type, description.
manage_design_tableautomationplanned
no adapter implements it yet.
Create, read or update a design table (an Excel sheet that drives a model's configurations).
manage_file_propertiesfile_managementplanned
no adapter implements it yet.
Read or change the file-level properties of a SolidWorks file on disk.
measure_entitiesengineering_datastableMeasure faces, edges or vertices of the active model with SolidWorks' Measure tool.
mirror_featuremodelingbeta
mirroring a cut is reported as an error.
Mirror solid bodies or features of the active part about a plane.
open_modelmodelingstableOpen a part, assembly or drawing from disk and make it the active document.
optimize_macromacro_recordingplanned
no adapter implements it yet.
Suggest improvements to a macro's code for speed and reliability.
optimize_performanceautomationplanned
no adapter implements it yet.
Review SolidWorks' performance settings and apply faster ones.
pack_and_go_assemblyfile_managementexperimental
not yet checked by a live test on real SolidWorks.
Copy an assembly and every part it references into one folder, with the references updated (SolidWorks Pack and Go).
pattern_circularmodelingbeta
patterning a cut is reported as an error.
Repeat features of the active part around an axis, e.g. a ring of bosses or ribs.
rebuild_modelmodelingstableRebuild the active model and report each feature that fails, with the reason and a fix.
rename_featuremodelingstableRename a feature in the active model's feature tree.
reset_circuit_breakerserver_adminstableLet calls through again to operations the server paused after repeated failures.
save_asfile_managementbeta
replaces an existing file whatever `overwrite` says.
Save the active document under a new path, as a SolidWorks file or in an exchange format such as STEP or IGES.
save_assemblyfile_managementstableSave the active assembly in place, or as a new .sldasm, optionally copying the parts it uses alongside.
save_body_as_partfile_managementstableSave one solid body of the active multibody part as a new part file (Insert > Features > Save Bodies).
save_filefile_managementbeta
`force_save` is ignored.
Save the active document, to its own path or to a new path in its own format.
save_partfile_managementstableSave the active part in place, or as a new .sldprt with the target path checked first.
save_to_template_librarytemplate_managementplanned
no adapter implements it yet.
Add a template to a shared, categorised template library.
search_solidworks_api_helpdocs_discoverystableSearch SolidWorks API interface and member names by keyword.
select_face_edgesmodelingstableSelect every edge of one face of the active part, ready for `add_fillet` or `add_chamfer` with no edge names.
select_featuremodelingstableSelect a feature, sketch, plane or component by name in the active document.
set_custom_propertyengineering_datastableCreate or overwrite one text custom property on the active document, e.g. PartNo or DrawnBy.
set_dimensionmodelingstableChange one length dimension of the active model, in mm, and rebuild.
set_materialengineering_datastableAssign a library material to the active part, e.g. "AISI 1020" or "6061-T6 (SS)".
set_sheet_scaledrawing_automationstableSet the active drawing sheet's scale, e.g. 1:2; views that use the sheet scale follow it.
set_unitsmodelingstableSet the active document's length units: mm, cm, m, in or ft.
sketch_circular_patternsketchingstableRepeat sketch entities around the sketch origin, e.g. a bolt circle.
sketch_linear_patternsketchingstableRepeat sketch entities in a straight line at a fixed spacing.
sketch_mirrorsketchingstableMirror sketch entities about a centreline in the open sketch.
sketch_offsetsketchingstableOffset sketch entities by a distance in mm, outward or inward, e.g. for a wall or a clearance.
sketch_tutorial_simple_holesketchingbeta
suggests a negative-depth extrusion for the hole instead of `create_cut_extrude`.
Demonstrate the sketch steps: draw a 5 mm circle at the origin on the Top plane and close the sketch.
start_macro_recordingmacro_recordingplanned
no adapter implements it yet.
Start SolidWorks' macro recorder, to capture what the user does as a macro.
stop_macro_recordingmacro_recordingplanned
no adapter implements it yet.
Stop the macro recorder and save the recorded macro.
suppress_featuremodelingstableSuppress or unsuppress a feature of the active model; suppressed features stay in the tree but are not built.
tutorial_simple_holesketchingplanned
no adapter implements it yet.
Draw a circle on a plane and cut it as a hole, as one worked example.
undomodelingstableUndo the last operations in the active model (Edit > Undo).
update_sheet_formatdrawingplanned
no adapter implements it yet.
Change the active drawing's sheet format file and title-block fields.
update_title_blockdrawingplanned
no adapter implements it yet.
Fill in the active drawing's title-block fields (title, drawn by, drawing number and so on).
validate_drawing_completenessdrawing_analysisplanned
no adapter implements it yet.
Check that a drawing carries everything needed to manufacture the part.
verify_modelanalysisstableCheck the active part or assembly against what you meant to build, one pass/fail check per expected value.
+
+ +
+ + + + + + + + + + + + + + + + +
InterfaceMethods calledOfCalled
ISldWorks22330
6.7%ActivateDoc3, CloseAllDocuments, CloseDoc, Frame, GetConfigurationNames, GetCurrentLanguage, GetDocuments, GetExecutablePath, GetExportFileData, GetMassProperties, GetOpenDocumentByName, GetUserPreferenceStringValue, GetUserPreferenceToggle, NewAssembly, NewDocument, NewDrawing2, NewPart, OpenDoc6, RevisionNumber, RunMacro2, SetUserPreferenceIntegerValue, SetUserPreferenceToggle
IModelDoc266758
8.7%AddDiameterDimension2, AddDimension, AddDimension2, AddRadialDimension2, AddRelation, ClearSelection2, CreateArc, CreateCenterLine, CreateCircleByRadius, CreateCircularSketchStepAndRepeat, CreateEllipse, CreateLine, CreateLinearSketchStepAndRepeat, EditDelete, EditRebuild3, EditSuppress2, EditUndo, EditUndo2, EditUnsuppress2, FeatureByPositionReverse, FeatureChamferType, FeatureCut3, FeatureCut4, FeatureFillet3, FeatureRevolve2, FirstFeature, ForceRebuild3, GetActiveConfiguration, GetActiveSketch2, GetConfigurationNames, GetFeatureCount, GetLineCount, GetMassProperties, GetNext, GetPathName, GetSaveFlag, GetTitle, GetType, GetUserPreferenceStringValue, GetUserPreferenceToggle, GraphicsRedraw2, InsertAxis2, InsertDatumTag2, InsertGtol, InsertNote, InsertProtrusionBlend2, InsertProtrusionSwept4, InsertSketch, Lock, Parameter, Save, Save3, SaveAs, SaveAs2, SaveAs3, SaveBMP, Select, SetSaveFlag, SetUserPreferenceIntegerValue, SetUserPreferenceToggle, ShowNamedView2, SketchAddConstraints, SketchMirror, SketchOffset2, ViewZoomtofit, ViewZoomtofit2
IModelDocExtension20337
5.9%AddDimension, CreateMassProperty, CreateMeasure, CustomPropertyManager, DeleteSelection2, GetAnnotations, GetMassProperties, GetPackAndGo, GetUserPreferenceInteger, GetUserPreferenceToggle, GetWhatsWrong, GetWhatsWrongCount, InsertBomTable4, SaveAs, SaveAs2, SaveAs3, SavePackAndGo, SelectByID2, SetUserPreferenceInteger, SetUserPreferenceToggle
IPartDoc12167
7.2%ExportToDWG2, FeatureByName, FeatureExtrusion2, FeatureExtrusion3, FeatureExtrusionThin2, FeatureRevolve2, FirstFeature, GetBodies2, GetMaterialPropertyName2, GetPartBox, InsertMirrorFeature, SetMaterialPropertyName2
IAssemblyDoc8198
4.0%AddComponent4, AddComponent5, AddMate5, FeatureByName, GetBox, GetComponentByName, GetComponentCount, GetComponents
IDrawingDoc13272
4.8%ActivateView, AutoDimension, Create1stAngleViews2, Create3rdAngleViews2, CreateDrawViewFromModelView3, EditSheet, EditTemplate, FeatureByName, GetCurrentSheet, GetFirstView, GetViews, InsertModelAnnotations3, SetupSheet5
IFeatureManager16268
6.0%CreateSaveBodyFeature, FeatureCircularPattern5, FeatureCut3, FeatureCut4, FeatureExtrusion2, FeatureExtrusion3, FeatureExtrusionThin2, FeatureFillet3, FeatureRevolve2, GetFeatureCount, InsertFeatureChamfer, InsertMirrorFeature, InsertProtrusionBlend2, InsertProtrusionSwept4, InsertRefPlane, InsertReferencePoint
ISketchManager1283
14.5%CreateArc, CreateCenterLine, CreateCircleByRadius, CreateCircularSketchStepAndRepeat, CreateCornerRectangle, CreateEllipse, CreateLine, CreateLinearSketchStepAndRepeat, CreatePolygon, CreateSpline2, InsertSketch, SketchOffset2
ISelectionMgr461
6.6%CreateSelectData, GetSelectedObject6, GetSelectedObjectCount2, GetSelectedObjectType3
IComponent214147
9.5%CustomPropertyManager, FeatureByName, FirstFeature, GetBodies2, GetBox, GetConfigurationNames, GetID, GetModelDoc2, GetPathName, GetType, IsSuppressed, Select, Select2, Select4
IFeature18115
15.7%GetBox, GetErrorCode2, GetFaces, GetFirstDisplayDimension, GetFirstSubFeature, GetID, GetNameForSelection, GetNextDisplayDimension, GetNextFeature, GetNextSubFeature, GetParents, GetSpecificFeature2, GetTypeName2, IsSuppressed, IsSuppressed2, Parameter, Select, Select2
ISketch3102
2.9%AutoDimension, GetLineCount, GetSketchSegments
+
diff --git a/docs/javascripts/progress.js b/docs/javascripts/progress.js new file mode 100644 index 00000000..f6c04fd5 --- /dev/null +++ b/docs/javascripts/progress.js @@ -0,0 +1,58 @@ +// Level and family filters for the progress page's tool table. +// Without scripts the full table still shows; this only hides rows. + +function setUpProgressFilters() { + const box = document.querySelector('.progress-filters'); + const table = document.querySelector('table[data-progress="tools"]'); + if (!box || !table || box.dataset.ready) return; + box.dataset.ready = '1'; + + const rows = Array.from(table.querySelectorAll('tbody tr')); + const levels = ['stable', 'beta', 'experimental', 'planned']; + const families = Array.from(new Set(rows.map(r => r.dataset.family))).sort(); + const chosen = { level: null, family: null }; + + function apply() { + let shown = 0; + rows.forEach(function (row) { + const ok = (!chosen.level || row.dataset.level === chosen.level) && + (!chosen.family || row.dataset.family === chosen.family); + row.hidden = !ok; + if (ok) shown += 1; + }); + count.textContent = shown + ' of ' + rows.length + ' tools'; + } + + function group(label, key, values) { + const line = document.createElement('div'); + line.className = 'progress-filter-group'; + line.append(label + ': '); + [null].concat(values).forEach(function (value) { + const chip = document.createElement('button'); + chip.type = 'button'; + chip.className = 'progress-chip' + (value && key === 'level' ? ' level-' + value : ''); + chip.textContent = value || 'all'; + chip.setAttribute('aria-pressed', String(value === null)); + chip.addEventListener('click', function () { + chosen[key] = value; + line.querySelectorAll('button').forEach(b => b.setAttribute('aria-pressed', 'false')); + chip.setAttribute('aria-pressed', 'true'); + apply(); + }); + line.append(chip); + }); + return line; + } + + const count = document.createElement('div'); + count.className = 'progress-count'; + box.append(group('Level', 'level', levels), group('Family', 'family', families), count); + box.hidden = false; + apply(); +} + +if (typeof document$ !== 'undefined') { + document$.subscribe(setUpProgressFilters); +} else { + document.addEventListener('DOMContentLoaded', setUpProgressFilters); +} diff --git a/docs/progress.md b/docs/progress.md new file mode 100644 index 00000000..441e7baa --- /dev/null +++ b/docs/progress.md @@ -0,0 +1,46 @@ +# Progress + +How far to trust each tool, and how much of SolidWorks' COM API the project +reaches. Everything on this page is generated from the code by +`python -m solidworks_mcp.progress.generate`, and a test fails when it's out +of date, so it moves with every tool added or fixed. + +![Tools by support level, and core COM API coverage](assets/progress/progress.svg) + +## Support levels + +Every tool has one level. It's in the tool's tags (`level:beta`). A beta or +experimental tool's description opens with it, and its successful results +carry it as `warning`. + +| Level | Meaning | +| --- | --- | +| stable | Checked by a live test on real SolidWorks; every input used; no known fault. | +| beta | Works on SolidWorks, but has a known fault or covers only part of its COM call. The reason is shown with it. | +| experimental | Implemented, but not yet checked on real SolidWorks. | +| planned | Registered, but nothing implements it yet; every call returns `not_supported`. | + +A fixed fault, or a new live test, moves a tool up a level: the table is +`src/solidworks_mcp/tools/support_levels.py`. + +## Every tool + + + +--8<-- "docs/assets/progress/tables.html" + +## How COM coverage is counted + +The core bar counts the methods of twelve interfaces most work goes through +(the application, documents, parts, assemblies, drawings, the feature and +sketch managers, selection, components, features and sketches). The table +under the tools lists them. A method counts as reached when the adapter source names it, +as an attribute (`model.ForceRebuild3`) or a string. The method names come +from a committed snapshot of the SolidWorks type library +(`docs/assets/progress/com_snapshot.json`, refreshed with +`python -m solidworks_mcp.progress.snapshot` after a SolidWorks upgrade). + +A text scan can't tell `IFeature.Name` from `IComponent2.Name`, so the +figures are approximate. The whole-API figure is small because most of the +API's 5,985 method names serve features this project doesn't cover yet +(simulation, routing, PDM and so on). diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index fb0e687a..53007c22 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -83,4 +83,30 @@ /* Status indicators */ .status-completed { color: #28a745; } .status-in-progress { color: #ffc107; } -.status-planned { color: var(--solidworks-gray); } \ No newline at end of file +.status-planned { color: var(--solidworks-gray); } +/* Progress page: support-level badges, filter chips */ +.level, .progress-chip { + display: inline-block; + padding: 0.05em 0.6em; + border-radius: 1em; + font-size: 0.8em; + font-weight: 600; + color: #fff; + background: #6e7681; +} +.level-stable { background: #2ea043; } +.level-beta { background: #d29922; } +.level-experimental { background: #db6d28; } +.level-planned { background: #484f58; } +.progress-filters { margin: 0.5em 0 1em; } +.progress-filter-group { margin: 0.3em 0; } +.progress-chip { + border: 0; + margin: 0.15em; + cursor: pointer; + opacity: 0.55; +} +.progress-chip[aria-pressed="true"] { opacity: 1; outline: 2px solid var(--md-accent-fg-color); } +.progress-count { font-size: 0.8em; color: var(--md-default-fg-color--light); } +table[data-progress] td small { color: var(--md-default-fg-color--light); } +table[data-progress] td code { white-space: nowrap; } diff --git a/mkdocs.yml b/mkdocs.yml index a360be71..a794613a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -19,6 +19,7 @@ validation: nav: - Home: index.md - Demos: demos.md + - Progress: progress.md - Getting Started: - Installation: getting-started/installation.md - Quick Start: getting-started/quickstart.md @@ -219,6 +220,7 @@ extra_css: extra_javascript: - javascripts/mathjax.js + - javascripts/progress.js - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js # Copyright diff --git a/openspec/changes/tool-support-levels-and-progress/design.md b/openspec/changes/tool-support-levels-and-progress/design.md index e25285ce..402b2840 100644 --- a/openspec/changes/tool-support-levels-and-progress/design.md +++ b/openspec/changes/tool-support-levels-and-progress/design.md @@ -70,6 +70,20 @@ that removed nothing) and the level's are joined, the tool's first. Core interfaces, fixed in the generator: `ISldWorks`, `IModelDoc2`, `IModelDocExtension`, `IPartDoc`, `IAssemblyDoc`, `IDrawingDoc`, `IFeatureManager`, `ISketchManager`, `ISelectionMgr`, `IComponent2`, `IFeature`, `ISketch`. Coverage of each = its method names called anywhere in the adapters, out of its methods. +### Where the code lives: `solidworks_mcp.progress` + +Moved from `src/utils/` during implementation: `src/utils` is outside the +coverage run and has no tests, and the counting and drawing code should be +tested like the rest. The package has `com_coverage.py` (snapshot, scan, +counts), `snapshot.py` (`python -m solidworks_mcp.progress.snapshot`, +Windows), `svg.py` and `generate.py` (`python -m +solidworks_mcp.progress.generate`). `sw_type_info` gains two read-only +accessors, `all_interface_methods()` and `type_library_name()`, for the +snapshot. The scan counts names used as attributes or passed as strings +(`flag_members(obj, "EditDelete")`), across every file under `adapters/`. +The page's tables are a generated `tables.html` included with a snippet (a +`.md` under `docs/` would become a page of its own). + ### Generator and check `src/utils/generate_progress.py` writes `docs/assets/progress/progress.svg` and `progress.json` (per tool: name, family, level, reason, first sentence of its description; per core interface: covered and total). `tests/integration/test_progress_up_to_date.py` builds both in memory and compares them with the committed files; on a mismatch it prints the command to run. Alternative, regenerating in CI and committing: rejected, CI shouldn't push to branches. diff --git a/openspec/changes/tool-support-levels-and-progress/tasks.md b/openspec/changes/tool-support-levels-and-progress/tasks.md index 0563bae5..58a05b1a 100644 --- a/openspec/changes/tool-support-levels-and-progress/tasks.md +++ b/openspec/changes/tool-support-levels-and-progress/tasks.md @@ -8,14 +8,14 @@ ## 2. COM coverage -- [ ] 2.1 `src/utils/snapshot_com_api.py` (Windows, by hand) and the committed `docs/assets/progress/com_snapshot.json` -- [ ] 2.2 The adapter scan and core-interface coverage, with tests on a small fixture +- [x] 2.1 `solidworks_mcp.progress.snapshot` (Windows, by hand; see design.md) and the committed `docs/assets/progress/com_snapshot.json` +- [x] 2.2 The adapter scan and core-interface coverage, with tests on a small fixture ## 3. Progress image, data and page -- [ ] 3.1 `src/utils/generate_progress.py`: `progress.svg` and `progress.json`; tests -- [ ] 3.2 `tests/integration/test_progress_up_to_date.py`: fails when either is stale, naming the command -- [ ] 3.3 `docs/progress.md` with the no-script table and `docs/javascripts/progress.js` filters; mkdocs nav; `mkdocs build --strict` +- [x] 3.1 `solidworks_mcp.progress.generate`: `progress.svg`, `progress.json` and `tables.html`; tests +- [x] 3.2 `tests/integration/test_progress_up_to_date.py`: fails when either is stale, naming the command +- [x] 3.3 `docs/progress.md` with the no-script table and `docs/javascripts/progress.js` filters; mkdocs nav; `mkdocs build --strict` - [ ] 3.4 Show the user the SVG and the page before wiring them into the README ## 4. README and docs diff --git a/src/solidworks_mcp/adapters/sw_type_info.py b/src/solidworks_mcp/adapters/sw_type_info.py index f378d9cc..829860a8 100644 --- a/src/solidworks_mcp/adapters/sw_type_info.py +++ b/src/solidworks_mcp/adapters/sw_type_info.py @@ -145,6 +145,28 @@ def interface_method_names(interface: str) -> frozenset[str]: return _interface_methods.get(interface, frozenset()) +def all_interface_methods() -> dict[str, frozenset[str]]: + """Every interface's method names, as the type library declares them. + + Returns: + dict[str, frozenset[str]]: Interface name to method names; empty if + the wrapper isn't available. + """ + _ensure_loaded() + return dict(_interface_methods) + + +def type_library_name() -> str | None: + """The loaded gen_py wrapper's module name, which carries its version. + + Returns: + str | None: e.g. ``"win32com.gen_py.x0x34x0"``; None if the + wrapper isn't available. + """ + _ensure_loaded() + return None if _wrapper_module is None else _wrapper_module.__name__ + + # Interface sets most tool operations need to flag. When acquiring a doc # dispatch, always flag IModelDoc2 (base) plus the subclass that matches the # doc type. For the app root, flag ISldWorks. diff --git a/src/solidworks_mcp/progress/__init__.py b/src/solidworks_mcp/progress/__init__.py new file mode 100644 index 00000000..f76a4ff9 --- /dev/null +++ b/src/solidworks_mcp/progress/__init__.py @@ -0,0 +1,8 @@ +"""The project's progress: tools by support level, and SolidWorks COM coverage. + +Run ``python -m solidworks_mcp.progress.generate`` from a checkout to +regenerate the README image and the docs page's data under +``docs/assets/progress/``; ``python -m solidworks_mcp.progress.snapshot`` +(Windows, with SolidWorks installed) refreshes the type-library snapshot +they are counted against. +""" diff --git a/src/solidworks_mcp/progress/com_coverage.py b/src/solidworks_mcp/progress/com_coverage.py new file mode 100644 index 00000000..87bde201 --- /dev/null +++ b/src/solidworks_mcp/progress/com_coverage.py @@ -0,0 +1,186 @@ +"""How much of the SolidWorks COM API the adapters call, counted by text. + +The method names come from a committed snapshot of the type library, so +counting needs no SolidWorks. A name counts as called when the adapter +source uses it as an attribute (``model.ForceRebuild3``) or passes it as a +string (``flag_members(obj, "EditDelete")``). A name scan can't tell +``IFeature.Name`` from ``IComponent2.Name``, so the figures are approximate. +""" + +from __future__ import annotations + +import json +import re +from collections.abc import Iterable, Mapping +from dataclasses import dataclass +from pathlib import Path + +#: The interfaces most modelling, assembly and drawing work goes through. +CORE_INTERFACES = ( + "ISldWorks", + "IModelDoc2", + "IModelDocExtension", + "IPartDoc", + "IAssemblyDoc", + "IDrawingDoc", + "IFeatureManager", + "ISketchManager", + "ISelectionMgr", + "IComponent2", + "IFeature", + "ISketch", +) + +_ATTRIBUTE = re.compile(r"\.([A-Z]\w*)\b") +_QUOTED = re.compile(r"[\"']([A-Z]\w+)[\"']") + + +@dataclass(frozen=True) +class InterfaceCoverage: + """The methods of one interface that the adapters call. + + Attributes: + name: The interface, e.g. ``IModelDoc2``. + covered: The called method names, sorted. + total: How many methods the interface has. + """ + + name: str + covered: tuple[str, ...] + total: int + + +@dataclass(frozen=True) +class ComCoverage: + """Coverage of the core interfaces and of the whole API. + + Attributes: + interfaces: One entry per core interface, in ``CORE_INTERFACES`` order. + api_covered: Distinct method names called, across the whole API. + api_total: Distinct method names in the whole API. + type_library: The snapshot's source, which carries its version. + """ + + interfaces: tuple[InterfaceCoverage, ...] + api_covered: int + api_total: int + type_library: str + + @property + def core_covered(self) -> int: + """Called methods summed over the core interfaces.""" + return sum(len(i.covered) for i in self.interfaces) + + @property + def core_total(self) -> int: + """Methods summed over the core interfaces.""" + return sum(i.total for i in self.interfaces) + + +@dataclass(frozen=True) +class Snapshot: + """The type library's interface and method names. + + Attributes: + type_library: Where it came from (the gen_py wrapper's name). + interfaces: Interface name to its method names. + """ + + type_library: str + interfaces: Mapping[str, frozenset[str]] + + def to_json(self) -> str: + """The snapshot as committed: sorted, one interface per line. + + Returns: + str: JSON text ending in a newline. + """ + lines = [ + f" {json.dumps(name)}: {json.dumps(sorted(methods))}" + for name, methods in sorted(self.interfaces.items()) + ] + body = ",\n".join(lines) + return ( + f'{{\n "type_library": {json.dumps(self.type_library)},\n' + f' "interfaces": {{\n{body}\n }}\n}}\n' + ) + + @classmethod + def from_json(cls, text: str) -> Snapshot: + """Read a snapshot written by :meth:`to_json`. + + Args: + text: The JSON text. + + Returns: + Snapshot: The parsed snapshot. + """ + raw = json.loads(text) + return cls( + raw["type_library"], + {name: frozenset(methods) for name, methods in raw["interfaces"].items()}, + ) + + @classmethod + def load(cls, path: Path) -> Snapshot: + """Read the committed snapshot file. + + Args: + path: The snapshot's path. + + Returns: + Snapshot: The parsed snapshot. + """ + return cls.from_json(path.read_text(encoding="utf-8")) + + +def called_names(sources: Iterable[str]) -> set[str]: + """Capitalised names the source uses as attributes or string literals. + + Args: + sources: The text of each source file. + + Returns: + set[str]: Candidate COM member names (not yet matched to the API). + """ + found: set[str] = set() + for text in sources: + found.update(_ATTRIBUTE.findall(text)) + found.update(_QUOTED.findall(text)) + return found + + +def adapter_sources(adapters_dir: Path) -> list[str]: + """The text of every Python file under the adapters package. + + Args: + adapters_dir: ``src/solidworks_mcp/adapters``. + + Returns: + list[str]: One string per file, in path order. + """ + return [p.read_text(encoding="utf-8") for p in sorted(adapters_dir.rglob("*.py"))] + + +def measure(snapshot: Snapshot, called: set[str]) -> ComCoverage: + """Coverage of the core interfaces and the whole API. + + Args: + snapshot: The type library's names. + called: Names found in the adapter source. + + Returns: + ComCoverage: The counts. + """ + every = set().union(*snapshot.interfaces.values()) + interfaces = tuple( + InterfaceCoverage( + name, + tuple(sorted(snapshot.interfaces.get(name, frozenset()) & called)), + len(snapshot.interfaces.get(name, frozenset())), + ) + for name in CORE_INTERFACES + ) + return ComCoverage( + interfaces, len(every & called), len(every), snapshot.type_library + ) diff --git a/src/solidworks_mcp/progress/generate.py b/src/solidworks_mcp/progress/generate.py new file mode 100644 index 00000000..3f6245c5 --- /dev/null +++ b/src/solidworks_mcp/progress/generate.py @@ -0,0 +1,224 @@ +"""Regenerate the progress image, its data and the docs page's tables. + +Run from the repository root after adding a tool, changing a level or +calling new COM methods in an adapter:: + + python -m solidworks_mcp.progress.generate + +It writes, under ``docs/assets/progress/``: + +- ``progress.svg``: the README image; +- ``progress.json``: every tool's family, level and summary, and the + coverage of each core interface; +- ``tables.html``: the docs page's HTML tables, readable without scripts. + +``tests/integration/test_progress_up_to_date.py`` fails when any of them is +out of date. +""" + +from __future__ import annotations + +import asyncio +import json +from collections import Counter +from dataclasses import dataclass +from html import escape +from pathlib import Path +from typing import Any + +from fastmcp import FastMCP +from fastmcp.utilities.docstring_parsing import parse_docstring + +from ..adapters.mock_adapter import MockSolidWorksAdapter +from ..tools import register_tools +from ..tools.support_levels import SUPPORT_LEVELS, SupportLevel +from ..tools.tool_boundary import tool_family +from .com_coverage import ComCoverage, Snapshot, adapter_sources, called_names, measure +from .snapshot import SNAPSHOT_PATH +from .svg import render + +#: The generated files, relative to the repository root. +OUTPUT_DIR = Path("docs/assets/progress") +OUTPUTS = ("progress.svg", "progress.json", "tables.html") + +# Material for MkDocs wraps Markdown tables in these so wide ones scroll; +# raw HTML tables need them written out. +_WRAP_OPEN = '
' +_WRAP_CLOSE = "
" + + +@dataclass(frozen=True) +class ToolRow: + """One registered tool, as the progress page lists it. + + Attributes: + name: The tool name. + family: Its family (the module that defines it). + level: Its support level. + reason: Why it isn't stable (empty when it is). + summary: The first paragraph of its docstring. + """ + + name: str + family: str + level: SupportLevel + reason: str + summary: str + + +async def tool_rows() -> list[ToolRow]: + """Every registered tool, sorted by name. + + Returns: + list[ToolRow]: One row per tool. + """ + mcp = FastMCP("progress") + await register_tools(mcp, MockSolidWorksAdapter({}), {}) + rows = [] + for tool in await mcp.list_tools(): + support = SUPPORT_LEVELS[tool.name] + text = parse_docstring(tool.fn).description or "" + rows.append( + ToolRow( + tool.name, + tool_family(tool.fn), + support.level, + support.reason, + " ".join(text.split("\n\n", 1)[0].split()), + ) + ) + return sorted(rows, key=lambda r: r.name) + + +def progress_json(rows: list[ToolRow], coverage: ComCoverage) -> str: + """The data behind the image and the page. + + Args: + rows: Every tool. + coverage: The COM coverage. + + Returns: + str: JSON text ending in a newline. + """ + counts = Counter(r.level for r in rows) + data: dict[str, Any] = { + "tools": { + "total": len(rows), + "by_level": {level.value: counts[level] for level in SupportLevel}, + "list": [ + { + "name": r.name, + "family": r.family, + "level": r.level.value, + "reason": r.reason, + "summary": r.summary, + } + for r in rows + ], + }, + "com": { + "type_library": coverage.type_library, + "core": {"covered": coverage.core_covered, "total": coverage.core_total}, + "api": {"covered": coverage.api_covered, "total": coverage.api_total}, + "interfaces": [ + {"name": i.name, "covered": list(i.covered), "total": i.total} + for i in coverage.interfaces + ], + }, + } + return json.dumps(data, indent=1, ensure_ascii=False) + "\n" + + +def tables_html(rows: list[ToolRow], coverage: ComCoverage) -> str: + """The page's two tables, as HTML the docs page includes. + + Each tool row carries ``data-level`` and ``data-family`` for the filter + script, and its level as text as well as colour. + + Args: + rows: Every tool. + coverage: The COM coverage. + + Returns: + str: The HTML. + """ + out = [ + _WRAP_OPEN, + '', + "" + "", + "", + ] + for r in rows: + note = f"
{escape(r.reason)}" if r.reason else "" + out.append( + f'' + f'' + f"" + f'" + ) + out += ["", "
ToolFamilyLevelWhat it does
{r.name}{r.family}{r.level.value}' + f"{note}{escape(r.summary)}
", _WRAP_CLOSE, ""] + out += [ + _WRAP_OPEN, + '', + "" + "", + "", + ] + for i in coverage.interfaces: + pct = 100.0 * len(i.covered) / i.total if i.total else 0.0 + names = ", ".join(i.covered) + out.append( + f"" + f"" + ) + out += ["", "
InterfaceMethods calledOfCalled
{i.name}{len(i.covered)}{i.total}
{pct:.1f}%" + f"{escape(names) or 'none yet'}
", _WRAP_CLOSE, ""] + return "\n".join(out) + + +def build(root: Path) -> dict[str, str]: + """Every generated file's content, from the code under ``root``. + + Args: + root: The repository root. + + Returns: + dict[str, str]: File name (in ``OUTPUT_DIR``) to content. + """ + rows = asyncio.run(tool_rows()) + coverage = measure( + Snapshot.load(root / SNAPSHOT_PATH), + called_names(adapter_sources(root / "src/solidworks_mcp/adapters")), + ) + counts = Counter(r.level for r in rows) + return { + "progress.svg": render(counts, coverage), + "progress.json": progress_json(rows, coverage), + "tables.html": tables_html(rows, coverage), + } + + +def main(root: Path | None = None) -> list[Path]: + """Write the generated files under ``root``. + + Args: + root: The repository root; the current directory when omitted. + + Returns: + list[Path]: The files written. + """ + base = root or Path.cwd() + written = [] + for name, content in build(base).items(): + path = base / OUTPUT_DIR / name + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(content, encoding="utf-8", newline="\n") + written.append(path) + return written + + +if __name__ == "__main__": + for written_path in main(): + print(written_path) diff --git a/src/solidworks_mcp/progress/snapshot.py b/src/solidworks_mcp/progress/snapshot.py new file mode 100644 index 00000000..7bcf46c1 --- /dev/null +++ b/src/solidworks_mcp/progress/snapshot.py @@ -0,0 +1,58 @@ +"""Refresh the committed type-library snapshot (Windows, SolidWorks installed). + +Run after a SolidWorks upgrade, then regenerate the progress files:: + + python -m solidworks_mcp.progress.snapshot + python -m solidworks_mcp.progress.generate + +It reads the pywin32 gen_py wrapper of ``sldworks.tlb``; SolidWorks itself +doesn't need to be running. +""" + +from __future__ import annotations + +from pathlib import Path + +from ..adapters import sw_type_info +from .com_coverage import Snapshot + +#: Where the snapshot is committed, relative to the repository root. +SNAPSHOT_PATH = Path("docs/assets/progress/com_snapshot.json") + + +def take_snapshot() -> Snapshot: + """Read the installed type library's interface and method names. + + Returns: + Snapshot: The names, with the wrapper's module name as its source. + + Raises: + RuntimeError: If the gen_py wrapper isn't available. + """ + library = sw_type_info.type_library_name() + if library is None: + raise RuntimeError( + "The SolidWorks type library isn't available: run this on Windows " + "with SolidWorks and pywin32 installed." + ) + # The module name carries the IID and version; keep the part after gen_py. + return Snapshot(library.rsplit(".", 1)[-1], sw_type_info.all_interface_methods()) + + +def main(root: Path | None = None) -> Path: + """Write the snapshot under ``root``. + + Args: + root: The repository root; the current directory when omitted. + + Returns: + Path: The file written. + """ + path = (root or Path.cwd()) / SNAPSHOT_PATH + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(take_snapshot().to_json(), encoding="utf-8", newline="\n") + return path + + +if __name__ == "__main__": + print(main()) diff --git a/src/solidworks_mcp/progress/svg.py b/src/solidworks_mcp/progress/svg.py new file mode 100644 index 00000000..b81a172f --- /dev/null +++ b/src/solidworks_mcp/progress/svg.py @@ -0,0 +1,188 @@ +"""The README's progress image: two glossy, striped bars on a dark panel. + +Hand-built SVG with no dependencies. It draws its own dark panel, so it +reads the same in GitHub's light and dark themes. The stripes drift slowly +(an SVG animation, which GitHub's image proxy keeps). +""" + +from __future__ import annotations + +from collections.abc import Mapping +from html import escape + +from ..tools.support_levels import SupportLevel +from .com_coverage import CORE_INTERFACES, ComCoverage + +#: Fill colour per level; planned is left as the empty track. +LEVEL_COLOURS: dict[SupportLevel, str] = { + SupportLevel.STABLE: "#2ea043", + SupportLevel.BETA: "#d29922", + SupportLevel.EXPERIMENTAL: "#db6d28", + SupportLevel.PLANNED: "#484f58", +} + +_WIDTH, _HEIGHT = 840, 236 +_X, _BAR_W, _BAR_H = 28, 784, 24 +_FONT = "font-family=\"-apple-system,'Segoe UI',Helvetica,Arial,sans-serif\"" + +_DEFS = """ + + + + + + + + + + + + + + + + + + + +""" + + +def _pct(part: int, whole: int) -> float: + return 100.0 * part / whole if whole else 0.0 + + +def _text( + x: float, + y: float, + body: str, + size: int, + fill: str, + anchor: str = "start", + weight: str = "400", +) -> str: + return ( + f'{escape(body)}' + ) + + +def _track(y: float, clip: str, fills: list[tuple[float, float, str]]) -> list[str]: + """One bar: track, coloured segments, stripes and gloss over the filled part.""" + r = _BAR_H / 2 + filled = sum(w for _, w, _ in fills) + parts = [ + f'', + f'', + ] + parts += [ + f'' + for x, w, c in fills + ] + for paint in ("url(#stripes)", "url(#gloss)"): + parts.append( + f'' + ) + parts.append("") + parts.append( + f'' + ) + return parts + + +def render(levels: Mapping[SupportLevel, int], coverage: ComCoverage) -> str: + """The progress image. + + Args: + levels: How many tools have each support level. + coverage: COM coverage of the core interfaces and the whole API. + + Returns: + str: The SVG document. + """ + total = sum(levels.values()) + y_tools, y_com = 54, 156 + out = [ + f'', + _DEFS.format( + x0=_X, + x1=_X + _BAR_W, + y1=y_tools, + y2=y_com, + w=_BAR_W, + h=_BAR_H, + r=_BAR_H / 2, + ), + f'', + ] + + ready = levels.get(SupportLevel.STABLE, 0) + levels.get(SupportLevel.BETA, 0) + out.append(_text(_X, 40, f"MCP tools: {total}", 16, "#e6edf3", weight="600")) + out.append( + _text( + _X + _BAR_W, + 40, + f"{_pct(ready, total):.0f}% work on SolidWorks today", + 13, + "#8b949e", + "end", + ) + ) + fills, x = [], float(_X) + for level in (SupportLevel.STABLE, SupportLevel.BETA, SupportLevel.EXPERIMENTAL): + width = _BAR_W * levels.get(level, 0) / total if total else 0.0 + fills.append((x, width, LEVEL_COLOURS[level])) + x += width + out += _track(y_tools, "track-tools", fills) + + lx = float(_X) + for level in SupportLevel: + label = f"{level.value} {levels.get(level, 0)}" + out.append( + f'' + ) + out.append(_text(lx + 16, y_tools + 47, label, 12, "#c9d1d9")) + lx += 24 + 7.2 * len(label) + + core_pct = _pct(coverage.core_covered, coverage.core_total) + out.append( + _text( + _X, + y_com - 14, + f"Core SolidWorks COM API ({len(CORE_INTERFACES)} interfaces)", + 16, + "#e6edf3", + weight="600", + ) + ) + out.append( + _text( + _X + _BAR_W, + y_com - 14, + f"{coverage.core_covered:,} of {coverage.core_total:,} methods · {core_pct:.1f}%", + 13, + "#8b949e", + "end", + ) + ) + out += _track( + y_com, "track-com", [(float(_X), _BAR_W * core_pct / 100, "url(#heat)")] + ) + api_pct = _pct(coverage.api_covered, coverage.api_total) + out.append( + _text( + _X, + y_com + 50, + f"Whole API: {coverage.api_covered:,} of {coverage.api_total:,} method " + f"names ({api_pct:.1f}%), counted by a text scan of the adapters.", + 11, + "#6e7681", + ) + ) + out.append("") + return "\n".join(out) + "\n" diff --git a/tests/integration/test_progress_up_to_date.py b/tests/integration/test_progress_up_to_date.py new file mode 100644 index 00000000..7e22e1eb --- /dev/null +++ b/tests/integration/test_progress_up_to_date.py @@ -0,0 +1,30 @@ +"""The committed progress image and data match the code (spec: docs/coverage-progress). + +Adding a tool, changing a level or calling new COM methods in an adapter +changes them; regenerate with ``python -m solidworks_mcp.progress.generate``. +""" + +from __future__ import annotations + +from pathlib import Path + +import pytest + +from solidworks_mcp.progress.generate import OUTPUT_DIR, build + +_ROOT = Path(__file__).resolve().parents[2] +_COMMAND = "python -m solidworks_mcp.progress.generate" + + +@pytest.fixture(scope="module") +def generated() -> dict[str, str]: + return build(_ROOT) + + +@pytest.mark.parametrize("name", ["progress.svg", "progress.json", "tables.html"]) +def test_the_committed_file_is_up_to_date(name: str, generated: dict[str, str]) -> None: + committed = (_ROOT / OUTPUT_DIR / name).read_text(encoding="utf-8") + + assert committed == generated[name], ( + f"{OUTPUT_DIR / name} is out of date; run `{_COMMAND}` and commit it." + ) diff --git a/tests/solidworks_mcp/adapters/test_sw_type_info.py b/tests/solidworks_mcp/adapters/test_sw_type_info.py index 952c6275..7386e95d 100644 --- a/tests/solidworks_mcp/adapters/test_sw_type_info.py +++ b/tests/solidworks_mcp/adapters/test_sw_type_info.py @@ -245,3 +245,33 @@ def _ensure_module(_iid, _lcid, major, _minor): sw_type_info._load_wrapper() assert sw_type_info._wrapper_module is generated + + +def test_all_interface_methods_and_library_name_when_loaded(monkeypatch) -> None: + """The public reads return a copy of the loaded names and the wrapper name.""" + from types import SimpleNamespace + + from solidworks_mcp.adapters import sw_type_info + + loaded = {"IFeature": frozenset({"GetNextFeature"})} + monkeypatch.setattr(sw_type_info, "_interface_methods", loaded) + monkeypatch.setattr( + sw_type_info, "_wrapper_module", SimpleNamespace(__name__="gen_py.x0x34x0") + ) + + methods = sw_type_info.all_interface_methods() + + assert methods == loaded and methods is not loaded + assert sw_type_info.type_library_name() == "gen_py.x0x34x0" + + +def test_library_name_is_none_without_the_wrapper(monkeypatch) -> None: + """With no wrapper and no pywin32, both reads are empty.""" + from solidworks_mcp.adapters import sw_type_info + + monkeypatch.setattr(sw_type_info, "PYWIN32_AVAILABLE", False) + monkeypatch.setattr(sw_type_info, "_wrapper_module", None) + monkeypatch.setattr(sw_type_info, "_interface_methods", {}) + + assert sw_type_info.type_library_name() is None + assert sw_type_info.all_interface_methods() == {} diff --git a/tests/solidworks_mcp/progress/__init__.py b/tests/solidworks_mcp/progress/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/solidworks_mcp/progress/test_com_coverage.py b/tests/solidworks_mcp/progress/test_com_coverage.py new file mode 100644 index 00000000..02d07286 --- /dev/null +++ b/tests/solidworks_mcp/progress/test_com_coverage.py @@ -0,0 +1,59 @@ +"""COM coverage counted from a snapshot and a source scan (spec: docs/coverage-progress).""" + +from __future__ import annotations + +from pathlib import Path + +from solidworks_mcp.progress.com_coverage import ( + CORE_INTERFACES, + Snapshot, + adapter_sources, + called_names, + measure, +) + +_SNAPSHOT = Snapshot( + "lib-x0x34x0", + { + "IModelDoc2": frozenset({"ForceRebuild3", "GetTitle", "EditUndo2"}), + "IFeature": frozenset({"GetNextFeature", "GetTitle"}), + "IOther": frozenset({"Obscure"}), + }, +) + + +def test_names_used_as_attributes_or_strings_are_found() -> None: + source = 'model.ForceRebuild3(True)\nflag_members(obj, "EditUndo2")\nx.lower()' + + assert called_names([source]) == {"ForceRebuild3", "EditUndo2"} + + +def test_coverage_counts_core_interfaces_and_the_whole_api() -> None: + coverage = measure(_SNAPSHOT, {"ForceRebuild3", "GetTitle", "NotInTheApi"}) + + by_name = {i.name: i for i in coverage.interfaces} + assert [i.name for i in coverage.interfaces] == list(CORE_INTERFACES) + assert by_name["IModelDoc2"].covered == ("ForceRebuild3", "GetTitle") + assert by_name["IModelDoc2"].total == 3 + assert by_name["ISketch"].total == 0 + assert (coverage.core_covered, coverage.core_total) == (3, 5) + # Distinct names: ForceRebuild3, GetTitle, EditUndo2, GetNextFeature, Obscure. + assert (coverage.api_covered, coverage.api_total) == (2, 5) + assert coverage.type_library == "lib-x0x34x0" + + +def test_the_snapshot_round_trips_through_its_file(tmp_path: Path) -> None: + path = tmp_path / "snap.json" + path.write_text(_SNAPSHOT.to_json(), encoding="utf-8") + + assert Snapshot.load(path) == _SNAPSHOT + assert ' "IFeature": ["GetNextFeature", "GetTitle"],' in _SNAPSHOT.to_json() + + +def test_adapter_sources_reads_every_file_below(tmp_path: Path) -> None: + (tmp_path / "sub").mkdir() + (tmp_path / "a.py").write_text("A", encoding="utf-8") + (tmp_path / "sub" / "b.py").write_text("B", encoding="utf-8") + (tmp_path / "notes.txt").write_text("C", encoding="utf-8") + + assert adapter_sources(tmp_path) == ["A", "B"] diff --git a/tests/solidworks_mcp/progress/test_generate.py b/tests/solidworks_mcp/progress/test_generate.py new file mode 100644 index 00000000..ff81696b --- /dev/null +++ b/tests/solidworks_mcp/progress/test_generate.py @@ -0,0 +1,102 @@ +"""Generating the progress files (spec: docs/coverage-progress).""" + +from __future__ import annotations + +import json +from pathlib import Path + +import pytest + +from solidworks_mcp.progress import generate +from solidworks_mcp.progress.com_coverage import ( + ComCoverage, + InterfaceCoverage, + Snapshot, +) +from solidworks_mcp.progress.snapshot import SNAPSHOT_PATH +from solidworks_mcp.tools.support_levels import SUPPORT_LEVELS, SupportLevel + +_ROWS = [ + generate.ToolRow("a_tool", "modeling", SupportLevel.BETA, "x .", "Does a."), + generate.ToolRow("b_tool", "export", SupportLevel.STABLE, "", "Does b & c."), +] +_COVERAGE = ComCoverage( + ( + InterfaceCoverage("IModelDoc2", ("GetTitle",), 4), + InterfaceCoverage("ISketch", (), 0), + ), + 1, + 9, + "lib", +) + + +def _repo(tmp_path: Path) -> Path: + """A minimal checkout: a snapshot and one adapter file.""" + snap = tmp_path / SNAPSHOT_PATH + snap.parent.mkdir(parents=True) + snap.write_text( + Snapshot("lib", {"IModelDoc2": frozenset({"GetTitle", "Save3"})}).to_json(), + encoding="utf-8", + ) + adapters = tmp_path / "src/solidworks_mcp/adapters" + adapters.mkdir(parents=True) + (adapters / "a.py").write_text("model.GetTitle()", encoding="utf-8") + return tmp_path + + +@pytest.mark.asyncio +async def test_every_registered_tool_gets_a_row() -> None: + rows = await generate.tool_rows() + + assert [r.name for r in rows] == sorted(SUPPORT_LEVELS) + extrude = next(r for r in rows if r.name == "create_extrusion") + assert extrude.family == "modeling" + assert extrude.level is SupportLevel.BETA + assert extrude.summary.startswith("Extrude the sketch you just closed") + assert "\n" not in extrude.summary + + +def test_the_data_counts_levels_and_lists_tools() -> None: + data = json.loads(generate.progress_json(_ROWS, _COVERAGE)) + + assert data["tools"]["total"] == 2 + assert data["tools"]["by_level"] == { + "stable": 1, + "beta": 1, + "experimental": 0, + "planned": 0, + } + assert data["tools"]["list"][0]["reason"] == "x ." + assert data["com"]["core"] == {"covered": 1, "total": 4} + assert data["com"]["api"] == {"covered": 1, "total": 9} + assert data["com"]["interfaces"][0]["covered"] == ["GetTitle"] + + +def test_the_tables_carry_filters_and_escape_text() -> None: + html = generate.tables_html(_ROWS, _COVERAGE) + + assert '' in html + assert 'beta' in html + assert "x <y>." in html + assert "Does b & c." in html + assert "25.0%GetTitle" in html + assert "0.0%none yet" in html + + +def test_main_writes_every_output(tmp_path: Path) -> None: + root = _repo(tmp_path) + + written = generate.main(root) + + assert [p.name for p in written] == list(generate.OUTPUTS) + data = json.loads((root / generate.OUTPUT_DIR / "progress.json").read_text()) + assert data["com"]["api"] == {"covered": 1, "total": 2} + + +def test_main_defaults_to_the_current_directory( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + monkeypatch.chdir(_repo(tmp_path)) + + assert generate.main()[0] == tmp_path / generate.OUTPUT_DIR / "progress.svg" diff --git a/tests/solidworks_mcp/progress/test_snapshot.py b/tests/solidworks_mcp/progress/test_snapshot.py new file mode 100644 index 00000000..356ac863 --- /dev/null +++ b/tests/solidworks_mcp/progress/test_snapshot.py @@ -0,0 +1,50 @@ +"""Refreshing the type-library snapshot (spec: docs/coverage-progress).""" + +from __future__ import annotations + +from pathlib import Path + +import pytest + +from solidworks_mcp.adapters import sw_type_info +from solidworks_mcp.progress import snapshot +from solidworks_mcp.progress.com_coverage import Snapshot + + +def test_the_snapshot_records_the_library_and_its_names( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + monkeypatch.setattr( + sw_type_info, "type_library_name", lambda: "win32com.gen_py.IIDx0x34x0" + ) + monkeypatch.setattr( + sw_type_info, + "all_interface_methods", + lambda: {"IFeature": frozenset({"GetNextFeature"})}, + ) + + path = snapshot.main(tmp_path) + + assert path == tmp_path / snapshot.SNAPSHOT_PATH + assert Snapshot.load(path) == Snapshot( + "IIDx0x34x0", {"IFeature": frozenset({"GetNextFeature"})} + ) + + +def test_main_defaults_to_the_current_directory( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + monkeypatch.chdir(tmp_path) + monkeypatch.setattr(sw_type_info, "type_library_name", lambda: "gen_py.L") + monkeypatch.setattr(sw_type_info, "all_interface_methods", dict) + + assert snapshot.main() == tmp_path / snapshot.SNAPSHOT_PATH + + +def test_without_the_type_library_it_says_where_to_run( + monkeypatch: pytest.MonkeyPatch, +) -> None: + monkeypatch.setattr(sw_type_info, "type_library_name", lambda: None) + + with pytest.raises(RuntimeError, match="Windows with SolidWorks"): + snapshot.take_snapshot() diff --git a/tests/solidworks_mcp/progress/test_svg.py b/tests/solidworks_mcp/progress/test_svg.py new file mode 100644 index 00000000..dfa49e71 --- /dev/null +++ b/tests/solidworks_mcp/progress/test_svg.py @@ -0,0 +1,59 @@ +"""The progress image (spec: docs/coverage-progress).""" + +from __future__ import annotations + +from xml.etree import ElementTree + +from solidworks_mcp.progress.com_coverage import ComCoverage, InterfaceCoverage +from solidworks_mcp.progress.svg import LEVEL_COLOURS, render +from solidworks_mcp.tools.support_levels import SupportLevel + +_COVERAGE = ComCoverage( + (InterfaceCoverage("IModelDoc2", ("GetTitle",), 4),), 3, 12, "lib" +) +_LEVELS = { + SupportLevel.STABLE: 6, + SupportLevel.BETA: 2, + SupportLevel.EXPERIMENTAL: 1, + SupportLevel.PLANNED: 1, +} + + +def test_the_image_is_valid_svg_with_its_own_dark_panel() -> None: + svg = render(_LEVELS, _COVERAGE) + + root = ElementTree.fromstring(svg) + assert root.tag.endswith("svg") + assert 'fill="url(#panel)"' in svg + + +def test_the_image_states_the_counts_as_text() -> None: + svg = render(_LEVELS, _COVERAGE) + + for text in ( + "MCP tools: 10", + "80% work on SolidWorks today", + "stable 6", + "planned 1", + "1 of 4 methods · 25.0%", + "Whole API: 3 of 12 method names (25.0%)", + ): + assert text in svg, text + + +def test_each_level_below_planned_fills_its_share_of_the_bar() -> None: + svg = render(_LEVELS, _COVERAGE) + + # 784 px track: stable 6/10, beta 2/10, experimental 1/10. + assert ( + f'width="470.4" height="24" fill="{LEVEL_COLOURS[SupportLevel.STABLE]}"' in svg + ) + assert f'width="156.8" height="24" fill="{LEVEL_COLOURS[SupportLevel.BETA]}"' in svg + assert 'x="655.2" y="54" width="78.4"' in svg + + +def test_an_empty_project_draws_empty_bars() -> None: + svg = render({}, ComCoverage((), 0, 0, "lib")) + + assert "MCP tools: 0" in svg + assert "0 of 0 methods · 0.0%" in svg From 6f105a65c9e64d0c5f960b442892f29bb270158e Mon Sep 17 00:00:00 2001 From: Andrew Bartels Date: Fri, 6 Nov 2026 20:59:02 -0800 Subject: [PATCH 3/3] docs: progress image and "two tools in one" at the top of the README; levels in the skill and standard The README opens with the progress image, linking to the Progress page, and says what the project is: a Python interface for scripting SolidWorks and an MCP server on top of it. The agent skill and the description standard explain the levels and the `warning`; the queue says a fixed fault moves its tool up a level. CHANGELOG updated. --- CHANGELOG.md | 17 +++++++++++++ README.md | 24 +++++++++++++++++++ docs/agents/tool-description-standard.md | 18 ++++++++++++++ .../tool-support-levels-and-progress/tasks.md | 10 ++++---- openspec/queue.md | 17 +++++++------ .../skills/solidworks-mcp/SKILL.md | 12 +++++++--- .../references/errors-and-limits.md | 8 +++---- 7 files changed, 87 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a552a75..c47cb0c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- **Support levels for every tool** (#79). Each tool is `stable` (checked + live, no known fault), `beta` (a known fault or partial COM coverage), + `experimental` (not yet checked live) or `planned` (not implemented), + in one table, `tools/support_levels.py`. The level is in the tool's tags + (`level:beta`); a beta or experimental tool's description opens with it, + and its successful results carry it as `warning`. A check keeps the table + in step with the code. Today: 81 stable, 24 beta, 10 experimental, 40 + planned. `tutorial_simple_hole` is now planned: its cut step fails on + SolidWorks. +- **Progress bars and a progress page** (#79). The README opens with an + image of the tools by level and the share of the core SolidWorks COM API + the adapters reach (208 of 2,838 methods), counted from a committed + snapshot of the type library. The docs site's new Progress page lists + every tool with its level and reason, filterable by level and family. + `python -m solidworks_mcp.progress.generate` regenerates both; a test + fails when they're stale. + - **`reset_circuit_breaker`** (#208). Re-opens operations the server paused after repeated failures, all of them or one by name; the `circuit_open` hint now names it. diff --git a/README.md b/README.md index 948e2d7b..c05e0575 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,29 @@ Python MCP server for SolidWorks automation with 155 tools, plus an optional agent/prompt-testing layer for AI-assisted workflows. +[![155 MCP tools by support level, and how much of the core SolidWorks COM API they reach](docs/assets/progress/progress.svg)](https://andrewbartels1.github.io/SolidworksMCP-python/progress/) + +Generated from the code; click it for every tool, its level and why, filterable by level and family. + +### Two tools in one + +- **A Python interface for scripting SolidWorks.** The adapters wrap SolidWorks' COM API in plain `async` Python calls, so you can automate it from your own scripts without an AI in the loop: + + ```python + from solidworks_mcp.adapters.base import ExtrusionParameters + from solidworks_mcp.adapters.pywin32_adapter import PyWin32Adapter + + adapter = PyWin32Adapter({}) + await adapter.connect() + await adapter.create_part() + await adapter.create_sketch("Top") + await adapter.add_rectangle(-20, -10, 20, 10) # mm + await adapter.exit_sketch() + await adapter.create_extrusion(ExtrusionParameters(depth=10)) + ``` + +- **An MCP tool server on top of it.** The same calls, exposed as 155 MCP tools, so an agent such as Claude Code can build parts, assemblies and drawings from a description. Each tool carries a support level (stable, beta, experimental or planned), so the agent knows how far to trust it. + ## See it work ### A whole mechanism from a description @@ -173,6 +196,7 @@ Each GIF is a live test driving SolidWorks 2026 through the MCP tools, with the - Windows + SolidWorks COM automation for the main CAD lifecycle. - Tested on SolidWorks 2026. Earlier versions may work but are untested; if you try one, please [open an issue](https://github.com/andrewbartels1/SolidworksMCP-python/issues/new/choose) with what worked. - Modeling, sketching, drawing, analysis, export, automation, templates, and macro tools. +- Every tool's support level, and the reason a tool isn't stable yet, is on the [progress page](https://andrewbartels1.github.io/SolidworksMCP-python/progress/). ## Not Yet / Simulated diff --git a/docs/agents/tool-description-standard.md b/docs/agents/tool-description-standard.md index 4a459a8e..ab295a3c 100644 --- a/docs/agents/tool-description-standard.md +++ b/docs/agents/tool-description-standard.md @@ -72,6 +72,24 @@ future release." Then point to the tool to use instead, if there is one, and phrase what it would change or return as "once available". The list of these tools is in `openspec/queue.md`. +## Support levels + +Add one line to `SUPPORT_LEVELS` in `tools/support_levels.py` for every new +tool; registration fails without it. A tool is `stable` once a live test +calls it and it has no known fault, `beta` when it works on SolidWorks but +has a known fault or covers only part of its COM call, `experimental` when +no live test has checked it, and `planned` when nothing implements it (its +description says "Not available yet"). Below stable, give a one-sentence +reason. + +Don't write the level into the docstring: the server opens a beta or +experimental tool's description with "Beta: " or "Experimental: +" from the table, adds the same sentence to its successful results as +`warning`, and tags every tool `level:`. After changing a level, run +`python -m solidworks_mcp.progress.generate` so the README image and the +[progress page](../progress.md) follow; `tests/integration/test_support_levels.py` +and `test_progress_up_to_date.py` check both. + ## Behaviour hints Add one line to `TOOL_HINTS` in `tools/tool_hints.py` for every new tool; diff --git a/openspec/changes/tool-support-levels-and-progress/tasks.md b/openspec/changes/tool-support-levels-and-progress/tasks.md index 58a05b1a..861bc933 100644 --- a/openspec/changes/tool-support-levels-and-progress/tasks.md +++ b/openspec/changes/tool-support-levels-and-progress/tasks.md @@ -16,14 +16,14 @@ - [x] 3.1 `solidworks_mcp.progress.generate`: `progress.svg`, `progress.json` and `tables.html`; tests - [x] 3.2 `tests/integration/test_progress_up_to_date.py`: fails when either is stale, naming the command - [x] 3.3 `docs/progress.md` with the no-script table and `docs/javascripts/progress.js` filters; mkdocs nav; `mkdocs build --strict` -- [ ] 3.4 Show the user the SVG and the page before wiring them into the README +- [x] 3.4 Show the user the SVG and the page before wiring them into the README ## 4. README and docs -- [ ] 4.1 README: the progress image at the top linking to the page; a "two tools in one" section (Python interface for scripting SolidWorks, and an MCP server on it) -- [ ] 4.2 `docs/agents/tool-description-standard.md` and the agent skill: what the levels mean; the queue's small-faults list note: a fixed fault moves its tool up a level -- [ ] 4.3 CHANGELOG; `openspec/queue.md` (this change before #179; #79's coverage half done) +- [x] 4.1 README: the progress image at the top linking to the page; a "two tools in one" section (Python interface for scripting SolidWorks, and an MCP server on it) +- [x] 4.2 `docs/agents/tool-description-standard.md` and the agent skill: what the levels mean; the queue's small-faults list note: a fixed fault moves its tool up a level +- [x] 4.3 CHANGELOG; `openspec/queue.md` (this change before #179; #79's coverage half done) ## 5. Ship -- [ ] 5.1 Full mock suite, ruff, 100 % coverage, `mkdocs build --strict` +- [x] 5.1 Full mock suite, ruff, 100 % coverage, `mkdocs build --strict` diff --git a/openspec/queue.md b/openspec/queue.md index 8e6855e2..59fb34af 100644 --- a/openspec/queue.md +++ b/openspec/queue.md @@ -12,8 +12,8 @@ Last updated 2026-11-06. | --- | --- | --- | --- | --- | | 1 | Tool descriptions agents can act on: one description standard, MCP hints and family tags, and a check that keeps them | #82 (docstring half) | `tool-descriptions-for-agents` (archived) | Done 2026-11-05 (#202, #203, #204). Left: after the next release, ask Glama for a rescan and record the score in the internal assessment | | 2 | Guidance through MCP and an installable skill: the server's `instructions`, the skill served as `skill://` resources with FastMCP 3.4.9's `SkillProvider`, and the same skill installable into an agent | #175 | `agent-skill-and-instructions` (archived) | Done 2026-11-06 (#205, #211; #147 closed as superseded) | -| 3 | The circuit breaker locks a tool out after a success and never reopens; a reset tool | #208 | `circuit-breaker-recovery` | Implemented 2026-11-06, in review | -| 4 | Support levels for every tool, and COM coverage progress bars at the top of the README with an interactive docs page | #79 (coverage half) | `tool-support-levels-and-progress` | Plan written 2026-11-06, in review | +| 3 | The circuit breaker locks a tool out after a success and never reopens; a reset tool | #208 | `circuit-breaker-recovery` (archived) | Done 2026-11-06 (#213) | +| 4 | Support levels for every tool, and COM coverage progress bars at the top of the README with an interactive docs page | #79 (coverage half) | `tool-support-levels-and-progress` | Implemented 2026-11-06, in review. #79's coverage half is done; its licence-tier half is item 8 | | 5 | Tool gaps found building the U-joint: face mates, fixed parts and flexible sub-assemblies, angled planes, angled chamfers, `both_directions`, a stale interference result, thin extrudes | #209 | not yet written | | | 6 | `--selftest` command and a compatibility-report issue template | #179 | not yet written | | | 7 | Skills that improve the agent's results, measured on the U-joint prompt (Opus 5.5 at medium effort: the first skill changed how the agent worked, not what it built) | #207 | not yet written | | @@ -29,7 +29,8 @@ Last updated 2026-11-06. Each one's description says "Not available yet ... planned for a future release" (the wording is in `docs/agents/tool-description-standard.md`). -Found while rewriting the descriptions (39 in all). +Found while rewriting the descriptions (39), plus `tutorial_simple_hole` +(40 in all). Their support level is `planned`. - **Drawing analysis (7):** `analyze_drawing_comprehensive`, `analyze_drawing_dimensions`, `analyze_drawing_annotations`, @@ -52,12 +53,16 @@ Found while rewriting the descriptions (39 in all). `batch_file_operations`. - **Export (1):** `batch_export`. - **Analysis (2):** `analyze_geometry`, `get_material_properties`. +- **Sketching (1):** `tutorial_simple_hole`: its cut step fails on + SolidWorks (it calls the adapter's `create_cut`, which only the mock has). ## Small faults (item 14) When one is fixed, remove it from the agent skill's `src/solidworks_mcp/skills/solidworks-mcp/references/errors-and-limits.md` -in the same change. +in the same change, and move its tool up a level in +`src/solidworks_mcp/tools/support_levels.py` (beta tools list the fault as +their reason), then run `python -m solidworks_mcp.progress.generate`. - `execute_macro` ignores `repeat_count`: it runs the macro once, but its message says "executed N times". @@ -80,9 +85,7 @@ in the same change. - `delete_feature` reads `removed_features`, but the real adapter returns `features_removed` (a count), so on SolidWorks its message never mentions the dependent features that went too. -- `tutorial_simple_hole` calls the adapter's `create_cut`, which only the - mock implements: on SolidWorks it draws the sketch, then fails. - `sketch_tutorial_simple_hole` suggests a negative-depth extrusion for the +- `sketch_tutorial_simple_hole` suggests a negative-depth extrusion for the hole instead of `create_cut_extrude`. - `save_as` ignores `overwrite` (an existing file is replaced) and `save_file` ignores `force_save`; the `export_*` tools require a diff --git a/src/solidworks_mcp/skills/solidworks-mcp/SKILL.md b/src/solidworks_mcp/skills/solidworks-mcp/SKILL.md index 2f3a15a8..972657db 100644 --- a/src/solidworks_mcp/skills/solidworks-mcp/SKILL.md +++ b/src/solidworks_mcp/skills/solidworks-mcp/SKILL.md @@ -92,9 +92,15 @@ ones, and `rebuild_model`, `undo` and what to tell the user: ## What doesn't work yet -- 39 tools are registered but no adapter implements them: their description - starts "Not available yet" and every call returns `not_supported`. Use the - tool their description names instead. +- Every tool has a support level, in its tags (`level:stable`, `level:beta`, + `level:experimental`, `level:planned`). A beta tool works but has a known + gap, and an experimental one hasn't been checked on real SolidWorks: their + description opens with "Beta: ..." or "Experimental: ...", and a successful + result carries the same sentence as `warning`. Read it, and check the + result (`verify_model`, `list_features`) before building on it. +- 40 tools are planned: registered, but nothing implements them. Their + description says "Not available yet" and every call returns + `not_supported`. Use the tool their description names instead. - Some tools ignore some of their inputs, and a few behave in ways you must work around. The list, with the workaround for each: [references/errors-and-limits.md](references/errors-and-limits.md). diff --git a/src/solidworks_mcp/skills/solidworks-mcp/references/errors-and-limits.md b/src/solidworks_mcp/skills/solidworks-mcp/references/errors-and-limits.md index 908aafbb..a1c37d8b 100644 --- a/src/solidworks_mcp/skills/solidworks-mcp/references/errors-and-limits.md +++ b/src/solidworks_mcp/skills/solidworks-mcp/references/errors-and-limits.md @@ -32,10 +32,11 @@ it will again. ## Tools that can't run yet -39 tools are registered but no adapter implements them. Their description -starts "Not available yet"; every call returns `not_supported`. They are +40 tools are registered but nothing implements them (support level +`planned`). Their description says "Not available yet"; every call returns +`not_supported`. They are mostly batch, template, macro-recording and drawing-analysis tools, plus -`add_dimension`, `create_section_view`, `create_detail_view`, +`tutorial_simple_hole`, `add_dimension`, `create_section_view`, `create_detail_view`, `update_title_block`, `analyze_geometry`, `get_material_properties` and `batch_export`. Each description names what to use today. @@ -54,5 +55,4 @@ mostly batch, template, macro-recording and drawing-analysis tools, plus | `calculate_mass_properties` labels moments of inertia kg·mm², but they are kg·m². | Read them as kg·m². | | `check_interference` ignores `include_hidden`. | Show the components you want checked. | | `execute_macro` runs a macro once, whatever `repeat_count` says, and runs only binary `.swp` files. | Call it again for a repeat. | -| `tutorial_simple_hole` fails at its cut step on real SolidWorks. | Use `create_sketch`, `add_circle`, `exit_sketch` and `create_cut_extrude`. | | `add_mate` can mate only reference planes and axes, by name. | Model parts so their planes line up with the mates you need. |