Models
Directories
- MeCheck2
This directory structure organizes a C# codebase for Grasshopper components, specifically focusing on structural engineering calculations. The primary component shown is `CompositeSectionStiffeners.cs`, which defines a data model class to store geometric and physical properties of stiffened composite sections. This file acts as a lightweight container within the FeMM namespace, facilitating data flow between Grasshopper definitions and computational logic. Such a modular approach allows for clear separation of data structures from algorithmic implementation, enhancing maintainability and reusability within the plugin ecosystem.
Files
- BuildModelComponent.cs
`BuildModelComponent.cs` is a Grasshopper plugin component designed to assemble and finalize Finite Element Method (FEM) models within the FeMM framework. It aggregates structural elements, load cases, combinations, and analysis functions from user inputs into a cohesive model object. The class defines specific input ports for geometric data, naming conventions, unit systems, and optional loading scenarios, while outputting a single unified `GH_Model`. Its core logic resides in the `SolveInstance` method, which parses input lists, validates relationships between load cases and combinations, and handles error reporting via runtime messages. Key components include helper classes like `ModelHelper` for parsing geometry and `CommonModelHelper` for processing various case types, ensuring all necessary data structures are correctly initialized before instantiation of the final model.
- DecomposeModelComponent.cs
This file defines a Grasshopper component named `DecomposeModelComponent` that splits a single Finite Element Method (FEM) model into its constituent structural elements. It accepts one input parameter, the FEM model, and produces four distinct output lists containing nodes, beams, plates, and links respectively. The core logic resides in the `SolveInstance` method, which iterates through the model's internal collections to wrap each element type in specific Grasshopper data types (`GH_Node`, `GH_Beam`, etc.). This decomposition allows downstream components in a visual scripting workflow to process different element categories independently. The class inherits from `GH_Component` and includes standard metadata such as exposure level, icon, and a unique GUID for identification within the Grasshopper environment.
- MergeModelComponent.cs
This file defines `MergeModelComponent`, a Grasshopper plugin component designed to consolidate various Finite Element Method (FEM) model elements into a unified structure. It accepts lists of geometric inputs—specifically nodes, beams, plates, and links—along with a user-defined tolerance for geometric matching. The core logic extracts these elements from the input data, converts them into internal model objects, and invokes a helper method to merge them based on proximity. After processing, it reconstructs the merged data back into Grasshopper-compatible types and outputs them as separate lists for each element type. Key components include input registration for geometry and tolerance, a switch-case loop for type-specific extraction, and error handling via runtime messages.