下载app免费领取会员
Hello大家好!我是九哥~
今天给大家分享一个实用的API,设置图纸中视口标签的位置。
很早之前,我在视频号里分享过根据Excel创建图纸目录,并快速布图的Dynamo程序,不过有一个小遗憾,就是标签的位置,无法设置。
不过现在好了,Revit2022+版本,增加了视口的标签偏移的属性,并且是可get可set的,正好能满足我们的需求。
那么就和简单了,只需要在放置视口后,同时调整视口标签偏移即可。
核心代码如下:
view.LabelOffset = DB.XYZ(x,y,z)
大致偏移逻辑如下图,funbim标签需要向右下方移动,x值为正,y值为负即可:
是不是很简单,这里需要注意的就是,Revit默认是以英尺为单位的,需要进行转换,同时Revit2022版本的单位API也进行了调整,需要注意。
这里,我们也可以存成一个固定的用法,生成一个换算系数。
if int(REVIT_VERSION) < 2021: units = doc.GetUnits().GetFormatOptions(DB.UnitType.UT_Length).DisplayUnits factor = DB.UnitUtils.ConvertToInternalUnits(1,units) else: factor = DB.UnitUtils.ConvertToInternalUnits(1,doc.GetUnits().GetFormatOptions(DB.SpecTypeId.Length).GetUnitTypeId())
最后附上完整代码和程序演示截图:
调整好位置值以后,点击Button即可运行,实现视口标题位置的调整。
# RIR设置图纸中视口标签的位置 __author__ = '九哥BIMer' import clr clr.AddReference('System.Core') clr.AddReference('RhinoInside.Revit') clr.AddReference('RevitAPI') clr.AddReference('RevitAPIUI') from System import Enum import rhinoscriptsyntax as rs import Rhino import RhinoInside import Grasshopper from Grasshopper.Kernel import GH_RuntimeMessageLevel as RML from RhinoInside.Revit import Revit, Convert from Autodesk.Revit import DB #from Autodesk.Revit.DB import * REVIT_VERSION = Revit.ActiveUIApplication.Application.VersionNumber doc = Revit.ActiveDBDocument if int(REVIT_VERSION) < 2021: units = doc.GetUnits().GetFormatOptions(DB.UnitType.UT_Length).DisplayUnits factor = DB.UnitUtils.ConvertToInternalUnits(1,units) else: factor = DB.UnitUtils.ConvertToInternalUnits(1,doc.GetUnits().GetFormatOptions(DB.SpecTypeId.Length).GetUnitTypeId()) if GO == 1: t1 = DB.Transaction(doc, "视图标签偏移") t1.Start() labelOffset = DB.XYZ(XOffset*factor,YOffest*factor,0.0) view.LabelOffset = labelOffset t1.Commit()
好了,今天的分享就到这里了
本文版权归腿腿教学网及原创作者所有,未经授权,谢绝转载。
上一篇:政策新闻 | 住建部部长答记者问 回应房地产发展、城市更新、建筑业转型升级等社会热点问题