Результаты поиска для 'family type'

Главная Форумы Поиск Результаты поиска для 'family type'

Просмотр 15 результатов — с 31 по 45 (из 60)
  • Автор
    Результаты поиска
  • txt
    Модератор
    86 pts

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

    OUT = UnwrapElement(IN[0].Type).Family.LookupParameter("Тип детали").AsValueString()

    Примечание:
    нужно помнить, что необходимо верно указать тип данных : AsValueString(),AsString(),AsDouble()
    т.е. например:
    OUT = UnwrapElement(IN[0].Type).Family.LookupParameter("Тип детали").AsString()
    выдаст значение null

    Для того чтобы посмотреть значения всех параметров для одного из типа данных:
    #набор параметров
    parameters_set=UnwrapElement(IN[0].Type).Family.Parameters
    #значения параметров в наборе
    values=[i.AsValueString() for i in parameters_set]
    OUT = values

    #7083
    Анатолий
    Участник
    37 pts

    Да, правильно говорите, это ручной “ревитовский” способ, немного автоматизированный с помощью нода FamilyType.Duplicate на динамо.

    А какая дальнейшая цель имения возможности создавать типоразмеры?

    Аноним
    Неактивированный

    По дверям и окнам задачу свою (локальную) решил.

    Через FamilyInstance.SetType меняю текущую “дверь неправильно типоразмера” на “нужного типоразмера”.

    Попытка вставки дверей через FamilyInstance.ByCoordinates не задалась. Пока не задалась. Словил два эффекта: либо Dynamo повисает, либо вставляет двери, но не в те координаты, что задавал (какие-то на бум координаты у дверей оказываются). Плюс вставленные двери в проекте они не видны и выбираются только через команду на семействе “Выбрать все экземпляры”. Хотя, предполагаю, что это дело в стадии и виде, в котором указана конкретная стадия.

    Аналога NewFamilyInstance Method (XYZ, FamilySymbol, Element, StructuralType) в динамовских нодах не нашёл. Что странно. Может плохо искал?

    Аноним
    Неактивированный

    Задача: получить доступ к имеющимся в проекте типоразмерам лестниц (при этом экземпляров этих типоразмеров в модели ещё нет). Через Dynamo. При этом лестницы относятся к системному семейству. К примеру, “Монолитная лестница”.

    Через Family Types все эти типоразмеры не доступны.

    ИваСерж
    Хранитель
    134 pts

    Вставляется как обычное семейство.
    1. Без хоста по точке NewFamilyInstance Method (XYZ, FamilySymbol, StructuralType)
    2. С хостом (стеной) NewFamilyInstance Method (XYZ, FamilySymbol, Element, StructuralType)
    3. Почитать подобный скрипт можно тут http://spiderinnet.typepad.com/blog/2013/05/in-revit-net-api-2013-though-the-newwall-method-has-been-moved-to-the-wall-class-itself-the-familyinstance-generation-meth.html

     

    #6874
    Анатолий
    Участник
    37 pts

    Прошу прощения, очень интересно где можно узнать в дот пик что надо использовать именно команду doc.GetElement?

    (“Чтобы получить сам элемент по его Id номеру, воспользуемся командой:pattern = doc.GetElement(patternId) “)

    Почему задаюсь таким вопросом? Пытаюсь из семейства достать существующие типы (особенно их имена), но не могу подобрать подходящую команду..

    С помощью GetFamilySymbolIds() получается достать все id типов семейства, есть там и команда GetFamilyTypeParameterValues(ElementId parameterId), но не могу понять что должно быть в кавычках? Хоть возможно это и не та команда, что мне нужна..

    #6850
    txt
    Модератор
    86 pts

    Спасибо! помогло

    +Ранее не знал: как легко получить из выбранного в Ревит FamilyInstance все его FamilyTypes:


    OUT=IN[0].Type.Family.Types
    в итоге для одного FamilyInstance можем менять его типы так (выбрав нужный индекс в код-блоке):

    #6848
    txt
    Модератор
    86 pts

    как получить Element.Id из FamilyType?

    код:

    ….

    x=UE(IN[0]).ChangeTypeId(IN[1])

    для выбранного элемента (семейства) получив его тип  можно получить его element.id так:

    но как получить element.id из выбранного family type?

    #6839
    Denis
    Участник
    3 pts

    А кто то сталкивался когда FamilyType.CompoundStructureLayers не правильно толщину показывает.

    Как лечить или чем заменить?

    #6798
    txt
    Модератор
    86 pts
    #6748
    Denis
    Участник
    4 pts

    Судя по ошибке и логике:
    Space Tag Type – это сам Type. Тебе нужно убрать “.Symbol” в s и d.
    Т.е.:
    setWhatYouNeed(UnwrapElement(symbol).Family.Document, UnwrapElement(symbol).Family)

    #6734
    @zhukoven.com
    Участник
    16 pts

    @Анатолий, в пользовательском пакете Clockwork есть узел FamilyType.CompoundStructureLayers:

    Он вытаскивает значения слоёв (материалы, толщины и пр.) из типа составного элемента. Работает со стенами, перекрытиями, потолками, лестницами.

    #6707
    Denis
    Участник
    4 pts

    Попробовал изменить Text Font у элементов внутри семейств, но не получилось. Скрипт меняет параметры, но не получается перезаписать семейства, в которых произведены изменения.

    Код:

    import clr
    clr.AddReference("RevitNodes")
    import Revit
    clr.ImportExtensions(Revit.Elements)
    # Import DocumentManager and TransactionManager
    clr.AddReference("RevitServices")
    import RevitServices
    from RevitServices.Persistence import DocumentManager
    from RevitServices.Transactions import TransactionManager
    doc = DocumentManager.Instance.CurrentDBDocument
    
    # Import RevitAPI
    clr.AddReference("RevitAPI")
    import Autodesk
    from Autodesk.Revit.DB import *
    import System
    
    clr.AddReference('RevitAPIUI')
    from Autodesk.Revit.UI import *
    
    import sys
    pyt_path = r'C:\Program Files (x86)\IronPython 2.7\Lib'
    sys.path.append(pyt_path)
    
    class FamilyOption(IFamilyLoadOptions):
    	def OnFamilyFound(self,familyInUse,overwriteParameterValues):
    		overwriteParameterValues = True
    		return True
    		
    	def OnSharedFamilyFound(self, sharedFamily, familyInUse, FamilySource, overwriteParameterValues):
    		overwriteParameterValues = True
    		return True
    
    NameOfType = IN[0]
    result = []
    def setWhatYouNeed(d, s):
    	TransactionManager.Instance.ForceCloseTransaction()
    	familyDoc = doc.EditFamily(s)
    #	owner = familyDoc.OwnerFamily
    	ElementTypes = FilteredElementCollector(d).OfClass(ElementType).ToElements()
    	TransactionManager.Instance.EnsureInTransaction(d)
    	for i in ElementTypes:
    		for j in i.Parameters:
    			if j.Definition.Name == "Text Font":
    				i.LookupParameter("Text Font").Set(IN[0])
    				result.append(i.LookupParameter("Text Font").AsString())
    	TransactionManager.Instance.TransactionTaskDone()
    	TransactionManager.Instance.ForceCloseTransaction()
    	familyDoc.LoadFamily(doc, FamilyOption())
    	familyDoc.Close(False)
    
    for symbol in IN[1]:
    	setWhatYouNeed(UnwrapElement(symbol).Symbol.Family.Document, UnwrapElement(symbol).Symbol.Family)
    
    OUT = result

    Сам скрипт:

    P.S. Буду рад помощи, если у кого-то есть идеи давайте обсуждать)

    #6692
    txt
    Модератор
    86 pts

    редактирование размеров

    с семействами марок проблема:

    как я понимаю, проблема в доступе и редактировании элементов внутри семейства,

    kulkul

    может быть, это как то поможет:

    https://forum.dynamobim.com/t/setting-the-builtin-parameter-accessible-thru-the-family-editor/10554/15

    в ссылке выше есть код от Конрода Соббона в нем возможно есть решение, и также , я так думаю, надо в этом  коде править Symbol  на Type , как например тут описано:

    https://forum.dynamobim.com/t/how-to-find-node-familyinstance-symbol/4868/4

    #5880
    ИваСерж
    Хранитель
    134 pts

    Через АПИ можно. Значит в Питоне можно.
    http://thebuildingcoder.typepad.com/blog/2013/06/family-api-add-in-load-family-and-place-instances.html#13
    doc.LoadFamily….

Просмотр 15 результатов — с 31 по 45 (из 60)