Skip to content

FEAT: props implementation through GetObjData - #7383

Draft
gmalinve wants to merge 127 commits into
mainfrom
feat/obj_data_parser_new_props
Draft

gmalinve wants to merge 127 commits into
mainfrom
feat/obj_data_parser_new_props

Conversation

@gmalinve

@gmalinve gmalinve commented Mar 13, 2026 •

Copy link
Copy Markdown
Contributor

Description

This PR introduces a new lazy initialization pattern and leverages the new GetObjData API (available from AEDT 2026 R1) to improve performance and ensure properties are always fetched fresh from AEDT.

Key Changes

1. New API Functions (application/__init__.py)

  • _has_get_obj_data(child_object): Checks if an AEDT object supports the new GetObjData API (2026 R1+)
  • _get_obj_data(child_object): Parses and returns object properties as a dictionary using the new API
  • _get_data_model(): Enhanced with docstrings and improved JSON parsing

2. Lazy Initialization in BinaryTreeNode (elements_3d.py)

  • Added lazy initialization pattern via _ensure_tree_node() - tree nodes are now initialized on first access instead of during __init__
  • Added _ensure_children() for deferred child loading
  • Converted child_object to a property with lazy resolution
  • Added state tracking flags: _tree_node_initialized, _tree_node_initializing, _children_loading, _children_loaded

3. Dynamic Property Fetching

Properties (props) are now fetched every time they are accessed when GetObjData is available, ensuring they are always up-to-date with AEDT state. Affected modules:

  • boundary/common.py, boundary/hfss_boundary.py, boundary/layout_boundary.py, boundary/maxwell_boundary.py
  • mesh.py, mesh_icepak.py
  • solve_setup.py
  • visualization/report/common.py, report/netlist.py

4. Commented _initialize_tree_node() Calls

Eager initialization calls are now commented out in constructors and create() methods to enable lazy loading.

Application: all
AEDT-Version: 26.1, 27.1
Platform: windows, linux

Issue linked

Implemented a new improved way to handle props using new method GetobjData added in AEDT 26R1. The new props will not parse anymore .aedt file but retrieve info in realtime from the API directly.

Checklist

  • I have tested my changes locally.
  • I have added necessary documentation or updated existing documentation.
  • I have followed the coding style guidelines of this project.
  • I have added appropriate tests (unit, integration, system).
  • I have reviewed my changes before submitting this pull request.
  • I have linked the issue or issues that are solved by the PR if any.
  • I have agreed with the Contributor License Agreement (CLA).

@gmalinve gmalinve self-assigned this Mar 13, 2026
@github-actions github-actions Bot added the enhancement New features or code improvements label Mar 13, 2026
@ansys-cla-bot

ansys-cla-bot Bot commented Sep 22, 2026

Copy link
Copy Markdown

CLA Check Failed: Commit Author Verification Unsuccessful

One or more commits in this pull request contain missing or invalid author information. This issue may arise due to:

  • A change in the contributor's GitHub username
  • Deletion of the contributor's GitHub account
  • Corruption or alteration of commit author metadata
  • A co-authored commit where the co-author's GitHub username can't be retrieved

Commits with unknown or invalid author information:

Please update the commit author details and force-push the updated commit to proceed with the CLA verification.

Note

Action Required: Repository maintainers with write access can trigger a recheck by commenting
@cla-bot rerun
Please contact the maintainers to rerun the CLA check after the missing signatures have been captured.

@maxcapodi78
maxcapodi78 marked this pull request as ready for review September 24, 2026 11:59
@maxcapodi78
maxcapodi78 requested a review from a team as a code owner September 24, 2026 11:59
@maxcapodi78 maxcapodi78 changed the title FEAT: props test implementation for GetObjData FEAT: props implementation through GetObjData Sep 24, 2026
@Samuelopez-ansys
Samuelopez-ansys marked this pull request as draft October 9, 2026 14:33

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New features or code improvements linux Linux-specific issue or change windows Windows-specific issue or change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Load matrix info Maxwell in boundaries Create a self-recursive class/object model for GetObjData()

4 participants