Dynamo的出现使得Revit的图形创建功能得到了质的飞跃,为异形结构体的创建插上了想象的翅膀,但是作为一款核心BIM软件这还不够,我们需要的,不仅是在dynamo中可以创建任意的复杂形体,还需要这些几何形体能够完美的导入到Revit中来,并且能够如Revit本身创建的形体一般赋予材质等各种属性。因此,从Dynamo图元到Revit图元的转换就显得尤为重要。
但是,Dynamo刚刚出现的时候并没有这样的节点,小编曾经也为此头痛不已,费了老大劲做出的炫酷模型只能在dynamo里看一看,导入revit就变成一个不能添加任何信息的图形,后续的更多想法都无从下手。可喜的是,随着越来越多的开发者参与进来,功能强大的节点也不断出现,小编也从一个编程小白到如今拿起代码也能看懂一二了,今天就为大家介绍一些Dynamo图形导入Revit的方法以及底层函数的实现。
这里总结了四种导入方式,其功能各有千秋:
在分析这些导入方式之前,先来在dynamo中构建一个异形体(考虑到有的节点可能仅支持常规的几何形体,而这样的节点事实上也是无法满足我们的需求的,因此这里直接使用一个复杂的异形体来进行测试),使用多个位于不同高程,不同大小、不同角度的椭圆进行放样,得到这样一个异形体
1、ImportInstance.ByGeometry节点
这是dynamo自带节点,也是软件最早提供的与revit交互的节点,该节点将会把几何图形变为ImportInstance导入Revit中。这样导入的模型几何形体通常支持的比较好,但是在revit项目文件中只是一个“导入符号”,无法为其添加材质等属性,也无法进一步编辑。
1、DirectShape.ByGeometry节点
这个也是dynamo自带节点,可以指定导入revit后的类型、材质和名称,但是对复杂形体的支持比较差,甚至会完全失去形体,仅保留下一些碎片化的面,而且导入后对象表面有一系列线条,模型不够光滑。
1、Springs.DirectShape.ByGeometry节点
这个是Springs节点包中的节点,可以指定导入revit后的类型和名称,对复杂形体的支持也比较好,唯一缺点是不能指定材质。
这个节点的底层代码实际上是调用了RevitAPI中的Autodesk.Revit.DB.DirectShape . CreateElementInstance函数,这个函数会对输入的dynamo几何体进行引用或拷贝,作为一个DirectShape导入到revit中,这个函数原本是为了支持CAD格式- DWG块、STEP MAPPED_ITEM以及ifc格式的。
1、Springs.FamilyInstance.ByGeometry节点
这个也是Springs节点包中的节点,需要指定族模板路径、族名称、族类型和材质,这个节点会将几何形体创建为一个族文件导入revit项目文件,不仅对复杂几何体支持较好,也可以为导入后的图元添加材质等属性。
这个节点的底层代码并不是简单的用一个函数导入到revit,实际上这个节点会在一个临时路径下创建一个族文件,并在族文件环境下创建输入几何体的族文件,创建完成后再将族文件载入到revit项目文件,因此通过这个节点导入到revit中的图元可以通过直接双击打开其族文件并进行修改。
最后来进行一个总结:
方法1
导入的模型几何形体通常支持的比较好,节点性能较好,但是在revit项目文件中只是一个“导入符号”,无法为其添加材质等属性,也无法进一步编辑。如果追求程序的性能且对图元的材质等属性没有要求的话,可以使用该节点。
方法2
可以指定导入revit后的类型、材质和名称,但是对复杂形体的支持比较差,甚至会完全失去形体,仅保留下一些碎片化的面,而且导入后对象表面有一系列线条,模型不够光滑,不推荐使用。
方法3
可以指定导入revit后的类型和名称,对复杂形体的支持也比较好,性能也较好,唯一缺点是不能指定材质等属性。如果追求程序的性能且对图元的材质等属性没有要求的话,可以使用该节点。
方法4
可以将几何形体创建为一个族文件导入revit项目,该方法不仅对复杂几何体支持较好,也可以为导入后的图元添加材质等属性,只是该节点底层代码操作较为复杂,会在一定程度上影响程序的性能,但仍是最为推荐的一种导入方法。
- BIM学习群
- 微信扫一扫
- 微信公众号
- 微信扫一扫