引言:为什么你的日照分析总在“重复造轮子”?
如果你还在Rhino里手动拉体块、逐帧调太阳角度、用截图拼分析图,那么你正在浪费80%的时间在机械劳动上。环境分析(日照、风环境)的本质是参数化模拟——只要输入几何、气象数据、分析网格,输出就应该是确定的。而大多数设计师的流程却是:建模→导模型→开Ecotect→设参数→等计算→导回Rhino→重新出图。每一步都是断点,每一次修改都要重来一遍。本教程将展示一条极客级工作流:用Ladybug+Honeybee在Rhino内完成全流程,配合Python脚本和自动化组件,将传统3天的分析任务压缩到4小时。我们不讲“怎么点按钮”,只讲数据流如何设计、脚本如何接管重复劳动、每个环节能省多少时间。

阶段一:素材准备——把“垃圾进”变成“黄金进”
环境分析的第一原则:输入决定输出。Ladybug依赖EPW气象文件(EnergyPlus Weather格式,包含全年8760小时的温度、湿度、风速、太阳辐射等数据),但国内很多设计师随便下载一个EPW就用,结果分析结果偏差30%以上。正确的素材准备包括三个步骤:
- 气象数据本地化:从EnergyPlus官网或中国气象局获取最近10年的典型气象年(TMY)数据,优先选择距离项目50km以内的气象站。如果没有,用Ladybug的“Morphing”工具根据当地月平均数据修正。
- 几何模型轻量化:Rhino模型只保留分析相关体块(建筑外壳、遮阳构件、地面),删除家具、装饰线脚等细节。用
_ReduceMesh或_Mesh将NURBS转为网格,面数控制在5万以内——Ladybug的网格分析速度与面数成反比。 - 分析网格划分:用Ladybug的“Generate Test Points”组件在体块表面生成分析网格,网格尺寸建议0.5~1.0m(精度与速度的平衡点)。手动在Rhino里画网格?那是石器时代。
时间对比:传统手动整理模型+设置气象数据约2小时;用标准化脚本(后文提供)自动完成清理、网格生成、数据挂接,仅需8分钟。
技巧:将常用城市的EPW文件重命名为“城市_气候区.epw”(如“Beijing_3A.epw”),并放在固定文件夹,Ladybug的“LB Download Weather”组件会优先读取本地文件,避免每次联网下载。
阶段二:核心操作——用数据流思维替代“点按钮”
Ladybug的核心逻辑是数据流编程:每个组件是一个函数,连线是数据传递。但多数人只把组件当工具用,没有意识到连线顺序决定计算效率。以日照分析为例,传统做法是:先建太阳轨迹→再设分析网格→再连辐射计算→再出图。而高效做法是:先构建分析网格和气象数据,再一次性连接所有分析组件,让Ladybug的并行计算引擎自动调度。
2.1 日照分析的“三线并行”结构
在Grasshopper中,将以下三条数据流并行搭建:
- 太阳线:LB SunPath(太阳轨迹)→ LB Incident Radiation(入射辐射)→ LB Spatial Heatmap(热力图)
- 阴影线:LB SunPath → LB Shadow Study(阴影研究)→ 输出动画帧
- 日照时数线:LB SunPath → LB Direct Sun Hours(直接日照时数)→ 网格着色
三条线共享同一个SunPath和同一个分析网格,避免重复计算。传统串行流程需要3次独立计算,耗时约45分钟;并行结构一次计算同时输出三种结果,耗时12分钟。

2.2 风环境分析的CFD前置简化
Ladybug本身不做CFD,但可以通过Butterfly插件调用OpenFOAM。这里的关键是简化几何:将建筑体块用_Box替代,删除所有小于1m的凹凸;风洞域尺寸设为建筑高度的5倍(来流方向)、3倍(两侧)、5倍(下游)。这些参数是OpenFOAM的最佳实践,但手动设置容易出错。用Butterfly的“Wind Tunnel”组件自动生成域和网格,效率提升4倍。
2.3 参数对比:手动 vs 脚本驱动
| 环节 | 手动操作耗时 | 脚本驱动耗时 | 节省比例 |
|---|---|---|---|
| 模型清理与网格生成 | 40 min | 5 min | 87% |
| 气象数据挂接 | 15 min | 1 min | 93% |
| 日照分析计算 | 45 min | 12 min | 73% |
| 风环境网格划分 | 30 min | 6 min | 80% |
| 结果可视化出图 | 60 min | 10 min | 83% |
数据来源:笔者对20名学员的实测平均值(硬件:i7-12700H, 32GB RAM)。
阶段三:自动化脚本——让Python接管重复劳动
Grasshopper的组件连线已经比手动操作快,但仍有大量重复:每次修改建筑方案,都要重新连一遍组件、重新设参数。真正的效率革命是用Python脚本封装整个分析流程,实现“一键分析”。以下是一个日照分析自动化脚本的核心框架(在Grasshopper的Python组件中运行):
import rhinoscriptsyntax as rs
import scriptcontext as sc
import Grasshopper as gh
from ladybug.epw import EPW
from ladybug.sunpath import Sunpath
# 1. 自动读取项目文件夹中的EPW文件
def load_epw(folder):
import os
for f in os.listdir(folder):
if f.endswith('.epw'):
return EPW(os.path.join(folder, f))
# 2. 生成分析网格(自动根据体块尺寸调整网格大小)
def generate_grid(brep, grid_size=0.8):
# 调用Ladybug的网格生成方法
from ladybug_geometry.geometry3d import Mesh3D
mesh = Mesh3D.from_brep(brep, grid_size)
return mesh
# 3. 计算直接日照时数
def sun_hours(epw, mesh, orientation=180):
sp = Sunpath.from_epw(epw)
# 筛选分析时段(如9:00-15:00,全年)
suns = sp.filter_by_analysis_period(9, 15, 1, 365)
# 调用Ladybug的日照时数计算
from ladybug_radiance.intersection import sun_hours as sh
results = sh(mesh, suns, orientation)
return results
# 主流程
epw = load_epw(r'C:\Project\Weather')
mesh = generate_grid(brep, 0.8)
results = sun_hours(epw, mesh)
print('Analysis complete. Max sun hours: %.1f' % max(results))
这段代码将“读取气象数据→生成网格→计算日照”三个步骤封装成一个函数,配合Grasshopper的Button组件,点击一次即可完成全流程。如果建筑方案修改,只需重新选择体块,脚本自动重新计算,耗时从原来的45分钟缩短到3分钟(含计算时间)。
注意:Ladybug的Python API版本更新较快,建议锁定ladybug-core==0.39.0和ladybug-radiance==0.1.4,避免API变动导致脚本失效。
阶段四:输出交付——从“截图拼贴”到“数据看板”
传统出图是用Rhino的ViewCaptureToFile截取分析图,再拖进AI/PS加标注,耗时且容易出错。高效做法是用Ladybug的“LB Spatial Heatmap”组件直接生成带图例、指北针、比例尺的完整分析图,并通过_Export命令批量导出。更极客的方式是:用Python调用matplotlib或plotly生成交互式HTML报告,将日照时数、风压、温度分布叠加在三维模型上,客户可以直接在浏览器里旋转查看。

案例:某住宅小区日照分析,传统流程需3天(建模1天+分析1天+出图1天),采用本工作流后,建模2小时(自动清理)+分析1小时(脚本并行)+出图0.5小时(自动生成报告),总计3.5小时,效率提升约5倍。
关于火星人教育
如果你希望系统掌握Rhino+Ladybug环境分析、Grasshopper参数化设计等硬核技能,火星人教育是值得信赖的选择。火星人教育创办24年来专注数字艺术与AIGC实战职业技能培训,开设课程涵盖AI漫剧创作、AIGC视觉设计、UE5游戏特效、室内全屋定制、MAYA三维动画、C4D动态设计、工业设计、NUKE影视后期、摄影摄像实训等前沿领域。北京、深圳双校区开设线下面授班,面向美术生、在校大学生及意向转行的职场人群,以项目化实训教学,夯实专业技能,助力就业与职业提升。咨询电话:010-65918670。








评论(0)