ElementProperties
Files
- BeamGeometricPropertyComponent.cs
This file defines a Grasshopper component named `BeamGeometricPropertyComponent` that extracts and exposes geometric properties of structural beams. It accepts a single generic input representing a beam property object and outputs fourteen distinct numerical parameters, such as area, centroid coordinates, moments of inertia, section moduli, radii of gyration, and torsional constants. The core logic resides in the `SolveInstance` method, which casts the input to a `BeamPropertyModel` and maps its internal fields to the component's output ports for downstream visualization or calculation. This tool is designed to facilitate parametric structural analysis workflows by standardizing access to critical cross-sectional data within the Rhino/Grasshopper environment.
- BeamNonPrismaticPropertyComponent.cs
This file defines a Grasshopper component named `BeamNonPrismaticPropertyComponent` that creates non-prismatic beam properties for structural analysis in SAP. It functions by accepting inputs for start and end cross-sections, material properties, length, and variation types for moment of inertia to model tapered or varying beams. Key components include input parameters for geometric definitions at both ends, enum-driven controls for section variation, and logic that processes these inputs into a `BeamNonPrismaticPropertyModel`. The component extracts detailed sectional data (such as area, inertia, and shear areas) from generic or database sections to populate the final property object. This output is then exposed as a single generic parameter for downstream use in finite element modeling workflows.
- BeamPropertyComponent.cs
This file defines a Grasshopper component named `BeamPropertyComponent` that generates specific beam property definitions for the FeMM structural analysis plugin. It dynamically manages its input parameters based on a user-selected "Type" (e.g., SpringDamper, Cable, Cutoff Bar), adding or removing fields like spring data or tension limits via the `ExpireSolution` method. The core functionality is executed in `SolveInstance`, where it aggregates inputs such as Name, Section, and Material to construct a complete beam property object. Key components include the `_propertyTypeOptions` dictionary for type mapping, dynamic parameter registration logic, and integration with FeMM-specific data types like `GH_BeamSection`. Ultimately, the component outputs a unified `Beam Property` object for downstream structural modeling tasks.
- BeamPropertyMaffeisNomenclatureComponent.cs
This file defines a Grasshopper component named `BeamPropertyMaffeisNomenclatureComponent` within the FeMM framework, designed to automate structural naming conventions. It functions by accepting a single input of type `BeamPropertyModel` and converting it into a standardized text string using the Maffeis nomenclature system. The core logic resides in the `SolveInstance` method, which invokes `NamingConventionHelper.GetMaffeisName` to generate the appropriate label based on the beam's properties. The component includes robust error handling to ensure the input is valid and that the section data can be successfully read, displaying runtime messages if either condition fails. Key components include its inheritance from `GH_Component`, specific input/output parameter registrations for seamless integration into visual programming workflows, and a unique GUID for identification.
- LinkDirectionPropertyComponent.cs
This file defines `LinkDirectionPropertyComponent`, a Grasshopper plugin component used to configure link direction properties for finite element modeling. It accepts various inputs such as degrees of freedom, fixed status, non-linear flags, and mechanical parameters like stiffness, damping, and hysteresis types. The component validates these inputs, ensuring data integrity by checking enum validity and matching list lengths for displacement-force pairs. It then constructs a `LinkDirectionPropertyModel` object encapsulating all configured properties. Finally, it outputs this model wrapped in a custom Grasshopper data type (`GH_LinkDirectionProperty`) for downstream use. This allows users to define complex link behaviors within the FeMM structural analysis framework.
- LinkMasterSlavePropertyComponent.cs
This file defines a Grasshopper component named `LinkMasterSlavePropertyComponent` within the FeMM framework, designed to generate master-slave link properties for Straus7 structural analysis. It allows users to configure six degrees of freedom (translations Dx, Dy, Dz and rotations Rx, Ry, Rz) by selecting specific constraint types from an enumeration. The component also accepts an optional coordinate system input to define the local reference frame for these links. Upon execution, it instantiates a `StrausMasterSlaveLinkModel` object with the specified parameters and outputs it as a generic Grasshopper data type. Key components include the input parameter registration logic, the core `SolveInstance` method that constructs the model, and associated metadata like GUIDs and icons. This facilitates the automated creation of kinematic constraints in finite element models through a visual programming interface.
- LinkPinnedPropertyComponent.cs
This file defines a Grasshopper component named `LinkPinnedPropertyComponent` that generates pinned link properties for the Straus7 structural analysis software. It accepts a single text input for the property name and outputs a generic data object representing the configured link property. The core logic instantiates a `StrausPinnedLinkModel` with the provided name and wraps it in a `GH_FunctionDefinition` to pass through the Grasshopper environment. This component is categorized under FeMM’s secondary exposure level, indicating it is a specialized tool within a larger finite element modeling plugin ecosystem.
- LinkPropertyComponent.cs
This file defines a Grasshopper component named `LinkPropertyComponent` that creates structural link property definitions for SAP2000 and ETABS analysis. It accepts various input parameters, including name, link type, mass, weight, rotational inertias, geometric dimensions, and a list of direction-specific properties. The component validates these inputs to ensure the link type is recognized and that no duplicate degrees of freedom exist in the direction properties. Upon successful validation, it aggregates this data into a `LinkPropertyModel` object. Finally, it wraps this model in a custom Grasshopper data type (`GH_LinkProperty`) and outputs it for use in downstream modeling or analysis workflows.
- LinkRigidPropertyComponent.cs
This file defines a Grasshopper component named `LinkRigidPropertyComponent` that generates rigid link properties for the Straus7 finite element analysis software. It allows users to specify a property name, select a plane type (such as XYZ or XY), and optionally define a specific coordinate system. The core logic resides in the `SolveInstance` method, which constructs a `StrausRigidLinkModel` object based on these inputs. Finally, it outputs this model wrapped in a Grasshopper function definition for use in downstream simulation workflows.
- NomenclatureBeamPropertyComponent.cs
This file defines `NomenclatureBeamPropertyComponent`, a Grasshopper plugin component that translates Maffeis nomenclature strings into specific Finite Element Method (FEM) beam properties. It accepts inputs such as the section name, optional custom configurations, element type, and material data to generate a structured beam property object. The core logic utilizes helper classes to look up profiles and convert them into compatible FEM definitions, handling special cases like cutoff bars with tension/compression limits. It outputs the resulting beam property alongside a boolean validity mask to indicate successful parsing. This tool streamlines the automation of structural model generation by linking standardized naming conventions directly to simulation-ready parameters.
- PlatePropertyComponent.cs
`PlatePropertyComponent.cs` is a Grasshopper plugin component designed to define and output plate structural properties within the FeMM framework. It accepts user inputs for a property name, type, membrane/bending thicknesses, and an optional material definition to construct a `PlatePropertyModel`. The component validates these inputs, issuing warnings if critical data like membrane thickness or material is missing for specific property types. Upon successful validation, it encapsulates the configured data into a `GH_FunctionDefinition` object. Finally, it outputs this generic property object for use in downstream finite element modeling workflows.
- SpringDamperDataComponent.cs
`SpringDamperDataComponent.cs` is a Grasshopper plugin component designed to define property data for Spring-Damper beam elements within the FeMM framework. It accepts seven numerical inputs representing axial, lateral, and torsional stiffness/damping values, along with element mass. The component processes these inputs to instantiate a `SpringDamperDataModel`, which encapsulates the physical properties. This model is then wrapped in a custom Grasshopper data type (`GH_SpringDamperData`) and output as a single generic parameter. Key components include the input registration logic, the core data processing method `SolveInstance`, and integration with the FeMM common models.