2个顺序交易,设置详细信息编号(Revit API / Python)



当前,我根据表格上的位置在表上重命名视图号码("详细编号")。破裂的地方是交易。我试图在修订的python shell中依次进行两项交易。我也最初是在Dynamo中进行的,并且失败了,所以我知道这与交易有关。

事务#1:向每个详细编号添加后缀(" -x"),以确保新数字不会冲突(1将为1-x,4为4-x,等)

事务#2:基于视口位置计算的新数字(1-x将为3,4-x将为2,等等)

更好的视觉说明在这里:https://www.docdroid.net/ep1k9di/161115-Viewport-diagram-.pdf.htmlpy文件在这里:http://pastebin.com/7pywa0gv

附件是Python文件,但从本质上讲,我要做的是:

            # <---- Make unique numbers    
            t = Transaction(doc, 'Rename Detail Numbers')
            t.Start()
            for i, viewport in enumerate(viewports):
                            setParam(viewport, "Detail Number",getParam(viewport,"Detail Number")+"x")
            t.Commit()
            # <---- Do the thang        
            t2 = Transaction(doc, 'Rename Detail Numbers')
            t2.Start()
            for i, viewport in enumerate(viewports):
                            setParam(viewport, "Detail Number",detailViewNumberData[i])
            t2.Commit()

附件是py文件

正如我在Revit API讨论论坛上对您评论的回答中所解释的那样,您所描述的行为很可能是由于在交易之间需要再生而引起的。第一个修改会做一些事情,并且在修改完全效果之前需要再生模型,并反映在您在第二笔交易中查询的参数值中。您正在访问过时的数据。建筑编码员提供了所有细致的细节和许多需要再生的示例。

整个线程的摘要,包括解决的两个问题:

http://thebuildingcoder.typepad.com/blog/2016/12/need-for-regen-and-parameter-display-name-confusion.html

,因此此问题实际上与交易或DOC再生无关。我发现(在一些帮助下:)),问题在于我如何设置/获取参数。就像许多参数一样,"详细编号"具有重复的版本,它们在视口元素中共享相同的描述性参数名称。

显然,这可能是遗产问题,尽管我不确定。因此,当我试图获取/设置详细信息时,偶尔会以某种方式抓住错误的只读参数,该参数称为" viewer _detail_number"作为其内置枚举。正确的一个称为" viewport _detail_number"。之所以发生这种情况,是因为我试图通过传递描述性参数名称"详细信息编号"来获得参数。请仔细研究我如何通过内置枚举解决此问题的如何获得/设置参数。请参阅下面的图像。

请参阅PDF以获取视觉说明:https://www.docdroid.net/wbahbgj/161206-detail-number.pdf.html

最新更新