Grasshopper Setup for InForm
This guide will help you set up Grasshopper and the necessary components for developing parametric models that work seamlessly with the InForm platform.
Prerequisites​
System Requirements​
- Windows 10 or later (Rhino/Grasshopper requirement)
- Rhino 7 or later (Rhino 8 recommended for best performance)
- At least 8GB RAM (16GB recommended for complex models)
- Dedicated graphics card (for 3D modeling and visualization)
- Stable internet connection (for cloud-based computation)
Software Prerequisites​
- Rhino 3D: Licensed version 7.0 or later
- Grasshopper: Included with Rhino (ensure it's enabled)
- Git: For version control of your models
- Text editor: Visual Studio Code or similar for script development
Rhino and Grasshopper Installation​
Installing Rhino​
- Download Rhino from the official McNeel website
- Install with administrative privileges
- Activate your license (commercial, educational, or trial)
- Update to the latest service release
- Verify installation by launching Rhino successfully
Enabling Grasshopper​
- Open Rhino
- Type
Grasshopperin the command line, or - Use the Grasshopper icon in the toolbar
- Verify Grasshopper opens without errors
- Check that all standard components are available
InForm-Specific Components​
Required Plugins​
InForm Grasshopper Toolkit​
The InForm Grasshopper Toolkit provides specialized components for InForm integration:
- Download the toolkit from the InForm developer portal
- Extract to Grasshopper components folder:
- Default location:
%APPDATA%\Grasshopper\Libraries\ - Custom location: Use Grasshopper File > Special Folders > Components Folder
- Default location:
- Restart Grasshopper to load new components
- Verify installation by checking for InForm tab in component palette
Essential Third-Party Plugins​
Install these commonly used plugins for enhanced functionality:
Structural Analysis:
- Karamba3D: Structural analysis and optimization
- GSA Grasshopper: Integration with Oasys GSA
Optimization:
- Galapagos: Built-in evolutionary solver (included with Grasshopper)
- Wallacei: Multi-objective optimization
- Optimus: Advanced optimization algorithms
Geometry and Modeling:
- Mesh+: Advanced mesh operations
- Weaverbird: Mesh subdivision and smoothing
- Kangaroo: Physics simulation and form-finding
Data and Visualization:
- Human: UI components and data visualization
- Speckle: Data exchange and collaboration
- Excel components: Read/write Excel files
Component Installation Process​
Manual Installation​
- Download plugin files (usually .gha files)
- Unblock files (Right-click > Properties > Unblock)
- Copy to components folder:
%APPDATA%\Grasshopper\Libraries\ - Restart Grasshopper
- Verify in component palette
Package Manager Installation​
- Use Rhino Package Manager (Rhino 8+)
- Search for required plugins
- Install with one click
- Manage updates automatically
InForm Component Configuration​
Parameter Setup Components​
InForm Parameter​
Use this component to define parameters that will be exposed in the InForm interface:
Properties:
- Name: Display name in InForm interface
- Description: Help text for users
- Type: Number, Integer, Boolean, Text, or List
- Range: Minimum and maximum values (for numeric types)
- Default: Starting value
- Units: Display units (meters, degrees, etc.)
Usage:
- Add InForm Parameter component to your definition
- Configure properties in the component panel
- Connect to your parametric logic
- Test parameter behavior in Grasshopper
InForm Output​
Define what geometry and data will be sent to InForm:
Geometry Outputs:
- 3D Models: Meshes, BREP surfaces, curves
- Analysis Results: Colored meshes, vector fields
- Annotations: Text, dimensions, labels
Data Outputs:
- Performance Metrics: Scalar values, costs, areas
- Analysis Results: Forces, stresses, temperatures
- Constraint Status: Pass/fail, warnings, errors
Validation Components​
InForm Validator​
Ensure your model meets InForm requirements:
Checks:
- Parameter ranges: Valid minimum/maximum values
- Geometry validity: Closed meshes, proper normals
- Performance: Execution time within limits
- Data format: Correct units and data types
Configuration:
- Add validator component at end of definition
- Connect all outputs to validation
- Set performance targets (execution time, complexity)
- Review validation report for issues
Model Development Best Practices​
Parameter Organization​
Grouping and Naming​
- Use clear, descriptive names: "Floor Height" instead of "H1"
- Group related parameters: Structure, envelope, systems
- Use consistent naming: CamelCase or underscore_case
- Include units in names: "SpanLength_m" for clarity
Parameter Types and Ranges​
// Example parameter definitions
Building_Height: 3.0 to 50.0 (meters)
Number_Floors: 1 to 20 (integer)
Use_Basement: True/False (boolean)
Structural_System: ["Steel", "Concrete", "Timber"] (list)
Model Structure​
Logical Organization​
- Input Parameters: All InForm parameters at the beginning
- Geometric Generation: Create base geometry
- Analysis and Calculation: Perform computations
- Output Preparation: Format results for InForm
- Validation: Check results and flag issues
Performance Optimization​
- Minimize heavy operations: Reduce mesh complexity where possible
- Cache expensive calculations: Use data parameters for reuse
- Conditional logic: Skip unnecessary calculations
- Efficient algorithms: Choose appropriate methods for scale
Testing and Validation​
Local Testing​
- Parameter sweeps: Test across full parameter ranges
- Edge case testing: Minimum/maximum values, extreme combinations
- Performance testing: Measure execution time for typical cases
- Geometry validation: Check for invalid or degenerate geometry
InForm Integration Testing​
- Upload test model: Deploy to InForm development environment
- Parameter testing: Verify all parameters work correctly
- Visualization testing: Check 3D model display and interaction
- Performance validation: Confirm acceptable response times
Development Workflow​
Version Control​
Git Setup for Grasshopper​
- Initialize Git repository in your project folder
- Create .gitignore for Grasshopper files:
# Grasshopper backup files
*.gh~
*.ghx~
# Rhino autosave files
*.3dm.bak
*.3dm.rhl
# InForm temporary files
inform_temp/ - Commit frequently with descriptive messages
- Use branches for experimental features
- Tag releases for deployed versions
File Organization​
project_name/
├── models/
│ ├── grasshopper/
│ │ ├── main_model.gh
│ │ └── components/
│ ├── rhino/
│ │ └── base_geometry.3dm
│ └── reference/
├── documentation/
│ ├── README.md
│ ├── parameters.md
│ └── user_guide.md
├── tests/
│ ├── test_cases.xlsx
│ └── validation_results/
└── deployment/
├── config.json
└── upload_script.py
Collaborative Development​
Team Workflows​
- Shared repositories: Use Git for collaboration
- Component libraries: Shared Grasshopper components
- Standards document: Coding and naming conventions
- Review process: Peer review before deployment
Documentation Standards​
- Model documentation: Architecture and design decisions
- Parameter documentation: Clear descriptions and ranges
- User guides: How to explore the design effectively
- Technical notes: Performance considerations and limitations
Advanced Configuration​
Custom Components​
Creating Custom Components​
- Use Grasshopper SDK for .NET development
- Follow InForm component standards
- Implement required interfaces
- Test thoroughly before distribution
- Document usage and examples
Component Development Tools​
- Visual Studio: .NET development environment
- Grasshopper SDK: Component development framework
- InForm API: Integration specifications
- Testing framework: Automated component testing
Integration with External Tools​
Database Connections​
- Connect to corporate databases for material properties
- Pull design standards and constraints
- Access project-specific data (site conditions, requirements)
API Integrations​
- Weather data: Climate information for analysis
- Cost databases: Real-time pricing information
- Structural analysis: Integration with FEA software
- Environmental analysis: Energy and lighting simulation
Troubleshooting​
Common Setup Issues​
Component Loading Problems​
Symptoms: Components don't appear in Grasshopper palette
Solutions:
- Check file location: Ensure components are in correct folder
- Unblock files: Right-click properties and unblock
- Check permissions: Ensure read/write access to components folder
- Restart Grasshopper: Close and reopen Grasshopper
- Check compatibility: Verify components are for your Rhino version
Performance Issues​
Symptoms: Slow model execution, memory errors
Solutions:
- Simplify geometry: Reduce mesh density and complexity
- Optimize algorithms: Use efficient calculation methods
- Cache results: Avoid recalculating unchanged results
- Profile performance: Use Grasshopper profiler to identify bottlenecks
InForm Integration Issues​
Symptoms: Parameters don't work in InForm, geometry doesn't display
Solutions:
- Validate parameters: Check InForm parameter component configuration
- Test locally: Verify model works in Grasshopper before upload
- Check data formats: Ensure outputs match InForm requirements
- Review logs: Check InForm deployment logs for errors
Getting Help​
Support Resources​
- InForm developer documentation: Comprehensive technical guides
- Community forums: Connect with other developers
- Training sessions: Regular workshops and tutorials
- Expert consultation: Direct access to InForm development team
Diagnostic Tools​
- Grasshopper profiler: Identify performance bottlenecks
- InForm validator: Check model compatibility
- Log files: Detailed error information
- Test framework: Automated validation tools
Next Steps​
Once you have Grasshopper properly configured:
- Learn the script upload process: Deploy your first model
- Configure project settings: Set up user access and parameters
- Test and validate: Ensure everything works correctly
- Optimize performance: Improve model speed and reliability
Additional Resources​
- InForm API Documentation: Technical reference
- Example Projects: Learning from successful implementations
- Performance Optimization Guide: Advanced optimization techniques
- Troubleshooting Guide: Solutions to common problems