2017-12-11 28 views
0

저는 Revit Api의 초보자이며 확장 가능한 스토리지를 조작하는 것과 관련된 다음 프로젝트를 따라하려고합니다. 나는 다음과 같은 요소에서 확장 가능한 스토리지를 얻으려고 수석 dev에 들어있는 예제 코드를받은 :문서의 특정 스키마에서 엔티티를 검색 한 후 엔티티 스키마를 확인해야하는 이유는 무엇입니까?

// _schema is known 
Entity ent = element.GetEntity(_schema); 
if (ent?.Schema != null) 
{ 
// code to retrieve extensible storage here 
// produce correct result 
} 

을 나는 싹둑 내 아마추어 코드로 설정 대체하려고 :

Entity ent = element.GetEntity(_schema); 
if (ent != null && ent.IsValidObject) 
{ 
// code to retrieve extensible storage here 
// my code produces incorrect results 
} 

이 2 개의 스 니프 세트의 차이점은 무엇입니까? 특정 스키마를 사용하여 엔터티를 검색하면 entity.Schema가 동일한 스키마를 반환해야합니다. 맞습니까? 왜 올바른 결과를 얻으려면 엔티티의 스키마를 다시 확인해야합니까? 감사합니다. 귀하의 답변은 앞으로 다가올 프로젝트에서 많은 도움이 될 것입니다.

답변

1

코드가 더 현명하고 신뢰할 수 있습니다. 스키마를 지정하여 검색된 엔티티의 스키마를 확인하는 것은 실제로 의미가 없습니다. 그러나 나는 의견의 의미를 이해하지 못한다.

+0

영어 원어민이 아니기 때문에 혼란 스럽습니다. 처음에는 당신과 똑같은 생각을했지만, 상급자의 코드는보다 신뢰성 있고 정확한 결과를 만들어냅니다. 이 경우에는 내 코드가 결과를 더 많이 생성하고 모두 잘못된 결과를 얻는 반면 단 1 개의 결과 (내 선배 코드)가 있다고 가정합니다. 내 생각 엔 입력 스키마 (_schema)과 엔터티 스키마 (Entity.Schema)가 반드시 동일한 것은 아닙니다. –

+0

스키마가 Revit (전체 세션을 통해 지속됨)에 저장되었으며 현재 드로잉/문서에서 유효하지 않을 수도 있습니다. 그렇다면 내 코드가 null이없고 유효한 엔터티를 검색해서는 안됩니다. 나는 누군가가 내 생각을 분명히 할 수 있기를 바랍니다. p/s : 더 나은 이해를 위해 게시물의 댓글을 수정했습니다. 희망이 도움이됩니다. –