2014-02-20 2 views
1

Revit 2014에 대한 추가 기능을 생성 중입니다. 평행 육면체를 프로젝트 안에 삽입하고 싶을 때 평행 육면체의 삽입 중에 너비, 깊이 및 높이가 설정되어야합니다. 1x1x1의 큐브와 3 개의 인스턴스 매개 변수를 사용하여 큐브의 크기를 자동으로 크기 조정하는 패밀리를 작성했습니다 (매개 변수의 이름은 "너비", "깊이", 높이).삽입 도중 패밀리 인스턴스 크기 조정

패밀리를 가져 오면 드로잉을 배치하고 인스턴스를 배치하고 배치 후 파라미터를 올바르게 변경하면 큐브의 크기가 올바르게 조정됩니다.

프로젝트 내부에 인스턴스를 삽입하기 전에 큐브의 크기를 조정할 수있는 방법이 있는지 궁금합니다. 마우스 커서 아래의 미리보기가 올바른 크기를 원한다면

인스턴스를 배치하려면 다음 지침을 사용하고 있습니다.

Application.ActiveUIDocument.PromptForFamilyInstancePlacement(familySymbol); 

당신이 familySymbol 객체가 get_Parameter() 메소드를 가지고 있지

답변

1

위의 모든 내용에 동의합니다.

예, 인스턴스를 배치 한 후에 만 ​​패밀리 인스턴스 치수 매개 변수 값을 변경할 수 있습니다.

예. 값에 따라 다른 유형을 정의한 다음 유형을 배치 할 수 있습니다.

인스턴스를 배치하기 직전에 유형을 생성 할 수 있습니다.

Revit 2015에서는 PromptForFamilyInstancePlacement가 배치 할 패밀리 유형을 정의 할 수 있습니다.

너비와 높이 등은 어디에서 유래됩니까?

PromptForFamilyInstancePlacement를 호출하기 직전에이를 확인할 수 있습니까?

그렇다면 해당 치수를 사용하여 새 패밀리 유형을 즉시 생성하고 PromptForFamilyInstancePlacement를 호출하기 직전에 활성 유형으로 설정할 수 있습니다.

건배, 제레미.

+0

치수는 데이터베이스에 저장되므로 호출 전에 결정됩니다. 어떻게하면이 유형을 즉시 만들 수 있습니까? 이 절차를 Rvt2014에서도 사용할 수 있습니까? –

+0

좋아, 나는 그것을 즉시 만들 수 있었다. 고맙습니다! –

-2

않습니다 감사?

목표를 달성하는 데 사용할 수 있다고 생각합니다.

+0

아니요, 크기가 다른 여러 큐브를 삽입 할 수 있으므로 인스턴스 매개 변수입니다. 따라서 familySymbol에서 get_paramter ("Width")를 호출하면 null을 반환합니다. –

0

배치하기 전에 요소의 크기를 조정하는 유일한 해결책은 필요한 각 크기에 따라 다른 유형의 패밀리를 작성하는 것입니다. 필요에 따라 실용적인 솔루션 일 수도 있고 아닐 수도 있습니다.

나머지는 배치 후 요소 조작에 초점을 맞추고 있습니다.

게재 위치의 위치를 ​​사용자가 선택할 수 있도록해야합니까? 그렇지 않으면 NewFamilyInstance 메서드를 사용하여 요소를 배치 할 수 있습니다 (미리보기가없고 위치 지점을 제공해야합니다).
이 함수는 방금 배치 한 요소를 반환하므로 배치 한 후에 수정할 수 있습니다.
Selection.PickPoint 메서드를 사용하여 사용자가 NewFamilyInstance에 전달할 수있는 배치 지점을 선택할 수있게 할 수는 있지만이 함수가 고도와 어떻게 작동하는지 잘 모르겠습니다.

다른 대안은 요소가 배치 된 후에 FilteredElementCollector를 사용하는 것입니다. FamilyInstanceFilter를 사용하여 사용중인 FamilySymbol 인스턴스를 모두 찾을 수 있습니다.
Revit ElementId가 새 요소로 증가하므로 (여기서는 관련이없는 작업 공유/동기화로 인해 일부 예외가 있음) 가장 높은 ElementId로 요소를 검색하고 방금 배치 한 것으로 가정합니다.
요소를 배치하기 전에 FilteredElementCollector를 실행 한 후 다시 실행하는 것이 좋습니다. 차이점은 방금 배치 한 요소입니다.

+0

답변 해 주셔서 감사합니다. 이미 모든 기능을 알고 있습니다. 사용자가 마우스 아래에서 미리보기를보고 위치를 선택하면 DocumentChanged 이벤트와 결합하여 설명 된 메서드를 사용할 수 있어야합니다. 당신이 제안하는 솔루션에 대해 (각 크기에 대해 하나의 패밀리) : 불행히도 크기는 밀리미터에서 밀리미터, 밀리미터, 수 미터, 각 치수 (W-D-H)에 따라 달라질 수 있기 때문에 그것은 해결책이 아닙니다. 어쨌든 고맙습니다. –

관련 문제