2017-05-19 6 views
2

Revit API를 사용하여 특정 카테고리 (예 : Windows, Doors 등)의 모든 패밀리 유형에 액세스 할 수 있습니까? 인스턴스와는 대조적입니다. 내가 아는 내용은 FilteredElementCollector (doc) .OfCategory (...). ToElements() 또는 FilteredElementCollector (doc) .OfClass (...). ToElements()는 해당 클래스/유형의 인스턴스를 가리 킵니다. 특정 유형이 아직 인스턴스화되지 않았더라도 Revit 내에 이미로드되어 있는지 확인합니다.Revit API를 통해 모든 패밀리 유형에 액세스하는 방법은 무엇입니까?

고마워 (나는 pyRevit 때 Revit 2017을 사용하고 있습니다)

!

답변

2

filteredElementCollector에서 ToElements()를 수행하기 전에 WhereElementIsElementType()을 추가 한 다음 ToElements()를 추가해야합니다.

문과 같은 패밀리 기반 요소의 경우 FamilySymbol 요소를 다시 가져올 수 있습니다. 여기에서 요소가 활성 상태인지 확인할 수 있습니다.

+0

고마워요! 나는 이것을 시도 할 것이다! – Arnaud

0

죄송합니다. 분명히 내가 틀렸어. 인스턴스화되지 않은 요소를 포함하여 모든 요소를 ​​가리킨다.

2

인스턴스화 된 모든 패밀리를 결정하는 가장 쉬운 방법은 모든 패밀리 인스턴스를 검색하는 것입니다.

인스턴스에서 가족 기호 및 가족 자체를 결정할 수 있으며 인스턴스가 생성되었는지 확인할 수 있습니다.

인스턴스가 없으면 가족이나 가족 기호 항목이 없습니다.

아, 다시 읽으면, 인스턴스화 여부에 관계없이 모든 패밀리의 목록을 반대로 원합니다. 아뇨, 인스턴스화 여부에 관계없이 특정 카테고리의 모든 가족 심볼 목록입니다. 이미 건물 코더 샘플에서 다수의 여과 소자 콜렉터 단편 중 하나에 의해 입증 사실상

CmdCollectorPerformance 모듈 :

https://github.com/jeremytammik/the_building_coder_samples/blob/master/BuildingCoder/BuildingCoder/CmdCollectorPerformance.cs#L294-L332

가 정확히 말하면,이 구현 GetFamiliesOfCategory 방법은 모든 가정을 검색 주어진 카테고리. 대신 쉽게 패밀리 기호를 검색 할 수 있습니다.

+0

Jeremy 감사합니다! – Arnaud

+0

질문 : 그래도 "GetFamiliesOfCategory"함수에서 필터링 된 요소 수집기를 사용하고 OfClass "Family"를 사용합니다. 내 프로젝트에서 그렇게하고 루프를 반복하여 FamilyCategory.Name을 인쇄하면 인스턴스화 된 요소 만 인쇄하는 것처럼 보입니다. 예를 들어, '덕트', '덕트 시스템'등을 인쇄하지 않기 때문에 사실 내 프로젝트에서 인스턴스화되지 않습니다. 나는 C#에 익숙하지 않아 어쩌면 코드에 대한 나의 해석에서 뭔가를 놓칠 수 있습니까? 감사! – Arnaud