Design
Files
- AISC360BeamDesignOverrideComponent.cs
This file defines a Grasshopper component, `AISC360BeamDesignOverrideComponent`, designed to override steel beam design parameters according to the AISC 360 code standards for SAP2000 integration. It accepts a target `GH_Beam` object and optional inputs for buckling lengths, effective length factors, moment coefficients, and sway/non-sway factors. The component bundles these values into a `BeamAISC360SteelAttributeModel` and attaches this configuration as an attribute to the input beam. Finally, it outputs the modified beam object, allowing users to customize structural analysis settings within a visual scripting workflow.
- AISC360_10SteelPrefsComponent .cs
This file defines a Grasshopper component class named `AISC360_10SteelPrefsComponent` that inherits from a base `SteelPrefsComponent`. It serves as a specialized interface for configuring steel design preferences specifically according to the AISC 360-10 code standard. The component overrides key methods to instantiate and manage specific form dialogs (`AISC360_10SteelPrefsForm`) and data types (`GH_AISC360_10SteelPrefs`). Additionally, it provides a unique GUID and a custom icon to ensure proper identification and visual representation within the Grasshopper environment. This implementation allows users to set up SAP2000-compatible checks based on the specified American Institute of Steel Construction standards.
- AS4100SteelPrefsComponent.cs
This file defines `AS4100SteelPrefsComponent`, a Grasshopper component that configures steel design preferences specifically for the Australian Standard AS4100. It extends the base `SteelPrefsComponent` to handle specific UI and data type conversions for SAP2000 integration. Key components include overridden methods that instantiate a custom settings form (`AS4100SteelPrefsForm`) and create corresponding Grasshopper data objects (`GH_AS4100SteelPrefs`). The class also provides a unique GUID and an associated icon for identification within the Grasshopper interface. Essentially, it acts as a specialized configuration tool for enforcing AS4100 compliance in structural analysis workflows.
- BeamAISC360_10SteelComponent.cs
This file defines a Grasshopper component named `BeamAISC360_10SteelComponent` that overrides beam design settings according to the AISC 360-10 steel standard. It inherits from `BeamDesignOverrideComponent`, integrating into a larger structural analysis workflow, likely within the FeMM framework. The class manages user interaction by linking to a specific Windows Forms dialog (`BeamAISC360_10SteelForm`) for data input and retrieval. Key components include the initialization of metadata (name, nickname, description), icon handling, and a unique GUID for component identification. It also includes platform-specific attributes ensuring compatibility with Windows environments in .NET Core applications. Ultimately, this script serves as a bridge between the Grasshopper UI and the underlying SAP2000-compatible design logic.
- BeamAS4100SteelComponent.cs
This file defines a Grasshopper component named `BeamAS4100SteelComponent` that facilitates structural design overrides based on the Australian Standard AS4100 for steel beams. It inherits from `BeamDesignOverrideComponent`, indicating it extends existing functionality to apply specific code-compliant adjustments within the Rhino/Grasshopper environment. Key components include methods for managing user interface forms (`GetForm`, `GetData`) and handling attribute models (`GetOverrideAttribute`) to bridge visual inputs with underlying data structures. The class also provides a unique identifier via `ComponentGuid` and a custom icon for easy recognition in the Grasshopper canvas. Additionally, it includes platform-specific attributes to ensure compatibility with Windows-based .NET Core environments.
- BeamDesignOverrideComponent.cs
This file defines `BeamDesignOverrideComponent`, an abstract base class for Grasshopper components that apply design overrides to structural beams. It acts as a template for concrete implementations, utilizing abstract methods like `GetForm` and `GetData` to allow specific UI dialogs for setting override parameters. The component accepts a single beam input and outputs the modified beam by attaching custom attributes derived from user-defined data. A key feature is its button-based interface, which opens a Windows Form to collect override settings without requiring complex parameter wiring. Serialization logic (`Write`/`Read`) ensures the override data persists within the Grasshopper definition using JSON or binary formats. This architecture promotes code reuse while enabling flexible, domain-specific customization for different engineering standards.
- BeamEC3SteelComponent.cs
This file defines `BeamEC3SteelComponent`, a Grasshopper plugin component designed to override beam design parameters according to Eurocode 3 (EC3) standards for steel structures. It inherits from `BeamDesignOverrideComponent` and integrates with SAP2000, as indicated by its description. Key components include UI management methods (`GetForm`, `GetData`) that link the component to a custom Windows Forms interface, and an attribute model getter that handles the underlying data structure. The class also provides a unique GUID and a specific icon for identification within the Grasshopper environment.
- SteelPrefsComponent.cs
`SteelPrefsComponent.cs` is an abstract base class for Grasshopper components designed to manage steel design preferences within the FeMM plugin. It functions as a configuration hub that allows users to set up strength and deflection check combinations via a custom dialog form, accessible through a dedicated button on the component's attributes. The component manages two primary inputs—structural results for strength checks and deflection checks—and outputs a consolidated `GH_SteelPrefs` object for downstream analysis. Key implementation details include abstract methods for creating specific forms and preference objects, ensuring derived classes can customize the UI and data structure while adhering to a common interface. Additionally, it handles persistence by serializing and deserializing the internal `_prefs` state using Grasshopper’s I/O reader/writer mechanisms.