<?xml version="1.0"?>

<st-source>
<!-- 
Name: CADSM-UI-STEP
HideSource: false
PackageName: CADSM-UI-STEP
Parcel: #('cadsmstep')
SaveSource: true
Date: 1:02:36 pm October 30, 2009
 -->
<time-stamp>From VisualWorks®, 7.5 of April 16, 2007 on October 30, 2009 at 1:02:36 pm</time-stamp>


<do-it>(Dialog confirm: 'You are filing-in a Parcel source file!\\While this is possible it will not have\the same effect as loading the parcel.\None of the Parcel''s prerequisites will\be loaded and none of its load actions\will be performed.\\Are you sure you want to file-in?' withCRs) ifFalse: [self error: 'Parcel file-in abandoned.  Choose terminate or close.']</do-it>

<class>
<name>Item</name>
<environment>CADSM.UI.STEP</environment>
<super>Core.Object</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>name </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SECURITY_CLASSIFICATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>purpose security_level </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>EDGE_LOOP</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>edge_list </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PROPERTY_DEFINITION_REPRESENTATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>definition used_representation </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRODUCT_DEFINITION_RELATIONSHIP</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>id description relating_product_definition related_product_definition </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>ORGANIZATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>id description </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CC_DESIGN_SECURITY_CLASSIFICATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>aEntity cEntity </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRODUCT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>id description frame_of_reference </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>DIMENSIONAL_EXPONENTS</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>length_exponent mass_exponent time_exponent electric_current_exponent thermodynamic_temperature_exponent amount_of_substance_exponent luminous_intensity_exponent </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CURVE_STYLE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>curve_font curve_width curve_colour </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>id description of_product make_or_buy </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>APPLICATION_CONTEXT_ELEMENT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>frame_of_reference </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRODUCT_CONTEXT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.APPLICATION_CONTEXT_ELEMENT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>discipline_type </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRODUCT_DEFINITION_CONTEXT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.APPLICATION_CONTEXT_ELEMENT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>life_cycle_stage </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>ITEM_DEFINED_TRANSFORMATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>description transform_item_1 transform_item_2 </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRODUCT_RELATED_PRODUCT_CATEGORY</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>description products </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>APPLICATION_PROTOCOL_DEFINITION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>status application_interpreted_model_schema_name application_protocol_year application </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CC_DESIGN_DATE_AND_TIME_ASSIGNMENT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>aEntity a2Entity cEntity </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>COORDINATED_UNIVERSAL_TIME_OFFSET</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>hour_offset minute_offset sense </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRESENTATION_STYLE_ASSIGNMENT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>styles </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>FILL_AREA_STYLE_COLOUR</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>fill_colour </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SURFACE_STYLE_USAGE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>side style </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CONTEXT_DEPENDENT_SHAPE_REPRESENTATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>representation_relation represented_product_relation </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRODUCT_CATEGORY_RELATIONSHIP</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>description category sub_category </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>FOUNDED_ITEM</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>COMPOSITE_CURVE_SEGMENT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.FOUNDED_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>transition same_sense parent_curve </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>STYLED_ITEM</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>styles item </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SECURITY_CLASSIFICATION_LEVEL</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>DATE_AND_TIME</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>date_component time_component </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRODUCT_DEFINITION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>id description formation frame_of_reference </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>REPRESENTATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>items context_of_items </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>DEFINITIONAL_REPRESENTATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.REPRESENTATION</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>APPROVAL</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>status level </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>aEntity a2Entity cEntity </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRESENTATION_LAYER_ASSIGNMENT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>description assigned_items </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>MECHANICAL_CONTEXT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.PRODUCT_CONTEXT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>DESIGN_CONTEXT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.PRODUCT_DEFINITION_CONTEXT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRODUCT_DEFINITION_SHAPE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>description definition </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>APPROVAL_STATUS</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>REPRESENTATION_RELATIONSHIP</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>description rep_1 rep_2 </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>MEASURE_VALUE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>value </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>LENGTH_MEASURE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.MEASURE_VALUE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>LOCAL_TIME</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>hour_component minute_component second_component zone </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PLANE_ANGLE_MEASURE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.MEASURE_VALUE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>COLOUR_RGB</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>red green blue </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>REPRESENTATION_ITEM</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>TOPOLOGICAL_REPRESENTATION_ITEM</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>FACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.TOPOLOGICAL_REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>bounds </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>FACE_BOUND</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.TOPOLOGICAL_REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>bound orientation </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>FACE_OUTER_BOUND</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.FACE_BOUND</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>VERTEX</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.TOPOLOGICAL_REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>FACE_SURFACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.FACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>face_geometry same_sense aSurface aRegion cOperator </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>ADVANCED_FACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.FACE_SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>GEOMETRIC_REPRESENTATION_ITEM</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>GEOMETRIC_SET</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.GEOMETRIC_REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>elements </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PLACEMENT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.GEOMETRIC_REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>location </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SURFACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.GEOMETRIC_REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SWEPT_SURFACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>swept_curve </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>AXIS1_PLACEMENT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.PLACEMENT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>axis </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>AXIS2_PLACEMENT_3D</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.PLACEMENT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>axis ref_direction </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>BOUNDED_SURFACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CURVE_BOUNDED_SURFACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.BOUNDED_SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>basis_surface boundaries implicit_outer </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>POINT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.GEOMETRIC_REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CARTESIAN_POINT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.POINT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>coordinates </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SURFACE_OF_REVOLUTION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.SWEPT_SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>axis_position </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>ELEMENTARY_SURFACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>position </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>TOROIDAL_SURFACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.ELEMENTARY_SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>major_radius minor_radius </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PLANE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.ELEMENTARY_SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRODUCT_DEFINITION_FORMATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>id description of_product </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>APPROVAL_ROLE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>role </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>MEASURE_WITH_UNIT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>value_component unit_component </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>LENGTH_MEASURE_WITH_UNIT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.MEASURE_WITH_UNIT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRODUCT_CATEGORY</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>description </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>DATE_TIME_ROLE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CC_DESIGN_APPROVAL</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>aEntity cEntity </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>POSITIVE_LENGTH_MEASURE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>length_measure </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SPHERICAL_SURFACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.ELEMENTARY_SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>radius </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SHAPE_REPRESENTATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.REPRESENTATION</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.SHAPE_REPRESENTATION</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PERSON_AND_ORGANIZATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>the_person the_organization </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRE_DEFINED_ITEM</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRE_DEFINED_CURVE_FONT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.PRE_DEFINED_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>DRAUGHTING_PRE_DEFINED_CURVE_FONT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.PRE_DEFINED_CURVE_FONT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>VECTOR</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>orientation magnitude </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PERSON</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>id last_name first_name middle_names prefix_titles suffix_titles </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>EDGE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.TOPOLOGICAL_REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>edge_start edge_end </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>EDGE_CURVE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.EDGE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>edge_geometry same_sense </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<comment>
<class-id>CADSM.UI.STEP.EDGE_CURVE</class-id>
<body>same-sense is for the direction of the curve relative to the equation.</body>
</comment>

<class>
<name>ORIENTED_EDGE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.EDGE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>edge_element orientation xyzCurve </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SOLID_MODEL</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.GEOMETRIC_REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>MANIFOLD_SOLID_BREP</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.SOLID_MODEL</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>outer </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>BREP_WITH_VOIDS</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.MANIFOLD_SOLID_BREP</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>voids </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PERSON_AND_ORGANIZATION_ROLE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>DIRECTION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>direction_ratios </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SURFACE_SIDE_STYLE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>styles </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>VERTEX_POINT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.VERTEX</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>vertex_geometry </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>UNCERTAINTY_MEASURE_WITH_UNIT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>value_component unit_component description </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>items context_of_items </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>ADVANCED_BREP_SHAPE_REPRESENTATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.SHAPE_REPRESENTATION</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>FILL_AREA_STYLE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>fill_styles </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>APPROVAL_PERSON_ORGANIZATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>person_organization authorized_approval role </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CYLINDRICAL_SURFACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.ELEMENTARY_SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>radius </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>LINE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>pnt dir </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.REPRESENTATION_RELATIONSHIP</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>transformation_operator </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CALENDAR_DATE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>year_component day_component month_component </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>FACETED_BREP</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.MANIFOLD_SOLID_BREP</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>STEPParser</name>
<environment>CADSM.UI.STEP</environment>
<super>Core.Object</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>inStream iMark aLine iLine aKeyword aDict </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>DATA</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.STEPParser</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>HEADER</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.STEPParser</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PARAMETER_VALUE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.MEASURE_VALUE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SURFACE_OF_LINEAR_EXTRUSION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.SWEPT_SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>extrusion_axis </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SURFACE_STYLE_FILL_AREA</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>fill_area </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CONICAL_SURFACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.ELEMENTARY_SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>radius semi_angle </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SHAPE_REPRESENTATION_RELATIONSHIP</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.REPRESENTATION_RELATIONSHIP</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>B_SPLINE_SURFACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.BOUNDED_SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>u_degree v_degree control_points_list surface_form u_closed v_closed self_intersect </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>B_SPLINE_SURFACE_WITH_KNOTS</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.B_SPLINE_SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>u_multiplicities v_multiplicities u_knots v_knots knot_spec </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>RATIONAL_B_SPLINE_SURFACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.B_SPLINE_SURFACE_WITH_KNOTS</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>weights_data </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CURVE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.GEOMETRIC_REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CONIC</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.CURVE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>position </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CIRCLE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.CONIC</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>radius </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>ELLIPSE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.CONIC</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>semi_axis_1 semi_axis_2 </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>BOUNDED_CURVE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.CURVE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>TRIMMED_CURVE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.BOUNDED_CURVE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>basis_curve trim_1 trim_2 sense_agreement master_representation </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>B_SPLINE_CURVE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.BOUNDED_CURVE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>degree control_points_list curve_form closed_curve self_intersect </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>QUASI_UNIFORM_CURVE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.B_SPLINE_CURVE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>B_SPLINE_CURVE_WITH_KNOTS</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.B_SPLINE_CURVE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>knot_multiplicities knots knot_spec </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>RATIONAL_B_SPLINE_CURVE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.B_SPLINE_CURVE_WITH_KNOTS</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>weights_data </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SURFACE_CURVE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.CURVE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>curve_3d associated_geometry master_representation </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PCURVE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.CURVE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>basis_surface reference_to_curve </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRE_DEFINED_COLOR</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.PRE_DEFINED_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>DRAUGHTING_PRE_DEFINED_COLOUR</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.PRE_DEFINED_COLOR</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>NAMED_UNIT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>dimensions </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CONVERSION_BASED_UNIT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.NAMED_UNIT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>conversion_factor </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SOLID_ANGLE_UNIT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.NAMED_UNIT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>AREA_UNIT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.NAMED_UNIT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PLANE_ANGLE_UNIT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.NAMED_UNIT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>LENGTH_UNIT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.NAMED_UNIT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PLANE_ANGLE_MEASURE_WITH_UNIT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.MEASURE_WITH_UNIT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>APPROVAL_DATE_TIME</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>date_time dated_approval </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CONNECTED_FACE_SET</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.TOPOLOGICAL_REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>cfs_faces </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>OPEN_SHELL</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.CONNECTED_FACE_SET</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>CLOSED_SHELL</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.CONNECTED_FACE_SET</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>ORIENTED_CLOSED_SHELL</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.CLOSED_SHELL</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>closed_shell_element orientation </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>APPLICATION_CONTEXT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>application </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SHAPE_DEFINITION_REPRESENTATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.PROPERTY_DEFINITION_REPRESENTATION</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PRODUCT_DEFINITION_USAGE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.PRODUCT_DEFINITION_RELATIONSHIP</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>ASSEMBLY_COMPONENT_USAGE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.PRODUCT_DEFINITION_USAGE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>reference_designator </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>NEXT_ASSEMBLY_USAGE_OCCURRENCE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.ASSEMBLY_COMPONENT_USAGE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>FACETED_BREP_SHAPE_REPRESENTATION</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.SHAPE_REPRESENTATION</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>REPRESENTATION_CONTEXT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>context_identifier context_type </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>GLOBAL_UNIT_ASSIGNED_CONTEXT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.REPRESENTATION_CONTEXT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>units </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>GEOMETRIC_REPRESENTATION_CONTEXT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.REPRESENTATION_CONTEXT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>coordinate_space_dimension </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PARAMETRIC_REPRESENTATION_CONTEXT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.REPRESENTATION_CONTEXT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.REPRESENTATION_CONTEXT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>uncertainty </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>PERSONAL_ADDRESS</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.Item</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>internal_location street_number street postal_box town region postal_code country facsimile_number telephone_number electronic_mail_address telex_number people description </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>COMPOSITE_CURVE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.BOUNDED_CURVE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>segments self_intersect </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>COMPOSITE_CURVE_ON_SURFACE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.COMPOSITE_CURVE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>BOUNDARY_CURVE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.COMPOSITE_CURVE_ON_SURFACE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>OUTER_BOUNDARY_CURVE</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.BOUNDARY_CURVE</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>SI_UNIT</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.NAMED_UNIT</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>prefix </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>LOOP</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.TOPOLOGICAL_REPRESENTATION_ITEM</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<class>
<name>POLY_LOOP</name>
<environment>CADSM.UI.STEP</environment>
<super>CADSM.UI.STEP.LOOP</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>polygon </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>CADSM-UI-STEP</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</class>

<shared-variable>
<name>CName</name>
<environment>CADSM.UI.STEP.SI_UNIT</environment>
<private>false</private>
<constant>false</constant>
<category>accessing</category>
<initializer>Array new: 5</initializer>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</shared-variable>

<shared-variable>
<name>CPrefix</name>
<environment>CADSM.UI.STEP.SI_UNIT</environment>
<private>false</private>
<constant>false</constant>
<category>accessing</category>
<initializer>Array new: 5</initializer>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</shared-variable>

<shared-variable>
<name>CurrentRep</name>
<environment>CADSM.UI.STEP.REPRESENTATION</environment>
<private>false</private>
<constant>false</constant>
<category>accessing</category>
<attributes>
<package>CADSM-UI-STEP</package>
</attributes>
</shared-variable>

<methods>
<class-id>CADSM.UI.STEP.Item</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="fillInstVarWith1:">fillInstVarWith1: aDict 
	1 to: self class instSize
		do: 
			[:i | 
			| instVar |
			instVar := self instVarAt: i.
			instVar isSequenceable 
				ifTrue: 
					[(instVar isString and: [instVar isEmpty not and: [instVar first = $#]]) 
						ifTrue: 
							[| aReadStream index |
							aReadStream := instVar readStream.
							aReadStream next.
							index := Number readFrom: aReadStream.
							self instVarAt: i put: (aDict at: index)]
						ifFalse: 
							[1 to: instVar size
								do: 
									[:j | 
									| element |
									element := instVar at: j.
									(element isString and: [element isEmpty not and: [element first = $#]]) 
										ifTrue: 
											[| aReadStream index |
											aReadStream := element readStream.
											aReadStream next.
											index := Number readFrom: aReadStream.
											instVar at: j put: (aDict at: index)]]]]]</body>

<body package="CADSM-UI-STEP" selector="fillInstVarWith2:">fillInstVarWith2: aDict 
	| block |
	block := 
			[:aArray | 
			1 to: aArray size
				do: 
					[:j | 
					| element |
					element := aArray at: j.
					element isSequenceable 
						ifTrue: 
							[(element isString and: [element isEmpty not and: [element first = $#]]) 
								ifTrue: 
									[| aReadStream index |
									aReadStream := element readStream.
									aReadStream next.
									index := Number readFrom: aReadStream.
									aArray at: j put: (aDict at: index)]
								ifFalse: [block value: element]]]].
	1 to: self class instSize
		do: 
			[:i | 
			| instVar |
			instVar := self instVarAt: i.
			instVar isSequenceable 
				ifTrue: 
					[(instVar isString and: [instVar isEmpty not and: [instVar first = $#]]) 
						ifTrue: 
							[| aReadStream index |
							aReadStream := instVar readStream.
							aReadStream next.
							index := Number readFrom: aReadStream.
							self instVarAt: i put: (aDict at: index)]
						ifFalse: [block value: instVar]]]</body>

<body package="CADSM-UI-STEP" selector="fillInstVarWith:">fillInstVarWith: aDict 
	| block |
	block := 
			[:aArray | 
			1 to: aArray size
				do: 
					[:j | 
					| element |
					element := aArray at: j.
					element isSequenceable 
						ifTrue: 
							[(element isString and: [element isEmpty not and: [element first = $#]]) 
								ifTrue: 
									[| aReadStream index |
									aReadStream := element readStream.
									aReadStream next.
									index := Number readFrom: aReadStream.
									aArray at: j put: (aDict at: index)]
								ifFalse: [block value: element]]]].
	1 to: self class instSize
		do: 
			[:i | 
			| instVar |
			instVar := self instVarAt: i.
			instVar isSequenceable 
				ifTrue: 
					[(instVar isString and: [instVar isEmpty not and: [instVar first = $#]]) 
						ifTrue: 
							[| aReadStream index |
							aReadStream := instVar readStream.
							aReadStream next.
							index := Number readFrom: aReadStream.
							self instVarAt: i put: (aDict at: index)]
						ifFalse: [block value: instVar]]]</body>

<body package="CADSM-UI-STEP" selector="name">name
	^name</body>

<body package="CADSM-UI-STEP" selector="name:">name: aString 
	aString = 'NONE' ifTrue: [name := nil] ifFalse: [name := aString]</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.Item</class-id> <category>testing</category>

<body package="CADSM-UI-STEP" selector="isSupOf1:">isSupOf1: aSTEPItem 
	1 to: self class instSize
		do: 
			[:i | 
			| instVar |
			instVar := self instVarAt: i.
			instVar == aSTEPItem ifTrue: [^true].
			(instVar isSequenceable and: [instVar isString not]) 
				ifTrue: 
					[(instVar detect: 
							[:aaSTEPItem | 
							aaSTEPItem == aSTEPItem 
								ifTrue: [^true]
								ifFalse: 
									[(aaSTEPItem isSequenceable and: [aaSTEPItem isString not]) 
										ifTrue: 
											[(aaSTEPItem detect: [:aaaSTEPItem | aaaSTEPItem == aSTEPItem] ifNone: nil) 
												ifNotNil: [^true]]]]
						ifNone: nil) ifNotNil: [^true]]].
	^false</body>

<body package="CADSM-UI-STEP" selector="isSupOf:">isSupOf: aSTEPItem 
	| block |
	block := 
			[:aObject | 
			aObject == aSTEPItem ifTrue: [^true].
			(aObject isSequenceable and: [aObject isString not]) 
				ifTrue: [aObject do: [:aaObject | block value: aaObject]]].
	1 to: self class instSize
		do: 
			[:i | 
			| instVar |
			instVar := self instVarAt: i.
			block value: instVar].
	^false</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.Item</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printOn:">printOn: aStream 
	aStream nextPut: $a.
	aStream nextPutAll: self class printString.
	aStream nextPut: $(.
	1 to: self class instSize
		do: 
			[:i | 
			aStream
				print: (self instVarAt: i);
				space].
	1 to: self basicSize
		do: 
			[:i | 
			aStream
				print: (self at: i);
				space].
	aStream nextPut: $)</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SECURITY_CLASSIFICATION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="purpose">purpose
	^purpose</body>

<body package="CADSM-UI-STEP" selector="purpose:">purpose: anObject
	purpose := anObject</body>

<body package="CADSM-UI-STEP" selector="security_level">security_level
	^security_level</body>

<body package="CADSM-UI-STEP" selector="security_level:">security_level: anObject
	security_level := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.EDGE_LOOP</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="cCurve">cCurve
	^edge_list collect: [:edge | edge xyzCurve]</body>

<body package="CADSM-UI-STEP" selector="cPoint">cPoint
	^edge_list collect: [:edge | edge startPoint]</body>

<body package="CADSM-UI-STEP" selector="edge_list">edge_list
	^edge_list</body>

<body package="CADSM-UI-STEP" selector="edge_list:">edge_list: anObject
	edge_list := anObject</body>

<body package="CADSM-UI-STEP" selector="size">size
	^edge_list size</body>

<body package="CADSM-UI-STEP" selector="startPoint">startPoint
	^edge_list first startPoint</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.EDGE_LOOP</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aBoundingBox">aBoundingBox
	| aBoundingBox |
	aBoundingBox := CADSM.Misc.CADSMMiscBoundingBox new.
	self cPoint inject: aBoundingBox
		into: [:bbox :aPoint | bbox expandToBound: aPoint].
	^aBoundingBox</body>

<body package="CADSM-UI-STEP" selector="boundConicalSurface:">boundConicalSurface: aConicalSurface 
	edge_list do: [:edge | edge boundConicalSurface: aConicalSurface]</body>

<body package="CADSM-UI-STEP" selector="boundCylindricalSurface:">boundCylindricalSurface: aCylindricalSurface 
	edge_list do: [:edge | edge boundCylindricalSurface: aCylindricalSurface]</body>

<body package="CADSM-UI-STEP" selector="boundNurbsSurface:">boundNurbsSurface: aNurbsSurface 
	edge_list do: [:edge | edge boundNurbsSurface: aNurbsSurface]</body>

<body package="CADSM-UI-STEP" selector="boundRectSurface:">boundRectSurface: aRectSurface 
	edge_list do: [:edge | edge boundRectSurface: aRectSurface]</body>

<body package="CADSM-UI-STEP" selector="boundSphericalSurface:">boundSphericalSurface: aSphericalSurface 
	edge_list do: [:edge | edge boundSphericalSurface: aSphericalSurface]</body>

<body package="CADSM-UI-STEP" selector="boundSurfaceOfRevolution:">boundSurfaceOfRevolution: aSurfaceOfRevolution 
	edge_list 
		do: [:edge | edge boundSurfaceOfRevolution: aSurfaceOfRevolution]</body>

<body package="CADSM-UI-STEP" selector="boundSweep:">boundSweep: aSweep 
	edge_list do: [:edge | edge boundSweep: aSweep]</body>

<body package="CADSM-UI-STEP" selector="boundToroidalSurface:">boundToroidalSurface: aToroidalSurface 
	edge_list do: [:edge | edge boundToroidalSurface: aToroidalSurface]</body>

<body package="CADSM-UI-STEP" selector="endPoint">endPoint
	^edge_list last endPoint</body>

<body package="CADSM-UI-STEP" selector="hasVERTEX_POINT:tol:">hasVERTEX_POINT: aVERTEX_POINT tol: tol 
	edge_list 
		do: [:aORIENTED_EDGE | (aORIENTED_EDGE hasVERTEX_POINT: aVERTEX_POINT tol: tol) ifTrue: [^true]].
	^false</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.EDGE_LOOP</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'EDGE_LOOP';
		cr;
		printVerbose: edge_list</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PROPERTY_DEFINITION_REPRESENTATION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="definition">definition
	^definition</body>

<body package="CADSM-UI-STEP" selector="definition:">definition: anObject
	definition := anObject</body>

<body package="CADSM-UI-STEP" selector="used_representation">used_representation
	^used_representation</body>

<body package="CADSM-UI-STEP" selector="used_representation:">used_representation: anObject
	used_representation := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRODUCT_DEFINITION_RELATIONSHIP</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>

<body package="CADSM-UI-STEP" selector="id">id
	^id</body>

<body package="CADSM-UI-STEP" selector="id:">id: anObject
	id := anObject</body>

<body package="CADSM-UI-STEP" selector="related_product_definition">related_product_definition
	^related_product_definition</body>

<body package="CADSM-UI-STEP" selector="related_product_definition:">related_product_definition: anObject
	related_product_definition := anObject</body>

<body package="CADSM-UI-STEP" selector="relating_product_definition">relating_product_definition
	^relating_product_definition</body>

<body package="CADSM-UI-STEP" selector="relating_product_definition:">relating_product_definition: anObject
	relating_product_definition := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.ORGANIZATION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>

<body package="CADSM-UI-STEP" selector="id">id
	^id</body>

<body package="CADSM-UI-STEP" selector="id:">id: anObject
	id := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CC_DESIGN_SECURITY_CLASSIFICATION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="aEntity">aEntity
	^aEntity</body>

<body package="CADSM-UI-STEP" selector="aEntity:">aEntity: anObject
	aEntity := anObject</body>

<body package="CADSM-UI-STEP" selector="cEntity">cEntity
	^cEntity</body>

<body package="CADSM-UI-STEP" selector="cEntity:">cEntity: anObject
	cEntity := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRODUCT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>

<body package="CADSM-UI-STEP" selector="frame_of_reference">frame_of_reference
	^frame_of_reference</body>

<body package="CADSM-UI-STEP" selector="frame_of_reference:">frame_of_reference: anObject
	frame_of_reference := anObject</body>

<body package="CADSM-UI-STEP" selector="id">id
	^id</body>

<body package="CADSM-UI-STEP" selector="id:">id: anObject
	id := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.DIMENSIONAL_EXPONENTS</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="amount_of_substance_exponent">amount_of_substance_exponent
	^amount_of_substance_exponent</body>

<body package="CADSM-UI-STEP" selector="amount_of_substance_exponent:">amount_of_substance_exponent: anObject
	amount_of_substance_exponent := anObject</body>

<body package="CADSM-UI-STEP" selector="electric_current_exponent">electric_current_exponent
	^electric_current_exponent</body>

<body package="CADSM-UI-STEP" selector="electric_current_exponent:">electric_current_exponent: anObject
	electric_current_exponent := anObject</body>

<body package="CADSM-UI-STEP" selector="length_exponent">length_exponent
	^length_exponent</body>

<body package="CADSM-UI-STEP" selector="length_exponent:">length_exponent: anObject
	length_exponent := anObject</body>

<body package="CADSM-UI-STEP" selector="luminous_intensity_exponent">luminous_intensity_exponent
	^luminous_intensity_exponent</body>

<body package="CADSM-UI-STEP" selector="luminous_intensity_exponent:">luminous_intensity_exponent: anObject
	luminous_intensity_exponent := anObject</body>

<body package="CADSM-UI-STEP" selector="mass_exponent">mass_exponent
	^mass_exponent</body>

<body package="CADSM-UI-STEP" selector="mass_exponent:">mass_exponent: anObject
	mass_exponent := anObject</body>

<body package="CADSM-UI-STEP" selector="thermodynamic_temperature_exponent">thermodynamic_temperature_exponent
	^thermodynamic_temperature_exponent</body>

<body package="CADSM-UI-STEP" selector="thermodynamic_temperature_exponent:">thermodynamic_temperature_exponent: anObject
	thermodynamic_temperature_exponent := anObject</body>

<body package="CADSM-UI-STEP" selector="time_exponent">time_exponent
	^time_exponent</body>

<body package="CADSM-UI-STEP" selector="time_exponent:">time_exponent: anObject
	time_exponent := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.DIMENSIONAL_EXPONENTS</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="lengthFactor">lengthFactor
	^nil</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CURVE_STYLE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="curve_colour">curve_colour
	^curve_colour</body>

<body package="CADSM-UI-STEP" selector="curve_colour:">curve_colour: anObject
	curve_colour := anObject</body>

<body package="CADSM-UI-STEP" selector="curve_font">curve_font
	^curve_font</body>

<body package="CADSM-UI-STEP" selector="curve_font:">curve_font: anObject
	curve_font := anObject</body>

<body package="CADSM-UI-STEP" selector="curve_width">curve_width
	^curve_width</body>

<body package="CADSM-UI-STEP" selector="curve_width:">curve_width: anObject
	curve_width := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>

<body package="CADSM-UI-STEP" selector="id">id
	^id</body>

<body package="CADSM-UI-STEP" selector="id:">id: anObject
	id := anObject</body>

<body package="CADSM-UI-STEP" selector="make_or_buy">make_or_buy
	^make_or_buy</body>

<body package="CADSM-UI-STEP" selector="make_or_buy:">make_or_buy: anObject
	make_or_buy := anObject</body>

<body package="CADSM-UI-STEP" selector="of_product">of_product
	^of_product</body>

<body package="CADSM-UI-STEP" selector="of_product:">of_product: anObject
	of_product := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.APPLICATION_CONTEXT_ELEMENT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="frame_of_reference">frame_of_reference
	^frame_of_reference</body>

<body package="CADSM-UI-STEP" selector="frame_of_reference:">frame_of_reference: anObject
	frame_of_reference := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRODUCT_CONTEXT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="discipline_type">discipline_type
	^discipline_type</body>

<body package="CADSM-UI-STEP" selector="discipline_type:">discipline_type: anObject
	discipline_type := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRODUCT_DEFINITION_CONTEXT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="life_cycle_stage">life_cycle_stage
	^life_cycle_stage</body>

<body package="CADSM-UI-STEP" selector="life_cycle_stage:">life_cycle_stage: anObject
	life_cycle_stage := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.ITEM_DEFINED_TRANSFORMATION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>

<body package="CADSM-UI-STEP" selector="transform_item_1">transform_item_1
	^transform_item_1</body>

<body package="CADSM-UI-STEP" selector="transform_item_1:">transform_item_1: anObject
	transform_item_1 := anObject</body>

<body package="CADSM-UI-STEP" selector="transform_item_2">transform_item_2
	^transform_item_2</body>

<body package="CADSM-UI-STEP" selector="transform_item_2:">transform_item_2: anObject
	transform_item_2 := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.ITEM_DEFINED_TRANSFORMATION</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aAFf">aAFf
	"
	aAFf1 := aAf1f2*aAFf2
	aAFf1*aAFf2T := aAf1f2
	"

	^transform_item_1 aAFf timesTransposeFullMatrix: transform_item_2 aAFf</body>

<body package="CADSM-UI-STEP" selector="rFfF">rFfF
	^transform_item_1 rFfF minusFullColumn: transform_item_2 rFfF</body>

<body package="CADSM-UI-STEP" selector="rFfF1">rFfF1
	^transform_item_1 rFfF minusFullColumn: transform_item_2 rFfF</body>

<body package="CADSM-UI-STEP" selector="rFfF2">rFfF2
	^transform_item_2 rFfF minusFullColumn: transform_item_1 rFfF</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRODUCT_RELATED_PRODUCT_CATEGORY</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>

<body package="CADSM-UI-STEP" selector="products">products
	^products</body>

<body package="CADSM-UI-STEP" selector="products:">products: anObject
	products := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.APPLICATION_PROTOCOL_DEFINITION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="application">application
	^application</body>

<body package="CADSM-UI-STEP" selector="application:">application: anObject
	application := anObject</body>

<body package="CADSM-UI-STEP" selector="application_interpreted_model_schema_name">application_interpreted_model_schema_name
	^application_interpreted_model_schema_name</body>

<body package="CADSM-UI-STEP" selector="application_interpreted_model_schema_name:">application_interpreted_model_schema_name: anObject
	application_interpreted_model_schema_name := anObject</body>

<body package="CADSM-UI-STEP" selector="application_protocol_year">application_protocol_year
	^application_protocol_year</body>

<body package="CADSM-UI-STEP" selector="application_protocol_year:">application_protocol_year: anObject
	application_protocol_year := anObject</body>

<body package="CADSM-UI-STEP" selector="status">status
	^status</body>

<body package="CADSM-UI-STEP" selector="status:">status: anObject
	status := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CC_DESIGN_DATE_AND_TIME_ASSIGNMENT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="a2Entity">a2Entity
	^a2Entity</body>

<body package="CADSM-UI-STEP" selector="a2Entity:">a2Entity: anObject
	a2Entity := anObject</body>

<body package="CADSM-UI-STEP" selector="aEntity">aEntity
	^aEntity</body>

<body package="CADSM-UI-STEP" selector="aEntity:">aEntity: anObject
	aEntity := anObject</body>

<body package="CADSM-UI-STEP" selector="cEntity">cEntity
	^cEntity</body>

<body package="CADSM-UI-STEP" selector="cEntity:">cEntity: anObject
	cEntity := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.COORDINATED_UNIVERSAL_TIME_OFFSET</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="hour_offset">hour_offset
	^hour_offset</body>

<body package="CADSM-UI-STEP" selector="hour_offset:">hour_offset: anObject
	hour_offset := anObject</body>

<body package="CADSM-UI-STEP" selector="minute_offset">minute_offset
	^minute_offset</body>

<body package="CADSM-UI-STEP" selector="minute_offset:">minute_offset: anObject
	minute_offset := anObject</body>

<body package="CADSM-UI-STEP" selector="sense">sense
	^sense</body>

<body package="CADSM-UI-STEP" selector="sense:">sense: anObject
	sense := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRESENTATION_STYLE_ASSIGNMENT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="styles">styles
	^styles</body>

<body package="CADSM-UI-STEP" selector="styles:">styles: anObject
	styles := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRESENTATION_STYLE_ASSIGNMENT</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aColor">aColor
	^styles first aColor</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FILL_AREA_STYLE_COLOUR</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="fill_colour">fill_colour
	^fill_colour</body>

<body package="CADSM-UI-STEP" selector="fill_colour:">fill_colour: anObject
	fill_colour := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FILL_AREA_STYLE_COLOUR</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aColor">aColor
	^fill_colour aColor</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SURFACE_STYLE_USAGE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="side">side
	^side</body>

<body package="CADSM-UI-STEP" selector="side:">side: anObject
	side := anObject</body>

<body package="CADSM-UI-STEP" selector="style">style
	^style</body>

<body package="CADSM-UI-STEP" selector="style:">style: anObject
	style := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SURFACE_STYLE_USAGE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aColor">aColor
	^style aColor</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CONTEXT_DEPENDENT_SHAPE_REPRESENTATION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="aPart">aPart
	| aSHAPE_RELATIONSHIP aPart lengthFactor aTRANSFORMATION rFfF aAFf |
	aSHAPE_RELATIONSHIP := representation_relation at: 3.
	aPart := aSHAPE_RELATIONSHIP aPart.
	lengthFactor := aSHAPE_RELATIONSHIP lengthFactor.
	aTRANSFORMATION := representation_relation at: 2.
	rFfF := (aTRANSFORMATION rFfF)
				magnifySelf: lengthFactor;
				yourself.
	aAFf := aTRANSFORMATION aAFf.
	aPart aRefFrame rFfF: rFfF aAFf: aAFf.
	^aPart</body>

<body package="CADSM-UI-STEP" selector="aREPRESENTATION_RELATIONSHIP">aREPRESENTATION_RELATIONSHIP
	^representation_relation at: 1</body>

<body package="CADSM-UI-STEP" selector="representation_relation">representation_relation
	^representation_relation</body>

<body package="CADSM-UI-STEP" selector="representation_relation:">representation_relation: anObject
	representation_relation := anObject</body>

<body package="CADSM-UI-STEP" selector="represented_product_relation">represented_product_relation
	^represented_product_relation</body>

<body package="CADSM-UI-STEP" selector="represented_product_relation:">represented_product_relation: anObject
	represented_product_relation := anObject</body>

<body package="CADSM-UI-STEP" selector="_cRELATIONSHIP:">_cRELATIONSHIP: cRELATIONSHIP 
	| aREPRESENTATION_RELATIONSHIP aSHAPE_REPRESENTATION_RELATIONSHIP |
	aREPRESENTATION_RELATIONSHIP := self aREPRESENTATION_RELATIONSHIP.
	aSHAPE_REPRESENTATION_RELATIONSHIP := cRELATIONSHIP detect: 
					[:a | 
					a rep_1 = aREPRESENTATION_RELATIONSHIP rep_1 or: 
							[a rep_1 = aREPRESENTATION_RELATIONSHIP rep_2 or: 
									[a rep_2 = aREPRESENTATION_RELATIONSHIP rep_1 
										or: [a rep_2 = aREPRESENTATION_RELATIONSHIP rep_2]]]].
	representation_relation at: 3 put: aSHAPE_REPRESENTATION_RELATIONSHIP</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CONTEXT_DEPENDENT_SHAPE_REPRESENTATION</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="_cRELATIONSHIP1:">_cRELATIONSHIP1: cRELATIONSHIP 
	| aRELATIONSHIP rep_2 aSHAPE_RELATIONSHIP |
	aRELATIONSHIP := representation_relation at: 1.
	rep_2 := aRELATIONSHIP rep_2.
	aSHAPE_RELATIONSHIP := cRELATIONSHIP detect: [:a | a rep_1 = rep_2].
	representation_relation at: 3 put: aSHAPE_RELATIONSHIP</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRODUCT_CATEGORY_RELATIONSHIP</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="category">category
	^category</body>

<body package="CADSM-UI-STEP" selector="category:">category: anObject
	category := anObject</body>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>

<body package="CADSM-UI-STEP" selector="sub_category">sub_category
	^sub_category</body>

<body package="CADSM-UI-STEP" selector="sub_category:">sub_category: anObject
	sub_category := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.COMPOSITE_CURVE_SEGMENT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="parent_curve">parent_curve
	^parent_curve</body>

<body package="CADSM-UI-STEP" selector="parent_curve:">parent_curve: anObject
	parent_curve := anObject</body>

<body package="CADSM-UI-STEP" selector="same_sense">same_sense
	^same_sense</body>

<body package="CADSM-UI-STEP" selector="same_sense:">same_sense: anObject
	same_sense := anObject</body>

<body package="CADSM-UI-STEP" selector="transition">transition
	^transition</body>

<body package="CADSM-UI-STEP" selector="transition:">transition: anObject
	transition := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.STYLED_ITEM</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="item">item
	^item</body>

<body package="CADSM-UI-STEP" selector="item:">item: anObject
	item := anObject</body>

<body package="CADSM-UI-STEP" selector="styles">styles
	^styles</body>

<body package="CADSM-UI-STEP" selector="styles:">styles: anObject
	styles := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.STYLED_ITEM</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aPart">aPart
	| aPart |
	aPart := item aPart.
	aPart aColor: styles first aColor.
	^aPart</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.DATE_AND_TIME</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="date_component">date_component
	^date_component</body>

<body package="CADSM-UI-STEP" selector="date_component:">date_component: anObject
	date_component := anObject</body>

<body package="CADSM-UI-STEP" selector="time_component">time_component
	^time_component</body>

<body package="CADSM-UI-STEP" selector="time_component:">time_component: anObject
	time_component := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRODUCT_DEFINITION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>

<body package="CADSM-UI-STEP" selector="formation">formation
	^formation</body>

<body package="CADSM-UI-STEP" selector="formation:">formation: anObject
	formation := anObject</body>

<body package="CADSM-UI-STEP" selector="frame_of_reference">frame_of_reference
	^frame_of_reference</body>

<body package="CADSM-UI-STEP" selector="frame_of_reference:">frame_of_reference: anObject
	frame_of_reference := anObject</body>

<body package="CADSM-UI-STEP" selector="id">id
	^id</body>

<body package="CADSM-UI-STEP" selector="id:">id: anObject
	id := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.REPRESENTATION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="context_of_items">context_of_items
	^context_of_items</body>

<body package="CADSM-UI-STEP" selector="context_of_items:">context_of_items: anObject
	context_of_items := anObject</body>

<body package="CADSM-UI-STEP" selector="items">items
	^items</body>

<body package="CADSM-UI-STEP" selector="items:">items: anObject
	items := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.REPRESENTATION</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="lengthFactor">lengthFactor
	^(context_of_items 
		detect: [:a | a isMemberOf: GLOBAL_UNIT_ASSIGNED_CONTEXT]) lengthFactor</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.REPRESENTATION class</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="angleFactor">angleFactor
	^CurrentRep angleFactor</body>

<body package="CADSM-UI-STEP" selector="CurrentRep">CurrentRep
	^CurrentRep</body>

<body package="CADSM-UI-STEP" selector="CurrentRep:">CurrentRep: aREPRESENTATION 
	^CurrentRep := aREPRESENTATION</body>

<body package="CADSM-UI-STEP" selector="lengthFactor">lengthFactor
	^CurrentRep lengthFactor</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.APPROVAL</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="level">level
	^level</body>

<body package="CADSM-UI-STEP" selector="level:">level: anObject
	level := anObject</body>

<body package="CADSM-UI-STEP" selector="status">status
	^status</body>

<body package="CADSM-UI-STEP" selector="status:">status: anObject
	status := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="a2Entity">a2Entity
	^a2Entity</body>

<body package="CADSM-UI-STEP" selector="a2Entity:">a2Entity: anObject
	a2Entity := anObject</body>

<body package="CADSM-UI-STEP" selector="aEntity">aEntity
	^aEntity</body>

<body package="CADSM-UI-STEP" selector="aEntity:">aEntity: anObject
	aEntity := anObject</body>

<body package="CADSM-UI-STEP" selector="cEntity">cEntity
	^cEntity</body>

<body package="CADSM-UI-STEP" selector="cEntity:">cEntity: anObject
	cEntity := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRESENTATION_LAYER_ASSIGNMENT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="assigned_items">assigned_items
	^assigned_items</body>

<body package="CADSM-UI-STEP" selector="assigned_items:">assigned_items: anObject
	assigned_items := anObject</body>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRODUCT_DEFINITION_SHAPE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="definition">definition
	^definition</body>

<body package="CADSM-UI-STEP" selector="definition:">definition: anObject
	definition := anObject</body>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.REPRESENTATION_RELATIONSHIP</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>

<body package="CADSM-UI-STEP" selector="rep_1">rep_1
	^rep_1</body>

<body package="CADSM-UI-STEP" selector="rep_1:">rep_1: anObject
	rep_1 := anObject</body>

<body package="CADSM-UI-STEP" selector="rep_2">rep_2
	^rep_2</body>

<body package="CADSM-UI-STEP" selector="rep_2:">rep_2: anObject
	rep_2 := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.MEASURE_VALUE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="value">value
	^value</body>

<body package="CADSM-UI-STEP" selector="value:">value: anObject
	value := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.LENGTH_MEASURE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="lengthFactor">lengthFactor
	^value</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.LOCAL_TIME</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="hour_component">hour_component
	^hour_component</body>

<body package="CADSM-UI-STEP" selector="hour_component:">hour_component: anObject
	hour_component := anObject</body>

<body package="CADSM-UI-STEP" selector="minute_component">minute_component
	^minute_component</body>

<body package="CADSM-UI-STEP" selector="minute_component:">minute_component: anObject
	minute_component := anObject</body>

<body package="CADSM-UI-STEP" selector="second_component">second_component
	^second_component</body>

<body package="CADSM-UI-STEP" selector="second_component:">second_component: anObject
	second_component := anObject</body>

<body package="CADSM-UI-STEP" selector="zone">zone
	^zone</body>

<body package="CADSM-UI-STEP" selector="zone:">zone: anObject
	zone := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PLANE_ANGLE_MEASURE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="angleFactor">angleFactor
	^value</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.COLOUR_RGB</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="blue">blue
	^blue</body>

<body package="CADSM-UI-STEP" selector="blue:">blue: anObject
	blue := anObject</body>

<body package="CADSM-UI-STEP" selector="green">green
	^green</body>

<body package="CADSM-UI-STEP" selector="green:">green: anObject
	green := anObject</body>

<body package="CADSM-UI-STEP" selector="red">red
	^red</body>

<body package="CADSM-UI-STEP" selector="red:">red: anObject
	red := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.COLOUR_RGB</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aColor">aColor
	^ColorValue 
		red: red
		green: green
		blue: blue</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FACE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="bounds">bounds
	^bounds</body>

<body package="CADSM-UI-STEP" selector="bounds:">bounds: anObject 
	bounds := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FACE_BOUND</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="bound">bound
	^bound</body>

<body package="CADSM-UI-STEP" selector="bound:">bound: anObject
	bound := anObject</body>

<body package="CADSM-UI-STEP" selector="cCurve">cCurve
	| answer |
	answer := bound cCurve.
	^orientation 
		ifTrue: [answer]
		ifFalse: [answer reverse collect: [:a | a reverse]]</body>

<body package="CADSM-UI-STEP" selector="cPoint">cPoint
	| answer startPoint |
	answer := bound cPoint.
	^orientation 
		ifTrue: [answer]
		ifFalse: 
			[answer := answer reverse.
			startPoint := answer removeLast.
			answer addFirst: startPoint.
			answer]</body>

<body package="CADSM-UI-STEP" selector="orientation">orientation
	^orientation</body>

<body package="CADSM-UI-STEP" selector="orientation:">orientation: anObject
	orientation := anObject</body>

<body package="CADSM-UI-STEP" selector="size">size
	^bound size</body>

<body package="CADSM-UI-STEP" selector="startPoint">startPoint
	^orientation ifTrue: [bound startPoint] ifFalse: [bound endPoint]</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FACE_BOUND</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aBoundingBox">aBoundingBox
	^bound aBoundingBox</body>

<body package="CADSM-UI-STEP" selector="boundConicalSurface:">boundConicalSurface: aConicalSurface 
	bound boundConicalSurface: aConicalSurface</body>

<body package="CADSM-UI-STEP" selector="boundCylindricalSurface:">boundCylindricalSurface: aCylindricalSurface 
	bound boundCylindricalSurface: aCylindricalSurface</body>

<body package="CADSM-UI-STEP" selector="boundNurbsSurface:">boundNurbsSurface: aNurbsSurface 
	bound boundNurbsSurface: aNurbsSurface</body>

<body package="CADSM-UI-STEP" selector="boundRectSurface:">boundRectSurface: aRectSurface 
	bound boundRectSurface: aRectSurface</body>

<body package="CADSM-UI-STEP" selector="boundSphericalSurface:">boundSphericalSurface: aSphericalSurface 
	bound boundSphericalSurface: aSphericalSurface</body>

<body package="CADSM-UI-STEP" selector="boundSurfaceOfRevolution:">boundSurfaceOfRevolution: aSurfaceOfRevolution 
	bound boundSurfaceOfRevolution: aSurfaceOfRevolution</body>

<body package="CADSM-UI-STEP" selector="boundSweep:">boundSweep: aSweep 
	bound boundSweep: aSweep</body>

<body package="CADSM-UI-STEP" selector="boundToroidalSurface:">boundToroidalSurface: aToroidalSurface 
	bound boundToroidalSurface: aToroidalSurface</body>

<body package="CADSM-UI-STEP" selector="cCurve1">cCurve1
	| answer |
	answer := bound cCurve.
	^orientation ifTrue: [answer] ifFalse: [answer reverse]</body>

<body package="CADSM-UI-STEP" selector="hasVERTEX_POINT:tol:">hasVERTEX_POINT: aVERTEX_POINT tol: tol 
	^bound hasVERTEX_POINT: aVERTEX_POINT tol: tol</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FACE_BOUND</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'FACE_BOUND';
		cr;
		nextPutAll: 'orientation = ';
		printVerbose: orientation;
		cr;
		printVerbose: bound</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FACE_OUTER_BOUND</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="bound">bound
	^bound</body>

<body package="CADSM-UI-STEP" selector="bound:">bound: anObject
	bound := anObject</body>

<body package="CADSM-UI-STEP" selector="orientation">orientation
	^orientation</body>

<body package="CADSM-UI-STEP" selector="orientation:">orientation: anObject
	orientation := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FACE_SURFACE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="aSurface">aSurface
	^aSurface ifNil: 
			[aSurface := self face_geometry aSurfaceWithBounds: bounds.
			same_sense ifTrue: [aSurface] ifFalse: [aSurface reverseSelf]]</body>

<body package="CADSM-UI-STEP" selector="cCurve">cCurve
	| nLoop bound aWriteStream |
	nLoop := bounds size.
	^nLoop == 1 
		ifTrue: [bounds first cCurve]
		ifFalse: 
			[aWriteStream := (Array new: 10) writeStream.
			bound := bounds first.
			bound cCurve do: [:aCurve | aWriteStream nextPut: aCurve].
			2 to: nLoop
				do: 
					[:i | 
					"Connect outer loop to inner loops."

					aWriteStream nextPut: nil.
					bound := bounds at: i.
					bound cCurve do: [:aCurve | aWriteStream nextPut: aCurve].
					aWriteStream nextPut: nil].
			aWriteStream contents]</body>

<body package="CADSM-UI-STEP" selector="cEdge">cEdge
	| answer |
	answer := CADSM.Misc.CADSMMiscOrderedSet new: 10.
	cOperator 
		do: [:aOp | (aOp respondsTo: #newEdge) ifTrue: [answer add: aOp newEdge]].
	^answer</body>

<body package="CADSM-UI-STEP" selector="cEdgeUse">cEdgeUse
	| answer aVertex aEdge aEdgeUse aCurve |
	answer := CADSM.Misc.CADSMMiscOrderedSet new: 10.
	cOperator do: 
			[:aOp | 
			(aOp respondsTo: #newEdge) 
				ifTrue: 
					[aVertex := aOp aVertex.
					aEdge := aOp newEdge.
					aCurve := aOp aCurve.
					aEdgeUse := (aEdge cUse 
								select: [:aaEdgeUse | aaEdgeUse aVertex == aVertex and: [aaEdgeUse xyzCurve = aCurve]]) 
									first.
					answer add: aEdgeUse]].
	^answer</body>

<body package="CADSM-UI-STEP" selector="cPoint">cPoint
	| nLoop bound startPoint aWriteStream |
	nLoop := bounds size.
	^nLoop == 1 
		ifTrue: [bounds first cPoint]
		ifFalse: 
			[bound := bounds first.
			startPoint := bound startPoint.
			aWriteStream := (Array new: 10) writeStream.
			bound cPoint do: [:aPoint | aWriteStream nextPut: aPoint].
			2 to: nLoop
				do: 
					[:i | 
					"Connect outer loop to inner loops."

					aWriteStream nextPut: startPoint.
					bound := bounds at: i.
					bound cPoint do: [:aPoint | aWriteStream nextPut: aPoint].
					aWriteStream nextPut: bound startPoint].
			aWriteStream contents]</body>

<body package="CADSM-UI-STEP" selector="face_geometry">face_geometry
	face_geometry isSequenceable 
		ifTrue: 
			[| cClass aSURFACE |
			cClass := OrderedCollection new: 4.
			cClass add: RATIONAL_B_SPLINE_SURFACE.
			cClass add: B_SPLINE_SURFACE_WITH_KNOTS.
			cClass detect: 
					[:aClass | 
					aSURFACE := face_geometry detect: [:a | a isMemberOf: aClass] ifNone: nil.
					aSURFACE ~~ nil].
			aSURFACE fillWith: face_geometry.
			face_geometry := aSURFACE].
	^face_geometry</body>

<body package="CADSM-UI-STEP" selector="face_geometry:">face_geometry: anObject
	face_geometry := anObject</body>

<body package="CADSM-UI-STEP" selector="hasVERTEX_POINT:tol:">hasVERTEX_POINT: aVERTEX_POINT tol: tol 
	bounds do: 
			[:aFACE_OUTER_BOUND | 
			(aFACE_OUTER_BOUND hasVERTEX_POINT: aVERTEX_POINT tol: tol) 
				ifTrue: [^true]].
	^false</body>

<body package="CADSM-UI-STEP" selector="newFaceUse">newFaceUse
	^(cOperator select: [:aOp | aOp isMemberOf: CADSM.NMT.CADSMNMTMakeFU]) soleItem newFaceUse</body>

<body package="CADSM-UI-STEP" selector="same_sense">same_sense
	^same_sense</body>

<body package="CADSM-UI-STEP" selector="same_sense:">same_sense: anObject
	same_sense := anObject</body>

<body package="CADSM-UI-STEP" selector="startPoint">startPoint
	^bounds first startPoint</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FACE_SURFACE</class-id> <category>building</category>

<body package="CADSM-UI-STEP" selector="addGeometry">addGeometry
	| newFaceUse |
	newFaceUse := self newFaceUse.
	newFaceUse cLoopUse with: bounds
		parallelDo: [:aLoopUse :aFACE_BOUND | aLoopUse addGeometry: aFACE_BOUND onFACE: self].
	newFaceUse
		conditionSelf;
		addMateGeometry</body>

<body package="CADSM-UI-STEP" selector="addGeometry1">addGeometry1
	| newFaceUse |
	newFaceUse := self newFaceUse.
	newFaceUse aSurface: self aSurface.
	newFaceUse isSameSense: true.
	newFaceUse cLoopUse with: bounds
		parallelDo: [:aLoopUse :aFACE_BOUND | aLoopUse addGeometry: aFACE_BOUND onFACE: self].
	newFaceUse conditionGeometry.
	newFaceUse addMateGeometry</body>

<body package="CADSM-UI-STEP" selector="addGeometry2">addGeometry2
	| newFaceUse |
	newFaceUse := self newFaceUse.
	newFaceUse
		aSurface: self aSurface;
		isSameSense: true.
	newFaceUse cLoopUse with: bounds
		parallelDo: [:aLoopUse :aFACE_BOUND | aLoopUse addGeometry: aFACE_BOUND onFACE: self].
	newFaceUse
		condition_cLoopUse;
		conditionGeometry;
		addMateGeometry</body>

<body package="CADSM-UI-STEP" selector="buildInRegion:">buildInRegion: aaRegion 
	aRegion := aaRegion.
	cOperator := CADSM.Misc.CADSMMiscOrderedSet new: 10.
	self
		conditionBounds;
		makeWireframe;
		makeFace;
		killDummyEdges;
		conditionFace</body>

<body package="CADSM-UI-STEP" selector="conditionBounds">conditionBounds
	bounds sortWith: 
			[:aFACE_BOUND :bFACE_BOUND | 
			aFACE_BOUND aBoundingBox diagonal_length 
				&gt;= bFACE_BOUND aBoundingBox diagonal_length].
	bounds first changeClassToThatOf: CADSM.UI.STEP.FACE_OUTER_BOUND basicNew</body>

<body package="CADSM-UI-STEP" selector="conditionBounds1">conditionBounds1
	| outerbound |
	(bounds first isMemberOf: CADSM.UI.STEP.FACE_OUTER_BOUND) 
		ifFalse: 
			[outerbound := (bounds 
						select: [:a | a isMemberOf: CADSM.UI.STEP.FACE_OUTER_BOUND]) soleItem.
			outerbound ifNotNil: 
					[bounds remove: outerbound ifAbsent: nil.
					bounds addFirst: outerbound]
				ifNil: 
					[bounds first changeClassToThatOf: CADSM.UI.STEP.FACE_OUTER_BOUND basicNew]]</body>

<body package="CADSM-UI-STEP" selector="killDummyEdges">killDummyEdges
	| cLoopUse cEdgeUse cDeadEdge iEdge aKillEMakeL |
	bounds size &gt; 1 
		ifTrue: 
			[cLoopUse := self newFaceUse cLoopUse.
			self assert: [cLoopUse size = 1].
			cEdgeUse := cLoopUse first cEdgeUse.
			cDeadEdge := CADSM.Misc.CADSMMiscOrderedSet new: bounds size.
			iEdge := bounds first size.
			2 to: bounds size
				do: 
					[:i | 
					iEdge := iEdge + 2 + (bounds at: i) size.
					cDeadEdge add: (cEdgeUse at: iEdge) aEdge].
			cDeadEdge do: 
					[:aEdge | 
					aKillEMakeL := CADSM.NMT.CADSMNMTKillEMakeL aEdge: aEdge.
					aKillEMakeL do.
					cOperator add: aKillEMakeL]]</body>

<body package="CADSM-UI-STEP" selector="makeFace">makeFace
	| aMakeFU |
	aMakeFU := CADSM.NMT.CADSMNMTMakeFU withcEdge: self cEdgeUse
				aSurface: self aSurface.
	aMakeFU do.
	cOperator add: aMakeFU</body>

<body package="CADSM-UI-STEP" selector="makeFaceBad">makeFaceBad
	| count aNMTSurface cEdgeUse aMakeFU |
	count := 0.
	aNMTSurface := self aSurface.
	cEdgeUse := self cEdgeUse.
	
	[count := count + 1.
	aMakeFU := CADSM.NMT.CADSMNMTMakeFU withcEdge: cEdgeUse
				aSurface: aNMTSurface.
	aMakeFU do] 
			on: SurfaceChangedException
			do: 
				[:ex | 
				aMakeFU die.
				aNMTSurface := ex parameter.
				count &lt; 5 ifTrue: [ex retry] ifFalse: [ex pass]].
	cOperator add: aMakeFU</body>

<body package="CADSM-UI-STEP" selector="makeWireframe">makeWireframe
	| cPoint cCurve aMakeSV aVertex aMakeEV aMakeE |
	cPoint := self cPoint.
	cCurve := self cCurve.
	aMakeSV := CADSM.NMT.CADSMNMTMakeSV inRegion: aRegion aPoint: cPoint first.
	aMakeSV do.
	aVertex := aMakeSV newVertex.
	cOperator add: aMakeSV.
	2 to: cPoint size
		do: 
			[:i | 
			aMakeEV := CADSM.NMT.CADSMNMTMakeEV 
						inRegion: aRegion
						fromVertex: aVertex
						toPoint: (cPoint at: i)
						aCurve: (cCurve at: i - 1).
			aMakeEV do.
			aVertex := aMakeEV newVertex.
			cOperator add: aMakeEV].
	aMakeE := CADSM.NMT.CADSMNMTMakeE 
				inRegion: aRegion
				fromVertex: aVertex
				toVertex: aMakeSV newVertex
				aCurve: cCurve last.
	aMakeE do.
	cOperator add: aMakeE</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FACE_SURFACE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="cEdgeUse1">cEdgeUse1
	| answer aVertex aEdge aEdgeUse |
	answer := CADSM.Misc.CADSMMiscOrderedSet new: 10.
	cOperator do: 
			[:aOp | 
			(aOp respondsTo: #newEdge) 
				ifTrue: 
					[aVertex := aOp aVertex.
					aEdge := aOp newEdge.
					aEdgeUse := (aEdge cUse 
								select: [:aaEdgeUse | aaEdgeUse aVertex == aVertex]) first.
					answer add: aEdgeUse]].
	^answer</body>

<body package="CADSM-UI-STEP" selector="conditionFace">conditionFace
	| newFaceUse cLoopUse uvBoundTol |
	(self aSurface isKindOf: CADSM.Geo.CADSMGeoSurfaceOfRevolution) 
		ifTrue: 
			[newFaceUse := self newFaceUse.
			cLoopUse := newFaceUse cLoopUse.
			uvBoundTol := aSurface uvBoundTol.
			cLoopUse do: [:aLoopUse | aLoopUse conditionSelfWithin: uvBoundTol].
			newFaceUse finalize_cLoopUse]</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FACE_SURFACE</class-id> <category>debug</category>

<body package="CADSM-UI-STEP" selector="debug">debug
	| aVERTEX_POINT tol |
	aVERTEX_POINT := StCAD.StMath.StMFullColumn 
				with: 1127.13d
				with: 377.67d
				with: 120.0d.
	tol := 1.0d-2.
	^self hasVERTEX_POINT: aVERTEX_POINT tol: tol</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FACE_SURFACE</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'ADVANCED_FACE';
		cr;
		nextPutAll: 'same_sense = ';
		printVerbose: same_sense;
		cr;
		printVerbose: face_geometry;
		cr;
		printVerbose: bounds</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.GEOMETRIC_SET</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="elements">elements
	^elements</body>

<body package="CADSM-UI-STEP" selector="elements:">elements: anObject
	elements := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PLACEMENT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="location">location
	^location</body>

<body package="CADSM-UI-STEP" selector="location:">location: anObject
	location := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PLACEMENT</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="rFfF">rFfF
	^location ifNil: 
			[StCAD.StMath.StMFullColumn 
				with: 0.0d
				with: 0.0d
				with: 0.0d]
		ifNotNil: [location aPoint]</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SWEPT_SURFACE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="swept_curve">swept_curve
	^swept_curve</body>

<body package="CADSM-UI-STEP" selector="swept_curve:">swept_curve: anObject
	swept_curve := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.AXIS1_PLACEMENT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="axis">axis
	^axis</body>

<body package="CADSM-UI-STEP" selector="axis:">axis: anObject
	axis := anObject</body>

<body package="CADSM-UI-STEP" selector="zDir">zDir
	^axis ifNil: 
			[StCAD.StMath.StMFullColumn 
				with: 0.0d
				with: 0.0d
				with: 1.0d]
		ifNotNil: [axis aDir]</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.AXIS1_PLACEMENT</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'location = ';
		printVerbose: location;
		cr;
		nextPutAll: 'axis = ';
		printVerbose: axis</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.AXIS2_PLACEMENT_3D</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="aAFf">aAFf
	^StCAD.StMath.StMFullMatrix rotationMatrixFromzDir: self zDir
		xDir: self xDir</body>

<body package="CADSM-UI-STEP" selector="axis">axis
	^axis</body>

<body package="CADSM-UI-STEP" selector="axis:">axis: anObject
	axis := anObject</body>

<body package="CADSM-UI-STEP" selector="ref_direction">ref_direction
	^ref_direction</body>

<body package="CADSM-UI-STEP" selector="ref_direction:">ref_direction: anObject
	ref_direction := anObject</body>

<body package="CADSM-UI-STEP" selector="xDir">xDir
	| rootOneThird zDir xDir |
	^ref_direction ifNil: 
			[rootOneThird := (1.0d / 3.0d) sqrt.
			zDir := self zDir normalizeSelf.
			1 to: 3
				do: 
					[:i | 
					xDir := StCAD.StMath.StMFullColumn zero: 3.
					xDir at: i put: 1.0d.
					(xDir dot: zDir) abs &lt; rootOneThird ifTrue: [^xDir]]]
		ifNotNil: [ref_direction aDir]</body>

<body package="CADSM-UI-STEP" selector="zDir">zDir
	^axis ifNil: 
			[StCAD.StMath.StMFullColumn 
				with: 0.0d
				with: 0.0d
				with: 1.0d]
		ifNotNil: [axis aDir]</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.AXIS2_PLACEMENT_3D</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aRefFrame">aRefFrame
	| aRefFrame |
	aRefFrame := CADSM.Geo.CADSMGeoCartesianFrame new.
	aRefFrame rFfF: self rFfF copy.
	aRefFrame aAFf: self aAFf copy.
	^aRefFrame</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.AXIS2_PLACEMENT_3D</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'location = ';
		printVerbose: location;
		cr;
		nextPutAll: 'axis = ';
		printVerbose: axis;
		cr;
		nextPutAll: 'ref_direction = ';
		printVerbose: ref_direction</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CURVE_BOUNDED_SURFACE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="basis_surface">basis_surface
	^basis_surface</body>

<body package="CADSM-UI-STEP" selector="basis_surface:">basis_surface: anObject
	basis_surface := anObject</body>

<body package="CADSM-UI-STEP" selector="boundaries">boundaries
	^boundaries</body>

<body package="CADSM-UI-STEP" selector="boundaries:">boundaries: anObject
	boundaries := anObject</body>

<body package="CADSM-UI-STEP" selector="implicit_outer">implicit_outer
	^implicit_outer</body>

<body package="CADSM-UI-STEP" selector="implicit_outer:">implicit_outer: anObject
	implicit_outer := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CARTESIAN_POINT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="coordinates">coordinates
	^coordinates</body>

<body package="CADSM-UI-STEP" selector="coordinates:">coordinates: anObject
	coordinates := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CARTESIAN_POINT</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aPoint">aPoint
	^coordinates</body>

<body package="CADSM-UI-STEP" selector="xyzPoint">xyzPoint
	^coordinates</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CARTESIAN_POINT</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream print: coordinates</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SURFACE_OF_REVOLUTION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="aAFf">aAFf
	| cPoint sum_rFpF xPoint |
	cPoint := swept_curve xyzCurve cPoint.
	sum_rFpF := cPoint inject: (StCAD.StMath.StMFullColumn zero: 3)
				into: [:subTotal :next | subTotal + next].
	xPoint := (sum_rFpF magnifySelf: cPoint size asDouble reciprocal) 
				- self rFfF.
	^StCAD.StMath.StMFullMatrix rotationMatrixFromzDir: self zDir
		xDir: xPoint normalizeSelf</body>

<body package="CADSM-UI-STEP" selector="axis_position">axis_position
	^axis_position</body>

<body package="CADSM-UI-STEP" selector="axis_position:">axis_position: anObject
	axis_position := anObject</body>

<body package="CADSM-UI-STEP" selector="rFfF">rFfF
	^axis_position rFfF</body>

<body package="CADSM-UI-STEP" selector="zDir">zDir
	^axis_position zDir</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SURFACE_OF_REVOLUTION</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aSurfaceWithBounds:">aSurfaceWithBounds: cFACE_BOUND 
	| aSurfaceOfRevolution aRefFrame rFcurveF |
	aSurfaceOfRevolution := CADSM.Geo.CADSMGeoSurfaceOfRevolution new.
	aSurfaceOfRevolution name: name.
	aRefFrame := CADSM.Geo.CADSMGeoCartesianFrame new.
	aRefFrame rFfF: self rFfF.
	aRefFrame aAFf: self aAFf.
	rFcurveF := swept_curve xyzCurve.
	rFcurveF cPoint: (rFcurveF cPoint 
				collect: [:aPoint | aRefFrame rfpffromrFpF: aPoint]).
	aSurfaceOfRevolution _aCurve: rFcurveF.
	aSurfaceOfRevolution aRefFrame copyrFfFandAFfFrom: aRefFrame.
	cFACE_BOUND 
		do: [:aFACE_BOUND | aFACE_BOUND boundSurfaceOfRevolution: aSurfaceOfRevolution].
	^aSurfaceOfRevolution</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.ELEMENTARY_SURFACE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="position">position
	^position</body>

<body package="CADSM-UI-STEP" selector="position:">position: anObject
	position := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.TOROIDAL_SURFACE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="major_radius">major_radius
	^major_radius</body>

<body package="CADSM-UI-STEP" selector="major_radius:">major_radius: anObject
	major_radius := anObject</body>

<body package="CADSM-UI-STEP" selector="minor_radius">minor_radius
	^minor_radius</body>

<body package="CADSM-UI-STEP" selector="minor_radius:">minor_radius: anObject
	minor_radius := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.TOROIDAL_SURFACE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aSurfaceWithBounds:">aSurfaceWithBounds: cFACE_BOUND 
	| aToroidalSurface |
	aToroidalSurface := CADSM.Geo.CADSMGeoToroidalSurface new.
	aToroidalSurface name: name.
	aToroidalSurface majorRadius: major_radius.
	aToroidalSurface minorRadius: minor_radius.
	aToroidalSurface aRefFrame copyrFfFandAFfFrom: position aRefFrame.
	cFACE_BOUND 
		do: [:aFACE_BOUND | aFACE_BOUND boundToroidalSurface: aToroidalSurface].
	^aToroidalSurface</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.TOROIDAL_SURFACE</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'TOROIDAL_SURFACE';
		cr;
		nextPutAll: 'major_radius = ';
		printVerbose: major_radius;
		cr;
		nextPutAll: 'minor_radius = ';
		printVerbose: minor_radius;
		cr;
		printVerbose: position</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PLANE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="aSurface">aSurface
	| aRectSurface |
	aRectSurface := CADSM.Geo.CADSMGeoRectSurface new.
	aRectSurface name: name.
	aRectSurface aRefFrame: position aRefFrame.
	^aRectSurface</body>

<body package="CADSM-UI-STEP" selector="aSurfaceWithBounds1:">aSurfaceWithBounds1: cFACE_BOUND 
	| aRectSurface aRefFrame aBoundingBox |
	aRectSurface := CADSM.Geo.CADSMGeoRectSurface new.
	aRectSurface name: name.
	aRefFrame := position aRefFrame.
	aRectSurface aRefFrame: aRefFrame.
	aBoundingBox := aRectSurface aBoundingBox.
	cFACE_BOUND do: 
			[:aFACE_BOUND | 
			aFACE_BOUND cPoint 
				do: [:aPoint | aBoundingBox expandToBound: (aRefFrame rfpffromrFpF: aPoint)]].
	^aRectSurface</body>

<body package="CADSM-UI-STEP" selector="aSurfaceWithBounds:">aSurfaceWithBounds: cFACE_BOUND 
	| aRectSurface |
	aRectSurface := CADSM.Geo.CADSMGeoRectSurface new.
	aRectSurface name: name.
	aRectSurface aRefFrame copyrFfFandAFfFrom: position aRefFrame.
	cFACE_BOUND 
		do: [:aFACE_BOUND | aFACE_BOUND boundRectSurface: aRectSurface].
	aRectSurface conditionSelf.
	^aRectSurface</body>

<body package="CADSM-UI-STEP" selector="position">position
	^position</body>

<body package="CADSM-UI-STEP" selector="position:">position: anObject
	position := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PLANE</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'PLANE';
		cr;
		printVerbose: position</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRODUCT_DEFINITION_FORMATION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>

<body package="CADSM-UI-STEP" selector="id">id
	^id</body>

<body package="CADSM-UI-STEP" selector="id:">id: anObject
	id := anObject</body>

<body package="CADSM-UI-STEP" selector="of_product">of_product
	^of_product</body>

<body package="CADSM-UI-STEP" selector="of_product:">of_product: anObject
	of_product := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.APPROVAL_ROLE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="role">role
	^role</body>

<body package="CADSM-UI-STEP" selector="role:">role: anObject
	role := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.MEASURE_WITH_UNIT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="unit_component">unit_component
	^unit_component</body>

<body package="CADSM-UI-STEP" selector="unit_component:">unit_component: anObject
	unit_component := anObject</body>

<body package="CADSM-UI-STEP" selector="value_component">value_component
	^value_component</body>

<body package="CADSM-UI-STEP" selector="value_component:">value_component: anObject
	value_component := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.LENGTH_MEASURE_WITH_UNIT</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="lengthFactor">lengthFactor
	| unitFactor |
	unitFactor := (unit_component detect: [:aa | aa lengthFactor notNil]) 
				lengthFactor.
	^value_component lengthFactor * unitFactor</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PRODUCT_CATEGORY</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CC_DESIGN_APPROVAL</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="aEntity">aEntity
	^aEntity</body>

<body package="CADSM-UI-STEP" selector="aEntity:">aEntity: anObject
	aEntity := anObject</body>

<body package="CADSM-UI-STEP" selector="cEntity">cEntity
	^cEntity</body>

<body package="CADSM-UI-STEP" selector="cEntity:">cEntity: anObject
	cEntity := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.POSITIVE_LENGTH_MEASURE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="length_measure">length_measure
	^length_measure</body>

<body package="CADSM-UI-STEP" selector="length_measure:">length_measure: anObject
	length_measure := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SPHERICAL_SURFACE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="radius">radius
	^radius</body>

<body package="CADSM-UI-STEP" selector="radius:">radius: anObject
	radius := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SPHERICAL_SURFACE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aSurfaceWithBounds:">aSurfaceWithBounds: cFACE_BOUND 
	| aSphericalSurface |
	aSphericalSurface := CADSM.Geo.CADSMGeoSphericalSurface new.
	aSphericalSurface name: name.
	aSphericalSurface radius: radius.
	aSphericalSurface aRefFrame copyrFfFandAFfFrom: position aRefFrame.
	cFACE_BOUND 
		do: [:aFACE_BOUND | aFACE_BOUND boundSphericalSurface: aSphericalSurface].
	^aSphericalSurface</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SPHERICAL_SURFACE</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'SPHERICAL_SURFACE';
		cr;
		nextPutAll: 'radius = ';
		printVerbose: radius;
		cr;
		printVerbose: position</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SHAPE_REPRESENTATION</class-id> <category>testing</category>

<body package="CADSM-UI-STEP" selector="=">= aObject 
	"Testing an alternative for Object&gt;&gt;="

	"Replace 'equality:' with '=' if this method is suitable for a subclass."

	^self == aObject or: 
			[self class == aObject class and: 
					[self basicSize == aObject basicSize and: 
							[1 to: self class instSize
								do: [:i | (self instVarAt: i) = (aObject instVarAt: i) ifFalse: [^false]].
							1 to: self basicSize
								do: [:i | (self at: i) = (aObject at: i) ifFalse: [^false]].
							true]]]</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PERSON_AND_ORGANIZATION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="the_organization">the_organization
	^the_organization</body>

<body package="CADSM-UI-STEP" selector="the_organization:">the_organization: anObject
	the_organization := anObject</body>

<body package="CADSM-UI-STEP" selector="the_person">the_person
	^the_person</body>

<body package="CADSM-UI-STEP" selector="the_person:">the_person: anObject
	the_person := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.VECTOR</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="magnitude">magnitude
	^magnitude</body>

<body package="CADSM-UI-STEP" selector="magnitude:">magnitude: anObject
	magnitude := anObject</body>

<body package="CADSM-UI-STEP" selector="orientation">orientation
	^orientation</body>

<body package="CADSM-UI-STEP" selector="orientation:">orientation: anObject
	orientation := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.VECTOR</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'VECTOR';
		cr;
		nextPutAll: 'orientation = ';
		printVerbose: orientation;
		cr;
		nextPutAll: 'magnitude = ';
		printVerbose: magnitude</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.VECTOR</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aDir">aDir
	^orientation aDir</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PERSON</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="first_name">first_name
	^first_name</body>

<body package="CADSM-UI-STEP" selector="first_name:">first_name: anObject
	first_name := anObject</body>

<body package="CADSM-UI-STEP" selector="id">id
	^id</body>

<body package="CADSM-UI-STEP" selector="id:">id: anObject
	id := anObject</body>

<body package="CADSM-UI-STEP" selector="last_name">last_name
	^last_name</body>

<body package="CADSM-UI-STEP" selector="last_name:">last_name: anObject
	last_name := anObject</body>

<body package="CADSM-UI-STEP" selector="middle_names">middle_names
	^middle_names</body>

<body package="CADSM-UI-STEP" selector="middle_names:">middle_names: anObject
	middle_names := anObject</body>

<body package="CADSM-UI-STEP" selector="prefix_titles">prefix_titles
	^prefix_titles</body>

<body package="CADSM-UI-STEP" selector="prefix_titles:">prefix_titles: anObject
	prefix_titles := anObject</body>

<body package="CADSM-UI-STEP" selector="suffix_titles">suffix_titles
	^suffix_titles</body>

<body package="CADSM-UI-STEP" selector="suffix_titles:">suffix_titles: anObject
	suffix_titles := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.EDGE_CURVE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="edge_end">edge_end
	^edge_end</body>

<body package="CADSM-UI-STEP" selector="edge_end:">edge_end: anObject
	edge_end := anObject</body>

<body package="CADSM-UI-STEP" selector="edge_geometry">edge_geometry
	edge_geometry isSequenceable 
		ifTrue: 
			[| cClass aCURVE |
			cClass := OrderedCollection new: 4.
			cClass add: RATIONAL_B_SPLINE_CURVE.
			cClass add: B_SPLINE_CURVE_WITH_KNOTS.
			cClass detect: 
					[:aClass | 
					aCURVE := edge_geometry detect: [:a | a isMemberOf: aClass] ifNone: nil.
					aCURVE ~~ nil].
			aCURVE fillWith: edge_geometry.
			edge_geometry := aCURVE].
	^edge_geometry</body>

<body package="CADSM-UI-STEP" selector="edge_geometry:">edge_geometry: anObject
	edge_geometry := anObject</body>

<body package="CADSM-UI-STEP" selector="edge_start">edge_start
	^edge_start</body>

<body package="CADSM-UI-STEP" selector="edge_start:">edge_start: anObject
	edge_start := anObject</body>

<body package="CADSM-UI-STEP" selector="same_sense">same_sense
	^same_sense</body>

<body package="CADSM-UI-STEP" selector="same_sense:">same_sense: anObject
	same_sense := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.EDGE_CURVE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="endPoint">endPoint
	^edge_end aPoint</body>

<body package="CADSM-UI-STEP" selector="hasVERTEX_POINT:tol:">hasVERTEX_POINT: aVERTEX_POINT tol: tol 
	(edge_start hasVERTEX_POINT: aVERTEX_POINT tol: tol) ifTrue: [^true].
	(edge_end hasVERTEX_POINT: aVERTEX_POINT tol: tol) ifTrue: [^true].
	^false</body>

<body package="CADSM-UI-STEP" selector="startPoint">startPoint
	^edge_start aPoint</body>

<body package="CADSM-UI-STEP" selector="xyzCurve">xyzCurve
	| xyzCurve |
	xyzCurve := self edge_geometry xyzCurveFrom: self.
	^same_sense ifTrue: [xyzCurve] ifFalse: [xyzCurve reverse]</body>

<body package="CADSM-UI-STEP" selector="xyzEnd">xyzEnd
	^edge_end xyzPoint</body>

<body package="CADSM-UI-STEP" selector="xyzStart">xyzStart
	^edge_start xyzPoint</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.EDGE_CURVE</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'EDGE_CURVE';
		cr;
		nextPutAll: 'edge_start = ';
		printVerbose: edge_start;
		cr;
		nextPutAll: 'edge_end = ';
		printVerbose: edge_end;
		cr;
		printVerbose: edge_geometry;
		cr;
		nextPutAll: 'same_sense = ';
		printVerbose: same_sense</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.ORIENTED_EDGE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="edge_element">edge_element
	^edge_element</body>

<body package="CADSM-UI-STEP" selector="edge_element:">edge_element: anObject
	edge_element := anObject</body>

<body package="CADSM-UI-STEP" selector="edge_end">edge_end
	^edge_end</body>

<body package="CADSM-UI-STEP" selector="edge_end:">edge_end: anObject
	edge_end := anObject</body>

<body package="CADSM-UI-STEP" selector="edge_start">edge_start
	^edge_start</body>

<body package="CADSM-UI-STEP" selector="edge_start:">edge_start: anObject
	edge_start := anObject</body>

<body package="CADSM-UI-STEP" selector="orientation">orientation
	^orientation</body>

<body package="CADSM-UI-STEP" selector="orientation:">orientation: anObject
	orientation := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.ORIENTED_EDGE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aCurve">aCurve
	"Dummy method template.  This was installed by the debugger
	define method command."

	^self halt</body>

<body package="CADSM-UI-STEP" selector="aPoint">aPoint
	"Dummy method template.  This was installed by the debugger
	define method command."

	^self halt</body>

<body package="CADSM-UI-STEP" selector="boundConicalSurface:">boundConicalSurface: aConicalSurface 
	self assert: [edge_start isNil].
	self assert: [edge_end isNil].
	self xyzCurve boundConicalSurface: aConicalSurface</body>

<body package="CADSM-UI-STEP" selector="boundCylindricalSurface:">boundCylindricalSurface: aCylindricalSurface 
	self assert: [edge_start isNil].
	self assert: [edge_end isNil].
	self xyzCurve boundCylindricalSurface: aCylindricalSurface</body>

<body package="CADSM-UI-STEP" selector="boundNurbsSurface:">boundNurbsSurface: aNurbsSurface 
	self assert: [edge_start isNil].
	self assert: [edge_end isNil].
	self xyzCurve boundNurbsSurface: aNurbsSurface</body>

<body package="CADSM-UI-STEP" selector="boundRectSurface:">boundRectSurface: aRectSurface 
	self assert: [edge_start isNil].
	self assert: [edge_end isNil].
	self xyzCurve boundRectSurface: aRectSurface</body>

<body package="CADSM-UI-STEP" selector="boundSphericalSurface:">boundSphericalSurface: aSphericalSurface 
	self assert: [edge_start isNil].
	self assert: [edge_end isNil].
	self xyzCurve boundSphericalSurface: aSphericalSurface</body>

<body package="CADSM-UI-STEP" selector="boundSurfaceOfRevolution:">boundSurfaceOfRevolution: aSurfaceOfRevolution 
	self assert: [edge_start isNil].
	self assert: [edge_end isNil].
	self xyzCurve boundSurfaceOfRevolution: aSurfaceOfRevolution</body>

<body package="CADSM-UI-STEP" selector="boundSweep:">boundSweep: aSweep 
	self assert: [edge_start isNil].
	self assert: [edge_end isNil].
	self xyzCurve boundSweep: aSweep</body>

<body package="CADSM-UI-STEP" selector="boundToroidalSurface:">boundToroidalSurface: aToroidalSurface 
	self assert: [edge_start isNil].
	self assert: [edge_end isNil].
	self xyzCurve boundToroidalSurface: aToroidalSurface</body>

<body package="CADSM-UI-STEP" selector="endPoint">endPoint
	^orientation 
		ifTrue: [edge_element endPoint]
		ifFalse: [edge_element startPoint]</body>

<body package="CADSM-UI-STEP" selector="hasVERTEX_POINT:tol:">hasVERTEX_POINT: aVERTEX_POINT tol: tol 
	^edge_element hasVERTEX_POINT: aVERTEX_POINT tol: tol</body>

<body package="CADSM-UI-STEP" selector="startPoint">startPoint
	^orientation 
		ifTrue: [edge_element startPoint]
		ifFalse: [edge_element endPoint]</body>

<body package="CADSM-UI-STEP" selector="xyzCurve">xyzCurve
	^xyzCurve ifNil: [self _xyzCurve]</body>

<body package="CADSM-UI-STEP" selector="_xyzCurve">_xyzCurve
	xyzCurve := orientation 
				ifTrue: [edge_element xyzCurve]
				ifFalse: [edge_element xyzCurve reverse].
	^xyzCurve</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.ORIENTED_EDGE</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'ORIENTED_EDGE';
		cr;
		nextPutAll: 'orientation = ';
		printVerbose: orientation;
		cr;
		printVerbose: edge_element</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.MANIFOLD_SOLID_BREP</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="outer">outer
	^outer</body>

<body package="CADSM-UI-STEP" selector="outer:">outer: anObject
	outer := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.MANIFOLD_SOLID_BREP</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aNMT">aNMT
	| aNMT |
	aNMT := CADSM.NMT.CADSMNMTModel new.
	outer buildIn: aNMT.
	self assert: [aNMT cSub size = 2].
	^aNMT</body>

<body package="CADSM-UI-STEP" selector="aPart">aPart
	| aNMT |
	aNMT := self aNMT.
	aNMT calcBoundingBox.
	^aNMT aBoundingBox isDefined 
		ifTrue: 
			[| aPart aMassMarker rFfF aAFf |
			aPart := StCAD.StGeo.GEOPart new.
			aPart name: name.
			aPart aNMT: aNMT.
			aMassMarker := StCAD.StGeo.GEOMassMarker new.
			aMassMarker name: 'MassMarker'.
			aMassMarker refFrame rFfF: aPart aNMT aBoundingBox center
				aAFf: (StCAD.StMath.StMFullMatrix identity: 3).
			aPart aMassMarker: aMassMarker.
			rFfF := 0 yd: 0 zd: 0.
			aAFf := StCAD.StMath.StMFullMatrix identity: 3.
			aPart refFrame rFfF: rFfF aAFf: aAFf.
			aPart]
		ifFalse: [self halt: 'Check this.']</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.BREP_WITH_VOIDS</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="voids">voids
	^voids</body>

<body package="CADSM-UI-STEP" selector="voids:">voids: anObject
	voids := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.DIRECTION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="aDir">aDir
	^direction_ratios</body>

<body package="CADSM-UI-STEP" selector="direction_ratios">direction_ratios
	^direction_ratios</body>

<body package="CADSM-UI-STEP" selector="direction_ratios:">direction_ratios: anObject
	direction_ratios := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.DIRECTION</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream print: direction_ratios</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SURFACE_SIDE_STYLE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="styles">styles
	^styles</body>

<body package="CADSM-UI-STEP" selector="styles:">styles: anObject
	styles := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SURFACE_SIDE_STYLE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aColor">aColor
	^styles first aColor</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.VERTEX_POINT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="vertex_geometry">vertex_geometry
	^vertex_geometry</body>

<body package="CADSM-UI-STEP" selector="vertex_geometry:">vertex_geometry: anObject
	vertex_geometry := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.VERTEX_POINT</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aPoint">aPoint
	^vertex_geometry aPoint</body>

<body package="CADSM-UI-STEP" selector="hasVERTEX_POINT:tol:">hasVERTEX_POINT: aVERTEX_POINT tol: tol 
	^vertex_geometry aPoint equal: aVERTEX_POINT tol: tol</body>

<body package="CADSM-UI-STEP" selector="xyzPoint">xyzPoint
	^vertex_geometry xyzPoint</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.VERTEX_POINT</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream printVerbose: vertex_geometry</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.UNCERTAINTY_MEASURE_WITH_UNIT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>

<body package="CADSM-UI-STEP" selector="unit_component">unit_component
	^unit_component</body>

<body package="CADSM-UI-STEP" selector="unit_component:">unit_component: anObject
	unit_component := anObject</body>

<body package="CADSM-UI-STEP" selector="value_component">value_component
	^value_component</body>

<body package="CADSM-UI-STEP" selector="value_component:">value_component: anObject
	value_component := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="context_of_items">context_of_items
	^context_of_items</body>

<body package="CADSM-UI-STEP" selector="context_of_items:">context_of_items: anObject
	context_of_items := anObject</body>

<body package="CADSM-UI-STEP" selector="items">items
	^items</body>

<body package="CADSM-UI-STEP" selector="items:">items: anObject
	items := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.ADVANCED_BREP_SHAPE_REPRESENTATION</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="angleFactor">angleFactor
	^(context_of_items 
		detect: [:a | a isMemberOf: GLOBAL_UNIT_ASSIGNED_CONTEXT]) angleFactor</body>

<body package="CADSM-UI-STEP" selector="aPart">aPart
	| aNMT |
	self 
		assert: [(items select: [:item | item isKindOf: SOLID_MODEL]) size = 1].
	REPRESENTATION CurrentRep: self.
	aNMT := (items at: 1) aNMT.
	aNMT magnifySelf: self lengthFactor.
	aNMT calcBoundingBox.
	^aNMT aBoundingBox isDefined 
		ifTrue: 
			[| aPart aMassMarker rFfF aAFf |
			aPart := StCAD.StGeo.GEOPart new.
			aPart name: name.
			aPart aNMT: aNMT.
			aMassMarker := StCAD.StGeo.GEOMassMarker new.
			aMassMarker name: 'MassMarker'.
			aMassMarker refFrame rFfF: aPart aNMT aBoundingBox center
				aAFf: (StCAD.StMath.StMFullMatrix identity: 3).
			aPart aMassMarker: aMassMarker.
			rFfF := 0 yd: 0 zd: 0.
			aAFf := StCAD.StMath.StMFullMatrix identity: 3.
			aPart refFrame rFfF: rFfF aAFf: aAFf.
			aPart]
		ifFalse: [self halt: 'Check this.']</body>

<body package="CADSM-UI-STEP" selector="cPart">cPart
	| i cSOLID aNMT aMassMarker aPart |
	REPRESENTATION CurrentRep: self.
	i := 0.
	cSOLID := items select: [:item | item isKindOf: MANIFOLD_SOLID_BREP].
	^cSOLID collect: 
			[:solid | 
			i := i + 1.
			aNMT := (solid aNMT)
						magnifySelf: self lengthFactor;
						calcBoundingBox;
						yourself.
			self assert: [aNMT aBoundingBox isDefined].
			aMassMarker := (StCAD.StGeo.GEOMassMarker new)
						name: 'MassMarker';
						yourself.
			aMassMarker refFrame rFfF: aNMT aBoundingBox center
				aAFf: (StCAD.StMath.StMFullMatrix identity: 3).
			aPart := (StCAD.StGeo.GEOPart new)
						name: ((name isString and: [name isEmpty not]) 
									ifTrue: [name]
									ifFalse: ['part' , i printString]);
						aNMT: aNMT;
						aMassMarker: aMassMarker;
						yourself.
			aPart refFrame rFfF: (0 yd: 0 zd: 0)
				aAFf: (StCAD.StMath.StMFullMatrix identity: 3).
			aPart]</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FILL_AREA_STYLE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="fill_styles">fill_styles
	^fill_styles</body>

<body package="CADSM-UI-STEP" selector="fill_styles:">fill_styles: anObject
	fill_styles := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.FILL_AREA_STYLE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aColor">aColor
	^fill_styles first aColor</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.APPROVAL_PERSON_ORGANIZATION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="authorized_approval">authorized_approval
	^authorized_approval</body>

<body package="CADSM-UI-STEP" selector="authorized_approval:">authorized_approval: anObject
	authorized_approval := anObject</body>

<body package="CADSM-UI-STEP" selector="person_organization">person_organization
	^person_organization</body>

<body package="CADSM-UI-STEP" selector="person_organization:">person_organization: anObject
	person_organization := anObject</body>

<body package="CADSM-UI-STEP" selector="role">role
	^role</body>

<body package="CADSM-UI-STEP" selector="role:">role: anObject
	role := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CYLINDRICAL_SURFACE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="radius">radius
	^radius</body>

<body package="CADSM-UI-STEP" selector="radius:">radius: anObject
	radius := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CYLINDRICAL_SURFACE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aSurfaceWithBounds:">aSurfaceWithBounds: cFACE_BOUND 
	| aCylindricalSurface |
	aCylindricalSurface := CADSM.Geo.CADSMGeoCylindricalSurface new.
	aCylindricalSurface name: name.
	aCylindricalSurface _radius: radius.
	aCylindricalSurface aRefFrame copyrFfFandAFfFrom: position aRefFrame.
	cFACE_BOUND 
		do: [:aFACE_BOUND | aFACE_BOUND boundCylindricalSurface: aCylindricalSurface].
	aCylindricalSurface _zstart: aCylindricalSurface aBoundingBox minCorner z.
	aCylindricalSurface _zend: aCylindricalSurface aBoundingBox maxCorner z.
	^aCylindricalSurface</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CYLINDRICAL_SURFACE</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'CYLINDRICAL_SURFACE';
		cr;
		nextPutAll: 'radius = ';
		printVerbose: radius;
		cr;
		printVerbose: position</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.LINE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="dir">dir
	^dir</body>

<body package="CADSM-UI-STEP" selector="dir:">dir: anObject
	dir := anObject</body>

<body package="CADSM-UI-STEP" selector="pnt">pnt
	^pnt</body>

<body package="CADSM-UI-STEP" selector="pnt:">pnt: anObject
	pnt := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.LINE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="xyzCurveFrom:">xyzCurveFrom: aEDGE_CURVE 
	| rFstartF rFendF |
	aEDGE_CURVE same_sense 
		ifTrue: 
			[rFstartF := aEDGE_CURVE xyzStart.
			rFendF := aEDGE_CURVE xyzEnd]
		ifFalse: 
			[rFstartF := aEDGE_CURVE xyzEnd.
			rFendF := aEDGE_CURVE xyzStart].
	^(CADSM.Geo.CADSMGeoLine new)
		rfstartf: rFstartF;
		rfendf: rFendF;
		yourself</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.LINE</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'LINE';
		cr;
		nextPutAll: 'pnt = ';
		printVerbose: pnt;
		cr;
		nextPutAll: 'dir = ';
		printVerbose: dir</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="transformation_operator">transformation_operator
	^transformation_operator</body>

<body package="CADSM-UI-STEP" selector="transformation_operator:">transformation_operator: anObject
	transformation_operator := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aAFf">aAFf
	^transformation_operator aAFf</body>

<body package="CADSM-UI-STEP" selector="rFfF">rFfF
	^transformation_operator rFfF</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CALENDAR_DATE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="day_component">day_component
	^day_component</body>

<body package="CADSM-UI-STEP" selector="day_component:">day_component: anObject
	day_component := anObject</body>

<body package="CADSM-UI-STEP" selector="month_component">month_component
	^month_component</body>

<body package="CADSM-UI-STEP" selector="month_component:">month_component: anObject
	month_component := anObject</body>

<body package="CADSM-UI-STEP" selector="year_component">year_component
	^year_component</body>

<body package="CADSM-UI-STEP" selector="year_component:">year_component: anObject
	year_component := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.STEPParser</class-id> <category>parsing</category>

<body package="CADSM-UI-STEP" selector="DATA">DATA
	| originalClass |
	originalClass := self class.
	self changeClassToThatOf: DATA basicNew.
	
	[self nextKeyword.
	aKeyword ~= 'ENDSEC'] whileTrue: 
				[self perform: aKeyword asSymbol.
				self readCharacter: $;].
	self changeClassToThatOf: originalClass basicNew.
	^true</body>

<body package="CADSM-UI-STEP" selector="ENDSEC">ENDSEC
	^false</body>

<body package="CADSM-UI-STEP" selector="HEADER">HEADER
	| originalClass |
	originalClass := self class.
	self changeClassToThatOf: HEADER basicNew.
	
	[self nextKeyword.
	aKeyword ~= 'ENDSEC'] whileTrue: 
				[aKeyword = '/*' 
					ifTrue: [self skipComment]
					ifFalse: 
						[self perform: aKeyword asSymbol.
						self readCharacter: $;]].
	self readCharacter: $;.
	self changeClassToThatOf: originalClass basicNew.
	^true</body>

<body package="CADSM-UI-STEP" selector="ISO1030321">ISO1030321
	self nextLine.
	('ISO-10303-21*' match: aLine) ifFalse: [self expected: 'ISO-10303-21']</body>

<body package="CADSM-UI-STEP" selector="mark">mark
	iMark := inStream position</body>

<body package="CADSM-UI-STEP" selector="nextLine">nextLine
	| aWriteStream continue |
	self skipToNextToken.
	aWriteStream := (inStream contentsSpecies new: 64) writeStream.
	continue := true.
	
	[inStream atEnd ifTrue: [continue := false].
	continue] whileTrue: 
				[| element |
				element := inStream next.
				(' ;' includes: element) 
					ifTrue: 
						[continue := false.
						inStream skip: -1]
					ifFalse: [aWriteStream nextPut: element]].
	aLine := aWriteStream contents.
	self readCharacter: $;</body>

<body package="CADSM-UI-STEP" selector="nextSEC">nextSEC
	self nextLine.
	^aLine = 'END-ISO-10303-21' 
		ifTrue: [false]
		ifFalse: [self perform: aLine asSymbol]</body>

<body package="CADSM-UI-STEP" selector="parse">parse
	self ISO1030321.
	
	[self nextLine.
	aLine ~= 'END-ISO-10303-21'] 
			whileTrue: [self perform: aLine asSymbol]</body>

<body package="CADSM-UI-STEP" selector="readBoolean">readBoolean
	| aChar answer |
	self skipToNextToken.
	self readCharacter: $..
	aChar := inStream next.
	aChar = $T 
		ifTrue: [answer := true]
		ifFalse: 
			[aChar = $F 
				ifTrue: [answer := false]
				ifFalse: 
					[aChar = $U ifTrue: [answer := nil] ifFalse: [self halt: 'check this.']]].
	self readCharacter: $..
	^answer</body>

<body package="CADSM-UI-STEP" selector="readccEntity">readccEntity
	| aStream |
	aStream := OrderedCollection new writeStream.
	self readCharacter: $(.
	
	[self skipToNextToken.
	aStream nextPut: self readcEntity.
	inStream skipSeparators.
	inStream peek = $,] 
			whileTrue: [self readCharacter: $,].
	self readCharacter: $).
	^aStream contents</body>

<body package="CADSM-UI-STEP" selector="readccNumber">readccNumber
	| aStream |
	aStream := StCAD.StMath.StMFullColumn new writeStream.
	self readCharacter: $(.
	
	[self skipToNextToken.
	aStream nextPut: self readcNumber.
	inStream peek = $,] 
			whileTrue: [self readCharacter: $,].
	self readCharacter: $).
	^aStream contents</body>

<body package="CADSM-UI-STEP" selector="readcEntity">readcEntity
	| aStream |
	aStream := OrderedCollection new writeStream.
	self readCharacter: $(.
	
	[self skipToNextToken.
	aStream nextPut: self readEntity.
	inStream skipSeparators.
	inStream peek = $,] 
			whileTrue: [self readCharacter: $,].
	self readCharacter: $).
	^aStream contents</body>

<body package="CADSM-UI-STEP" selector="readCharacter:">readCharacter: aChar 
	self skipToNextToken.
	inStream next = aChar 
		ifFalse: 
			[| aWriteStream |
			aWriteStream := WriteStream on: (String new: 16).
			aWriteStream nextPut: aChar.
			self expected: aWriteStream contents]</body>

<body package="CADSM-UI-STEP" selector="readcNumber">readcNumber
	| aStream |
	aStream := StCAD.StMath.StMFullColumn new writeStream.
	self readCharacter: $(.
	
	[aStream nextPut: self readNumber.
	inStream peek = $,] 
			whileTrue: [self readCharacter: $,].
	self readCharacter: $).
	^aStream contents</body>

<body package="CADSM-UI-STEP" selector="readcString">readcString
	| aStream |
	aStream := StCAD.StMath.StMArray new writeStream.
	self skipToNextToken.
	inStream peek = $$ 
		ifTrue: [inStream next]
		ifFalse: 
			[self readCharacter: $(.
			
			[aStream nextPut: self readString.
			inStream peek = $,] 
					whileTrue: [self readCharacter: $,].
			self readCharacter: $)].
	^aStream contents</body>

<body package="CADSM-UI-STEP" selector="readEntityNumber">readEntityNumber
	self readCharacter: $#.
	^Number readFrom: inStream</body>

<body package="CADSM-UI-STEP" selector="readNumber">readNumber
	| answer |
	self skipToNextToken.
	answer := Number importFrom: inStream.
	^inStream peek = $. 
		ifTrue: 
			[self readCharacter: $..
			answer asDouble]
		ifFalse: [answer]</body>

<body package="CADSM-UI-STEP" selector="readOrderedCollection">readOrderedCollection
	| aStream |
	aStream := OrderedCollection new writeStream.
	self readCharacter: $(.
	
	[self skipToNextToken.
	aStream nextPut: self readEntity.
	inStream skipSeparators.
	inStream peek = $,] 
			whileTrue: [self readCharacter: $,].
	self readCharacter: $).
	^aStream contents</body>

<body package="CADSM-UI-STEP" selector="readPosNegBoth">readPosNegBoth
	self skipToNextToken.
	self readCharacter: $..
	^inStream upTo: $.</body>

<body package="CADSM-UI-STEP" selector="readString">readString
	self skipToNextToken.
	^inStream peek = $$ 
		ifTrue: [inStream next]
		ifFalse: [String readFrom: inStream]</body>

<body package="CADSM-UI-STEP" selector="skipToNextToken">skipToNextToken
	
	[inStream skipSeparators.
	inStream next = $/ 
		ifTrue: 
			[inStream next = $* 
				ifTrue: 
					[self skipComment.
					true]
				ifFalse: 
					[inStream skip: -2.
					false]]
		ifFalse: 
			[inStream skip: -1.
			false]] 
			whileTrue.
	iMark := inStream position</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.STEPParser</class-id> <category>initialize-release</category>

<body package="CADSM-UI-STEP" selector="initialize">initialize
	aDict := IdentityDictionary new: 1024</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.STEPParser</class-id> <category>error handling</category>

<body package="CADSM-UI-STEP" selector="expected:">expected: aString 
	"Notify a problem at token 'here'"

	self halt.
	^self notify: aString , ' expected -&gt;' at: iMark</body>

<body package="CADSM-UI-STEP" selector="notify:at:">notify: aString at: position 
	"Temporarily reset source in order to get full contents"

	| p contents |
	p := inStream position.
	contents := inStream
				reset;
				contents.
	inStream position: p.
	(SyntaxErrorException new)
		targetClass: nil;
		messageText: aString;
		source: contents;
		position: position;
		raiseSignal</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.STEPParser</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="aAssembly">aAssembly
	| aAssembly cCONTEXT_DEPENDENT cRELATIONSHIP cDEFINITION |
	self fillInstVar.
	aAssembly := StCAD.StGeo.GEOAssembly new.
	aAssembly name: 'STEPAssembly'.
	cCONTEXT_DEPENDENT := OrderedCollection new.
	cRELATIONSHIP := OrderedCollection new.
	cDEFINITION := OrderedCollection new.
	aDict do: 
			[:aItem | 
			(aItem isMemberOf: CONTEXT_DEPENDENT_SHAPE_REPRESENTATION) 
				ifTrue: [cCONTEXT_DEPENDENT add: aItem].
			(aItem isMemberOf: SHAPE_REPRESENTATION_RELATIONSHIP) 
				ifTrue: [cRELATIONSHIP add: aItem].
			(aItem isMemberOf: SHAPE_DEFINITION_REPRESENTATION) 
				ifTrue: [cDEFINITION add: aItem]].
	cCONTEXT_DEPENDENT isEmpty not 
		ifTrue: 
			[cCONTEXT_DEPENDENT do: 
					[:aSHAPE | 
					aSHAPE _cRELATIONSHIP: cRELATIONSHIP.
					aAssembly addAnyPart: aSHAPE aPart]]
		ifFalse: 
			[cRELATIONSHIP isEmpty not 
				ifTrue: [cRELATIONSHIP do: [:aSHAPE | aAssembly addcAnyPart: aSHAPE cPart]]
				ifFalse: [cDEFINITION do: [:aSHAPE | aAssembly addcAnyPart: aSHAPE cPart]]].
	^aAssembly</body>

<body package="CADSM-UI-STEP" selector="aAssembly1">aAssembly1
	| aAssembly cRELATIONSHIP cDEFINITION |
	self fillInstVar.
	aAssembly := StCAD.StGeo.GEOAssembly new.
	aAssembly name: 'STEPAssembly'.
	cRELATIONSHIP := OrderedCollection new.
	cDEFINITION := OrderedCollection new.
	aDict do: 
			[:aItem | 
			(aItem isMemberOf: SHAPE_REPRESENTATION_RELATIONSHIP) 
				ifTrue: [cRELATIONSHIP add: aItem].
			(aItem isMemberOf: SHAPE_DEFINITION_REPRESENTATION) 
				ifTrue: [cDEFINITION add: aItem]].
	cRELATIONSHIP isEmpty 
		ifTrue: [cDEFINITION do: [:aShape | aAssembly addAnyPart: aShape aPart]]
		ifFalse: [cRELATIONSHIP do: [:aShape | aAssembly addAnyPart: aShape aPart]].
	^aAssembly</body>

<body package="CADSM-UI-STEP" selector="aAssembly2">aAssembly2
	| aAssembly cDEFINITION |
	self fillInstVar.
	aAssembly := StCAD.StGeo.GEOAssembly new.
	aAssembly name: 'STEPAssembly'.
	cDEFINITION := OrderedCollection new.
	aDict do: 
			[:aItem | 
			(aItem isMemberOf: MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION) 
				ifTrue: [cDEFINITION add: aItem]].
	cDEFINITION do: [:aShape | aAssembly addAnyPart: aShape aPart].
	^aAssembly</body>

<body package="CADSM-UI-STEP" selector="aDict">aDict
	^aDict</body>

<body package="CADSM-UI-STEP" selector="aDict:">aDict: anObject
	aDict := anObject</body>

<body package="CADSM-UI-STEP" selector="cTopElement">cTopElement
	^aDict select: 
			[:aSTEPItem | 
			(aDict detect: 
					[:aaSTEPItem | 
					aaSTEPItem isSequenceable 
						ifTrue: 
							[(aaSTEPItem detect: [:aaaSTEPItem | aaaSTEPItem isSupOf: aSTEPItem]
								ifNone: nil) notNil]
						ifFalse: [aaSTEPItem isSupOf: aSTEPItem]]
				ifNone: nil) isNil]</body>

<body package="CADSM-UI-STEP" selector="cTopElement1">cTopElement1
	^aDict select: 
			[:aSTEPItem | 
			(aDict detect: 
					[:aaSTEPItem | 
					aaSTEPItem isSequenceable 
						ifTrue: 
							[(aaSTEPItem detect: [:aaaSTEPItem | aaaSTEPItem isSupOf: aSTEPItem]
								ifNone: nil) notNil]
						ifFalse: [aaSTEPItem isSupOf: aSTEPItem]]
				ifNone: nil) isNil]</body>

<body package="CADSM-UI-STEP" selector="cTopElement2">cTopElement2
	| aBlock newCollection |
	aBlock := 
			[:aSTEPItem | 
			(aDict detect: 
					[:aaSTEPItem | 
					aaSTEPItem isSequenceable 
						ifTrue: 
							[(aaSTEPItem detect: [:aaaSTEPItem | aaaSTEPItem isSupOf: aSTEPItem]
								ifNone: nil) notNil]
						ifFalse: [aaSTEPItem isSupOf: aSTEPItem]]
				ifNone: nil) isNil].
	newCollection := aDict species new.
	aDict keysAndValuesDo: 
			[:key :value | 
			key = 1526 ifTrue: [self halt].
			(aBlock value: value) ifTrue: [newCollection at: key put: value]].
	^newCollection</body>

<body package="CADSM-UI-STEP" selector="fillInstVar">fillInstVar
	aDict do: 
			[:aSTEPItem | 
			aSTEPItem isSequenceable 
				ifTrue: [aSTEPItem do: [:aaSTEPItem | aaSTEPItem fillInstVarWith: aDict]]
				ifFalse: [aSTEPItem fillInstVarWith: aDict]]</body>

<body package="CADSM-UI-STEP" selector="inStream">inStream
	^inStream</body>

<body package="CADSM-UI-STEP" selector="inStream:">inStream: anObject
	inStream := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.STEPParser class</class-id> <category>instance creation</category>

<body package="CADSM-UI-STEP" selector="new">new
	^super new initialize</body>

<body package="CADSM-UI-STEP" selector="parse:">parse: aFilename 
	| aParser aReadStream |
	aReadStream := aFilename asFilename readStream.
	^
	[aReadStream lineEndAuto.
	aParser := self new.
	aParser inStream: aReadStream.
	aParser parse] 
			ensure: [aReadStream close]</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.DATA</class-id> <category>parsing</category>

<body package="CADSM-UI-STEP" selector="readcEntity">readcEntity
	| peekChar aStream |
	self skipToNextToken.
	peekChar := inStream peek.
	^('*$' includes: peekChar) 
		ifTrue: 
			[inStream next.
			nil]
		ifFalse: 
			[aStream := OrderedCollection new writeStream.
			self readCharacter: $(.
			
			[self skipToNextToken.
			aStream nextPut: self readEntity.
			inStream skipSeparators.
			inStream peek = $,] 
					whileTrue: [self readCharacter: $,].
			self readCharacter: $).
			aStream contents]</body>

<body package="CADSM-UI-STEP" selector="readDotName">readDotName
	self skipToNextToken.
	^inStream peek = $$ 
		ifTrue: [inStream next]
		ifFalse: 
			[self readCharacter: $..
			inStream upTo: $.]</body>

<body package="CADSM-UI-STEP" selector="readEntity">readEntity
	| peekChar answer |
	self skipToNextToken.
	peekChar := inStream peek.
	('*$' includes: peekChar) 
		ifTrue: 
			[inStream next.
			answer := nil]
		ifFalse: 
			[peekChar = $# 
				ifTrue: 
					[| aWriteStream continue |
					aWriteStream := (inStream contentsSpecies new: 64) writeStream.
					aWriteStream nextPut: inStream next.
					continue := true.
					
					[inStream atEnd ifTrue: [continue := false].
					continue] whileTrue: 
								[| element |
								element := inStream next.
								element isDigit 
									ifTrue: [aWriteStream nextPut: element]
									ifFalse: 
										[continue := false.
										inStream skip: -1]].
					answer := aWriteStream contents]
				ifFalse: [self expected: 'Entity number expected']].
	^answer</body>

<body package="CADSM-UI-STEP" selector="readGeneralCollection">readGeneralCollection
	| aStream |
	aStream := OrderedCollection new writeStream.
	self readCharacter: $(.
	
	[self skipToNextToken.
	aStream nextPut: self readModKeyword.
	inStream skipSeparators.
	inStream peek = $)] 
			whileFalse.
	self readCharacter: $).
	aDict at: iLine put: aStream contents.
	^aStream contents</body>

<body package="CADSM-UI-STEP" selector="readKeyword">readKeyword
	| aWriteStream continue |
	self skipToNextToken.
	aWriteStream := (inStream contentsSpecies new: 64) writeStream.
	continue := true.
	
	[inStream atEnd ifTrue: [continue := false].
	continue] whileTrue: 
				[| element |
				element := inStream next.
				(' (;' includes: element) 
					ifTrue: 
						[continue := false.
						inStream skip: -1]
					ifFalse: [aWriteStream nextPut: element]].
	aKeyword := aWriteStream contents.
	^self perform: aKeyword asSymbol</body>

<body package="CADSM-UI-STEP" selector="readModKeyword">readModKeyword
	| aWriteStream continue |
	self skipToNextToken.
	aWriteStream := (inStream contentsSpecies new: 64) writeStream.
	aWriteStream nextPutAll: 'mod'.
	continue := true.
	
	[inStream atEnd ifTrue: [continue := false].
	continue] whileTrue: 
				[| element |
				element := inStream next.
				((' (;' includes: element) or: [element isSeparator]) 
					ifTrue: 
						[continue := false.
						inStream skip: -1]
					ifFalse: [aWriteStream nextPut: element]].
	aKeyword := aWriteStream contents.
	^self perform: aKeyword asSymbol</body>

<body package="CADSM-UI-STEP" selector="readSizeSelect">readSizeSelect
	self skipToNextToken.
	^self readModKeyword</body>

<body package="CADSM-UI-STEP" selector="readTrimmingSelect">readTrimmingSelect
	| aStream |
	aStream := OrderedCollection new writeStream.
	self readCharacter: $(.
	
	[self skipToNextToken.
	aStream nextPut: self readModKeyword.
	inStream skipSeparators.
	inStream peek = $)] 
			whileFalse.
	self readCharacter: $).
	^aStream contents</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.DATA</class-id> <category>STEP</category>

<body package="CADSM-UI-STEP" selector="ADVANCED_BREP_SHAPE_REPRESENTATION">ADVANCED_BREP_SHAPE_REPRESENTATION
	| aSTEPItem |
	aSTEPItem := ADVANCED_BREP_SHAPE_REPRESENTATION new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem items: self readOrderedCollection.
	self readCharacter: $,.
	aSTEPItem context_of_items: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="ADVANCED_FACE">ADVANCED_FACE
	| aSTEPItem |
	aSTEPItem := ADVANCED_FACE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem bounds: self readOrderedCollection.
	self readCharacter: $,.
	aSTEPItem face_geometry: self readEntity.
	self readCharacter: $,.
	aSTEPItem same_sense: self readBoolean.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="APPLICATION_CONTEXT">APPLICATION_CONTEXT
	| aSTEPItem |
	aSTEPItem := APPLICATION_CONTEXT new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="APPLICATION_PROTOCOL_DEFINITION">APPLICATION_PROTOCOL_DEFINITION
	| aSTEPItem |
	aSTEPItem := APPLICATION_PROTOCOL_DEFINITION new.
	self readCharacter: $(.
	aSTEPItem status: self readString.
	self readCharacter: $,.
	aSTEPItem application_interpreted_model_schema_name: self readString.
	self readCharacter: $,.
	aSTEPItem application_protocol_year: self readNumber.
	self readCharacter: $,.
	aSTEPItem application: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="APPROVAL">APPROVAL
	| aSTEPItem |
	aSTEPItem := APPROVAL new.
	self readCharacter: $(.
	aSTEPItem status: self readEntity.
	self readCharacter: $,.
	aSTEPItem level: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="APPROVAL_DATE_TIME">APPROVAL_DATE_TIME
	| aSTEPItem |
	aSTEPItem := APPROVAL_DATE_TIME new.
	self readCharacter: $(.
	aSTEPItem date_time: self readEntity.
	self readCharacter: $,.
	aSTEPItem dated_approval: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="APPROVAL_PERSON_ORGANIZATION">APPROVAL_PERSON_ORGANIZATION
	| aSTEPItem |
	aSTEPItem := APPROVAL_PERSON_ORGANIZATION new.
	self readCharacter: $(.
	aSTEPItem person_organization: self readEntity.
	self readCharacter: $,.
	aSTEPItem authorized_approval: self readEntity.
	self readCharacter: $,.
	aSTEPItem role: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="APPROVAL_ROLE">APPROVAL_ROLE
	| aSTEPItem |
	aSTEPItem := APPROVAL_ROLE new.
	self readCharacter: $(.
	aSTEPItem role: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="APPROVAL_STATUS">APPROVAL_STATUS
	| aSTEPItem |
	aSTEPItem := APPROVAL_STATUS new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="AXIS1_PLACEMENT">AXIS1_PLACEMENT
	| aSTEPItem |
	aSTEPItem := AXIS1_PLACEMENT new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem location: self readEntity.
	self readCharacter: $,.
	aSTEPItem axis: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="AXIS2_PLACEMENT_3D">AXIS2_PLACEMENT_3D
	| aSTEPItem |
	aSTEPItem := AXIS2_PLACEMENT_3D new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem location: self readEntity.
	self readCharacter: $,.
	aSTEPItem axis: self readEntity.
	self readCharacter: $,.
	aSTEPItem ref_direction: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="BOUNDED_SURFACE">BOUNDED_SURFACE
	| aSTEPItem |
	aSTEPItem := BOUNDED_SURFACE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="BREP_WITH_VOIDS">BREP_WITH_VOIDS
	| aSTEPItem |
	aSTEPItem := BREP_WITH_VOIDS new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem outer: self readEntity.
	self readCharacter: $,.
	aSTEPItem voids: self readcEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="B_SPLINE_CURVE_WITH_KNOTS">B_SPLINE_CURVE_WITH_KNOTS
	| aSTEPItem |
	aSTEPItem := B_SPLINE_CURVE_WITH_KNOTS new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem degree: self readNumber.
	self readCharacter: $,.
	aSTEPItem control_points_list: self readOrderedCollection.
	self readCharacter: $,.
	aSTEPItem curve_form: self readDotName.
	self readCharacter: $,.
	aSTEPItem closed_curve: self readBoolean.
	self readCharacter: $,.
	aSTEPItem self_intersect: self readBoolean.
	self readCharacter: $,.
	aSTEPItem knot_multiplicities: self readcNumber.
	self readCharacter: $,.
	aSTEPItem knots: self readcNumber.
	self readCharacter: $,.
	aSTEPItem knot_spec: self readDotName.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="B_SPLINE_SURFACE">B_SPLINE_SURFACE
	| aSTEPItem |
	aSTEPItem := B_SPLINE_SURFACE new.
	self readCharacter: $(.
	aSTEPItem u_degree: self readNumber.
	self readCharacter: $,.
	aSTEPItem v_degree: self readNumber.
	self readCharacter: $,.
	aSTEPItem control_points_list: self readccEntity.
	self readCharacter: $,.
	aSTEPItem surface_form: self readDotName.
	self readCharacter: $,.
	aSTEPItem u_closed: self readBoolean.
	self readCharacter: $,.
	aSTEPItem v_closed: self readBoolean.
	self readCharacter: $,.
	aSTEPItem self_intersect: self readBoolean.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="B_SPLINE_SURFACE_WITH_KNOTS">B_SPLINE_SURFACE_WITH_KNOTS
	| aSTEPItem |
	aSTEPItem := B_SPLINE_SURFACE_WITH_KNOTS new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem u_degree: self readNumber.
	self readCharacter: $,.
	aSTEPItem v_degree: self readNumber.
	self readCharacter: $,.
	aSTEPItem control_points_list: self readccEntity.
	self readCharacter: $,.
	aSTEPItem surface_form: self readDotName.
	self readCharacter: $,.
	aSTEPItem u_closed: self readBoolean.
	self readCharacter: $,.
	aSTEPItem v_closed: self readBoolean.
	self readCharacter: $,.
	aSTEPItem self_intersect: self readBoolean.
	self readCharacter: $,.
	aSTEPItem u_multiplicities: self readcNumber.
	self readCharacter: $,.
	aSTEPItem v_multiplicities: self readcNumber.
	self readCharacter: $,.
	aSTEPItem u_knots: self readcNumber.
	self readCharacter: $,.
	aSTEPItem v_knots: self readcNumber.
	self readCharacter: $,.
	aSTEPItem knot_spec: self readDotName.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="CALENDAR_DATE">CALENDAR_DATE
	| aSTEPItem |
	aSTEPItem := CALENDAR_DATE new.
	self readCharacter: $(.
	aSTEPItem year_component: self readNumber.
	self readCharacter: $,.
	aSTEPItem day_component: self readNumber.
	self readCharacter: $,.
	aSTEPItem month_component: self readNumber.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="CARTESIAN_POINT">CARTESIAN_POINT
	| aSTEPItem |
	aSTEPItem := CARTESIAN_POINT new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem coordinates: self readcNumber.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="CC_DESIGN_APPROVAL">CC_DESIGN_APPROVAL
	| aSTEPItem |
	aSTEPItem := CC_DESIGN_APPROVAL new.
	self readCharacter: $(.
	aSTEPItem aEntity: self readEntity.
	self readCharacter: $,.
	aSTEPItem cEntity: self readcEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="CC_DESIGN_DATE_AND_TIME_ASSIGNMENT">CC_DESIGN_DATE_AND_TIME_ASSIGNMENT
	| aSTEPItem |
	aSTEPItem := CC_DESIGN_DATE_AND_TIME_ASSIGNMENT new.
	self readCharacter: $(.
	aSTEPItem aEntity: self readEntity.
	self readCharacter: $,.
	aSTEPItem a2Entity: self readEntity.
	self readCharacter: $,.
	aSTEPItem cEntity: self readcEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT">CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT
	| aSTEPItem |
	aSTEPItem := CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT new.
	self readCharacter: $(.
	aSTEPItem aEntity: self readEntity.
	self readCharacter: $,.
	aSTEPItem a2Entity: self readEntity.
	self readCharacter: $,.
	aSTEPItem cEntity: self readcEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="CC_DESIGN_SECURITY_CLASSIFICATION">CC_DESIGN_SECURITY_CLASSIFICATION
	| aSTEPItem |
	aSTEPItem := CC_DESIGN_SECURITY_CLASSIFICATION new.
	self readCharacter: $(.
	aSTEPItem aEntity: self readEntity.
	self readCharacter: $,.
	aSTEPItem cEntity: self readcEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="CIRCLE">CIRCLE
	| aSTEPItem |
	aSTEPItem := CIRCLE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem position: self readEntity.
	self readCharacter: $,.
	aSTEPItem radius: self readNumber.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="CLOSED_SHELL">CLOSED_SHELL
	| aSTEPItem |
	aSTEPItem := CLOSED_SHELL new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem cfs_faces: self readOrderedCollection.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="COLOUR_RGB">COLOUR_RGB
	| aSTEPItem |
	aSTEPItem := COLOUR_RGB new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem red: self readNumber.
	self readCharacter: $,.
	aSTEPItem green: self readNumber.
	self readCharacter: $,.
	aSTEPItem blue: self readNumber.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="COMPOSITE_CURVE_SEGMENT">COMPOSITE_CURVE_SEGMENT
	| aSTEPItem |
	aSTEPItem := COMPOSITE_CURVE_SEGMENT new.
	self readCharacter: $(.
	aSTEPItem transition: self readDotName.
	self readCharacter: $,.
	aSTEPItem same_sense: self readBoolean.
	self readCharacter: $,.
	aSTEPItem parent_curve: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="CONICAL_SURFACE">CONICAL_SURFACE
	| aSTEPItem |
	aSTEPItem := CONICAL_SURFACE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem position: self readEntity.
	self readCharacter: $,.
	aSTEPItem radius: self readNumber.
	self readCharacter: $,.
	aSTEPItem semi_angle: self readNumber.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="CONTEXT_DEPENDENT_SHAPE_REPRESENTATION">CONTEXT_DEPENDENT_SHAPE_REPRESENTATION
	| aSTEPItem |
	aSTEPItem := CONTEXT_DEPENDENT_SHAPE_REPRESENTATION new.
	self readCharacter: $(.
	aSTEPItem representation_relation: self readEntity.
	self readCharacter: $,.
	aSTEPItem represented_product_relation: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="COORDINATED_UNIVERSAL_TIME_OFFSET">COORDINATED_UNIVERSAL_TIME_OFFSET
	| aSTEPItem |
	aSTEPItem := COORDINATED_UNIVERSAL_TIME_OFFSET new.
	self readCharacter: $(.
	aSTEPItem hour_offset: self readNumber.
	self readCharacter: $,.
	aSTEPItem minute_offset: self readNumber.
	self readCharacter: $,.
	aSTEPItem sense: self readDotName.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="CURVE_BOUNDED_SURFACE">CURVE_BOUNDED_SURFACE
	| aSTEPItem |
	aSTEPItem := CURVE_BOUNDED_SURFACE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem basis_surface: self readEntity.
	self readCharacter: $,.
	aSTEPItem boundaries: self readcEntity.
	self readCharacter: $,.
	aSTEPItem implicit_outer: self readBoolean.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="CURVE_STYLE">CURVE_STYLE
	| aSTEPItem |
	aSTEPItem := CURVE_STYLE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem curve_font: self readEntity.
	self readCharacter: $,.
	aSTEPItem curve_width: self readSizeSelect.
	self readCharacter: $,.
	aSTEPItem curve_colour: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="CYLINDRICAL_SURFACE">CYLINDRICAL_SURFACE
	| aSTEPItem |
	aSTEPItem := CYLINDRICAL_SURFACE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem position: self readEntity.
	self readCharacter: $,.
	aSTEPItem radius: self readNumber.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="DATE_AND_TIME">DATE_AND_TIME
	| aSTEPItem |
	aSTEPItem := DATE_AND_TIME new.
	self readCharacter: $(.
	aSTEPItem date_component: self readEntity.
	self readCharacter: $,.
	aSTEPItem time_component: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="DATE_TIME_ROLE">DATE_TIME_ROLE
	| aSTEPItem |
	aSTEPItem := DATE_TIME_ROLE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="DEFINITIONAL_REPRESENTATION">DEFINITIONAL_REPRESENTATION
	| aSTEPItem |
	aSTEPItem := DEFINITIONAL_REPRESENTATION new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem items: self readOrderedCollection.
	self readCharacter: $,.
	aSTEPItem context_of_items: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="DESIGN_CONTEXT">DESIGN_CONTEXT
	| aSTEPItem |
	aSTEPItem := DESIGN_CONTEXT new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem frame_of_reference: self readEntity.
	self readCharacter: $,.
	aSTEPItem life_cycle_stage: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="DIMENSIONAL_EXPONENTS">DIMENSIONAL_EXPONENTS
	| aSTEPItem |
	aSTEPItem := DIMENSIONAL_EXPONENTS new.
	self readCharacter: $(.
	aSTEPItem length_exponent: self readNumber.
	self readCharacter: $,.
	aSTEPItem mass_exponent: self readNumber.
	self readCharacter: $,.
	aSTEPItem time_exponent: self readNumber.
	self readCharacter: $,.
	aSTEPItem electric_current_exponent: self readNumber.
	self readCharacter: $,.
	aSTEPItem thermodynamic_temperature_exponent: self readNumber.
	self readCharacter: $,.
	aSTEPItem amount_of_substance_exponent: self readNumber.
	self readCharacter: $,.
	aSTEPItem luminous_intensity_exponent: self readNumber.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="DIRECTION">DIRECTION
	| aSTEPItem |
	aSTEPItem := DIRECTION new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem direction_ratios: self readcNumber.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="DRAUGHTING_PRE_DEFINED_COLOUR">DRAUGHTING_PRE_DEFINED_COLOUR
	| aSTEPItem |
	aSTEPItem := DRAUGHTING_PRE_DEFINED_COLOUR new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="DRAUGHTING_PRE_DEFINED_CURVE_FONT">DRAUGHTING_PRE_DEFINED_CURVE_FONT
	| aSTEPItem |
	aSTEPItem := DRAUGHTING_PRE_DEFINED_CURVE_FONT new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="EDGE_CURVE">EDGE_CURVE
	| aSTEPItem |
	aSTEPItem := EDGE_CURVE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem edge_start: self readEntity.
	self readCharacter: $,.
	aSTEPItem edge_end: self readEntity.
	self readCharacter: $,.
	aSTEPItem edge_geometry: self readEntity.
	self readCharacter: $,.
	aSTEPItem same_sense: self readBoolean.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="EDGE_LOOP">EDGE_LOOP
	| aSTEPItem |
	aSTEPItem := EDGE_LOOP new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem edge_list: self readOrderedCollection.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="ELLIPSE">ELLIPSE
	| aSTEPItem |
	aSTEPItem := ELLIPSE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem position: self readEntity.
	self readCharacter: $,.
	aSTEPItem semi_axis_1: self readNumber.
	self readCharacter: $,.
	aSTEPItem semi_axis_2: self readNumber.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="FACE_BOUND">FACE_BOUND
	| aSTEPItem |
	aSTEPItem := FACE_BOUND new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem bound: self readEntity.
	self readCharacter: $,.
	aSTEPItem orientation: self readBoolean.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="FACE_OUTER_BOUND">FACE_OUTER_BOUND
	| aSTEPItem |
	aSTEPItem := FACE_OUTER_BOUND new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem bound: self readEntity.
	self readCharacter: $,.
	aSTEPItem orientation: self readBoolean.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="FILL_AREA_STYLE">FILL_AREA_STYLE
	| aSTEPItem |
	aSTEPItem := FILL_AREA_STYLE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem fill_styles: self readOrderedCollection.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="FILL_AREA_STYLE_COLOUR">FILL_AREA_STYLE_COLOUR
	| aSTEPItem |
	aSTEPItem := FILL_AREA_STYLE_COLOUR new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem fill_colour: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION">GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION
	| aSTEPItem |
	aSTEPItem := GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem items: self readcEntity.
	self readCharacter: $,.
	aSTEPItem context_of_items: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="GEOMETRIC_REPRESENTATION_CONTEXT">GEOMETRIC_REPRESENTATION_CONTEXT
	| aSTEPItem |
	aSTEPItem := GEOMETRIC_REPRESENTATION_CONTEXT new.
	self readCharacter: $(.
	aSTEPItem coordinate_space_dimension: self readNumber.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="GEOMETRIC_SET">GEOMETRIC_SET
	| aSTEPItem |
	aSTEPItem := GEOMETRIC_SET new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem elements: self readcEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT">GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT
	| aSTEPItem |
	aSTEPItem := GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT new.
	self readCharacter: $(.
	aSTEPItem uncertainty: self readOrderedCollection.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="GLOBAL_UNIT_ASSIGNED_CONTEXT">GLOBAL_UNIT_ASSIGNED_CONTEXT
	| aSTEPItem |
	aSTEPItem := GLOBAL_UNIT_ASSIGNED_CONTEXT new.
	self readCharacter: $(.
	aSTEPItem units: self readOrderedCollection.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="ITEM_DEFINED_TRANSFORMATION">ITEM_DEFINED_TRANSFORMATION
	| aSTEPItem |
	aSTEPItem := ITEM_DEFINED_TRANSFORMATION new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $,.
	aSTEPItem transform_item_1: self readEntity.
	self readCharacter: $,.
	aSTEPItem transform_item_2: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="LENGTH_MEASURE">LENGTH_MEASURE
	| aSTEPItem |
	aSTEPItem := LENGTH_MEASURE new.
	self readCharacter: $(.
	aSTEPItem value: self readNumber.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="LENGTH_MEASURE_WITH_UNIT">LENGTH_MEASURE_WITH_UNIT
	| aSTEPItem |
	aSTEPItem := LENGTH_MEASURE_WITH_UNIT new.
	self readCharacter: $(.
	aSTEPItem value_component: self readKeyword.
	self readCharacter: $,.
	aSTEPItem unit_component: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="LENGTH_UNIT">LENGTH_UNIT
	| aSTEPItem |
	aSTEPItem := LENGTH_UNIT new.
	self readCharacter: $(.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="LINE">LINE
	| aSTEPItem |
	aSTEPItem := LINE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem pnt: self readEntity.
	self readCharacter: $,.
	aSTEPItem dir: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="LOCAL_TIME">LOCAL_TIME
	| aSTEPItem |
	aSTEPItem := LOCAL_TIME new.
	self readCharacter: $(.
	aSTEPItem hour_component: self readNumber.
	self readCharacter: $,.
	aSTEPItem minute_component: self readNumber.
	self readCharacter: $,.
	aSTEPItem second_component: self readNumber.
	self readCharacter: $,.
	aSTEPItem zone: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="MANIFOLD_SOLID_BREP">MANIFOLD_SOLID_BREP
	| aSTEPItem |
	aSTEPItem := MANIFOLD_SOLID_BREP new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem outer: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="MECHANICAL_CONTEXT">MECHANICAL_CONTEXT
	| aSTEPItem |
	aSTEPItem := MECHANICAL_CONTEXT new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem frame_of_reference: self readEntity.
	self readCharacter: $,.
	aSTEPItem discipline_type: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION">MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION
	| aSTEPItem |
	aSTEPItem := MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem items: self readOrderedCollection.
	self readCharacter: $,.
	aSTEPItem context_of_items: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modBOUNDED_CURVE">modBOUNDED_CURVE
	| aSTEPItem |
	aSTEPItem := BOUNDED_CURVE new.
	self readCharacter: $(.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modBOUNDED_SURFACE">modBOUNDED_SURFACE
	| aSTEPItem |
	aSTEPItem := BOUNDED_SURFACE new.
	self readCharacter: $(.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modB_SPLINE_CURVE">modB_SPLINE_CURVE
	| aSTEPItem |
	aSTEPItem := B_SPLINE_CURVE new.
	self readCharacter: $(.
	aSTEPItem degree: self readNumber.
	self readCharacter: $,.
	aSTEPItem control_points_list: self readcEntity.
	self readCharacter: $,.
	aSTEPItem curve_form: self readDotName.
	self readCharacter: $,.
	aSTEPItem closed_curve: self readBoolean.
	self readCharacter: $,.
	aSTEPItem self_intersect: self readBoolean.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modB_SPLINE_CURVE_WITH_KNOTS">modB_SPLINE_CURVE_WITH_KNOTS
	| aSTEPItem |
	aSTEPItem := B_SPLINE_CURVE_WITH_KNOTS new.
	self readCharacter: $(.
	aSTEPItem knot_multiplicities: self readcNumber.
	self readCharacter: $,.
	aSTEPItem knots: self readcNumber.
	self readCharacter: $,.
	aSTEPItem knot_spec: self readDotName.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modB_SPLINE_SURFACE">modB_SPLINE_SURFACE
	| aSTEPItem |
	aSTEPItem := B_SPLINE_SURFACE new.
	self readCharacter: $(.
	aSTEPItem u_degree: self readNumber.
	self readCharacter: $,.
	aSTEPItem v_degree: self readNumber.
	self readCharacter: $,.
	aSTEPItem control_points_list: self readccEntity.
	self readCharacter: $,.
	aSTEPItem surface_form: self readDotName.
	self readCharacter: $,.
	aSTEPItem u_closed: self readBoolean.
	self readCharacter: $,.
	aSTEPItem v_closed: self readBoolean.
	self readCharacter: $,.
	aSTEPItem self_intersect: self readBoolean.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modB_SPLINE_SURFACE_WITH_KNOTS">modB_SPLINE_SURFACE_WITH_KNOTS
	| aSTEPItem |
	aSTEPItem := B_SPLINE_SURFACE_WITH_KNOTS new.
	self readCharacter: $(.
	aSTEPItem u_multiplicities: self readcNumber.
	self readCharacter: $,.
	aSTEPItem v_multiplicities: self readcNumber.
	self readCharacter: $,.
	aSTEPItem u_knots: self readcNumber.
	self readCharacter: $,.
	aSTEPItem v_knots: self readcNumber.
	self readCharacter: $,.
	aSTEPItem knot_spec: self readDotName.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modCONVERSION_BASED_UNIT">modCONVERSION_BASED_UNIT
	| aSTEPItem |
	aSTEPItem := CONVERSION_BASED_UNIT new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem conversion_factor: self readEntity.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modCURVE">modCURVE
	| aSTEPItem |
	aSTEPItem := CURVE new.
	self readCharacter: $(.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modGEOMETRIC_REPRESENTATION_CONTEXT">modGEOMETRIC_REPRESENTATION_CONTEXT
	| aSTEPItem |
	aSTEPItem := GEOMETRIC_REPRESENTATION_CONTEXT new.
	self readCharacter: $(.
	aSTEPItem coordinate_space_dimension: self readNumber.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modGEOMETRIC_REPRESENTATION_ITEM">modGEOMETRIC_REPRESENTATION_ITEM
	| aSTEPItem |
	aSTEPItem := GEOMETRIC_REPRESENTATION_ITEM new.
	self readCharacter: $(.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modGLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT">modGLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT
	| aSTEPItem |
	aSTEPItem := GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT new.
	self readCharacter: $(.
	aSTEPItem uncertainty: self readOrderedCollection.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modGLOBAL_UNIT_ASSIGNED_CONTEXT">modGLOBAL_UNIT_ASSIGNED_CONTEXT
	| aSTEPItem |
	aSTEPItem := GLOBAL_UNIT_ASSIGNED_CONTEXT new.
	self readCharacter: $(.
	aSTEPItem units: self readOrderedCollection.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modLENGTH_UNIT">modLENGTH_UNIT
	| aSTEPItem |
	aSTEPItem := LENGTH_UNIT new.
	self readCharacter: $(.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modNAMED_UNIT">modNAMED_UNIT
	| aSTEPItem |
	aSTEPItem := NAMED_UNIT new.
	self readCharacter: $(.
	aSTEPItem dimensions: self readEntity.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modPARAMETER_VALUE">modPARAMETER_VALUE
	| aSTEPItem |
	aSTEPItem := PARAMETER_VALUE new.
	self readCharacter: $(.
	aSTEPItem value: self readNumber.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modPARAMETRIC_REPRESENTATION_CONTEXT">modPARAMETRIC_REPRESENTATION_CONTEXT
	| aSTEPItem |
	aSTEPItem := PARAMETRIC_REPRESENTATION_CONTEXT new.
	self readCharacter: $(.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modPLANE_ANGLE_UNIT">modPLANE_ANGLE_UNIT
	| aSTEPItem |
	aSTEPItem := PLANE_ANGLE_UNIT new.
	self readCharacter: $(.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modRATIONAL_B_SPLINE_CURVE">modRATIONAL_B_SPLINE_CURVE
	| aSTEPItem |
	aSTEPItem := RATIONAL_B_SPLINE_CURVE new.
	self readCharacter: $(.
	aSTEPItem weights_data: self readcNumber.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modRATIONAL_B_SPLINE_SURFACE">modRATIONAL_B_SPLINE_SURFACE
	| aSTEPItem |
	aSTEPItem := RATIONAL_B_SPLINE_SURFACE new.
	self readCharacter: $(.
	aSTEPItem weights_data: self readccNumber.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modREPRESENTATION_CONTEXT">modREPRESENTATION_CONTEXT
	| aSTEPItem |
	aSTEPItem := REPRESENTATION_CONTEXT new.
	self readCharacter: $(.
	aSTEPItem context_identifier: self readString.
	self readCharacter: $,.
	aSTEPItem context_type: self readString.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modREPRESENTATION_ITEM">modREPRESENTATION_ITEM
	| aSTEPItem |
	aSTEPItem := REPRESENTATION_ITEM new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modREPRESENTATION_RELATIONSHIP">modREPRESENTATION_RELATIONSHIP
	| aSTEPItem |
	aSTEPItem := REPRESENTATION_RELATIONSHIP new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $,.
	aSTEPItem rep_1: self readEntity.
	self readCharacter: $,.
	aSTEPItem rep_2: self readEntity.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modREPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION">modREPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION
	| aSTEPItem |
	aSTEPItem := REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION new.
	self readCharacter: $(.
	aSTEPItem transformation_operator: self readEntity.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modSHAPE_REPRESENTATION_RELATIONSHIP">modSHAPE_REPRESENTATION_RELATIONSHIP
	| aSTEPItem |
	aSTEPItem := SHAPE_REPRESENTATION_RELATIONSHIP new.
	self readCharacter: $(.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modSI_UNIT">modSI_UNIT
	| aSTEPItem |
	aSTEPItem := SI_UNIT new.
	self readCharacter: $(.
	aSTEPItem prefix: self readDotName.
	self readCharacter: $,.
	aSTEPItem name: self readDotName.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modSOLID_ANGLE_UNIT">modSOLID_ANGLE_UNIT
	| aSTEPItem |
	aSTEPItem := SOLID_ANGLE_UNIT new.
	self readCharacter: $(.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modSURFACE">modSURFACE
	| aSTEPItem |
	aSTEPItem := SURFACE new.
	self readCharacter: $(.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modSURFACE_CURVE">modSURFACE_CURVE
	| aSTEPItem |
	aSTEPItem := SURFACE_CURVE new.
	self readCharacter: $(.
	aSTEPItem curve_3d: self readEntity.
	self readCharacter: $,.
	aSTEPItem associated_geometry: self readcEntity.
	self readCharacter: $,.
	aSTEPItem master_representation: self readDotName.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="NAMED_UNIT">NAMED_UNIT
	| aSTEPItem |
	aSTEPItem := NAMED_UNIT new.
	self readCharacter: $(.
	aSTEPItem dimensions: self readEntity.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="nextKeyword">nextKeyword
	| aWriteStream continue |
	self skipToNextToken.
	inStream peek = $# 
		ifTrue: 
			[iLine := self readEntityNumber.
			self readCharacter: $=.
			self skipToNextToken.
			aWriteStream := (inStream contentsSpecies new: 64) writeStream.
			continue := true.
			
			[inStream atEnd ifTrue: [continue := false].
			continue] whileTrue: 
						[| element |
						element := inStream next.
						(' (;' includes: element) 
							ifTrue: 
								[continue := false.
								inStream skip: -1]
							ifFalse: [aWriteStream nextPut: element]].
			aKeyword := aWriteStream contents.
			aKeyword isEmpty ifTrue: [aKeyword := #readGeneralCollection]]
		ifFalse: [aKeyword := inStream upTo: $;]</body>

<body package="CADSM-UI-STEP" selector="NEXT_ASSEMBLY_USAGE_OCCURRENCE">NEXT_ASSEMBLY_USAGE_OCCURRENCE
	| aSTEPItem |
	aSTEPItem := NEXT_ASSEMBLY_USAGE_OCCURRENCE new.
	self readCharacter: $(.
	aSTEPItem id: self readString.
	self readCharacter: $,.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $,.
	aSTEPItem relating_product_definition: self readEntity.
	self readCharacter: $,.
	aSTEPItem related_product_definition: self readEntity.
	self readCharacter: $,.
	aSTEPItem reference_designator: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="ORGANIZATION">ORGANIZATION
	| aSTEPItem |
	aSTEPItem := ORGANIZATION new.
	self readCharacter: $(.
	aSTEPItem id: self readString.
	self readCharacter: $,.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="ORIENTED_CLOSED_SHELL">ORIENTED_CLOSED_SHELL
	| aSTEPItem |
	aSTEPItem := ORIENTED_CLOSED_SHELL new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem cfs_faces: self readcEntity.
	self readCharacter: $,.
	aSTEPItem closed_shell_element: self readEntity.
	self readCharacter: $,.
	aSTEPItem orientation: self readBoolean.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="ORIENTED_EDGE">ORIENTED_EDGE
	| aSTEPItem |
	aSTEPItem := ORIENTED_EDGE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem edge_start: self readEntity.
	self readCharacter: $,.
	aSTEPItem edge_end: self readEntity.
	self readCharacter: $,.
	aSTEPItem edge_element: self readEntity.
	self readCharacter: $,.
	aSTEPItem orientation: self readBoolean.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="OUTER_BOUNDARY_CURVE">OUTER_BOUNDARY_CURVE
	| aSTEPItem |
	aSTEPItem := OUTER_BOUNDARY_CURVE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem segments: self readcEntity.
	self readCharacter: $,.
	aSTEPItem self_intersect: self readBoolean.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PCURVE">PCURVE
	| aSTEPItem |
	aSTEPItem := PCURVE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem basis_surface: self readEntity.
	self readCharacter: $,.
	aSTEPItem reference_to_curve: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PERSON">PERSON
	| aSTEPItem |
	aSTEPItem := PERSON new.
	self readCharacter: $(.
	aSTEPItem id: self readString.
	self readCharacter: $,.
	aSTEPItem last_name: self readString.
	self readCharacter: $,.
	aSTEPItem first_name: self readString.
	self readCharacter: $,.
	aSTEPItem middle_names: self readcString.
	self readCharacter: $,.
	aSTEPItem prefix_titles: self readcString.
	self readCharacter: $,.
	aSTEPItem suffix_titles: self readcString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PERSONAL_ADDRESS">PERSONAL_ADDRESS
	| aSTEPItem |
	aSTEPItem := PERSONAL_ADDRESS new.
	self readCharacter: $(.
	aSTEPItem internal_location: self readString.
	self readCharacter: $,.
	aSTEPItem street_number: self readString.
	self readCharacter: $,.
	aSTEPItem street: self readString.
	self readCharacter: $,.
	aSTEPItem postal_box: self readString.
	self readCharacter: $,.
	aSTEPItem town: self readString.
	self readCharacter: $,.
	aSTEPItem region: self readString.
	self readCharacter: $,.
	aSTEPItem postal_code: self readString.
	self readCharacter: $,.
	aSTEPItem country: self readString.
	self readCharacter: $,.
	aSTEPItem facsimile_number: self readString.
	self readCharacter: $,.
	aSTEPItem telephone_number: self readString.
	self readCharacter: $,.
	aSTEPItem electronic_mail_address: self readString.
	self readCharacter: $,.
	aSTEPItem telex_number: self readString.
	self readCharacter: $,.
	aSTEPItem people: self readcEntity.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PERSON_AND_ORGANIZATION">PERSON_AND_ORGANIZATION
	| aSTEPItem |
	aSTEPItem := PERSON_AND_ORGANIZATION new.
	self readCharacter: $(.
	aSTEPItem the_person: self readEntity.
	self readCharacter: $,.
	aSTEPItem the_organization: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PERSON_AND_ORGANIZATION_ROLE">PERSON_AND_ORGANIZATION_ROLE
	| aSTEPItem |
	aSTEPItem := PERSON_AND_ORGANIZATION_ROLE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PLANE">PLANE
	| aSTEPItem |
	aSTEPItem := PLANE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem position: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PLANE_ANGLE_MEASURE">PLANE_ANGLE_MEASURE
	| aSTEPItem |
	aSTEPItem := PLANE_ANGLE_MEASURE new.
	self readCharacter: $(.
	aSTEPItem value: self readNumber.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PLANE_ANGLE_MEASURE_WITH_UNIT">PLANE_ANGLE_MEASURE_WITH_UNIT
	| aSTEPItem |
	aSTEPItem := PLANE_ANGLE_MEASURE_WITH_UNIT new.
	self readCharacter: $(.
	aSTEPItem value_component: self readKeyword.
	self readCharacter: $,.
	aSTEPItem unit_component: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PLANE_ANGLE_UNIT">PLANE_ANGLE_UNIT
	| aSTEPItem |
	aSTEPItem := PLANE_ANGLE_UNIT new.
	self readCharacter: $(.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PRESENTATION_LAYER_ASSIGNMENT">PRESENTATION_LAYER_ASSIGNMENT
	| aSTEPItem |
	aSTEPItem := PRESENTATION_LAYER_ASSIGNMENT new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $,.
	aSTEPItem assigned_items: self readOrderedCollection.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PRESENTATION_STYLE_ASSIGNMENT">PRESENTATION_STYLE_ASSIGNMENT
	| aSTEPItem |
	aSTEPItem := PRESENTATION_STYLE_ASSIGNMENT new.
	self readCharacter: $(.
	aSTEPItem styles: self readOrderedCollection.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PRODUCT">PRODUCT
	| aSTEPItem |
	aSTEPItem := PRODUCT new.
	self readCharacter: $(.
	aSTEPItem id: self readString.
	self readCharacter: $,.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $,.
	aSTEPItem frame_of_reference: self readOrderedCollection.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PRODUCT_CATEGORY">PRODUCT_CATEGORY
	| aSTEPItem |
	aSTEPItem := PRODUCT_CATEGORY new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PRODUCT_CATEGORY_RELATIONSHIP">PRODUCT_CATEGORY_RELATIONSHIP
	| aSTEPItem |
	aSTEPItem := PRODUCT_CATEGORY_RELATIONSHIP new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $,.
	aSTEPItem category: self readEntity.
	self readCharacter: $,.
	aSTEPItem sub_category: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PRODUCT_CONTEXT">PRODUCT_CONTEXT
	| aSTEPItem |
	aSTEPItem := PRODUCT_CONTEXT new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem frame_of_reference: self readEntity.
	self readCharacter: $,.
	aSTEPItem discipline_type: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PRODUCT_DEFINITION">PRODUCT_DEFINITION
	| aSTEPItem |
	aSTEPItem := PRODUCT_DEFINITION new.
	self readCharacter: $(.
	aSTEPItem id: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $,.
	aSTEPItem formation: self readEntity.
	self readCharacter: $,.
	aSTEPItem frame_of_reference: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PRODUCT_DEFINITION_CONTEXT">PRODUCT_DEFINITION_CONTEXT
	| aSTEPItem |
	aSTEPItem := PRODUCT_DEFINITION_CONTEXT new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem frame_of_reference: self readEntity.
	self readCharacter: $,.
	aSTEPItem life_cycle_stage: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PRODUCT_DEFINITION_FORMATION">PRODUCT_DEFINITION_FORMATION
	| aSTEPItem |
	aSTEPItem := PRODUCT_DEFINITION_FORMATION new.
	self readCharacter: $(.
	aSTEPItem id: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $,.
	aSTEPItem of_product: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE">PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE
	| aSTEPItem |
	aSTEPItem := PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE new.
	self readCharacter: $(.
	aSTEPItem id: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $,.
	aSTEPItem of_product: self readEntity.
	self readCharacter: $,.
	aSTEPItem make_or_buy: self readDotName.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PRODUCT_DEFINITION_SHAPE">PRODUCT_DEFINITION_SHAPE
	| aSTEPItem |
	aSTEPItem := PRODUCT_DEFINITION_SHAPE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $,.
	aSTEPItem definition: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="PRODUCT_RELATED_PRODUCT_CATEGORY">PRODUCT_RELATED_PRODUCT_CATEGORY
	| aSTEPItem |
	aSTEPItem := PRODUCT_RELATED_PRODUCT_CATEGORY new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $,.
	aSTEPItem products: self readOrderedCollection.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="QUASI_UNIFORM_CURVE">QUASI_UNIFORM_CURVE
	| aSTEPItem |
	aSTEPItem := QUASI_UNIFORM_CURVE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem degree: self readNumber.
	self readCharacter: $,.
	aSTEPItem control_points_list: self readcEntity.
	self readCharacter: $,.
	aSTEPItem curve_form: self readDotName.
	self readCharacter: $,.
	aSTEPItem closed_curve: self readBoolean.
	self readCharacter: $,.
	aSTEPItem self_intersect: self readBoolean.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="REPRESENTATION_CONTEXT">REPRESENTATION_CONTEXT
	| aSTEPItem |
	aSTEPItem := REPRESENTATION_CONTEXT new.
	self readCharacter: $(.
	aSTEPItem context_identifier: self readString.
	self readCharacter: $,.
	aSTEPItem context_type: self readString.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="REPRESENTATION_RELATIONSHIP">REPRESENTATION_RELATIONSHIP
	| aSTEPItem |
	aSTEPItem := REPRESENTATION_RELATIONSHIP new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $,.
	aSTEPItem rep_1: self readEntity.
	self readCharacter: $,.
	aSTEPItem rep_2: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION">REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION
	| aSTEPItem |
	aSTEPItem := REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION new.
	self readCharacter: $(.
	aSTEPItem transformation_operator: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="SECURITY_CLASSIFICATION">SECURITY_CLASSIFICATION
	| aSTEPItem |
	aSTEPItem := SECURITY_CLASSIFICATION new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem purpose: self readString.
	self readCharacter: $,.
	aSTEPItem security_level: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="SECURITY_CLASSIFICATION_LEVEL">SECURITY_CLASSIFICATION_LEVEL
	| aSTEPItem |
	aSTEPItem := SECURITY_CLASSIFICATION_LEVEL new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="SHAPE_DEFINITION_REPRESENTATION">SHAPE_DEFINITION_REPRESENTATION
	| aSTEPItem |
	aSTEPItem := SHAPE_DEFINITION_REPRESENTATION new.
	self readCharacter: $(.
	aSTEPItem definition: self readEntity.
	self readCharacter: $,.
	aSTEPItem used_representation: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="SHAPE_REPRESENTATION">SHAPE_REPRESENTATION
	| aSTEPItem |
	aSTEPItem := SHAPE_REPRESENTATION new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem items: self readOrderedCollection.
	self readCharacter: $,.
	aSTEPItem context_of_items: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="SHAPE_REPRESENTATION_RELATIONSHIP">SHAPE_REPRESENTATION_RELATIONSHIP
	| aSTEPItem |
	aSTEPItem := SHAPE_REPRESENTATION_RELATIONSHIP new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $,.
	aSTEPItem rep_1: self readEntity.
	self readCharacter: $,.
	aSTEPItem rep_2: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="SI_UNIT">SI_UNIT
	| aSTEPItem |
	aSTEPItem := SI_UNIT new.
	self readCharacter: $(.
	aSTEPItem prefix: self readDotName.
	self readCharacter: $,.
	aSTEPItem name: self readDotName.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="SOLID_ANGLE_UNIT">SOLID_ANGLE_UNIT
	| aSTEPItem |
	aSTEPItem := SOLID_ANGLE_UNIT new.
	self readCharacter: $(.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="SPHERICAL_SURFACE">SPHERICAL_SURFACE
	| aSTEPItem |
	aSTEPItem := SPHERICAL_SURFACE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem position: self readEntity.
	self readCharacter: $,.
	aSTEPItem radius: self readNumber.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="STYLED_ITEM">STYLED_ITEM
	| aSTEPItem |
	aSTEPItem := STYLED_ITEM new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem styles: self readOrderedCollection.
	self readCharacter: $,.
	aSTEPItem item: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="SURFACE_OF_LINEAR_EXTRUSION">SURFACE_OF_LINEAR_EXTRUSION
	| aSTEPItem |
	aSTEPItem := SURFACE_OF_LINEAR_EXTRUSION new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem swept_curve: self readEntity.
	self readCharacter: $,.
	aSTEPItem extrusion_axis: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="SURFACE_OF_REVOLUTION">SURFACE_OF_REVOLUTION
	| aSTEPItem |
	aSTEPItem := SURFACE_OF_REVOLUTION new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem swept_curve: self readEntity.
	self readCharacter: $,.
	aSTEPItem axis_position: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="SURFACE_SIDE_STYLE">SURFACE_SIDE_STYLE
	| aSTEPItem |
	aSTEPItem := SURFACE_SIDE_STYLE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem styles: self readOrderedCollection.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="SURFACE_STYLE_FILL_AREA">SURFACE_STYLE_FILL_AREA
	| aSTEPItem |
	aSTEPItem := SURFACE_STYLE_FILL_AREA new.
	self readCharacter: $(.
	aSTEPItem fill_area: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="SURFACE_STYLE_USAGE">SURFACE_STYLE_USAGE
	| aSTEPItem |
	aSTEPItem := SURFACE_STYLE_USAGE new.
	self readCharacter: $(.
	aSTEPItem side: self readPosNegBoth.
	self readCharacter: $,.
	aSTEPItem style: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="TOROIDAL_SURFACE">TOROIDAL_SURFACE
	| aSTEPItem |
	aSTEPItem := TOROIDAL_SURFACE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem position: self readEntity.
	self readCharacter: $,.
	aSTEPItem major_radius: self readNumber.
	self readCharacter: $,.
	aSTEPItem minor_radius: self readNumber.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="TRIMMED_CURVE">TRIMMED_CURVE
	| aSTEPItem |
	aSTEPItem := TRIMMED_CURVE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem basis_curve: self readEntity.
	self readCharacter: $,.
	aSTEPItem trim_1: self readTrimmingSelect.
	self readCharacter: $,.
	aSTEPItem trim_2: self readTrimmingSelect.
	self readCharacter: $,.
	aSTEPItem sense_agreement: self readBoolean.
	self readCharacter: $,.
	aSTEPItem master_representation: self readDotName.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="UNCERTAINTY_MEASURE_WITH_UNIT">UNCERTAINTY_MEASURE_WITH_UNIT
	| aSTEPItem |
	aSTEPItem := UNCERTAINTY_MEASURE_WITH_UNIT new.
	self readCharacter: $(.
	aSTEPItem value_component: self readKeyword.
	self readCharacter: $,.
	aSTEPItem unit_component: self readEntity.
	self readCharacter: $,.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem description: self readString.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="VECTOR">VECTOR
	| aSTEPItem |
	aSTEPItem := VECTOR new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem orientation: self readEntity.
	self readCharacter: $,.
	aSTEPItem magnitude: self readNumber.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="VERTEX_POINT">VERTEX_POINT
	| aSTEPItem |
	aSTEPItem := VERTEX_POINT new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem vertex_geometry: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.DATA</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="BOUNDARY_CURVE">BOUNDARY_CURVE
	| aSTEPItem |
	aSTEPItem := BOUNDARY_CURVE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem segments: self readOrderedCollection.
	self readCharacter: $,.
	aSTEPItem self_intersect: self readBoolean.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="FACETED_BREP">FACETED_BREP
	| aSTEPItem |
	aSTEPItem := FACETED_BREP new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem outer: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="FACETED_BREP_SHAPE_REPRESENTATION">FACETED_BREP_SHAPE_REPRESENTATION
	| aSTEPItem |
	aSTEPItem := FACETED_BREP_SHAPE_REPRESENTATION new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem items: self readOrderedCollection.
	self readCharacter: $,.
	aSTEPItem context_of_items: self readEntity.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="FACE_SURFACE">FACE_SURFACE
	| aSTEPItem |
	aSTEPItem := FACE_SURFACE new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem bounds: self readOrderedCollection.
	self readCharacter: $,.
	aSTEPItem face_geometry: self readEntity.
	self readCharacter: $,.
	aSTEPItem same_sense: self readBoolean.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="modPOSITIVE_LENGTH_MEASURE">modPOSITIVE_LENGTH_MEASURE
	| aSTEPItem |
	aSTEPItem := POSITIVE_LENGTH_MEASURE new.
	self readCharacter: $(.
	aSTEPItem length_measure: self readNumber.
	self readCharacter: $).
	^aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="OPEN_SHELL">OPEN_SHELL
	| aSTEPItem |
	aSTEPItem := OPEN_SHELL new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem cfs_faces: self readOrderedCollection.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>

<body package="CADSM-UI-STEP" selector="POLY_LOOP">POLY_LOOP
	| aSTEPItem |
	aSTEPItem := POLY_LOOP new.
	self readCharacter: $(.
	aSTEPItem name: self readString.
	self readCharacter: $,.
	aSTEPItem polygon: self readOrderedCollection.
	self readCharacter: $).
	aDict at: iLine put: aSTEPItem</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.HEADER</class-id> <category>parsing</category>

<body package="CADSM-UI-STEP" selector="FILE_DESCRIPTION">FILE_DESCRIPTION
	self readCharacter: $(.
	self readCharacter: $(.
	self readString.
	self readCharacter: $).
	self readCharacter: $,.
	self readString.
	self readCharacter: $)</body>

<body package="CADSM-UI-STEP" selector="FILE_NAME">FILE_NAME
	self readCharacter: $(.
	self readString.
	self readCharacter: $,.
	self readString.
	self readCharacter: $,.
	self readCharacter: $(.
	self readString.
	self readCharacter: $).
	self readCharacter: $,.
	self readCharacter: $(.
	self readString.
	self readCharacter: $).
	self readCharacter: $,.
	self readString.
	self readCharacter: $,.
	self readString.
	self readCharacter: $,.
	self readString.
	self readCharacter: $)</body>

<body package="CADSM-UI-STEP" selector="FILE_SCHEMA">FILE_SCHEMA
	self readCharacter: $(.
	self readcString.
	self readCharacter: $)</body>

<body package="CADSM-UI-STEP" selector="nextKeyword">nextKeyword
	| aWriteStream continue |
	self skipToNextToken.
	aWriteStream := (inStream contentsSpecies new: 64) writeStream.
	continue := true.
	
	[inStream atEnd ifTrue: [continue := false].
	continue] whileTrue: 
				[| element |
				element := inStream next.
				(' (;' includes: element) 
					ifTrue: 
						[continue := false.
						inStream skip: -1]
					ifFalse: [aWriteStream nextPut: element]].
	aKeyword := aWriteStream contents</body>

<body package="CADSM-UI-STEP" selector="skipComment">skipComment
	| continue |
	continue := true.
	
	[inStream atEnd ifTrue: [continue := false].
	continue] whileTrue: 
				[| element |
				element := inStream next.
				element = $* 
					ifTrue: 
						[element := inStream next.
						element = $/ ifTrue: [continue := false] ifFalse: [inStream skip: -1]]]</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SURFACE_OF_LINEAR_EXTRUSION</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="extrusion_axis">extrusion_axis
	^extrusion_axis</body>

<body package="CADSM-UI-STEP" selector="extrusion_axis:">extrusion_axis: anObject
	extrusion_axis := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SURFACE_OF_LINEAR_EXTRUSION</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aSurfaceWithBounds1:">aSurfaceWithBounds1: cFACE_BOUND 
	| aSweep aRefFrame rFcurveF |
	aSweep := CADSM.Geo.CADSMGeoSweep new.
	aSweep name: name.
	aRefFrame := CADSM.Geo.CADSMGeoCartesianFrame new.
	aRefFrame rFfF: self rFfF.
	aRefFrame aAFf: self aAFf.
	rFcurveF := swept_curve xyzCurve.
	rFcurveF cPoint: (rFcurveF cPoint 
				collect: [:aPoint | aRefFrame rfpffromrFpF: aPoint]).
	aSweep _aCurve: rFcurveF.
	aSweep aRefFrame copyrFfFandAFfFrom: aRefFrame.
	cFACE_BOUND do: [:aFACE_BOUND | aFACE_BOUND boundSweep: aSweep].
	^aSweep</body>

<body package="CADSM-UI-STEP" selector="aSurfaceWithBounds:">aSurfaceWithBounds: cFACE_BOUND 
	| aSweep aRefFrame rFcurveF trajectory |
	aSweep := CADSM.Geo.CADSMGeoSweep new.
	aSweep name: name.
	aRefFrame := CADSM.Geo.CADSMGeoCartesianFrame new.
	aRefFrame fixedAtRef.
	rFcurveF := swept_curve xyzCurve.
	rFcurveF cPoint: (rFcurveF cPoint 
				collect: [:aPoint | aRefFrame rfpffromrFpF: aPoint]).
	aSweep _aCurve: rFcurveF.
	trajectory := (CADSM.Geo.CADSMGeoLine new)
				rfstartf: (StCAD.StMath.StMFullColumn zero: 3);
				rfendf: extrusion_axis aDir;
				yourself.
	aSweep _trajectory: trajectory.
	aSweep aRefFrame copyrFfFandAFfFrom: aRefFrame.
	cFACE_BOUND do: [:aFACE_BOUND | aFACE_BOUND boundSweep: aSweep].
	aSweep conditionSelf.
	^aSweep</body>

<body package="CADSM-UI-STEP" selector="rFfF">rFfF
	^StCAD.StMath.StMFullColumn zero: 3</body>

<body package="CADSM-UI-STEP" selector="zDir">zDir
	^extrusion_axis aDir</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SURFACE_STYLE_FILL_AREA</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="fill_area">fill_area
	^fill_area</body>

<body package="CADSM-UI-STEP" selector="fill_area:">fill_area: anObject
	fill_area := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SURFACE_STYLE_FILL_AREA</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aColor">aColor
	^fill_area aColor</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CONICAL_SURFACE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="radius">radius
	^radius</body>

<body package="CADSM-UI-STEP" selector="radius:">radius: anObject
	radius := anObject</body>

<body package="CADSM-UI-STEP" selector="semi_angle">semi_angle
	^semi_angle</body>

<body package="CADSM-UI-STEP" selector="semi_angle:">semi_angle: anObject
	semi_angle := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CONICAL_SURFACE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aSurfaceWithBounds:">aSurfaceWithBounds: cFACE_BOUND 
	| aConicalSurface |
	aConicalSurface := CADSM.Geo.CADSMGeoConicalSurface new.
	aConicalSurface name: name.
	aConicalSurface radius: radius.
	aConicalSurface semi_angle: semi_angle * REPRESENTATION angleFactor.
	aConicalSurface aRefFrame copyrFfFandAFfFrom: position aRefFrame.
	cFACE_BOUND 
		do: [:aFACE_BOUND | aFACE_BOUND boundConicalSurface: aConicalSurface].
	aConicalSurface _zstart: aConicalSurface aBoundingBox minCorner z.
	aConicalSurface _zend: aConicalSurface aBoundingBox maxCorner z.
	^aConicalSurface</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CONICAL_SURFACE</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'CONICAL_SURFACE';
		cr;
		nextPutAll: 'radius = ';
		printVerbose: radius;
		cr;
		nextPutAll: 'semi_angle = ';
		printVerbose: semi_angle;
		cr;
		printVerbose: position</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SHAPE_REPRESENTATION_RELATIONSHIP</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aPart">aPart
	^(rep_1 isMemberOf: ADVANCED_BREP_SHAPE_REPRESENTATION) 
		ifTrue: 
			[(rep_1 aPart)
				name: rep_1 name;
				yourself]
		ifFalse: 
			[(rep_2 aPart)
				name: rep_2 name;
				yourself]</body>

<body package="CADSM-UI-STEP" selector="cPart">cPart
	^(rep_1 isMemberOf: ADVANCED_BREP_SHAPE_REPRESENTATION) 
		ifTrue: [rep_1 cPart]
		ifFalse: [rep_2 cPart]</body>

<body package="CADSM-UI-STEP" selector="lengthFactor">lengthFactor
	^rep_1 lengthFactor</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.B_SPLINE_SURFACE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="control_points_list">control_points_list
	^control_points_list</body>

<body package="CADSM-UI-STEP" selector="control_points_list:">control_points_list: anObject
	control_points_list := anObject</body>

<body package="CADSM-UI-STEP" selector="self_intersect">self_intersect
	^self_intersect</body>

<body package="CADSM-UI-STEP" selector="self_intersect:">self_intersect: anObject
	self_intersect := anObject</body>

<body package="CADSM-UI-STEP" selector="surface_form">surface_form
	^surface_form</body>

<body package="CADSM-UI-STEP" selector="surface_form:">surface_form: anObject
	surface_form := anObject</body>

<body package="CADSM-UI-STEP" selector="u_closed">u_closed
	^u_closed</body>

<body package="CADSM-UI-STEP" selector="u_closed:">u_closed: anObject
	u_closed := anObject</body>

<body package="CADSM-UI-STEP" selector="u_degree">u_degree
	^u_degree</body>

<body package="CADSM-UI-STEP" selector="u_degree:">u_degree: anObject
	u_degree := anObject</body>

<body package="CADSM-UI-STEP" selector="v_closed">v_closed
	^v_closed</body>

<body package="CADSM-UI-STEP" selector="v_closed:">v_closed: anObject
	v_closed := anObject</body>

<body package="CADSM-UI-STEP" selector="v_degree">v_degree
	^v_degree</body>

<body package="CADSM-UI-STEP" selector="v_degree:">v_degree: anObject
	v_degree := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.B_SPLINE_SURFACE_WITH_KNOTS</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="knot_spec">knot_spec
	^knot_spec</body>

<body package="CADSM-UI-STEP" selector="knot_spec:">knot_spec: anObject
	knot_spec := anObject</body>

<body package="CADSM-UI-STEP" selector="u_knots">u_knots
	^u_knots</body>

<body package="CADSM-UI-STEP" selector="u_knots:">u_knots: anObject
	u_knots := anObject</body>

<body package="CADSM-UI-STEP" selector="u_multiplicities">u_multiplicities
	^u_multiplicities</body>

<body package="CADSM-UI-STEP" selector="u_multiplicities:">u_multiplicities: anObject
	u_multiplicities := anObject</body>

<body package="CADSM-UI-STEP" selector="v_knots">v_knots
	^v_knots</body>

<body package="CADSM-UI-STEP" selector="v_knots:">v_knots: anObject
	v_knots := anObject</body>

<body package="CADSM-UI-STEP" selector="v_multiplicities">v_multiplicities
	^v_multiplicities</body>

<body package="CADSM-UI-STEP" selector="v_multiplicities:">v_multiplicities: anObject
	v_multiplicities := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.B_SPLINE_SURFACE_WITH_KNOTS</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aSurfaceWithBounds:">aSurfaceWithBounds: cFACE_BOUND 
	| aNurbsSurface |
	aNurbsSurface := CADSM.Geo.CADSMGeoNurbsSurface new.
	aNurbsSurface
		name: name;
		_ccPoint: self ccPoint;
		ccWeight: self ccWeight;
		_cuKnot: self cuKnot;
		_cvKnot: self cvKnot.
	cFACE_BOUND 
		do: [:aFACE_BOUND | aFACE_BOUND boundNurbsSurface: aNurbsSurface].
	^aNurbsSurface
		normalizeKnots;
		yourself</body>

<body package="CADSM-UI-STEP" selector="ccPoint">ccPoint
	^StCAD.StMath.StMFullMatrix fromCollection: control_points_list
		aBlock: [:a | a xyzPoint]</body>

<body package="CADSM-UI-STEP" selector="ccWeight">ccWeight
	^StCAD.StMath.StMFullMatrix fromCollection: control_points_list
		aBlock: [:a | 1.0d]</body>

<body package="CADSM-UI-STEP" selector="cuKnot">cuKnot
	| n aStream |
	n := u_multiplicities inject: 0 into: [:subTotal :next | subTotal + next].
	aStream := (StCAD.StMath.StMArray new: n) writeStream.
	u_multiplicities with: u_knots
		parallelDo: [:m :knot | m timesRepeat: [aStream nextPut: knot]].
	^aStream contents</body>

<body package="CADSM-UI-STEP" selector="cvKnot">cvKnot
	| n aStream |
	n := v_multiplicities inject: 0 into: [:subTotal :next | subTotal + next].
	aStream := (StCAD.StMath.StMArray new: n) writeStream.
	v_multiplicities with: v_knots
		parallelDo: [:m :knot | m timesRepeat: [aStream nextPut: knot]].
	^aStream contents</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.RATIONAL_B_SPLINE_SURFACE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="weights_data">weights_data
	^weights_data</body>

<body package="CADSM-UI-STEP" selector="weights_data:">weights_data: anObject
	weights_data := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.RATIONAL_B_SPLINE_SURFACE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="ccWeight">ccWeight
	^StCAD.StMath.StMFullMatrix fromCollection: weights_data aBlock: [:a | a]</body>

<body package="CADSM-UI-STEP" selector="fillWith:">fillWith: cObject 
	self fillWithB_SPLINE_SURFACE_WITH_KNOTS: (cObject 
				detect: [:a | a isMemberOf: B_SPLINE_SURFACE_WITH_KNOTS]).
	self fillWithB_SPLINE_SURFACE: (cObject 
				detect: [:a | a isMemberOf: B_SPLINE_SURFACE])</body>

<body package="CADSM-UI-STEP" selector="fillWithB_SPLINE_SURFACE:">fillWithB_SPLINE_SURFACE: arg 
	self u_degree: arg u_degree.
	self v_degree: arg v_degree.
	self control_points_list: arg control_points_list.
	self surface_form: arg surface_form.
	self u_closed: arg u_closed.
	self v_closed: arg v_closed.
	self self_intersect: arg self_intersect</body>

<body package="CADSM-UI-STEP" selector="fillWithB_SPLINE_SURFACE_WITH_KNOTS:">fillWithB_SPLINE_SURFACE_WITH_KNOTS: arg 
	self u_multiplicities: arg u_multiplicities.
	self v_multiplicities: arg v_multiplicities.
	self u_knots: arg u_knots.
	self v_knots: arg v_knots.
	self knot_spec: arg knot_spec</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CONIC</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="position">position
	^position</body>

<body package="CADSM-UI-STEP" selector="position:">position: anObject
	position := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CIRCLE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="radius">radius
	^radius</body>

<body package="CADSM-UI-STEP" selector="radius:">radius: anObject
	radius := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CIRCLE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="xyzCurveFrom:">xyzCurveFrom: aEDGE_CURVE 
	| aEllipticArc rFstartF rFendF |
	aEllipticArc := CADSM.Geo.CADSMGeoEllipticArc new.
	aEllipticArc _radius: radius.
	aEllipticArc aRefFrame copyrFfFandAFfFrom: position aRefFrame.
	aEDGE_CURVE same_sense 
		ifTrue: 
			[rFstartF := aEDGE_CURVE xyzStart.
			rFendF := aEDGE_CURVE xyzEnd]
		ifFalse: 
			[rFstartF := aEDGE_CURVE xyzEnd.
			rFendF := aEDGE_CURVE xyzStart].
	aEllipticArc _rFstartF: rFstartF copy.
	aEllipticArc _rFendF: rFendF copy.
	aEllipticArc conditionSelf.
	self assert: [aEllipticArc isOK].
	^aEllipticArc</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CIRCLE</class-id> <category>printing</category>

<body package="CADSM-UI-STEP" selector="printVerboseOn:">printVerboseOn: aStream 
	aStream
		nextPutAll: 'CIRCLE';
		cr;
		nextPutAll: 'radius = ';
		printVerbose: radius;
		cr;
		printVerbose: position</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.ELLIPSE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="semi_axis_1">semi_axis_1
	^semi_axis_1</body>

<body package="CADSM-UI-STEP" selector="semi_axis_1:">semi_axis_1: anObject
	semi_axis_1 := anObject</body>

<body package="CADSM-UI-STEP" selector="semi_axis_2">semi_axis_2
	^semi_axis_2</body>

<body package="CADSM-UI-STEP" selector="semi_axis_2:">semi_axis_2: anObject
	semi_axis_2 := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.ELLIPSE</class-id> <category>calc</category>

<body package="CADSM-UI-STEP" selector="xyzCurveFrom:">xyzCurveFrom: aEDGE_CURVE 
	| aEllipticArc rFstartF rFendF |
	aEllipticArc := CADSM.Geo.CADSMGeoEllipticArc new.
	aEllipticArc xRadius: semi_axis_1.
	aEllipticArc yRadius: semi_axis_2.
	aEllipticArc aRefFrame copyrFfFandAFfFrom: position aRefFrame.
	aEDGE_CURVE same_sense 
		ifTrue: 
			[rFstartF := aEDGE_CURVE xyzStart.
			rFendF := aEDGE_CURVE xyzEnd]
		ifFalse: 
			[rFstartF := aEDGE_CURVE xyzEnd.
			rFendF := aEDGE_CURVE xyzStart].
	aEllipticArc _rFstartF: rFstartF.
	aEllipticArc _rFendF: rFendF.
	aEllipticArc conditionSelf.
	self assert: [aEllipticArc isOK].
	^aEllipticArc</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.TRIMMED_CURVE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="basis_curve">basis_curve
	^basis_curve</body>

<body package="CADSM-UI-STEP" selector="basis_curve:">basis_curve: anObject
	basis_curve := anObject</body>

<body package="CADSM-UI-STEP" selector="master_representation">master_representation
	^master_representation</body>

<body package="CADSM-UI-STEP" selector="master_representation:">master_representation: anObject
	master_representation := anObject</body>

<body package="CADSM-UI-STEP" selector="sense_agreement">sense_agreement
	^sense_agreement</body>

<body package="CADSM-UI-STEP" selector="sense_agreement:">sense_agreement: anObject
	sense_agreement := anObject</body>

<body package="CADSM-UI-STEP" selector="trim_1">trim_1
	^trim_1</body>

<body package="CADSM-UI-STEP" selector="trim_1:">trim_1: anObject
	trim_1 := anObject</body>

<body package="CADSM-UI-STEP" selector="trim_2">trim_2
	^trim_2</body>

<body package="CADSM-UI-STEP" selector="trim_2:">trim_2: anObject
	trim_2 := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.B_SPLINE_CURVE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="closed_curve">closed_curve
	^closed_curve</body>

<body package="CADSM-UI-STEP" selector="closed_curve:">closed_curve: anObject
	closed_curve := anObject</body>

<body package="CADSM-UI-STEP" selector="control_points_list">control_points_list
	^control_points_list</body>

<body package="CADSM-UI-STEP" selector="control_points_list:">control_points_list: anObject
	control_points_list := anObject</body>

<body package="CADSM-UI-STEP" selector="curve_form">curve_form
	^curve_form</body>

<body package="CADSM-UI-STEP" selector="curve_form:">curve_form: anObject
	curve_form := anObject</body>

<body package="CADSM-UI-STEP" selector="degree">degree
	^degree</body>

<body package="CADSM-UI-STEP" selector="degree:">degree: anObject
	degree := anObject</body>

<body package="CADSM-UI-STEP" selector="self_intersect">self_intersect
	^self_intersect</body>

<body package="CADSM-UI-STEP" selector="self_intersect:">self_intersect: anObject
	self_intersect := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.QUASI_UNIFORM_CURVE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="xyzCurve">xyzCurve
	| aNurbsCurve |
	aNurbsCurve := CADSM.Geo.CADSMGeoNurbsCurve 
				fromcControlPoint: self cControlPoint
				uDegree: self uDegree.
	self assert: [aNurbsCurve isOK].
	^aNurbsCurve
		normalizeKnots;
		yourself</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.QUASI_UNIFORM_CURVE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="cControlPoint">cControlPoint
	^StCAD.StMath.StMFullColumn fromCollection: control_points_list
		aBlock: [:a | a xyzPoint]</body>

<body package="CADSM-UI-STEP" selector="uDegree">uDegree
	^degree</body>

<body package="CADSM-UI-STEP" selector="xyzCurveFrom:">xyzCurveFrom: aEDGE_CURVE 
	^self xyzCurve</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.B_SPLINE_CURVE_WITH_KNOTS</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="knots">knots
	^knots</body>

<body package="CADSM-UI-STEP" selector="knots:">knots: anObject
	knots := anObject</body>

<body package="CADSM-UI-STEP" selector="knot_multiplicities">knot_multiplicities
	^knot_multiplicities</body>

<body package="CADSM-UI-STEP" selector="knot_multiplicities:">knot_multiplicities: anObject
	knot_multiplicities := anObject</body>

<body package="CADSM-UI-STEP" selector="knot_spec">knot_spec
	^knot_spec</body>

<body package="CADSM-UI-STEP" selector="knot_spec:">knot_spec: anObject
	knot_spec := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.B_SPLINE_CURVE_WITH_KNOTS</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="cPoint">cPoint
	^StCAD.StMath.StMFullColumn fromCollection: control_points_list
		aBlock: [:a | a xyzPoint]</body>

<body package="CADSM-UI-STEP" selector="cuKnot">cuKnot
	| n aStream |
	n := knot_multiplicities inject: 0
				into: [:subTotal :next | subTotal + next].
	aStream := (StCAD.StMath.StMArray new: n) writeStream.
	knot_multiplicities with: knots
		parallelDo: [:m :knot | m timesRepeat: [aStream nextPut: knot]].
	^aStream contents</body>

<body package="CADSM-UI-STEP" selector="cWeight">cWeight
	^StCAD.StMath.StMFullColumn fromCollection: control_points_list
		aBlock: [:a | 1.0d]</body>

<body package="CADSM-UI-STEP" selector="xyzCurve">xyzCurve
	| aNurbsCurve |
	aNurbsCurve := CADSM.Geo.CADSMGeoNurbsCurve new.
	aNurbsCurve
		_cPoint: self cPoint;
		cWeight: self cWeight;
		_cuKnot: self cuKnot.
	self assert: [aNurbsCurve isOK].
	^aNurbsCurve
		normalizeKnots;
		yourself</body>

<body package="CADSM-UI-STEP" selector="xyzCurveFrom:">xyzCurveFrom: aEDGE_CURVE 
	^self xyzCurve</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.RATIONAL_B_SPLINE_CURVE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="fillWith:">fillWith: cObject 
	self fillWithB_SPLINE_CURVE_WITH_KNOTS: (cObject 
				detect: [:a | a isMemberOf: B_SPLINE_CURVE_WITH_KNOTS]).
	self fillWithB_SPLINE_CURVE: (cObject 
				detect: [:a | a isMemberOf: B_SPLINE_CURVE])</body>

<body package="CADSM-UI-STEP" selector="weights_data">weights_data
	^weights_data</body>

<body package="CADSM-UI-STEP" selector="weights_data:">weights_data: anObject
	weights_data := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.RATIONAL_B_SPLINE_CURVE</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="cWeight">cWeight
	^StCAD.StMath.StMFullColumn fromCollection: weights_data aBlock: [:a | a]</body>

<body package="CADSM-UI-STEP" selector="fillWithB_SPLINE_CURVE:">fillWithB_SPLINE_CURVE: arg 
	self degree: arg degree.
	self control_points_list: arg control_points_list.
	self curve_form: arg curve_form.
	self closed_curve: arg closed_curve.
	self self_intersect: arg self_intersect</body>

<body package="CADSM-UI-STEP" selector="fillWithB_SPLINE_CURVE_WITH_KNOTS:">fillWithB_SPLINE_CURVE_WITH_KNOTS: arg 
	self knot_multiplicities: arg knot_multiplicities.
	self knots: arg knots.
	self knot_spec: arg knot_spec</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SURFACE_CURVE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="associated_geometry">associated_geometry
	^associated_geometry</body>

<body package="CADSM-UI-STEP" selector="associated_geometry:">associated_geometry: anObject
	associated_geometry := anObject</body>

<body package="CADSM-UI-STEP" selector="curve_3d">curve_3d
	^curve_3d</body>

<body package="CADSM-UI-STEP" selector="curve_3d:">curve_3d: anObject
	curve_3d := anObject</body>

<body package="CADSM-UI-STEP" selector="master_representation">master_representation
	^master_representation</body>

<body package="CADSM-UI-STEP" selector="master_representation:">master_representation: anObject
	master_representation := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PCURVE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="basis_surface">basis_surface
	^basis_surface</body>

<body package="CADSM-UI-STEP" selector="basis_surface:">basis_surface: anObject
	basis_surface := anObject</body>

<body package="CADSM-UI-STEP" selector="reference_to_curve">reference_to_curve
	^reference_to_curve</body>

<body package="CADSM-UI-STEP" selector="reference_to_curve:">reference_to_curve: anObject
	reference_to_curve := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.NAMED_UNIT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="dimensions">dimensions
	^dimensions</body>

<body package="CADSM-UI-STEP" selector="dimensions:">dimensions: anObject
	dimensions := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.NAMED_UNIT</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="angleFactor">angleFactor
	^dimensions ifNotNil: [dimensions angleFactor]</body>

<body package="CADSM-UI-STEP" selector="lengthFactor">lengthFactor
	^dimensions ifNotNil: [dimensions lengthFactor]</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CONVERSION_BASED_UNIT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="angleFactor">angleFactor
	^super angleFactor ifNil: [conversion_factor angleFactor]</body>

<body package="CADSM-UI-STEP" selector="conversion_factor">conversion_factor
	^conversion_factor</body>

<body package="CADSM-UI-STEP" selector="conversion_factor:">conversion_factor: anObject
	conversion_factor := anObject</body>

<body package="CADSM-UI-STEP" selector="lengthFactor">lengthFactor
	^super lengthFactor ifNil: [conversion_factor lengthFactor]</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PLANE_ANGLE_UNIT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="dimensions">dimensions
	^dimensions</body>

<body package="CADSM-UI-STEP" selector="dimensions:">dimensions: anObject
	dimensions := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PLANE_ANGLE_UNIT</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="lengthFactor">lengthFactor
	^nil</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.LENGTH_UNIT</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="angleFactor">angleFactor
	^nil</body>

<body package="CADSM-UI-STEP" selector="lengthFactor">lengthFactor
	^dimensions</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PLANE_ANGLE_MEASURE_WITH_UNIT</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="angleFactor">angleFactor
	^value_component angleFactor</body>

<body package="CADSM-UI-STEP" selector="lengthFactor">lengthFactor
	^nil</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.APPROVAL_DATE_TIME</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="dated_approval">dated_approval
	^dated_approval</body>

<body package="CADSM-UI-STEP" selector="dated_approval:">dated_approval: anObject
	dated_approval := anObject</body>

<body package="CADSM-UI-STEP" selector="date_time">date_time
	^date_time</body>

<body package="CADSM-UI-STEP" selector="date_time:">date_time: anObject
	date_time := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CONNECTED_FACE_SET</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="cfs_faces">cfs_faces
	^cfs_faces</body>

<body package="CADSM-UI-STEP" selector="cfs_faces:">cfs_faces: anObject
	cfs_faces := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.CLOSED_SHELL</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="buildIn:">buildIn: aNMTModel 
	| aOutsideRegion |
	aOutsideRegion := aNMTModel aOutsideRegion.
	cfs_faces do: [:face | face buildInRegion: aOutsideRegion]</body>

<body package="CADSM-UI-STEP" selector="startPoint">startPoint
	^cfs_faces first startPoint</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.ORIENTED_CLOSED_SHELL</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="closed_shell_element">closed_shell_element
	^closed_shell_element</body>

<body package="CADSM-UI-STEP" selector="closed_shell_element:">closed_shell_element: anObject
	closed_shell_element := anObject</body>

<body package="CADSM-UI-STEP" selector="orientation">orientation
	^orientation</body>

<body package="CADSM-UI-STEP" selector="orientation:">orientation: anObject
	orientation := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.APPLICATION_CONTEXT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="application">application
	^application</body>

<body package="CADSM-UI-STEP" selector="application:">application: anObject
	application := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SHAPE_DEFINITION_REPRESENTATION</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="aPart">aPart
	^used_representation aPart</body>

<body package="CADSM-UI-STEP" selector="cPart">cPart
	^used_representation cPart</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.ASSEMBLY_COMPONENT_USAGE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="reference_designator">reference_designator
	^reference_designator</body>

<body package="CADSM-UI-STEP" selector="reference_designator:">reference_designator: anObject
	reference_designator := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.REPRESENTATION_CONTEXT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="context_identifier">context_identifier
	^context_identifier</body>

<body package="CADSM-UI-STEP" selector="context_identifier:">context_identifier: anObject
	context_identifier := anObject</body>

<body package="CADSM-UI-STEP" selector="context_type">context_type
	^context_type</body>

<body package="CADSM-UI-STEP" selector="context_type:">context_type: anObject
	context_type := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.GLOBAL_UNIT_ASSIGNED_CONTEXT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="units">units
	^units</body>

<body package="CADSM-UI-STEP" selector="units:">units: anObject
	units := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.GLOBAL_UNIT_ASSIGNED_CONTEXT</class-id> <category>As yet unclassified</category>

<body package="CADSM-UI-STEP" selector="angleFactor">angleFactor
	units do: [:a | a do: [:aa | aa angleFactor ifNotNil: [:aaa | ^aaa]]].
	^1.0d</body>

<body package="CADSM-UI-STEP" selector="lengthFactor">lengthFactor
	units do: [:a | a do: [:aa | aa lengthFactor ifNotNil: [:aaa | ^aaa]]].
	^1.0d</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.GEOMETRIC_REPRESENTATION_CONTEXT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="coordinate_space_dimension">coordinate_space_dimension
	^coordinate_space_dimension</body>

<body package="CADSM-UI-STEP" selector="coordinate_space_dimension:">coordinate_space_dimension: anObject
	coordinate_space_dimension := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="uncertainty">uncertainty
	^uncertainty</body>

<body package="CADSM-UI-STEP" selector="uncertainty:">uncertainty: anObject
	uncertainty := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.PERSONAL_ADDRESS</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="country">country
	^country</body>

<body package="CADSM-UI-STEP" selector="country:">country: anObject
	country := anObject</body>

<body package="CADSM-UI-STEP" selector="description">description
	^description</body>

<body package="CADSM-UI-STEP" selector="description:">description: anObject
	description := anObject</body>

<body package="CADSM-UI-STEP" selector="electronic_mail_address">electronic_mail_address
	^electronic_mail_address</body>

<body package="CADSM-UI-STEP" selector="electronic_mail_address:">electronic_mail_address: anObject
	electronic_mail_address := anObject</body>

<body package="CADSM-UI-STEP" selector="facsimile_number">facsimile_number
	^facsimile_number</body>

<body package="CADSM-UI-STEP" selector="facsimile_number:">facsimile_number: anObject
	facsimile_number := anObject</body>

<body package="CADSM-UI-STEP" selector="internal_location">internal_location
	^internal_location</body>

<body package="CADSM-UI-STEP" selector="internal_location:">internal_location: anObject
	internal_location := anObject</body>

<body package="CADSM-UI-STEP" selector="people">people
	^people</body>

<body package="CADSM-UI-STEP" selector="people:">people: anObject
	people := anObject</body>

<body package="CADSM-UI-STEP" selector="postal_box">postal_box
	^postal_box</body>

<body package="CADSM-UI-STEP" selector="postal_box:">postal_box: anObject
	postal_box := anObject</body>

<body package="CADSM-UI-STEP" selector="postal_code">postal_code
	^postal_code</body>

<body package="CADSM-UI-STEP" selector="postal_code:">postal_code: anObject
	postal_code := anObject</body>

<body package="CADSM-UI-STEP" selector="region">region
	^region</body>

<body package="CADSM-UI-STEP" selector="region:">region: anObject
	region := anObject</body>

<body package="CADSM-UI-STEP" selector="street">street
	^street</body>

<body package="CADSM-UI-STEP" selector="street:">street: anObject
	street := anObject</body>

<body package="CADSM-UI-STEP" selector="street_number">street_number
	^street_number</body>

<body package="CADSM-UI-STEP" selector="street_number:">street_number: anObject
	street_number := anObject</body>

<body package="CADSM-UI-STEP" selector="telephone_number">telephone_number
	^telephone_number</body>

<body package="CADSM-UI-STEP" selector="telephone_number:">telephone_number: anObject
	telephone_number := anObject</body>

<body package="CADSM-UI-STEP" selector="telex_number">telex_number
	^telex_number</body>

<body package="CADSM-UI-STEP" selector="telex_number:">telex_number: anObject
	telex_number := anObject</body>

<body package="CADSM-UI-STEP" selector="town">town
	^town</body>

<body package="CADSM-UI-STEP" selector="town:">town: anObject
	town := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.COMPOSITE_CURVE</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="segments">segments
	^segments</body>

<body package="CADSM-UI-STEP" selector="segments:">segments: anObject
	segments := anObject</body>

<body package="CADSM-UI-STEP" selector="self_intersect">self_intersect
	^self_intersect</body>

<body package="CADSM-UI-STEP" selector="self_intersect:">self_intersect: anObject
	self_intersect := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SI_UNIT</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="angleFactor">angleFactor
	^name ifNotNil: 
			[name = 'RADIAN' 
				ifTrue: 
					[(prefix isNil or: [prefix = $$]) 
						ifTrue: [1.0d]
						ifFalse: [CPrefix at: prefix asUppercase asSymbol]]
				ifFalse: [nil]]</body>

<body package="CADSM-UI-STEP" selector="lengthFactor">lengthFactor
	^name ifNotNil: 
			[name = 'METRE' 
				ifTrue: 
					[(prefix isNil or: [prefix = $$]) 
						ifTrue: [1.0d]
						ifFalse: [CPrefix at: prefix asUppercase asSymbol]]
				ifFalse: [nil]]</body>

<body package="CADSM-UI-STEP" selector="prefix">prefix
	^prefix</body>

<body package="CADSM-UI-STEP" selector="prefix:">prefix: anObject 
	prefix := anObject</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.SI_UNIT class</class-id> <category>class initialization</category>

<body package="CADSM-UI-STEP" selector="initialize">initialize
	"SI_UNIT initialize."

	CPrefix := IdentityDictionary new: 20.
	CPrefix at: #EXA put: 1.0d18.
	CPrefix at: #PETA put: 1.0d15.
	CPrefix at: #TERA put: 1.0d12.
	CPrefix at: #GIGA put: 1.0d9.
	CPrefix at: #MEGA put: 1.0d6.
	CPrefix at: #KILO put: 1.0d3.
	CPrefix at: #HECTO put: 1.0d2.
	CPrefix at: #DECA put: 1.0d1.
	CPrefix at: #DECI put: 1.0d-1.
	CPrefix at: #CENTI put: 1.0d-2.
	CPrefix at: #MILLI put: 1.0d-3.
	CPrefix at: #MICRO put: 1.0d-6.
	CPrefix at: #NANO put: 1.0d-9.
	CPrefix at: #PICO put: 1.0d-12.
	CPrefix at: #FEMTO put: 1.0d-15.
	CPrefix at: #ATTO put: 1.0d-18.
	""
	CName := IdentityDictionary new: 20.
	CName at: #METRE put: 1.0d</body>
</methods>

<methods>
<class-id>CADSM.UI.STEP.POLY_LOOP</class-id> <category>accessing</category>

<body package="CADSM-UI-STEP" selector="polygon">polygon
	^polygon</body>

<body package="CADSM-UI-STEP" selector="polygon:">polygon: anObject
	polygon := anObject</body>
</methods>

<initialize>
<class-id>CADSM.UI.STEP.SI_UNIT</class-id>
</initialize>

<do-it>"Imported Classes:"</do-it>

<do-it>self error: 'Attempting to file-in parcel imports.  Choose terminate or close'</do-it>

<class>
<name>Object</name>
<environment>Core</environment>
<super></super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>Kernel-Objects</category>
<attributes>
<package>Kernel-Objects</package>
</attributes>
</class>

</st-source>
