📄 attribute_derivation.htm
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Attribute Derivation,Attribute Derivation Macros,Types of Attributes,ENTITY,SAT files,SAT Save and Restore,Bulletin board,History and Roll,Attributes,ACIS,Functions" /> <link rel="shortcut icon" href="/favicon.ico" /> <link rel="search" type="application/opensearchdescription+xml" href="/r18/opensearch_desc.php" title="DocR18 (English)" /> <link title="Creative Commons" type="application/rdf+xml" href="/r18/index.php?title=Attribute_Derivation&action=creativecommons" rel="meta" /> <title>Attribute Derivation - DocR18</title>
<style type="text/css" media="screen, projection">/*<![CDATA[*/
@import "/r18/skins/common/shared.css?97";
@import "/r18/skins/monobook/main.css?97";
/*]]>*/</style>
<link rel="stylesheet" type="text/css" media="print" href="/r18/skins/common/commonPrint.css?97" />
<!--[if lt IE 5.5000]><style type="text/css">@import "/r18/skins/monobook/IE50Fixes.css?97";</style><![endif]-->
<!--[if IE 5.5000]><style type="text/css">@import "/r18/skins/monobook/IE55Fixes.css?97";</style><![endif]-->
<!--[if IE 6]><style type="text/css">@import "/r18/skins/monobook/IE60Fixes.css?97";</style><![endif]-->
<!--[if IE 7]><style type="text/css">@import "/r18/skins/monobook/IE70Fixes.css?97";</style><![endif]-->
<!--[if lt IE 7]><script type="text/javascript" src="/r18/skins/common/IEFixes.js?97"></script>
<meta http-equiv="imagetoolbar" content="no" /><![endif]-->
<script type= "text/javascript">/*<![CDATA[*/var skin = "monobook";var stylepath = "/r18/skins";var wgArticlePath = "/r18/index.php/$1";var wgScriptPath = "/r18";var wgScript = "/r18/index.php";var wgServer = "http://doc.spatial.com";var wgCanonicalNamespace = "";var wgCanonicalSpecialPageName = false;var wgNamespaceNumber = 0;var wgPageName = "Attribute_Derivation";var wgTitle = "Attribute Derivation";var wgAction = "view";var wgRestrictionEdit = ["sysop"];var wgRestrictionMove = ["sysop"];var wgArticleId = "438";var wgIsArticle = true;var wgUserName = null;var wgUserGroups = null;var wgUserLanguage = "en";var wgContentLanguage = "en";var wgBreakFrames = false;var wgCurRevisionId = "1128";/*]]>*/</script>
<script type="text/javascript" src="/r18/skins/common/wikibits.js?97"><!-- wikibits js --></script>
<script type="text/javascript" src="/r18/index.php?title=-&action=raw&gen=js&useskin=monobook"><!-- site js --></script>
<style type="text/css">/*<![CDATA[*/@import "/r18/index.php?title=MediaWiki:Common.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000";@import "/r18/index.php?title=MediaWiki:Monobook.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000";@import "/r18/index.php?title=-&action=raw&gen=css&maxage=18000";/*]]>*/</style>
<!-- Head Scripts -->
<script type="text/javascript" src="/r18/skins/common/ajax.js?97"></script> </head>
<body class="mediawiki ns-0 ltr page-Attribute_Derivation">
<div id="globalWrapper">
<div id="column-content">
<div id="content">
<a name="top" id="top"></a>
<h1 class="firstHeading">Attribute Derivation</h1>
<div id="bodyContent">
<h3 id="siteSub">From DocR18</h3>
<div id="contentSub"></div>
<div id="jump-to-nav">Jump to: <a href="#column-one">navigation</a>, <a href="#searchInput">search</a></div> <!-- start content -->
<p>The base C++ class, ATTRIB, provides the data and functionality that all <a href="/r18/index.php?title=Attributes&action=edit" class="new" title="Attributes">Attributes</a> share. The developer creates specific <a href="/r18/index.php?title=Classes&action=edit" class="new" title="Classes">classes</a> of attributes by deriving those classes from ATTRIB and adding extra information and functionality.</p><p>Each attribute class generally has a <tt>.hxx</tt> header file that defines the class, includes necessary header files, and prototypes related <a href="/r18/index.php?title=Functions&action=edit" class="new" title="Functions">functions</a>. It also has a <tt>.cxx</tt> source file that implements all of the methods of the attribute class (that were not defined as inline methods within the <a href="/r18/index.php?title=Body&action=edit" class="new" title="Body">body</a> of the class in the .hxx header file). The cxx source file includes the .hxx class header file and also defines class specific macros.</p><p>Because both the header file and the implementation file are highly stylized, a number of <a href="/r18/index.php/Attribute_Derivation_Macros" title="Attribute Derivation Macros">attribute code macros</a> are provided to simplify the derivation process. The macros also help to maintain compatibility with other <a href="/r18/index.php?title=Attributes&action=edit" class="new" title="Attributes">attributes</a> and entities. </p><p><i>Organization attribute classes</i> are always the first level of derivation from the <a href="/r18/index.php?title=ACIS&action=edit" class="new" title="ACIS">ACIS</a> class ATTRIB (refer to the following figure). They define no methods or data of their own, and are not instantiated. <i>Specific attribute classes</i> are derived from the organization class (that is, a secondlevel derivation from ATTRIB), define data and methods, and are instantiated. They may be categorized as simple, complex, or bridge <a href="/r18/index.php?title=Attributes&action=edit" class="new" title="Attributes">attributes</a>.</p><div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:182px;"><a href="/r18/index.php/Image:SPAkern_att_image010.gif" title="Image:SPAkern att image010.gif">Image:SPAkern att image010.gif</a> <div class="thumbcaption">Attribute Derivation</div></div></div></div><a name="Organization_Attribute_Class"></a><h2> <span class="mw-headline"> Organization Attribute Class </span></h2><p>Because the ability to share models between development environments is an important feature of ACIS, it is recommended that each developer first create an organization attribute class that is immediately descended from ATTRIB and has a unique name in the ACIS community. (The organization attribute class is also known as the <b>master attribute</b>.) This is accomplished by using a <i>sentinel</i>, which is a two or three character string that is embedded in the class name and identifies the development organization.</p><blockquote class="templatequote"><div><p><i><b>Note:</b> Contact Spatial's customer support department to have a unique sentinel assigned to your ACIS development project.</i></p></div></blockquote><p>The sole purpose of the organization class is to identify the development organization (company) owning that attribute. Organization classes cannot be instantiated.</p><p>Application specific attribute class derivations are distinguishable from classes of the same name created by other developers by their organization name in <a href="/r18/index.php?title=SAT_files&action=edit" class="new" title="SAT files">SAT files</a>. By a similar mechanism, all attributes from a specific developer are easily detected in an attribute list attached to an <a href="/r18/index.php?title=ENTITY&action=edit" class="new" title="ENTITY">ENTITY</a>.</p><a name="Specific_Attribute_Classes"></a><h2> <span class="mw-headline"> Specific Attribute Classes </span></h2><dl><dd><span class="boilerplate seealso"><i>See also: <a href="/r18/index.php/Types_of_Attributes" title="Types of Attributes">Types of Attributes</a></i></span> </dd></dl><p>Specific attribute classes are derived from the organization class. These may be ACIS system attributes or user-defined, application specific attributes. Specific attribute classes are instantiated.</p><p>For application specific attribute classes to behave similarly to ACIS attributes, each application specific attribute should include method functions for creation, deletion, transfer to and from disk (<a href="/r18/index.php?title=SAT_Save_and_Restore&action=edit" class="new" title="SAT Save and Restore">save and restore</a>), and implement the appropriate notification methods. The <a href="/r18/index.php?title=History_and_Roll&action=edit" class="new" title="History and Roll">roll back</a> and <a href="/r18/index.php?title=Bulletin_board&action=edit" class="new" title="Bulletin board">bulletin board</a> mechanisms built into ACIS apply to application specific attributes.</p><!-- Tidy found serious XHTML errors --><!-- Pre-expand include size: 1738 bytesPost-expand include size: 387 bytesTemplate argument size: 503 bytesMaximum: 2097152 bytes--><!-- Saved in parser cache with key r18_docdb-r18doc_:pcache:idhash:438-0!1!0!!en!2!edit=0 and timestamp 20080624020300 --><div class="printfooter">Retrieved from "<a href="http://doc.spatial.com/r18/index.php/Attribute_Derivation">http://doc.spatial.com/r18/index.php/Attribute_Derivation</a>"</div> <div id="catlinks"><p class='catlinks'><a href="/r18/index.php/Special:Categories" title="Special:Categories">Categories</a>: <span dir='ltr'><a href="/r18/index.php/Category:ACIS_Docs" title="Category:ACIS Docs">ACIS Docs</a></span> | <span dir='ltr'><a href="/r18/index.php/Category:ACIS_Getting_Started" title="Category:ACIS Getting Started">ACIS Getting Started</a></span></p></div> <!-- end content -->
<div class="visualClear"></div>
</div>
</div>
</div>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -