Работа со спецификацией
Главная › Форумы › Python › Синтаксис и родные библиотеки Python › Работа со спецификацией
Помечено: Скрыть столбец спецификации по значению
- В этой теме 13 ответов, 12 участников, последнее обновление 1 год, 11 месяцев назад сделано Almaz.
-
АвторСообщения
-
Создание спецификации (на примере, спецификации стен),
удаление строк (также удаляются элементы),
работа с фильтром,
добавление или удаление параметров (столбцов),
перестановка столбцов,
изменение размеров столбцов,
размещение спецификации на листе
Скачать можно в разделе download
Не забываем лайкать!
GlebУчастникВопрос, как через питон скрыть или показать столбцы?
задался вопросом как можно поменять значение в фильтре спецификации
вот мое решение данного вопросаПривет, спасибо за код на питоне. А можно увидеть полную цепочку нодов для сортировки индексов фильтров.
отличное видео.
Подскажите, как в спецификацию добавить фильтр с уровнем.
Для любых параметров получается добавить требуемый фильтр, а вот именно имя уровеня задать не получается.
Есть варианты?
Каким образом вы бы реализовали это вручную?
Я бы добавил доп-параметр, по которому таки можно фильровать. Записал бы в этот параметр значение уровня и только потом фильтровал по этому параметру.Тогда алгоритм по скрипту:
1. Добавить в проект нужный параметр к нужным категориям.
2. найти все семейства.
3. Считать уровень семейства как текст
4. Сохранить текс уровня в параметр.Как по мне, выглядит хорошо.
DmitryУчастникОтличное видео.
А как можно добавить столбец с формулой через API?
Иван ВолощенкоУчастникДля ведомости расхода стали нужно скрыть пустые и нулевые столбцы, подкорректировал код, но как то не очень стабильно работает, проблема обнаружил если ранее был скрыт столбец со значением > 0 (как мне кажется), можно ли просканировать еще и скрытые столбцы. Или может что-то не так в коде?
import clr
clr.AddReference(‘RevitAPI’)
import Autodesk
from Autodesk.Revit.DB import *
import sys
#sys.path.append(r”C:\Program Files\Dynamo 0.8″)
pyt_path = r’C:\Program Files (x86)\IronPython 2.7\Lib’
sys.path.append(pyt_path)
import os.path
import math
from operator import itemgetter, attrgetter
import string
import re
clr.AddReference(‘ProtoGeometry’)
from Autodesk.DesignScript.Geometry import *
import System
from System import Array
from System.Collections.Generic import *
import Autodesk.DesignScript as ds
clr.AddReferenceByName(‘Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c’)
from Microsoft.Office.Interop import Excel
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo(“en-US”)
from System.Runtime.InteropServices import Marshal
clr.AddReference(“RevitNodes”)
import Revit
clr.ImportExtensions(Revit.Elements)
from Revit.Elements import *
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.GeometryReferences)
clr.AddReference(“RevitServices”)
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManagerdoc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
uiapp=DocumentManager.Instance.CurrentUIApplication
app = uiapp.Applicationview = doc.ActiveView
def U(elem):
a = UnwrapElement(elem)
return aschedule = UnwrapElement(IN[0])
#nameCol = IN[1]# Работа с полем спецификации (то, что мы видим на экране)
# Если столбец скрыт, то он не будет найден
secdata= schedule.GetTableData().GetSectionData(SectionType.Body)
lstCol = secdata.LastColumnNumber # количество столбцов в спецификации
lstRow = secdata.LastRowNumber # количество строк в спецификации
TransactionManager.Instance.EnsureInTransaction(doc)
mass = []
s0 = []
s1 = []
j = lstCol
while j > 1:
i=5
a=0
f = secdata.GetCellText(4, j)
while i <= lstRow:
celldata = secdata.GetCellText(i, j) # получение данных из ячейки 0 – номер строки, 2 – номер столбца
try:
a = a + float(celldata.replace(‘,’,’.’))
except:
a = a
i = i+1
field = schedule.Definition.GetField(j) # schedule fieldif a > 0.1:
field.IsHidden = 0 # 0 – показать
s0.append(f)
else:
field.IsHidden = 1 # 1 – скрыть
s1.append(f)
j = j-1
mass.append([s0,s1])
TransactionManager.Instance.TransactionTaskDone()
OUT = massRuben PetrosyanУчастникВсем привет, подскажите пожалуйста, как заполнять столбец своими данными и возможно ли это через динамо PyS?
*****Всем привет, подскажите пожалуйста, как заполнять столбец своими данными и возможно ли это через динамо PyS?*****
Вам нужно общий параметр в параметры проекта той категории для которой спецификация. Тогда его можно будет добавить в спецификацию в виде дополнительного столбца (добавить поле).
Ну а заполнить своими данными появившийся у элементов данной категории параметр в Dynamo не трудно.
DmitryУчастникДоброе время суток.
Не подскажите, есть ли метод, выбирающий элементы напрямую через строку спецификации?
(т.е. я понимаю, что можно выбрать все элементы категории, а затем их фильтрануть через такой же, как в спецификации, фильтр. Но хотелось бы в 1 кнопку, типа: выбрал строку – получил список элементов).
AlmazУчастникДобрый день. А как можно измненить зоголовок столбца спецификации. Например, чтобы вместо “Длина” было “Длина стены” и тп. ?
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.