关于Grasshopper给物体指定图层及材质的方法提问

问题: GH在烘培物体的时候是否能直接指派物件到指定的图层(在GH中预先指定输出图层,无脑Back,无需右键手动指定Back对应图层)

原因: 由于建筑设计的过程中,有些固定构建是反复高频使用的,而且样式相对固定(例如栏杆、楼梯门窗、管线之类的基础构件)而且在生成的物体中可能会设置多种材质,需要对应放到对应的图层中去。如果每一次都需要分开Back,其实累加起来的次数也是非常多,而且一旦项目大了,图层会激增到几十至上百个,每次导出前还需要去找到对应的图层位置。这些零碎的操作,虽然可能每次只是二十秒左右的操作,但是反复累加后,也是非常可观的一个时间量。如果我能在GH里提前给物体指定图层,甚至我无需提前在RHINO图层管理器中提前创建这个图层,会随着Back后在RHINO中自动生成对应的图层,并把物体放置于该图层中并且物体是有附带我在GH中给物体赋予的材质,那我只需要将这些物体组成一个Group后就能无脑Back出来,而且在日后的项目中我们只需要直接调用上次编写好的电池包,就能快速完成这些构建的生成,效率和速度会得到很大的提升。

所以,请问GH中是否有这样的电池模块,或者如何实现?

如果不准备写代码,可以寻找插件达成这个功能。例如elefront

感谢您的热心回答,我尝试一下使用Elefront这个插件做了个小的测试范例,对物体的图层及材质进行指派,确实十分好用,尤其是最后的一键输出,着实畅快。但折腾的心让我按耐不住想让程序变得更完整,以及日后的使用更便捷一些。我就想尝试一下在这个程序的基础上加上RHINO7新出的 GH Player 功能,希望实现一键生成的效果,可是到了最后一步,却发现Elefront的Bcak电池没有对应的模型输出端,只有一个message输出端,虽然在GH Player命令下能完全正常使用 ,但是当我想要尝试把这个程序编译成rhc插件的时候,却出现无法正常编译的情况 详细的情况如下

这是最后的编译报告:


出现以上问题是否是以为Elefront和编译功能冲突,还是因为最后没有能接上Player Back而导致?

这是我自己写的测试程序文件:Build_Grass_railing.gh (24.9 KB)

试了很多次之后的结论:

  1. 直接储存好的程序使用GHplayer命令,本机成功率100%,非本机成功率 ???有待考证
  2. 用了非GH原生电池的,成功率0%
  3. 完全用GH原生电池,程序文件和rhc文件放在同一个文件夹里的,成功率0%
  4. 完全用GH原生电池,且程序文件和rhc文件分开存放,没有中文路径,且输入和输出端必须接上player对应接口的,成功率50%

#感觉还是完全靠运气,完全相同的程序换个名字都能编译不上的情况也是有的 :joy: :joy: :joy:
总体来说这个功能还是不完善的,还有待提升,而且非常期待,这是让RHINO往更高层次迈进的关键一步,未来一键式的插件程序将迎来井喷阶段,软件的使用效率会大大提高。

在这里我还有一个疑问想提出,希望有人看到并给予回复,假设我用了非GH原生程序制作的这个程序,另外一个人使用GHplayer功能来使用这个程序,但其中有些GH程序插件它是没有安装过的,就例如我上面所说的elefront,那这个程序是否能依然能正常使用。

如你所测试的,GH player编译过程中文件路径设置成相同的,或者在原有文件的子文件夹下都会失败。

编译中包含另外安装的GH插件。这种情况非复杂,某些插件本身因为可能还调用了其他程序库,或者有代码保护,授权保护等可能,因此只能实际测试,如果不能用其实我们也不觉得奇怪。GH player的开发过程中并没有考虑这么复杂的情况。

有没有试过human这个插件?
这插件里面可以设置图层材质,连上button还能一键烘焙。不过需要提前建好图层好像?
gh player编译成rhc插件后,没办法烘焙出组件或者群组,在输入这些物体的时候让他们不是组件或者群组,rhc是可以直接生成实体的。
如果一定要输入组件或者群组的话,那就一定要通过gh来操作,通过elefront读取组件,最后输出组件。rhc只能预览到组件或群组,出不来实体。

方便把测试程序上传上来一起研究不?感觉关于图层管理的东西,在未来的GH工作流中,特别是自建rch插件方便非常重要。如果可以的话,让这张帖子成为这类问题的专题交流贴也是不错的,让跟多人一起参与其中,共同推进这个程序的发展。