C # revit api для создания панелей в Revit - PullRequest
1 голос
/ 15 марта 2019

Я новичок в revit api. Я хочу создать панель в пустом проекте revit. Я могу создавать стены. Я хочу знать, как я могу добавить данные панели (шпильки, название панели, отверстия и т. Д.) В стену. Также я новичок в строительной терминологии.

вот мой код:

        UIApplication uiapp = commandData.Application;
        UIDocument uidoc = uiapp.ActiveUIDocument;
        Document doc = uiapp.ActiveUIDocument.Document;

        WallType w = getWallType(doc);

        RetrievingLevels(doc);

        Level newLevel = CreateLevels(doc);
        if(newLevel != null)
        {
            IList<Curve> curves = new List<Curve>();

            XYZ first = new XYZ(0, 0, 0);
            XYZ second = new XYZ(20, 0, 0);
            XYZ third = new XYZ(20, 0, 15);
            XYZ fourth = new XYZ(0, 0, 15);

            curves.Add(Line.CreateBound(first, second));
            curves.Add(Line.CreateBound(second, third));
            curves.Add(Line.CreateBound(third, fourth));
            curves.Add(Line.CreateBound(fourth, first));

            //Line l = Line.CreateBound(a1, b1);

            Transaction trans = new Transaction(doc);
            try
            {
                trans.Start("create walls");
                Wall.Create(doc, curves, w.Id,newLevel.Id,  true);
                trans.Commit();
                return Result.Succeeded;
            }
            catch (Exception ex)
            {
                trans.Dispose();
                return Result.Failed;
            }
        }
        return Result.Failed;
        //IList<Curve> curves = new List<Curve>();
    }

    private WallType getWallType(Document doc)
    {
        FilteredElementCollector collector = new FilteredElementCollector(doc).OfClass(typeof(WallType));
        IList<Element> WallTypes = collector.ToElements();
        return WallTypes.First() as WallType;
    }

    private Level CreateLevels(Document document)
    {
        double elevation = 33.0;

        Transaction t = new Transaction(document);
        // Begin to create a level
        t.Start("create Level");
        try
        {
            Level level = Level.Create(document, elevation);



            if (null == level)
            {
                throw new Exception("Create a new level failed.");
            }
            // Change the level name
            level.Name = "New level";
            t.Commit();
            return level;
        }
        catch (Exception e)
        {

        }
        return null;
    }

Также, пожалуйста, предложите мне, где я могу узнать о Revit APIS.

1 Ответ

0 голосов
/ 16 марта 2019

Ну, это очень поможет понять Revit и BIM с точки зрения пользователя, прежде чем вы начнете программировать его, ср. до начала работы .Затем вы должны изучить остальную часть материала Revit API для начала работы .

Далее вы должны научиться изучать, как найти решение Revit API для себя..

Первым шагом всегда обязательно является установка RevitLookup интерактивного инструмента исследования базы данных Revit BIM для просмотра и навигации по свойствам и взаимосвязям элементов.

После этого выможно начать с ручного создания модели, которую вы хотите сгенерировать программно в пользовательском интерфейсе.Узнайте, что с помощью RevitLookup и других инструментов, таких как BipChecker и список элементов, вы узнаете, какие элементы были созданы ручным процессом, а также их свойства и отношения.

Как только вы все это поймете, у вас все будет готово.для создания той же модели программно с помощью Revit API.

Удачи и получайте удовольствие!

...