练习 2:定义对象类

使每个新 对象类 都以现有对象为基础。首先,打开包含所定义的对象类的典型对象(“模型对象”)的地图。在本示例中,将打开一个道路地图,以定义 Roads 对象类。

注: 在此教程中,每组对象均存储在单独的文件中。如果您的对象存储在单独文件的图层中,那么您可以从该文件内定义全部对象类。过程是相同的。

当定义对象类时,您可以选择要作为对象类定义一部分而包括的任意模型对象的现有特性。您也可以添加特性。对于所包括的每个特性,您可以定义默认值和允许范围。

注: 此练习使用在练习 1:创建对象类定义文件中创建的 MyDefinition.xml 对象类定义 文件。

定义对象类的步骤

  1. AutoCAD Map 3D 工具集 中,打开 Classify_Roads.dwg。依次单击 “打开”“图形”
  2. “任务窗格”“地图管理器”选项卡上,在“对象类”上单击鼠标右键,然后单击“附着定义文件”
  3. 指定所创建的 MyDefinition.xml 定义文件。
  4. 依次单击“地图设置”选项卡 “对象类”面板 “定义” 查找
    查找

    通过选择模型对象定义对象类。

  5. 选择任一道路作为此课程的模型对象。
  6. “定义对象分类”对话框中,指定 Roads 作为该对象类的名称。选择“对象类型”列表最顶层的框 (AcDbEntity)。

    指定对象创建方法,属于该对象类的现有对象必须使用该方法。

    向该对象类添加的全部现有对象都必须使用在此处选中的对象类型。除非您确定全部现有道路对象都是使用 AcDbLine 或 AcDbCurve 方法创建的,否则仅选中 AcDbEntity 会更加安全。

  7. 单击“特性列表”选项卡并选中要包括在该对象类中的特性。

    在该对象类中所包括的对象始终保留自己的特性。您在此处所指定的特性是整个对象类的特性。选择特性以设置其默认值或允许范围,或使其对于该对象类的全部成员都可编辑。

    例如,为了能够作为一个编组更改“Roads”类的全部成员的图层、线型或颜色,请选择这些特性。您可以根据情况设置默认值。例如,您可以将“Roads”类的全部成员指定给一个 Roads 图层。

    可以包括以下特性类型:

    • 常规特性,例如颜色和图层
    • 其他特性,例如线型生成
    • 对象特性,例如街道名称 (ST_NAME)。

    为该对象类中的对象指定特性,并为这些特性指定任何默认值。

    下表显示了一组用于“Roads”类的建议的“常规”特性和值。

    特性
    常规特性  
    颜色 红色
    图层 Schema_Roads
    线型 没有值
    线宽 0.13
  8. 指定对象数据 (OD) 字段及其值。

    对于对象数据字段,请清除特定于所选模型对象的值。例如,包括 NAME 和 ST_NAME 特性以确保所创建的全部新道路都包含这些特性。删除在此处显示的值,因为每个新道路名将不同于模型对象的名称。

    例如,单击 ST_NAME 特性,并查看其值。街道名称的默认值为模型对象的名称。对于所创建的几乎任一新道路,该值都是不正确的。选择并删除该值。

    指定给该对象类的对象具有 ST_NAME 特性,但是该值将成为该道路的名称(与在该对象特性中存储的一样)。如果不存在值,则特性为空。下表显示了用于“Roads”类的建议的 OD:Schema_Roads 特性组以及值。

    特性
    Autogenerated_SDF_ID 没有值
    LENGTH 没有值
    NAME 没有值
    PREFIX 没有值
    SEG_ID 没有值
    ST_NAME 没有值
    ST_TYPE 没有值
    SUFFIX 没有值
    TYPE 没有值
  9. 若要添加用于指定道路车道数目的新特性,请执行以下操作:
    • 单击“新建特性”

      为该对象类定义任意自定义特性。

    • 对于“特性名称”,请键入 NumberLanes,并单击“确定”

      选中 NumberLanes。

  10. 指定 NumberLanes 为从 1 到 6 的整数,其中 2 为默认值:
    • 对于“类型”,请选择“整数”
    • 对于“范围”,请键入 [1,6]。
    • 对于“默认”,请键入 2。
  11. 单击“类设置”选项卡。对于“创建方法”,请选择“多段线”

    对于在该对象类中创建的新对象,请选择“创建方法”。

    当使用该对象类创建道路时,请使用“多段线”进行创建。向该对象类添加的现有对象不必是多段线。

  12. 单击“保存定义”
  13. 使 Classify_Roads.dwg 处于打开状态。

要继续此教程,请转至练习 3:向定义文件添加对象类