zoukankan      html  css  js  c++  java
  • Revit 二次开发 事务

    学习地址:https://www.bilibili.com/video/BV1mf4y1S72o?p=9

    本章内容

    • 事务类型
    • 事务开始、提交、回滚
    • 事务容错处理

    事务类型

    事务开始、提交、回滚

    事务容错处理

    实例练习

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Autodesk.Revit.UI;
    using Autodesk.Revit.DB;
    using Autodesk.Revit.ApplicationServices;
    using Autodesk.Revit.Attributes;
    using System.Windows.Forms;
    using Autodesk.Revit.UI.Selection;
    
    namespace RevitDevTV
    {
        /// <summary>
        /// 事务练习
        /// </summary>
        [TransactionAttribute(TransactionMode.Manual)]
        [RegenerationAttribute(RegenerationOption.Manual)]
        public class Trans : IExternalCommand
        {
            public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
            {
                UIDocument uiDoc = commandData.Application.ActiveUIDocument;
                Document doc = uiDoc.Document;
                TransactionGroup tg = new TransactionGroup(doc, "TG");
                tg.Start(); //开启事务
                Transaction t1 = new Transaction(doc, "T1");
                t1.Start(); //开启事务
                Wall.Create(doc, Line.CreateBound(new XYZ(), new XYZ(0, 10, 0)), Level.Create(doc, 0).Id, false);
                t1.Commit();
                TaskDialog.Show("提示", "已生成第一道墙");
                Transaction t2 = new Transaction(doc, "T2");
                t2.Start(); //开启事务
                Wall.Create(doc, Line.CreateBound(new XYZ(), new XYZ(0, 10, 0)), Level.Create(doc, 0).Id, false);
                t2.Commit();
                tg.Assimilate();
                //tg.Commit();
                Transaction tt = new Transaction(doc,"Transaction");
                tt.Start();
                SubTransaction st1 = new SubTransaction(doc);
                st1.Start();
                SubTransaction st2 = new SubTransaction(doc);
                st2.Start();
                st2.Commit();
                TaskDialog.Show("提示", "t2已提交");
                st1.Commit();
                TaskDialog.Show("提示", "t1已提交");
                tt.Commit();
                return Result.Succeeded;
            }
        }
    }
  • 相关阅读:
    多元线性回归(pandas/scikit-learn)
    hive查询语法
    Python日志记录(Logging)
    python调用C/C++动态链接库和jython
    MacPorts的安装和使用
    python多进程(multiprocessing)
    Z-Score数据标准化处理(python代码)
    皮尔逊相关系数的计算(python代码版)
    参考书籍
    MFC 之ActiveX控件学习
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/13283511.html
Copyright © 2011-2022 走看看