Oleg
Ответы в темах
-
АвторСообщения
-
Просьба поделиться командами для извлечения содержимого из Текстовых примечаний и внесения нового содержимого в имеющиеся в проекте.
Несмотря на язык приложения, получить текст можно через python таким образом (в этом примере я получил текст, который выделил):
А изменить выделенный текст на новый получилось таким способом:
Этот код работает только с двумя частями, видимо. У тебя в видео будто просто две стены, не взорванная на части.
Если попробовать запихнуть множество частей, то ничего не выйдет (может, потребуется проверка на принадлежность частей к одной стене, чтобы эти части не пытались сами с собой соединяться).
Но у автора этого топика был вопрос именно как соединить две части, поэтому всё работает корректно в этом случае.вот пруф)
Я стараюсь ставить такой переключатель в позицию “Значения могут изменяться по экземплярам группы”:
В этом случае, значение параметра может быть различным для каждого экземпляра группы.
Но это можно сделать не для всех типов данных(например, для типа данных Длина, Число, Целое, Да/Нет и ещё несколько – нельзя такой переключатель выставить)
Тоже заметил, что если помещение сложной формы (например, Г-образные), то “цепляются” ещё и другие помещения, которые попадают в bounding box. Я фильтрую помещения через ноду GetSurroundingElements, а затем полученные помещения дополнительно проверяю на пересечения нодой Geometry.DoesIntersect. Выглядит это так (на примере поиска стен определенного типа):
Решил эту проблему, возможно, несколько по-колхозному, но вроде как работает
Не хватает ссылки на язык запросов LINQ. Попробуйте так:
import clr
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
import System
clr.AddReference("System.Core")
clr.ImportExtensions(System.Linq)
doc = DocumentManager.Instance.CurrentDBDocument
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
# Start Transaction
TransactionManager.Instance.EnsureInTransaction(doc)
elId = uidoc.Selection.GetElementIds();
el = (doc.GetElement(elId.FirstOrDefault()))
newText = "Примечание"
el.Text = newText
# End Transaction
TransactionManager.Instance.TransactionTaskDone()
OUT = el.Text
Напомню, что этот скрипт для единичного выделенного текстового элемента.
Наверное, имелось ввиду инструмент Соединить из Revit?
Если да, то Почитайте эту тему
-
АвторСообщения