08.01(토)
  • 서울  21℃
  • 인천  18℃
  • 대전  21℃
  • 광주  20℃
  • 대구  21℃
  • 울산  20℃
  • 부산  21℃
  • 제주  18℃

PROGRAMMING

Revit API FilteredElementCollector로 요소 일괄 조회하고 트랜잭션으로 고치기
2026-07-28 19:51:47  |  아키포털 

Revit API에서 요소를 찾는 출발점은 FilteredElementCollector 다. 생성자에 Document 를 넘기고 필터를 이어 붙이면 원하는 집합만 남는다.

var walls = new FilteredElementCollector(doc)
.OfCategory(BuiltInCategory.OST_Walls)
.WhereElementIsNotElementType()
.ToElements();

WhereElementIsNotElementType 을 빼면 벽 타입까지 딸려 나온다. 인스턴스만 필요하면 반드시 붙이고, 타입만 모을 때는 WhereElementIsElementType 을, 클래스 기준이면 OfClass(typeof(Wall)) 를 쓴다.

모델 수정은 트랜잭션 안이어야 한다.

using (var t = new Transaction(doc, "Set Comments"))
{
t.Start();
foreach (var w in walls)
w.LookupParameter("Comments").Set("검토완료");
t.Commit();
}

Start 와 Commit 을 벗어난 수정은 예외로 막히며, 실패 시 RollBack 으로 되돌린다. 이 조합은 Revit 2026 API에서도 같고, pyRevit 과 Dynamo 파이썬 노드에서도 그대로 쓴다.

출처: Revit API Docs | 원문보기: https://www.revitapidocs.com/

댓글  0개

등록