BIM建筑网
更专业的BIM技术学习网站!


BIM技巧|探究Revit API反转/镜像/变换

免费的Ai上线啦!
BIM建筑网自主研发,你想要Ai功能都在这里!
Ai·提升效率 技术答疑

在这篇文章中,我们将研究Revit API中的Instance.GetTransform方法。

Revit API 中的Instance.GetTransform方法 不包括反射,下图展示了一个被镜像的族实例以及等效的GetTransform值:

BIM技巧|探究Revit API反转/镜像/变换

下面是Python代码:

importsysimportclrclr.AddReference(‘ProtoGeometry’)fromAutodesk.DesignScript.Geometryimport*data=UnwrapElement(IN[0])output=[]foriindata:output.append(i.Location.Point)output.append(i.GetTransform().BasisX)output.append(i.GetTransform().BasisY)output.append(i.GetTransform().BasisZ)output.append(“”)OUT=output

这在 Revit中是有意为之的。

然而,从数学的角度来看,这是不应该的。维基百科的变换矩阵清楚地指出关于X轴反射的元件应具有不同的变换矩阵:

BIM技巧|探究Revit API反转/镜像/变换

我们发现 Revit 对各种镜像和翻转操作使用了反射和旋转的组合:

BIM技巧|探究Revit API反转/镜像/变换

值得关注的是关于同一轴的水平双翻转控制和镜像命令(红色标注)之间的区别。除了导致相反的面对方向和手状态的水平操作之外,这些操作几乎相同。从图形上看,它看起来是一样的,但不是根据面对方向。

之前已经注意到单次翻转控制更像是旋转而不是镜像(它不会得到反射的几何形状)。我们通过变换看到它被反射,但面对方向?用手状态也被设置为真。

通常来说,我认为面对方向/手的状态是族状态的内部管理数据,即,内部几何可以被反射,但族本身不是(除非它是通过变换)。

你可能需要查看翻转状态/旋转和变换,以明确了解情况。这些控制很久以前我相信是为门构建引入的,用来表示它们悬挂在哪一边以及摆动的方向。当它们开始用于其他事物时,歧义就开始出现,即双重否定(相同的最终表示,但有两个定义)。

原文链接:https://thebuildingcoder.typepad.com/blog/2021/05/flip-mirror-transform-and-transient-graphics.html

微信公众号:xuebim
关注建筑行业BIM发展、研究建筑新技术,汇集建筑前沿信息!
← 微信扫一扫,关注我们+
赞(0) 打赏
BIM建筑网 » BIM技巧|探究Revit API反转/镜像/变换

评论 抢沙发

评论前必须登录!

 

BIM建筑网,更专业的BIM技术学习网站!

关注建筑新动态,分享建筑新技术

联系我们关于BIM建筑网

觉得文章有用就打赏一下小编吧

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

扫码登录

微信「关注」,快捷登录
扫码关注后会自动登录
注册登录代表您已同意《用户许可协议》
账号登录 | 其他登录

|登录

找回密码

|账号登录注册