0

建筑师编程课(第六期)

 2 years ago
source link: https://caadxyz.github.io/blog/python4rhino-zh
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

建筑师编程课(第六期)

21 October 2020

cover

导师简介

课程简介

  • 课程为10周,主要内容是计算机辅助建筑设计(CAAD),算法研究自动生成
  • 学生可以通过脚本与编程语言(Python, Grasshopper)的学习去探求新的设计方法及手段。
  • 掌握与编程相关的辅助设计方法后,学生可以丰富其原有的设计能力,从而开创新的建筑设计领域

课程结构

  1. CAAD & Scripting 简介
  2. 基于Rhino的参数化插件 Grasshopper
  3. Rhino.python 脚本编程
  4. 经典算法讲解

资格要求

  1. 学生已经掌握一些基本的rhino知识或者其他类似的3d建模软软件
  2. grasshopper零基础,python零基础
  3. 学习期间要求学生提交的主要课程作业有:
    • Grasshopper 参数化几何形体建模
    • Rhino.python 算法设计
    • Final Project(期终作业)

适合人群: 建筑设计领域的学生与从业人员, 设计与制造相关领域的学生与从业人员

日程安排及学费

  • 线上腾讯课堂
  • 2020年12月05日-2021年2月06日,每个周日的晚上20:00-23:00, 总学时30个课时
  • 节假日可以与学生商量具体合适的时间
  • 学费: 1500元
  • 学员: 不超过30人

CAAD及脚本简介(共一周)

第一周

CAAD简介

  1. 参数化设计与脚本编程基础
  2. 通过面向对象编程范式来生成及扩展设计领域
  3. 数字建造, CNC, Physical Computing: 真实世界与传感器

Scripting简介

  1. Grasshopper(数据流可视化脚本编程): 建筑设计师可以将设计问题分解为一系列的深层次的关系,并将这些关系映射成相关图形和程序, 在这样的图解系统中, 这些图示与程式可以相互关联互动.
  2. python: 是一种通用的易于读写的编程语言, 功能强大,可用于构建工具及生成自动化脚本.
  3. Rhino.python
    • 算法及交互式脚本
    • 创建自定义的Rhino命令
    • 创建Rhino插件
    • 创建自定义的Grasshopper组件
    • 读写自定义的数据及文件
    • 与云应用交互
    • 创建与其他程序的实时关联
    • 在Rhino文件中存储用户自定义的数据信息
  4. .net & RhinoCommon
    • Rhinocommon是Rhino平台的底层SDK, 面向中高级程序员.
    • 在Python Scripts中可以使用RhinoCommon, 并访问到.NET框架及运行环境
  5. Hello world & fun
    • python help
    • 你第一个Rhino.Python脚本

Grasshopper101 & python 101 (共两周)

作业: 2D/3D 参数化编程

第二周

  • Gh: 界面, Grasshopper组件
  • Gh: 数据结构及流程控制
  • Py: python help
  • Py: 数据类型与变量,条件判断与循环
  • Py: 函数定义及调用(1)
  • Git & VsCode

第三周

  • Gh: Range & Series & Interval
  • Gh: 数据流匹配
  • Gh: Datatree
  • Py: Tuples,List,Dictionaries,Set: Points and Vectors
  • Py: io & error
  • Py: 函数定义及调用(2)
  • Py: 面向对象简介 
  • Py: 算法一:递归与分形,树

点线面 (共三周)

几何形体: https://developer.rhino3d.com/guides/rhinopython/primer-101/8-geometry
作业1:自由形体脚本建模
作业2:2D/3D 算法编程

第四周

  • 矢量基础:vector,matrix,plane,xform
  • 类与对象的使用及如何定义(1)

第五周

  • 曲线类型:Spline, NURBS
  • 类与对象的使用及如何定义(2)

第六周

  • 曲面类型: Surface, Mesh
  • 算法二:field & force
  • 类与对象的使用及如何定义(3)

Rhino.python(共两周)

作业: 开发一个Rhino命令及Grasshopper组件

第七周

  • rhinoscriptsyntax
  • scriptcontext: object, selection, command
  • data & json
  • Eto & Event
  • 算法三: 粒子系统

第八周

  • Python脚本与Grasshopper组件交互
  • 交互界面: Rhino命令行定制, Grasshopper组件定制
  • Dotnet & RhinoCommon
  • kangaroo2, ladybug

Final Project (期终作业)(共两周)

参考案例:

  • caad4rhino: 一个辅助建筑设计的工具类python库
  • PolisFramework: 一个自动化生成建筑的框架

第九周

  • 常用第三方图片处理模块: OpenCV, PIL, System.Drawing
  • 在revit API & dymamo环境中python编程
  • 算法四: 元细胞自动机

第十周

  • FinalProject总答疑
  • 项目策划/算法评估
  • 文档组织/docFile
  • 编程与调试/unitTest

grasshopper组件: 数据流
gh_01

python基础: patten pattern

python基础: 递归与分形
treerecursion

python, grasshopper: 遍历数组,datatree py_01

python基础: 图片数据读取与分析 readimage

python面向对象编程: 物理模拟
py_simulate0

python面向对象编程: 物理模拟
py_simulate1

python面向对象编程: 元细胞自动机
py_simulate

工具库开发: 画墙线,开门窗,标尺寸
https://github.com/caadxyz/caad4rhino
wallline2wallopeningdim

上课形式是怎么样的?

  • 腾讯课堂,线上直播+录播视频。
  • 报名后加入课程专属交流群,主讲老师会在群里做课后答疑。
  • 课程涉及的grasshopper文件及python源码等都会提供。
  • 并提供多个由导师亲自编写或相关的openscource源码库。

我的rhino水平零基础可以上课吗?

  • 课程要求学员对rhino有粗略的了解,如果学员零基础可以通过自学一下资源达到对rhino的初步了解:
    • rhino level1 中文pdf教材 https://www.rhino3d.com/download/rhino/6/training-level-1
    • 官方英文教程(包括视频): https://www.rhino3d.com/tutorials

我是设计专业领域但不是建筑设计,可以上课吗?

  • 可以, 查看教学大纲, 你会发现课程中会有大量的点线面方面的编程知识, 以及经典算法的学习, 大纲中80%以上内容都是与设计专业息息相关,不仅仅局限于建筑设计领域.
  • Final Project 鼓励大家自选题目, 老师会协助辅导. 如果没有自己的题目, 老师会建议选PolisFramework(一个自动化生成建筑的框架), 这是一个设计类通用框架,但是大部分已有构件代码是与建筑相关的.

Comments

No comments found for this article.

Join the discussion for this article on this ticket. Comments appear on this page instantly.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK