Skip to content

Conversation

@GCRA101
Copy link
Contributor

@GCRA101 GCRA101 commented Nov 24, 2025

Issues addressed by this PR

Fixes #514

Grasshopper Script View ETABS Model View

ETABS Toolkit now allows to push/pull and update objects (i.e. bars, nodes, panels, rigid links and openings) handling corresponding assignments to ETABS Unique Name via BHoM Name.

Test files

Grasshopper File
https://burohappold.sharepoint.com/:u:/r/sites/BHoM/02_Current/12_Scripts/02_Pull%20Request/BHoM/ETABS_Toolkit/%23518-AddSupportForEditingUniqueNames/[TestScript.gh](https://burohappold.sharepoint.com/:u:/r/sites/BHoM/02_Current/12_Scripts/02_Pull%20Request/BHoM/ETABS_Toolkit/%23518-AddSupportForEditingUniqueNames/TestScript.gh?csf=1&web=1&e=YijMul)?csf=1&web=1&e=YijMul

Changelog

  • Add Support for UniqueName Assignment in Push/Pull/Update of Bars
  • Add Support for UniqueName Assignment in Push/Pull/Update of Nodes
  • Add Support for UniqueName Assignment in Push/Pull/Update of Panels
  • Add Support for UniqueName Assignment in Push/Pull/Update of Links
  • Add Support for UniqueName Assignment in Push/Pull/Update of Openings

@GCRA101 GCRA101 self-assigned this Nov 24, 2025
@GCRA101 GCRA101 added severity:medium Slows progress, but workaround is possible type:feature New capability or enhancement labels Nov 24, 2025
@GCRA101
Copy link
Contributor Author

GCRA101 commented Nov 25, 2025

@BHoMBot check installer

@bhombot-ci
Copy link

bhombot-ci bot commented Nov 25, 2025

@GCRA101 to confirm, the following actions are now queued:

  • check installer

@Pritesh2024
Copy link

Script tested on a real project.

@GCRA101 GCRA101 requested a review from albertbg028 December 1, 2025 12:59
albertbg028
albertbg028 previously approved these changes Dec 1, 2025
Copy link

@albertbg028 albertbg028 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New feature works as intended.

@GCRA101
Copy link
Contributor Author

GCRA101 commented Dec 1, 2025

@BHoMBot check ready-to-merge

@bhombot-ci
Copy link

bhombot-ci bot commented Dec 1, 2025

@GCRA101 to confirm, the following actions are now queued:

  • check ready-to-merge

@GCRA101
Copy link
Contributor Author

GCRA101 commented Dec 1, 2025

@peterjamesnugent, @Chrisshort92,
fyi, I think this one is ready for merge. Functionality tested by both Pritish and Luis.
All BHoMBot checks have passed.

Copy link
Member

@peterjamesnugent peterjamesnugent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure I agree with the need for unique names for each element (unless I have misunderstood?). Also, a few of the methods could be consolidated given they just use Name and Guid properties.

@samuelbasimalla
Copy link
Contributor

Not sure I agree with the need for unique names for each element (unless I have misunderstood?). Also, a few of the methods could be consolidated given they just use Name and Guid properties.

@peterjamesnugent I discussed the use case for editing unique names with @GCRA101 earlier.
The ability to "assign groups" operate at higher level of hierarchy. "Editing Unique names" operate at a level below.

Example 1: All the similar Pad foundations with similar demands can be assigned a group. However, each pad foundation, which is usually modelled as panels is further subdivided into smaller panels (meshing requirements) which currently have randomly generated unique names. If there is a feature to assign unique names, we can do so in a way that each of the sub-panels identify with the a Pad. This basically helps in post-processing the results for element design.

Example 2: Same as above for bar elements which are sub-divided into smaller bar elements for meshing, but for design where we would need full buckling lengths, which is where unique names can help.

Hope I am clear.

Replace all the SetUniqueName private methods defined for bars, nodes, panels and openings with a single method taking as input a BHoMObject.
Taking advantage of polymorphism, we can minimize the repetition of code within the Toolkit.
Replace all the UpdateUniqueName private methods defined for bars, nodes, panels and openings with a single method taking as input a BHoMObject.
Taking advantage of polymorphism, we can minimize the repetition of code within the Toolkit.
@GCRA101
Copy link
Contributor Author

GCRA101 commented Dec 9, 2025

@peterjamesnugent,

thanks again for your comment.
You can find the updated code incorporating your comments in the latest commit: 2529a92

@peterjamesnugent
Copy link
Member

As discussed with @GCRA101 and @samuelbasimalla, this will be closed to allow #516 to take priority.

The unique name attribute using part of the id doesn't help the user when they could just use Tags to filter their objects whether applying loads, or pulling results. The way I see the Pull working is:

  1. User pulls all objects e.g. Bar, Panel etc.
  2. User uses the FilterRequest in https://github.com/BHoM/BHoM/blob/c7a25f7799782f9025ead7f532b04a6cd33c7ff0/Data_oM/Requests/FilterRequest.cs#L28 to specify the Tags`
  3. User makes user of https://github.com/BHoM/BHoM_Engine/blob/ee49f81ea511d7ee0c66a3c13d0d73f1a3677bd8/Data_Engine/Compute/FilterData.cs#L37 to filter the data as needed.

This way, the user only needs to know the tags assigned, and doesn't need to do extra work to determine the unique name assigned by the guid. For example, if I wanted to pull 100 PadFoundation to design, I would either need to retrieve that from the unique names in ETABS, or break down a string using the Name and BHoM_Guid attribute whilst having knowledge of how many letters that string uses which the average user won't be aware of.

Whereas, using the Tags, the user can just use the in built FilterRequest and FilterData objects and methods to breakdown their data as they see fit. The tags are known, and importantly Tags are many-to-one whereas these unique names are one-to-one.

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

Labels

severity:medium Slows progress, but workaround is possible type:feature New capability or enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Support for Assigning/Editing ETABS Unique Names

6 participants