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;
            }
        }
    }
  • 相关阅读:
    set bootarges
    UI 中的 结构体 字符串的 初始化
    putchar 代替printf
    石家庄 工作
    What's the value of i++ + i++?
    printf 打印 指定长度 字符串
    UI 点滴 积累
    static 关键字
    sdk
    隐式类型转换
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/13283511.html
Copyright © 2011-2022 走看看