2014-05-08 3 views
0

뷰 패밀리 유형을 다른 뷰 패밀리 이름으로 변경하는 방법을 볼 수 없었습니다 ... 예를 들어 브라우저의 기본 위치 인 "Detail Views (Detail)"에 새 ViewSection.CreateDetail 섹션이 있습니다. 그러나 내가 만든 브라우저 위치 (보기 : "Detail Views (Beam Top Detail Views)")에보기를 배치하고 싶습니다.Revit에서 뷰를 사용자 화 된 뷰 패밀리 이름으로 설정하려면 어떻게합니까?

내가 시도한 것은 section.get_Parameter(BuiltInParameter.VIEW_TYPE)으로 나에게 사용 된 이름을 알려주지 만 나중에 .Set(NewViewName) (동일한 트랜잭션)을 따르지 않습니다. CreateDetail 엔트리 중에 직접 설정하는 방법이 있습니까? 아니면 주어진 패턴의 모든 뷰를 찾고 별도의 트랜잭션을 실행하고 설정을 변경해야합니까?

답변

1

세부 정보를 만들 때 "Detail Views (Beam Top Detail Views)"에 대한 올바른 viewFamilyTypeId에 ​​대해 ElementId를 사용합니다. 여기

thebuildingcoder.typepad.com

레빗에 제레미 Tammik의 블로그에서 당신을 도울 수있는 링크의 2014 SDK는 당신이 그것을 설치하지 않을 경우, Autodesk's website에 다운로드 할 수 있습니다 ViewSection.CreateDetail 방법, 샘플 코드가 설치 디스크에서.

ViewFamilyType vt = new FilteredElementCollector(doc).OfClass(typeof(ViewFamilyType)) 
    .Where(q => q.Name == "Detail Views (Beam Top Detail Views)") 
    .First() as ViewFamilyType; 
ElementId DetailViewId = vt.Id; 
ViewSection newDetail = ViewSection.CreateDetail(document, DetailViewId, box); 

당신이보기가 생성 후 ViewFamilyType 을 변경하려면, 이것은 사용하여 수행 할 수 있습니다 : newDetail.ChangeTypeId(DetailViewId);

+0

감사합니다 ...... 당신의 제안은 문자열 있지만, 매우 도움이되었다 "Beam Top Detail Views"는 내가 찾아야 만하는 값입니다 (기본 "Detail View"라는 접두사가 붙은 괄호 안에 자동으로 넣습니다). 다음으로 코딩해야 할 것은 새로운 "Detail Views"를 만드는 것입니다. 아마도 기본 유형에서 복사해야한다고 가정합니다. – KeachyPeen

+0

ViewFamilyType q.name 결과가 채워지지 않은 경우 .First() 코드를 추가하면 오류가 발생합니다. 생성 된 경우에도 해당 ViewFamilyType의 멤버 여야합니다. ViewFamilyType을 만든 후에 만들어진 첫 번째보기에서 작동하는 솔루션을 찾아야합니다. – KeachyPeen