2017년 12월 21일 목요일

Typinator에서 특정 변수 입력을 통해 글 확장하기

특정 단어를 typinator 확장에서 활용하기 위해서는 'Input field'를 이용.


  • Input field 세팅

  1. 어떤 종류의 input field를 사용할지 선택 - Text Field
  2. 식별 아이디: Label이 아이디의 역할을 함.
  3. default value에는 default value를 넣고.
Fig. 1. Input field에 대한 UI

  • 예제

Fig. 2는 Fig. 1을 이용하여 활용 값을 입력한 경우.
Fig. 2. 변수가 들어가 있는 Text Field
이때의 코드는
{{?Enumeration type entity<{clip}>}}

즉, {{?Input}}하면 'Input'의 label을 갖는 Text Field 생성.
{clip}은 가장 최근의 클립보드의 것을 서식없이 가져오기.

  • 적용
1. 코드

WHERE
Correct{{?Attribute}} : NOT(EXISTS({{?Attribute}})) OR
({{?Attribute}} <> {{?Enumeration type entity<{clip}>}}.USERDEFINED) OR
(({{?Attribute}} = {{?Enumeration type entity<{clip}>}}.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
('IFC4add2RailwayBeta.{/Uppercase {{?Type entity<{clip}-Enum>}}}' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));

Text Field는 총 3개: {{?Attribute}}, {{?Enumeration type entity}}, {{?Type entity}}
이때의 default value는 각각 null, {clip}, {clip}-Enum
{{?Type entity}}의 경우에는 입력 받은 값을 모두 대문자로 바꿈 (/Uppercase)
즉, {{?Enumeration type entity}}와 {{?Type entity}}에서는 default 값으로 클립보드에 있는 내용을 사용함.

2. 적용결과
일단 사용할 문자열을 클립보드에 넣어놓고 (여기서는 testTestTEST) abbreviation을 활용해서 실행시키면, Fig. 3과 같은 창이 뜨고,

Fig. 3. Input field가 반영되어 실행되는 Typinator UI

여기에 적절한 값을 넣으면 다음과 같은 결과가 나옴.

WHERE
CorrectElementPartType : NOT(EXISTS(ElementPartType)) OR
(ElementPartType <> testTestTEST.USERDEFINED) OR
((ElementPartType = testTestTEST.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
('IFC4add2RailwayBeta.TESTTESTTEST-ENUM' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));

댓글 없음:

댓글 쓰기