Dynamo_参数化造型2

看到一个商场的造型柱子,觉得有点意思,便尝试使用Dynamo进行了参数化建模

参数化演示

创建思路如下

1、创建两个圆圈,用作控制柱体的高度及半径

2、在上下两个圆圈上分割出若干个点,将这些点相连则获得基础的组成柱体的装饰木条路径,木条的数量可以由过木条的宽度及柱子的周长计算获得

3、按相隔1条的原则,过滤出需表现造型的木条路径

4、使用两个圈,控制波浪造型的顶点及底点,因为有上下两个波浪造型,所以需创建4个控制圈

5、通过列表操作及几何相交判读,过滤出波浪造型最关键的顶点及底点,然后使用多段线连起来,则可以获得基础的波浪线段。但由于柱子是圆的,还需要创建一个曲面,将线段投影到曲面上,再通过相交判读,才能获得准确的造型定位

6、第5部完成后其他的就基本没有难度了,剩下的只是使用这些关键数据创建几何

由于Dynamo的几何转化成族的功能现在还不算太完美,建议只使用Dynamo实现主体与造型的参数化建模,中间的显示屏最好还是在Revit的族编辑器里面创建,这样更方便贴材质,满足后面阶段的展示需求,还可以稍微提高一下Dynamo的运行效率。

这次由于不考虑其他需求,我还是使用Dynamo把显示屏一起创建了。

下面再简单贴一下创建过程

创建基础圆

计算分割点,并将其连接,这里有两个点要考虑,一是点的数量使用圆周长除木条轮廓的宽度;二是要注意由于使用了点分割,所以出来的结果会漏掉圆的起始点,需要补充一下

将获得的线条通过简单的列表操作进行分类,因为其中一部分需要表现造型的

继续通过列表操作,获得造型出现转折的位置

创建造型的控制圆圈,与上面获得的关键位置做几何相交判断,求得关键点,再将关键点连接,获得相似的造型线段

创建一个曲面

将前面的线段投射到曲面上,注意每条线段投射到圆柱曲面上都会出现两条投影线,使用相交判断,取得其中正确的一条重新组合,就可以获得准确的造型定位曲线。将曲线与基础的垂直线进行相交判断,就可获得各个造型的控制点。这里还需要对控制点进行一个取整的操作。

根据这些关键数据,即可生成几何

下部分造型同理

先通高创建木条,创建显示屏时再剪切打断

显示屏部分不作过多介绍,只是简单的几何创建

最终结果

使用 Dynamo 制作 Revit 参数化族是一种高效的方式,可以显著提高建模效率和参数化控制能力。Dynamo 作为 Revit 的可视化编程工具,允许用户通过节点连接的方式实现自动化建模参数化设计。以下是实现 Dynamo 制作 Revit 参数化族的主要步骤和方法。 ### ### 1. 准备族模板 在 Revit 中创建一个族文件(.rfa),选择合适的族类别,例如“常规模型”或“窗”等。根据设计需求设置好族的基准参照面、工作平面以及必要的参数框架。这一步可以手动完成,也可以通过 Dynamo 自动创建基础几何体[^1]。 ### ### 2. 在 Dynamo 中定义参数与逻辑 在 Dynamo 中,可以定义族的尺寸参数、类型参数和实例参数,并将这些参数绑定到几何体的生成逻辑中。例如,通过数字输入节点、滑块或 Excel 表格导入参数值,构建参数驱动的建模流程。 ```python # 示例:在 Dynamo 中定义参数 number_node = NumberSequence(start=0, end=10, step=1) ``` ### ### 3. 创建几何体并绑定参数 利用 Dynamo 的几何节点(如 `Point.ByCoordinates`, `Line.ByStartPointEndPoint`, `Solid.ByUnion` 等)构建族的几何形态。所有几何体的尺寸和位置应通过参数控制,确保模型的可调整性。 ```python # 示例:通过参数创建长方体 length = 1000 width = 500 height = 200 box = Solid.Rectangle(width, length).Extrude(height) ``` ### ### 4. 将几何体载入到 Revit 族中 通过 `FamilyInstance.ByGeometry` 或 `Family.Create` 等节点将 Dynamo 中生成的几何体导入到 Revit 族中。此步骤需要确保几何体与族的基准面和参数正确对齐[^3]。 ### ### 5. 定义共享参数与类型参数 在 Dynamo 中可以调用 `FamilyManager` API 创建共享参数或类型参数,并将其绑定到族实例中。这一步通常需要 Python 脚本节点来调用 Revit API 实现更复杂的参数操作[^4]。 ```python # 示例:通过 Python 脚本添加参数 clr.AddReference('RevitAPI') from Autodesk.Revit.DB import * doc = DocumentManager.Instance.CurrentDBDocument familyManager = doc.FamilyManager familyManager.AddParameter("Width", BuiltInParameterGroup.PG_GEOMETRY, ParameterType.Length, True) ``` ### ### 6. 测试与优化 完成族的创建后,在 Revit 中加载族并进行参数修改测试,确保几何体能够按照预期响应参数变化。对于复杂的族,建议将部分操作保留在 Revit 族编辑器中完成,如材质贴附、嵌套族插入等,以提升效率和展示效果[^1]。 ### ### 7. 扩展功能与自动化 结合 Dynamo 的自适应组件(Adaptive Component)功能,还可以实现更高级的参数化设计,例如幕墙系统、复杂曲面结构等。通过 `AdaptiveComponent.ByPoints` 节点,可以在任意曲面上布置自适应族,实现动态建模[^3]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值