Обнуление при загрузке или создании новых экземпляров семейства - PullRequest
0 голосов
/ 10 января 2020

У меня возникли проблемы со следующим фрагментом кода при работе с надстройкой:

doc.LoadFamilySymbol(@"[filepath here]", "[filename here]", out FamilySymbol symbol);
doc.Create.NewFamilyInstance(mid, symbol, d, GetLevelInformation(d), StructuralType.NonStructural);

Насколько я могу судить во время отладки, символ переменной FamilySymbol после моего прохождения равен нулю первая строка. mid, d и GetLevelInformation все работают и содержат ожидаемые значения, поэтому я подозреваю, что проблема находится в первой строке.

Ответы [ 2 ]

0 голосов
/ 15 января 2020

Думаю, я бы обновил эту ветку для тех, у кого были похожие проблемы, так как я решил свою проблему Ответ состоял в том, что я пытался загрузить Семейство, используя параметр Name , в то время как я действительно искал параметр FamilyName .

Исправлено: x.Name на x.FamilyName , как показано ниже:

FilteredElementCollector collector = new FilteredElementCollector(doc);
            FamilySymbol symbol = collector.OfClass(typeof(FamilySymbol))
                .WhereElementIsElementType()
                .Cast<FamilySymbol>()
                .First(x => x.FamilyName == "[Family Name]");

Есть разница! Спасибо за ответы, Джереми.

0 голосов
/ 12 января 2020

Глядя на перегрузки метода LoadFamilySymbol , я не вижу ни одного, который бы принимал два указанных вами аргумента. Чтобы загрузить определенный * семейный символ c, вам нужно указать как минимум фамилию и название нужного типа семьи. С какой версией Revit вы работаете?

Чтобы решить эту проблему, ознакомьтесь с некоторыми из огромного количества примеров кода, например, в примерах Revit SDK и в группе The Building Coder topi c на загрузка семьи .

...