91手机视频在线-91手机视频在线观看-91手机在线-91手机在线播放-91手机在线观看

完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業名稱
* 信用代碼
* 所在行業
* 企業規模
* 所在職位
* 姓名
* 所在行業
* 學歷
* 工作性質
請先選擇行業
您還可以選擇以下福利:
行業福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

二次開發教程:Revit開發通過API 創建族

發布于:2019-08-23 17:20:00

網友投稿

更多

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using Autodesk.Revit.UI;

using Autodesk.Revit.DB;

using Autodesk.Revit.Attributes;

using Autodesk.Revit.ApplicationServices;



namespace CreateFamily

{

    [Transaction(TransactionMode.Manual)]

    public class Class1:IExternalCommand

    {

        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)

        {

            string rftPath = @"C:\ProgramData\Autodesk\RVT 2016\Family Templates\Chinese\公制柱.rft";

            UIApplication uiapp = commandData.Application;

            Application app = uiapp.Application;

            UIDocument uidoc = commandData.Application.ActiveUIDocument;

            Document doc = uidoc.Document;



            //創建族文件

            Document faDoc = app.NewFamilyDocument(rftPath);


            Transaction trans = new Transaction(faDoc, "Create Family");

            trans.Start();

            FamilyManager manager = faDoc.FamilyManager;

            //添加材質參數

            FamilyParameter mfp = manager.AddParameter("材質", BuiltInParameterGroup.PG_MATERIALS, ParameterType.Material, false);


            //創建拉伸

            CurveArrArray arry = GetCurves();

            SketchPlane skplane = GetSketchPlane(faDoc);

            Extrusion extrusion = faDoc.FamilyCreate.NewExtrusion(true, arry, skplane, 4000 / 304.8);

            faDoc.Regenerate();


            //創建約束

            Reference topFaceRef = null;

            Options opt = new Options();

            opt.ComputeReferences = true;

            opt.DetailLevel = ViewDetailLevel.Fine;

            GeometryElement gelm = extrusion.get_Geometry(opt);

            foreach (GeometryObject gobj in gelm)

            {

                if (gobj is Solid)

                {

                    Solid s = gobj as Solid;

                    foreach (Face face in s.Faces)

                    {

                        if (face.ComputeNormal(new UV()).IsAlmostEqualTo(new XYZ(0, 0, 1)))

                        {

                            topFaceRef = face.Reference;

                        }

                    }

                 }

            }

            View v = GetView(faDoc);

            Reference r =GetTopLevel(faDoc);

            Dimension d = faDoc.FamilyCreate.NewAlignment(v, r, topFaceRef);

            d.IsLocked = true;

            faDoc.Regenerate();


            //關聯材質參數

            Parameter p = extrusion.get_Parameter(BuiltInParameter.MATERIAL_ID_PARAM);

            manager.AssociateElementParameterToFamilyParameter(p, mfp);



            trans.Commit();


            Family fa = faDoc.LoadFamily(doc);

            faDoc.Close(false);

            trans = new Transaction(doc, "CreateColumn");

            trans.Start();

            fa.Name = "我的柱";

            trans.Commit();

            return Result.Succeeded;

        }


        private CurveArrArray GetCurves()

        {

            double len = 300 / 304.8;


            XYZ p1 = new XYZ(-len, -len, 0);

            XYZ p2 = new XYZ(len, -len, 0);

            XYZ p3 = new XYZ(len, len, 0);

            XYZ p4 = new XYZ(-len, len, 0);


            Line l1 = Line.CreateBound(p1, p2);

            Line l2 = Line.CreateBound(p2, p3);

            Line l3 = Line.CreateBound(p3, p4);

            Line l4 = Line.CreateBound(p4, p1);

            CurveArrArray ary = new CurveArrArray();

            CurveArray arry = new CurveArray();

            arry.Append(l1);

            arry.Append(l2);

            arry.Append(l3);

            arry.Append(l4);

            ary.Append(arry);

            return ary;

        }


        private SketchPlane GetSketchPlane(Document doc)

        {

            FilteredElementCollector temc = new FilteredElementCollector(doc);

            temc.OfClass(typeof(SketchPlane));

            SketchPlane sketchPlane = temc.First(m => m.Name == "低于參照標高") as SketchPlane;

            return sketchPlane;

        }


        private View GetView(Document doc)

        {

            FilteredElementCollector viewFilter = new FilteredElementCollector(doc);

            viewFilter.OfClass(typeof(View));

            View v = viewFilter.First(m => m.Name == "前") as View;

            return v;

        }


        private Reference GetTopLevel(Document doc)

        {

            FilteredElementCollector temc = new FilteredElementCollector(doc);

            temc.OfClass(typeof(Level));

            Level lvl = temc.First(m => m.Name == "高于參照標高") as Level;

            return new Reference(lvl);

        }

    }

}

本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。

未標題-1.jpg

上一篇:二次開發教程:Revit開發樓梯創建

下一篇:二次開發教程:Revit開發之標注創建

主站蜘蛛池模板: 国产视频福利 | 国产精品亚洲午夜一区二区三区 | 亚洲狠狠婷婷综合久久久久 | aaa一级毛片免费 | 一级做a爰片久久毛片毛片 一级做a爰片久久毛片免费 | 激情小视频在线播放免费 | 国产精品亚洲第一区焦香 | 欧美亚洲午夜 | 日本一级淫片a 免费播放口 | 日本黄色三级网站 | 亚洲精品一区二区中文 | 国产精品视_精品国产免费 国产精品视频一区二区三区 | 特一级黄色| 亚洲欧美第一页 | 国产亚洲在线 | 国产精品线在线精品国语 | 成人欧美视频在线观看播放 | 欧美在线乱妇一级毛片 | 亚洲网在线观看 | 国产在线拍偷自揄观看视频网站 | 国产一久久香蕉国产线看观看 | 免费观看又色又爽又大高清网站 | 国产激情视频在线 | 高清性色生活片97 | 伊人色综合琪琪久久社区 | 91日本在线精品高清观看 | 国产99热久久这里有精品999 | 久久久受www免费人成 | 中国做爰国产精品视频 | 日韩久久精品一区二区三区 | 欧美日韩aa一级视频 | 香蕉草草久在视频在线播放 | 亚洲视频91| 欧美特黄录像播放 | 日本特黄特黄刺激大片 | 国产精品麻豆 | 中文国产日韩欧美视频 | 久久国内精品自在自线400部o | 日本高清二三四本2021 | 青青草社区 | 亚洲欧美精品中字久久99 |