Desenvolvimento à medida

Projetos
personalizados
com Rhino

Desenvolvemos plugins, automatizações e integrações com bases de dados directamente no ecossistema Rhino — para que o software trabalhe da forma que o teu negócio precisa, e não o contrário.

rhino_db_sync.py — Python 3 + RhinoCommon
# Lê catálogo de produtos de SQL Server # e gera geometria Rhino automaticamente   import rhinoscriptsyntax as rs import pyodbc, json   def load_catalog(conn_str): conn = pyodbc.connect(conn_str) cursor = conn.cursor() cursor.execute("SELECT * FROM produtos") return cursor.fetchall()   def gerar_geometria(produto): largura = produto.largura altura = produto.altura rs.AddBox( rs.WorldXYPlane(), largura, altura, 1.0 )   ✓ 847 objetos gerados em 2.3s »
RhinoCommon API

Serviços de desenvolvimento

Temos experiência real em projectos que ligam Rhino a sistemas externos — desde folhas de cálculo até bases de dados empresariais.

🔌
Plugins para Rhino e Grasshopper

Desenvolvemos plugins personalizados que adicionam comandos, painéis e ferramentas específicas ao Rhino. Desde simples automatizações de tarefas repetitivas a componentes Grasshopper complexos para workflows paramétricos.

C# / RhinoCommon Python Grasshopper SDK Food4Rhino
🗄️
Ligação a Bases de Dados

Integramos Rhino com bases de dados relacionais e documentais — SQL Server, PostgreSQL, MySQL, SQLite, MongoDB. Os dados fluem directamente para o modelo 3D: catálogos de produtos, especificações técnicas, configurações de projecto.

SQL Server PostgreSQL SQLite ORM / ODBC
📊
Integração com Excel e Folhas de Cálculo

Criamos scripts que lêem e escrevem em ficheiros Excel, Google Sheets ou CSV — para alimentar modelos paramétricos com dados reais, gerar relatórios de BOM (Bill of Materials) ou exportar propriedades de objectos directamente para tabelas.

Excel / XLSX Google Sheets API openpyxl Grasshopper
⚙️
Automação de Workflows

Transformamos processos manuais e repetitivos em workflows automatizados — execução em batch de operações, geração automática de variantes, processamento de ficheiros em série, e scripts agendados que correm sem intervenção humana.

RhinoScript Python / IronPython Rhino.Inside CLI / batch
🌐
Integrações via API REST e JSON

Ligamos Rhino a serviços web e APIs externas — ERPs, sistemas de gestão de projecto, plataformas de e-commerce, ou qualquer serviço que exponha uma API REST. Os dados entram e saem do modelo em tempo real.

REST API JSON / XML requests / httpx webhooks
🏗️
Rhino.Inside — Integração com outras plataformas

Com Rhino.Inside é possível executar o Rhino dentro de outras aplicações como Revit, Unity ou aplicações .NET proprietárias — partilhando geometria e dados entre plataformas sem ficheiros intermédios.

Rhino.Inside.Revit .NET / C# BIM Interoperabilidade

Do briefing à entrega

Um processo claro e colaborativo, com entrega iterativa e documentação incluída.

01
Análise do problema

Reunião para entender o workflow actual, os sistemas existentes e o que se quer automatizar ou integrar.

02
Proposta técnica

Definimos a arquitectura da solução, as tecnologias a usar e um plano de desenvolvimento com milestones claros.

03
Desenvolvimento

Desenvolvemos em iterações, com versões intermédias para validação. O cliente testa à medida que avançamos.

04
Testes e afinação

Testes com dados reais do cliente, correcção de edge cases e optimização de performance.

05
Entrega e formação

Entrega do código documentado, instalação no ambiente do cliente e formação da equipa utilizadora.

Tecnologias que dominamos

Trabalhamos com as ferramentas nativas do ecossistema Rhino e com as mais usadas em integração de dados.

🦏
RhinoCommon
API nativa do Rhino em C# e Python
🐍
Python / IronPython
Scripts e automações dentro do Rhino
⚙️
C# / .NET
Plugins compilados de alto desempenho
🌿
Grasshopper SDK
Componentes paramétricos customizados
🗄️
SQL / NoSQL
SQL Server, PostgreSQL, SQLite, MongoDB
📊
Excel / CSV
openpyxl, xlrd, pandas
🌐
REST API
Integração com serviços web externos
🏗️
Rhino.Inside
Rhino embebido em Revit e .NET

Trabalho que já realizámos

Exemplos reais do tipo de problemas que resolvemos para os nossos clientes.

Indústria / Fabricação
Geração automática de geometria a partir de catálogo SQL

Para um fabricante de mobiliário, criámos um plugin que consulta uma base de dados SQL Server com as especificações de cada produto e gera automaticamente o modelo 3D correspondente no Rhino — eliminando horas de modelação manual por encomenda.

RhinoCommon SQL Server C#
Arquitectura / BIM
Sincronização bidirecional entre Rhino e Excel

Para um atelier de arquitectura, desenvolvemos um script Grasshopper que lê áreas e especificações de um ficheiro Excel, actualiza os parâmetros do modelo Rhino, e escreve de volta as quantidades calculadas — mantendo modelo e programa sempre sincronizados.

Grasshopper Python openpyxl
Joalharia / Design de produto
Configurador paramétrico com exportação automática

Desenvolvemos um painel Rhino que permite a um utilizador não técnico configurar variantes de um produto (dimensões, materiais, acabamentos), previsualizá-las em 3D e exportar automaticamente ficheiros STL para impressão e PDF de ficha técnica.

RhinoCommon Grasshopper Python PDF export
Engenharia / Prototipagem
Integração com ERP via API REST

Para uma empresa de engenharia, ligámos o Rhino ao sistema ERP interno via API REST — ao fechar um modelo, o script extrai automaticamente a lista de materiais (BOM) e cria os itens no ERP, eliminando a dupla introdução de dados e os erros associados.

REST API JSON Python / requests RhinoCommon

Ligação Rhino ↔ Base de dados

Como funciona na prática

Este exemplo mostra um script Python que corre dentro do Rhino, consulta uma base de dados SQLite com especificações de peças, e cria automaticamente a geometria correspondente no viewport.

O mesmo princípio aplica-se a SQL Server, PostgreSQL, ou qualquer API REST — apenas a camada de acesso a dados muda.

  • Lê dados de qualquer fonte (SQL, Excel, JSON, API)
  • Cria ou actualiza objectos no modelo Rhino
  • Atribui propriedades (nome, camada, cor, user text)
  • Pode correr em batch sobre centenas de registos
  • Pode ser invocado por um botão de toolbar personalizado
PYTHON rhino_db_link.py
import rhinoscriptsyntax as rs import sqlite3 # Abre a ligação à base de dados conn = sqlite3.connect("pecas.db") cursor = conn.cursor() # Consulta todas as peças activas cursor.execute(""" SELECT nome, largura, altura, profundidade, camada FROM pecas WHERE activo = 1 """) pecas = cursor.fetchall() for peca in pecas: nome, l, h, p, camada = peca # Garante que a camada existe if not rs.IsLayer(camada): rs.AddLayer(camada) # Cria a geometria no Rhino plano = rs.WorldXYPlane() obj = rs.AddBox(plano, l, h, p) # Atribui metadados ao objecto rs.ObjectName(obj, nome) rs.ObjectLayer(obj, camada) rs.SetUserText(obj, "fonte", "db") conn.close() print(f"✓ {len(pecas)} peças geradas")
Vamos trabalhar juntos

Tens um projeto em mente?

Descreve-nos o problema e estudamos a melhor abordagem técnica. A primeira conversa é sempre gratuita e sem compromisso.

Falar sobre o projeto Ver Formação