ADN Club > Revit API

Формирование разделенной поверхности стен Revit API

(1/2) > >>

RomanShib:
 Я пишу программу, которая формирует разделенную поверхность, используя ссылку на грань формы. Но при применении к стенам(искомая строка с выбором категории выделена ниже), программа ничего не делает. Как применить данную программу только ко всем стенам в проекте?



 
--- Код - C# [Выбрать] ---  public class Command : IExternalCommand    {        public Result Execute(          ExternalCommandData commandData,          ref string message,          ElementSet elements)        {            UIApplication app = commandData.Application;            Document doc = app.ActiveUIDocument.Document;             Autodesk.Revit.Creation.Application creApp              = app.Application.Create;             try            {                FilteredElementCollector forms = new FilteredElementCollector(doc);                forms.OfCategory(BuiltInCategory.OST_CurtainGridsWall); // СТРОКА С ВЫБОРОМ КАТЕГОРИИ                 using (Transaction tx = new Transaction(doc))                {                    tx.Start("Create Devided Surface");                     foreach (Form form in forms)                    {                        FamilyItemFactory factory = doc.FamilyCreate;                        Options options = creApp.NewGeometryOptions();                        options.ComputeReferences = true;                        options.View = doc.ActiveView;                        GeometryElement element = form.get_Geometry(options);                         foreach (GeometryObject geoObject in element) // 2013                        {                            Solid solid = geoObject as Solid;                            foreach (Face face in solid.Faces)                            {                                if (face.Reference != null)                                {                                    if (null != face)                                    {                                     }                                }                            }                        }                    }                    tx.Commit();                }                 return Result.Succeeded;            }            catch (Exception ex)            {                message = ex.Message;                return Result.Failed;            }        }    }

Александр Ривилис:
RomanShib,
Приветствую на форуме!
Напоминаю правило форматирования кода на нашем форуме (у меня в подписи)!

Ihar:
OST_CurtainGridsWall - это не витражная стена, а разрезка стены. Вам нужно использовать OST_Walls а потом уже из них выбирать витражные стены. Не совсем понятно что потом вы хотите с этими стенами сделать(

RomanShib:
Задумка такая, что я хочу накладывать моделирующую штриховку на стены в проекте. Для начала на все, а потом только на выбранные.
Я прочитал, что для этого сначала нужно разделить поверхность, а уже потом накладывать штриховку.
Только начинаю свое знакомство с Revit, поэтому возможно я что-то не так делаю.((

Ihar:
Штриховка не на стену накладывается, а на материал. Нужно получить стену, затем выбрать ее слои методом GetCompoundStructure(), потом получить слой GetLayers, а у слоя есть свойство MaterialId. Можно заменить на другой материал или отредактировать тот что есть, добавить моделирующую штриховку.

Делить можно витражные стены на панели или обычные стены можно делить на части, а потом уже части делить на участки, которым потом можно отдельные материалы задавать.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии