Grasshopper에서의 개체 특성

  • 사용자 지정한 특성을 가진 지오메트리를 베이크 실행할 수 없어 불편을 겪으셨나요?
  • Grasshopper 디스플레이 파이프라인에서 표시 재질처럼 기본 Rhino 재질을 사용할 수 없는 경우에는 어떠셨나요?
  • Grasshopper로 CAD 파일을 가져오려고 했을 때, 지오메트리에 포함되어 있던 모든 기본 메타데이터를 잃게된 경험이 있으신가요?

최신 Rhino 8의 새로운 데이터 유형과 컴포넌트로 더욱 광범위한 작업이 가능해졌습니다.

Grasshopper 1에는 항상 일반적인 데이터 유형이 있었습니다. 그 중 일부는 point, curve, brep, boolean, number, text처럼 자주 사용되거나, date/time, matrix, cultural specifier처럼 이따금 사용되기도 합니다.

그러나 Rhino에는 이전에 Grasshopper에서는 사용할 수 없었던 다양한 유형의 데이터가 있습니다. Rhino 레이어, 선종류, 해치, 재질, 글꼴, 주석 스타일 등이 이제 Rhino 8 용 Grasshopper 1에 기본 데이터 유형으로 포함됩니다. 또한, 더 많은 기능이 곧 추가될 예정입니다!

GH1 Object Attributes Toolbar

특성(Attribute)이란?

이러한 모든 새로운 컴포넌트를 사용하면 특정한 데이터 유형의 특성을 가져오거나 설정할 수 있습니다. 그렇다면 “특성(attribute)”이란 정확히 무엇일까요? 특성은 단순히 해당 유형이나 개체를 구성하는 데 도움이 되는 속성이나 항목입니다.

예를 들어, Rhino 레이어를 살펴 봅시다. 레이어는 다음 속성으로 정의할 수 있습니다:

  • 이름
  • 활성 (현재)
  • 보임/숨겨짐
  • 잠금/잠금 해제
  • 표시색
  • 재질
  • 선종류
  • 인쇄색
  • 인쇄 너비
  • 클리핑 평면
  • 단면 스타일

이 각각의 특성을 Rhino 레이어 대화상자에서 확인하고 편집할 수 있습니다. 이제 Grasshopper 1에서 똑같이 사용할 수 있습니다!

Layer Attributes

처음 시작

Rhino 8의 Grasshopper 1에는 Rhino라는 이름의 새로운 도구모음이 있습니다. 이 도구모음은 몇 개의 하위 카테고리(Layers, Linetypes, Materials, 등)로 나뉘어져 있습니다. 각각의 하위 카테고리에는 주로 2 가지 다른 유형의 컴포넌트가 있습니다.

  • Query Component Query 컴포넌트 - 다양한 데이터 유형에 대해 활성인 Rhino 문서를 쿼리할 수 있습니다. 이 컴포넌트를 사용하면 모든 Rhino 레이어를 Grasshopper 문서로 가져올 수 있으며, 문서에서 선종류, 해치, 주석 스타일 등에 대해서도 쿼리할 수도 있습니다. Query 컴포넌트는 일반적으로 돋보기로 표시됩니다.

  • Datatype Component Datatype 컴포넌트 - 이 컴포넌트를 사용하면 다양한 특성 값을 사용하여 데이터 유형을 생성 및/또는 소멸시킬 수 있습니다. 이 특정한 컴포넌트를 사용하면 새로운 Rhino 레이어의 특성(레이어 이름, 표시색, 표시 상태 설정 등)을 지정하거나, Rhino 모델에 이미 정의된 레이어에서 이러한 특성 값을 볼 수 있습니다.

Constructor/Deconstructor vs Pass-through 컴포넌트

Grasshopper 1에는 constructor/deconstructor(생성자/소멸자) 패턴을 사용하는 많은 데이터 유형(point, vector, plane 등)이 있습니다. 이 말은, 각각의 데이터 유형에는 두 개의 서로 다른 컴포넌트가 있음을 뜻합니다. 하나는 세 개의 숫자 입력 매개변수를 포함하는 점처럼 데이터 유형 생성을 처리하는 컴포넌트(생성자)이고, 다른 하나는 해당 데이터 유형을 구성하기 위해 결합된 값을 반환하는 컴포넌트(소멸자)입니다.

Rhino 도구모음에 있는 새로운 데이터 유형에 이 패턴을 사용하는 것을 고려했으나, 대신 “pass-through(통과)” 컴포넌트라고 부르는 패턴을 선택했습니다. 통과 컴포넌트는 생성하고 소멸시키는 두 특성의 기능을 하나의 컴포넌트로 결합합니다.

Point Passthrough

이것이 어떻게 실행되는지 알아 봅시다. 생성자/소멸자 패턴의 3개가 아니라, 대신 어떠한 4개의 입력과 출력이 있는지 확인하세요. 기본 데이터 유형(Point3d)은 입력 및 출력에서 모두 첫 번째 매개변수입니다.

Point Passthrough

통과 컴포넌트를 사용하여 새 점을 생성하려는 경우, 세 개의 좌표 입력에 숫자 값을 전달하면 새 점이 생성되어 Point 출력에서 반환됩니다. 이와 비슷하게, 기존 Point를 컴포넌트 값(좌표)으로 분리할 때, 단순히 Point를 첫 번째 입력 매개변수에 전달하면 그 값이 대응하는 출력에 반환됩니다.

이것이 통과 컴포넌트가 작동하는 방식에 대한 기본적인 설정입니다. 좀 더 구체적인 예를 살펴보겠습니다. 새로운 Rhino 레이어를 만들어 여기에 몇 가지 특성을 지정하는 경우를 생각해 봅시다. 입력 매개변수에 그저 일부 값을 전달하면, Layer 출력(기본 데이터 유형은 항상 첫 번째 입력/출력 매개변수임)이 모든 설정이 지정된 Rhino 레이어를 반환합니다.

Rhino 모델에 존재하는 선종류 중 하나에 대한 참조를 얻기 위해 Query Linetypes 컴포넌트가 사용된 점에 주목하세요. 필터를 공백으로 비워 두었다면(또는 “*” 와일드카드를 사용했다면) 사용할 수 있는 모든 선종류가 반환되었을 것입니다. 그러나, “Dashed(점선)” 필터가 사용되엇으므로 이름이 일치하는 선종류만 반환됩니다.

Constructor

비슷하게, 기존 Rhino 레이어를 가져와 그 특성을 검사하려면 동일한 통과 컴포넌트를 사용할 수 있습니다. 하지만, 이번에는 기존 Rhino 레이어를 Layer 입력에 전달하려고 합니다. 기본 데이터 유형은 언제나 컴포넌트 양쪽의 첫 번째 매개변수임을 기억하세요.

여기에서, Query Layers 컴포넌트를 사용하여 기존 레이어(“Default(기본값)”이라는 레이어만 있음)를 가져온 후 이를 Layer 입력에 전달할 수 있습니다. 이렇게 하면, 레이어의 특성이 대응하는 출력 매개변수를 통해 전달됩니다.

Deconstruct

이제 기존 레이어를 템플릿으로 사용하려 하지만, 복사본을 만들어 일부 특성을 변경하는 경우를 생각해 봅시다. 여기서 통과 컴포넌트가 크게 도움이 됩니다. 생성자/소멸자 패턴을 사용했다면 생성자 컴포넌트의 각 출력을 소멸자 컴포넌트의 해당 입력 매개변수에 수동으로 연결했어야 합니다.

Copy / Modify

예상하는 바와 같이, 특성의 개수가 훨씬 더 많은 데이터 유형에서는 매우 번거로운 작업입니다. 그 대신, 이 작업에 통과 컴포넌트를 사용할 수 있습니다.

앞에서와 동일하게, 기존 Rhino 레이어를 Layer 입력에 전달할 수 있으며 해당 레이어의 모든 특성이 그에 대응하는 출력으로 통과됩니다. 그러나, 다른 값이 다른 입력 중 하나에 연결되면 이 값은 기존 Rhino 레이어에서 들어오는 특성을 대체하게 됩니다.

여기에서 “MyLayer”라는 텍스트를 전체 경로 입력에 전달할 수 있으며, 이는 기존 Rhino 레이어로부터 들어오는 레이어 이름을 재정의합니다. 단, 다른 모든 값은 동일하게 유지됩니다.

하나의 통과 컴포넌트만 사용하면, 정의에서 화면상의 공간을 절약하고 모든 출력 매개변수를 그에 대응하는 입력에 연결하는 번거로움을 피할 수 있습니다.

Copy / Modify

생성자 특성

위의 예에서는 Model Layer 통과 컴포넌트를 사용하여 Rhino 레이어를 생성하는 방법을 살펴보았습니다. 그러나, 엄밀하게 말하자면 생성된 레이어를 베이크 실행하기 전까지는 해당 레이어가 Rhino 문서의 일부가 되지 않습니다. 아직 사용자 지정 베이크 컴포넌트가 개발 중이며, 지금은 Model Layer 컴포넌트를 마우스 오른쪽 단추로 클릭하고 Bake를 선택할 수 있습니다. 팝업 대화상자에서 확인을 클릭하면 레이어가 Rhino 문서에 추가됩니다.

Construct Layer Panel

이제 Rhino 문서에 일부 지오메트리를 추가하고, 방금 만든 레이어에 지정되었는지 확인하는 경우를 생각해 봅시다. 그저 Model Object 컴포넌트를 사용하여, 지오메트리 개체에 다양한 특성을 지정할 수 있습니다.

Construct Layer Panel 2

Construct Layer Panel 3

이제 구를 만들고 “MySphere”라는 이름을 지정했습니다. 또한, 방금 만든 레이어를 개체 특성에 지정했습니다. Model Object 컴포넌트를 마우스 오른쪽 단추로 클릭하고 Bake를 선택합니다. - 구가 해당 특성과 함께 Rhino 문서에 추가됩니다.

장면에 베이크 실행된 구를 선택하고 개체 속성 패널에 갑니다. 구의 이름과 지정된 레이어가 올바른지 확인합니다.

지오메트리 개체에 원하는 만큼 많은 특성을 지정할 수 있습니다. 앞서 설명드린 내용은 매우 간단한 예에 해당하며, 다른 컴포넌트에는 어떤 설정이 있는지 찾아보시는 것을 권장합니다.

소멸자 특성

예상하시는 것처럼, 데이터 유형을 구성 특성으로 분해할 수도 있습니다. Query 컴포넌트는 다양한 Rhino 데이터 유형(지오메트리, 레이어, 선종류 등)을 Grasshopper 정의에 가져오기 때문에 여기서부터 학습을 시작하면 좋습니다. 각각의 컴포넌트는 상대적으로 간단합니다.

여기에서는 Params 탭과 Input 하위 카테고리 아래에 있는 새로운 Import Model 컴포넌트부터 살펴보겠습니다. 이 새로운 컴포넌트로 어떠한 3D 모델도 가져올 수 있으며(반드시 Rhino 모델일 필요가 없음), 그 콘텐츠를 각각의 다양한 특성으로 나눌 수 있습니다.

가져온 모델을 일관적인 방식으로 활성 문서 단위로 변환시키는 것은 이 새로운 컴포넌트에 있는 유용한 기능 중 하나입니다. 이 컴포넌트의 작동 방식을 설명하기 위해 한 가지 예를 들어보겠습니다.

프로젝트에 사용할 패스너의 3D CAD 모델을 다운로드한 경우를 생각해 봅시다. 파일 중 하나인 플랜지 육각 볼트는 인치 단위가 설정된 상태로 저장됩니다. 날개 너트와 와셔가 포함된 다른 파일은 밀리미터 단위로 설정되어 있습니다. 상황을 더 복잡하게 만들기 위해, 사용자가 작업 중인 활성 문서는 센티미터로 설정되었습니다.

Bolts & Nuts

이 모델을 기존의 방식대로 가져왔다면 모델이 제대로 정렬되도록 변환 계수를 사용자가 스스로 파악해야 합니다. 그러나, 가져온 모델의 특성 중 하나인 변환을 사용하면 가져온 지오메트리를 활성 문서의 배율에 쉽게 맞출 수 있습니다.

Scaled Model

Transform Geometry

그 외에도, 가져온 모델에서 다른 특성을 검사할 수 있습니다. 이 경우, 파일에는 여러 가지 재질이 저장되어 있었습니다. 이제 Grasshopper의 Custom Preview 디스플레이에서 모든 Rhino 재질을 사용할 수 있습니다!

이는 매우 중대한 사안이라 굵은 글씨로 표시했습니다. Grasshopper가 이제껏 의존해 왔던 단순한 디스플레이 그래픽에 더 이상 얽매일 필요가 없습니다. 이제부터는 가져오기(또는 Query Materials 컴포넌트 사용)로 기본 Rhino 재질을 가져와 표준 Custom Preview 컴포넌트를 사용하여 Grasshopper 지오메트리에서 사용할 수 있습니다.

다음은 가져온 Rhino 재질을 사용하여 다양한 표시 모드를 단순히 캡처한 샘플입니다.

Bolt-Nut Render

Material Display

앞으로 더 추가될 예정입니다!

현재 버전은 새로운 도구의 첫 번째 릴리스에 불과하다는 점을 기억해 주세요. 도구 세트는 완성 단계에 이르기엔 아직 갈 길이 먼 상태이며, 여기저기서 오류가 발견될 수도 있습니다. 제대로 작동하지 않는 부분이 있거나, 궁금한 사항이 있으시면 알려주세요. 여러분께 도움이 되도록 노력하겠습니다.

다음에 어떤 데이터 유형을 포함시키는 것이 좋은지에 대한 여러분의 피드백을 기다립니다. 작업하실 때 가장 유용한 유형은 무엇입니까? 블록, 조명, 치수, 클리핑 평면, 명명된 시트 뷰가 필요하세요? 저희는 앞으로 몇 달 동안 작업할 컴포넌트에 대한 장기 계획이 있으며, 그 중 우선시할 기능을 정하는 데 여러분의 피드백이 필요합니다.

직접 실행해 보세요!

ConstructObjectAttributes.gh 정의를 다운로드하고 열어 사용해 보세요.

자세히

이러한 기능에 대한 간략한 안내를 보시려면 Grasshopper 데이터 유형 소개 동영상을 보시거나, Rhino 8의 새 기능 소개 페이지를 참조하세요.

다음 가이드에 안내된 다른 Data Type 컴포넌트의 사용법을 참조하세요: