실제 기술 프로그래밍보다 "우수 사례"에 관한 더 많은 이론 인 질문이 있습니다.Revit API 작성 후 요소 편집
요소를 프로그램에서 배치 한 후에 요소를 편집하는 가장 좋은 방법을 생각하고 있습니다. 특히 내 프로그램을 다음과 같이 설정했습니다.
사용자는 "Revit에서 프로젝트에 일부 패밀리를 추가"하는 도구를 클릭합니다. 사용자가 만든 스케치를 읽고 스케치를 기반으로 항목을 배치합니다.
나는 사용자에게 바닥 슬래브 말을 비슷한 이러한 요소의 "스케치를 편집"할 수있는 능력을주고 싶다. Revit API가 "스케치 모드"를 사용하여 스케치하는 기능을 제공한다고 생각하지 않습니다. 내 프로그램에서이 매우 유용한 기능을 모방하려고합니다.
그래서 내가 한 것은 확장 가능한 저장 공간을 사용하고 내 도구를 사용하여 만든 모든 요소에 고유 항목을 저장하는 것입니다. 프로그램이하는 일은 사용자가 "요소 편집"도구를 클릭하고, 프로그램이 새로운 스케치를 요청하고, 기존 요소를 클릭하도록 요청하고, 기존 요소의 UniqueId를 읽고, 해당 UniqueId로 모든 요소를 호출 한 다음 삭제할 때입니다. 프로그램은 사용자 "새 스케치"를 사용하여 새 요소를 프로젝트에 다시 추가합니다.
사용자가 프로젝트에 추가 된 원래 요소를 삭제 한 다음 편집하려고하면 UniqueId가있는 원래 요소를 삭제하지 않을 것이라고 어떻게 보장합니까? 이동 방법은 Revit API에서 동적 모델 업데이트 기능을 사용하는 것입니다.
대부분의 알고리즘은 어떻게 쓰여 있습니까? 나는 올바른 길을 가고 있는가? 고유 번호를 요소에 할당하고 요소 자체에 저장하므로 나중에 호출 할 수 있습니까? 어쩌면 내가 누락 한 퍼즐의 기본적인 이론적 인 부분이있을 수 있습니다. 데이터 구조?
답변 해 주셔서 감사합니다. 문제를 해결하기 위해 확장 가능한 저장소를 사용하고 단일 uniqueid를 만드는 중이며 해당 스케치에 속한 모든 요소에 적용됩니다. 따라서 스케치를 편집 할 때 소프트웨어는 해당 스키마와 엔티티의 필드에 할당 된 ubique ID를 찾습니다. 내가 가진 독창적 인 것은 통제 할 수있다. 또한 Revit API 도움말 항목을 많이 읽은 후에 고유 한 ID는 고유 한 프로젝트로 요소를 복사 할 수 있기 때문에 갈 방법입니다. 맥스 니스, 엘리 시디 스에서 이런 일이 일어날 수 있다고 말씀하시는 겁니까? – pirit4
확장 가능한 저장소에 저장된 요소 ID를 사용하는 경우 revit은 지능적인 방법으로 관계 변환을 처리합니다. http://thebuildingcoder.typepad.com/blog/2011/06/extensible-storage-features.html#7 –