2024년 7월 6일 토요일

Dimension(치수표기), 세부치수표기 자동화 -1

일반적인 Revit 치수 생성 기능 이외에

Detail Line (상세 선) 을 활용하여 Dimension을 만드는 고민합니다.  


아래 이미지와 같이, Detail Line을 선택하여 치수를 생성합니다. 

가시성 조절을 통해 그린 선을 지우거나,  점선으로 변경하는 등 도면 상태에 맞추어 활용 가능합니다. 




사용된 Node는 [Dimension.ByReferences]이며 

활성화 된 View와  마우스 2번의 클릭인  referenceGeometries를 생성해 줘야 합니다. 

그리고 Dimension이 배치 될 Line을 Geometry로 생성해야 합니다. 



Model Curve는 3D view 및 다른 View에서도 클릭 가능하기 때문에, 

Detail Line을 선택하여 활용합니다.  





라인을 기준으로 CodeBlock의 숫자 만큼 이격 되어 치수가 생성됩니다. 





[Document.ActiveView] 노드를 활용하여,  작업하고 있는 View의 정보를 불러옵니다. 
 [Dimension.ByReferences] 노드의 view 인풋으로 연결되며, 해당 view의 Plane을 가져오는 역할을 합니다. 


선택한 Line의 형상을 불러오고, 해당 라인의 StartPoint, EndPoint를 추출하여 [Vector.ByTwoPoints]로 라인의 Vector를 확인합니다. 
해당 노드와 병행하여 활용 가능한 다른 노드는, [Line,Direction] 이 있습니다. 



하지만 라인의 끝접에서 reference를 추출하거나 만드러야 하는 다음 방식이 있기 때문에 미리 Point들을 추출합니다. 


라인의 끝에 작은 reference를 만드는 구간입니다. Revit에서 두번의 클릭을 할 때 치수가 만들어지는 원리와 같습니다. 기존에 구한 Vector를 ZAxis 기준으로 90도 회전 시키며 방향성을 잡아주고, 10mm의 작은 라인을 생성합니다. 이 구간에서 Codeblck에 1mm 로 생성해도 무관합니다. 그리고 해당 reference를 인식 시키기 위해 [ModelCurve.ByCurve]로 요소를 만들어줍니다. 


추후에 ModelCurve를 삭제하는 구간이 추가되어도 좋습니다. 
하지만  [Dimension.ByReferences] 노드를 활성화 시키기 위한 행위라 이해해 주시면 좋겠네요. 



 [Dimension.ByReferences] 인풋 중 line이 있습니다. Dynamo 배경 이미지에서 보여지듯, 치수가 만들어지는 위치의 정보입니다. Code Block으로 1000mm를 입력했지만, - 값을 입력하면 반대가 됩니다. 혹은 Vector를 반전 시키면 같은 기능으로 활용 가능합니다. 





댓글 없음:

댓글 쓰기