Последние сообщения

Последние сообщения

Страницы: [1] 2 3 ... 10
1
Использовал вот этот конструктор транзакция прошла. Но где найти этот элемент?

2
Там в перегрузках нет абсолютно ничего сложного. Их можно условно разделить на несколько групп:
1) 2 метода создания view-specific элементов - таких как элементы узлов и аннотации. 1 метод вставка в определенную точку, второй - по линии, если семейство на базе линии
NewFamilyInstance(XYZ, FamilySymbol, View)
NewFamilyInstance(Line, FamilySymbol, View)

2) 3 метода создания элементов в пространстве:
NewFamilyInstance(XYZ, FamilySymbol, StructuralType)
NewFamilyInstance(XYZ, FamilySymbol, Level, StructuralType)
NewFamilyInstance(Curve, FamilySymbol, Level, StructuralType)

3) остальные методы для создания экземпляров семейств на поверхностях, гранях, в общем экземпляры таких семейств будут иметь некий Host
3
А какой же мне использовать метод NewFamilyInstance
В API Recvit этого метода 12 перегрузок.

Вот прикрепляю еще картинку этого элемента

Специально переименовал в "К-1а_111" чтобы понимать что есть что.



4
Не тот метод NewFamilyInstance, их довольно много и тот, который нужно использовать зависит от типа семейства.

Тот метод, который Вы пытаетесь использовать предназначен, например, для семейств категории "Элементы узлов" или "Типовые аннотации".
5
Я так понял что это о том что базовый тип ViewBase не может быть помещен в вид
6
Я сделал так, НО!!!
В конструкторе ругается соотв в строке 12 где вызов конструктора.
Вот что пишет

Family cannot be placed as hosted on an input face reference, because its FamilyPlacementType is not ViewBased
Parameter name: symbol


Я так понял что эта ошибка в том,
что базовый тип ViewBase не может быть помещен в вид


Код - C# [Выбрать]
  1.                
  2. string rvtName = @"c:\work\file.rvt";
  3.                 UIDocument uidoc = data.Application.OpenAndActivateDocument(rvtName);
  4.                 RVT_DB.Document doc = uidoc.Application.ActiveUIDocument.Document;
  5.                 RVT_DB.ElementFilter EF = CreateFamilySymbolFilter("К-1а", "К-1а");
  6.                 var collector = new RVT_DB.FilteredElementCollector(doc);
  7.                 var familySymbol = collector.WherePasses(EF).FirstElement();
  8.                 RVT_DB.FamilySymbol fs = familySymbol as RVT_DB.FamilySymbol;
  9.                 using (RVT_DB.Transaction tr = new RVT_DB.Transaction(doc, "add new elem sem"))
  10.                 {
  11.                     tr.Start();
  12.                     doc.Create.NewFamilyInstance(new RVT_DB.XYZ(0, 0, 0), fs, doc.ActiveView);
  13.                     tr.Commit();
  14.                 }


7
Не-а тут фигня конструктора нет
FamilySymbol fs = new FamilySymbol();
8
Нет. FamilySymbol нужно найти, как указано выше, например. Ещё один момент, нужно проверить его свойство IsActive, если оно false - вызвать symbol.Activate()
9
Я так понял в моем случае это как-то таr?

Код - C# [Выбрать]
  1. XYZ p = new XYZ(0, 0, 0);
  2. View v = doc.ActiveView;  
  3. FamilySymbol fs = new FamilySymbol();
  4. fs.Name = "К-1а";
  5. doc.Create.NewFamilyInstance(p, fs, v);
10
1) Symbol.Family
2) family.Id
3) один из overload-ов doc.Create.NewFamilyInstance
Страницы: [1] 2 3 ... 10