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

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

Страницы: [1] 2 3 ... 10
1
Всем привет. Может кто уже сталкивался и нашел решение...
Имеется текущий документ, в который вставлена ссылка на другой проект.
Если я нахожусь на плане этажа, где ссылка и вставлялась, то такая конструкция работает:
Код - C# [Выбрать]
  1. var linkedDoc = linkInstance.GetLinkDocument();
  2. List<Element> collectorForLinked =
  3.     new FilteredElementCollector(linkedDoc, doc.ActiveView.Id).WherePasses(filter).ToElements().ToList();
Понятно, что doc - это текущий документ.

Однако, если я создам сечение, перейду на него и запущу код - будет ловится ошибка viewId is not a view

Вопрос - как создать фильтр элементов, чтобы получить элементы из ссылочного документа на конкретном виде текущего документа?
2
А есть ли  метод позволяющий "просмотреть" какой метод был вызван  при нажатии кнопки мыши.

Суть проблемы в чем:
Ведомости можно разделить средствами ревита, но данный метод отсутствует в API.
Вот и возникло желание вытащить метод непосредственно из ревита.
Не дожидаясь его добавления в API.



3
Revit API / Re: Расчетная точка внутри помещения/пространстве
« Последний ответ от enot 18-08-2018, 11:34:02 »
Решение просто огонь  8)

Александр, не могли бы вы пояснить что означает :

Код - C# [Выбрать]
  1. doc.GetElement(x.GraphicsStyleId).GraphicsStyleCategory.Id
4
Inventor API / Re: Работа с B-Rep/Преобразование координат
« Последний ответ от mikazakov 17-08-2018, 20:16:04 »
Так конечно сходу не поймешь без "причесанного" примера.
При вставки подсборки в сборку создаются дополнительные прокси-объекты, видимо там лежат нужные данные.
Поэтому, могу предположить что нужно порыться в объекте:
AssemblyComponentDefinition.Occurrences
внутренности подсборки должны быть в объекте:
SubOccurrences
и там уже смотреть
ComponentOccurrenceProxy.Transformation
5
Вот на Python Shell набросок, без проверок и прочего, например, геометрию желательно таки получать рекурсивно. Здесь чисто сам смысл, думаю, разберетесь:

Код - Python [Выбрать]
  1. elem = selection[0] #надо выделить семейство
  2.  
  3. opt = Options()
  4. opt.IncludeNonVisibleObjects = True
  5.  
  6. geomInstance = filter(lambda x: x.GetType().Name == "GeometryInstance", elem.get_Geometry(opt))[0]
  7.  
  8. instGeom = geomInstance.GetInstanceGeometry()
  9.  
  10. pointElem = filter(lambda x: x.GetType().Name == "Point" and doc.GetElement(x.GraphicsStyleId).GraphicsStyleCategory.Id == ElementId(BuiltInCategory.OST_IOSRoomCalculationPoint), instGeom)[0]
  11.  
  12. point = pointElem.Coord
  13.  
  14. col = FilteredElementCollector(doc)
  15.  
  16. spatialElems = col.OfClass(SpatialElement).ToElements()
  17.  
  18. spatialsWithPoint = filter(lambda x: (x.GetType().Name == "Room" and x.IsPointInRoom(point)) or (x.GetType().Name == "Space" and x.IsPointInSpace(point)), spatialElems)
  19.  
  20. lookup(spatialsWithPoint)
6
Revit API / Re: Расчетная точка внутри помещения/пространстве
« Последний ответ от enot 17-08-2018, 17:39:17 »
Файл:

https://yadi.sk/d/WM9F_sll3aKseA

нужно открыть файл ревит с названием "Сам файл"

в файле на разрезе можно увидеть, что расчетная точка находится в пространстве , но сам элемент вне пределов пространтства:





7
Жду пример.

Пока проблемы не вижу, если точку можно определить из геометрии, пусть даже открыв семейство и получив её координату P в координатах семейства, то всегда можно у инстанса семейства получить t = GetTotalTransform() и перевести её в координаты проекта t.OfPoint(P)
8
Revit API / Re: Расчетная точка внутри помещения/пространстве
« Последний ответ от enot 17-08-2018, 17:05:18 »
ок. пример подготовлю...


Эта точка находится внутри семейства, так что если определяем какие то координаты , то они соотвественно будут координатами ВНУТРИ семейства, но не проекта... в этом я вижу сложность... то есть если бы например определить координаты этой точки в проекте --> то возможно есть метод который определит находится ли точка (зная координаты) в помещении/пространстве или нет.


(это в принципе не относится к вопросу , но пусть будет)
Недостаток в том, что расчетную точку нельзя добавить во все категории элементов о чем обсуждалось например тут:
https://knowledge.autodesk.com/ru/support/revit-products/troubleshooting/caas/sfdcarticles/sfdcarticles/RUS/Revit-Family-categories-don-t-have-a-Room-Calculation-Point-Parameter.html


9
В эти методы передается координата точки. Можете пример приложить, где будет эта "расчетная точка", попробуем поковырять.
10
Revit API / Re: Расчетная точка внутри помещения/пространстве
« Последний ответ от enot 17-08-2018, 16:54:30 »
Добрый )
Не совсем, эти методы (если не ошибаюсь) определят только элемент, который ПОЛНОСТЬЮ находится в помещении. а если элемент частично находится в помещении , то метод этого не определит.
зато есть расчетная точка (Room Calculation Point ) - которая тянется от элемента в нужном направлении (в направлении помещения), тогда мы могли бы как то определить что именно эта его точка находится в помещении
Страницы: [1] 2 3 ... 10