Files
oapy/dm/oaDMObject.html
2026-06-02 14:14:41 +08:00

705 lines
32 KiB
HTML

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>oaDMObject</title>
<style>
body {
margin: 0;
background: #0d0b0b;
color: #f5f1ec;
font-family: Arial, Helvetica, sans-serif;
line-height: 1.5;
}
a {
color: #f2d6c2;
text-decoration: none;
}
a:hover {
text-decoration: underline;
color: #fff4ea;
}
.topbar {
border-bottom: 1px solid #6f3d2d;
background: #120f0f;
}
.topbar-inner {
max-width: 1440px;
margin: 0 auto;
padding: 14px 20px 10px;
}
.brand {
font-size: 28px;
font-weight: 700;
color: #fff8f2;
margin: 0 0 10px;
}
.tabs {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.tab {
display: inline-block;
padding: 6px 12px;
border: 1px solid #6f3d2d;
background: #151111;
color: #f2d6c2;
font-size: 13px;
}
.tab.active {
background: #4b2317;
font-weight: 700;
color: #fff8f2;
}
.layout {
max-width: 1440px;
margin: 0 auto;
display: grid;
grid-template-columns: 280px minmax(0, 1fr);
gap: 28px;
padding: 24px 24px 40px;
}
.sidebar {
font-size: 13px;
}
.sidebar-panel {
border: 1px solid #6f3d2d;
margin-bottom: 16px;
background: #151111;
}
.sidebar-title {
background: #2a1713;
border-bottom: 1px solid #6f3d2d;
padding: 8px 10px;
font-weight: 700;
color: #fff1e8;
}
.sidebar-body {
padding: 8px 10px;
}
.sidebar-search {
width: 100%;
box-sizing: border-box;
padding: 6px 8px;
border: 1px solid #6f3d2d;
background: #0d0b0b;
color: #f5f1ec;
font-size: 13px;
margin-bottom: 8px;
}
.sidebar-search::placeholder {
color: #c8a995;
}
.sidebar-body ul {
list-style: none;
padding: 0;
margin: 0;
}
.sidebar-body li.hidden {
display: none;
}
.active-link {
font-weight: 700;
color: #fff8f2;
}
.sidebar-body li + li {
margin-top: 6px;
}
.content {
min-width: 0;
}
.content-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 0;
align-items: start;
}
.doc {
border: 1px solid #6f3d2d;
background: #120f0f;
padding: 24px 28px 32px;
min-width: 0;
}
.toc-panel {
border: 1px solid #6f3d2d;
background: #151111;
padding: 0;
position: sticky;
top: 16px;
margin-bottom: 16px;
}
.toc-toggle {
width: 100%;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 12px 14px;
border: 0;
background: #2a1713;
color: #fff1e8;
cursor: pointer;
font-size: 14px;
font-weight: 700;
}
.toc-toggle:hover {
background: #3a1d16;
}
.toc-toggle-indicator {
font-size: 12px;
color: #d6ac96;
}
.toc-body {
display: none;
padding: 14px 16px;
}
.toc-panel.open .toc-body {
display: block;
}
.toc-panel h2 {
margin: 0 0 10px;
padding: 0;
border: 0;
font-size: 18px;
color: #fff1e8;
}
.toc-panel ul {
list-style: none;
padding: 0;
margin: 0;
}
.toc-panel li + li {
margin-top: 8px;
}
.toc-panel a {
font-size: 13px;
line-height: 1.35;
color: #f2d6c2;
}
.crumbs {
color: #c8a995;
font-size: 13px;
margin-bottom: 14px;
}
.meta {
border: 1px solid #6f3d2d;
background: #151111;
padding: 10px 12px;
margin: 16px 0 20px;
font-size: 13px;
}
.meta div + div {
margin-top: 4px;
}
.doc h1 {
margin: 0 0 8px;
font-size: 34px;
color: #fff8f2;
}
.doc h2 {
margin: 28px 0 12px;
padding-bottom: 4px;
border-bottom: 1px solid #6f3d2d;
font-size: 22px;
color: #fff1e8;
}
.doc h3 {
margin: 22px 0 10px;
font-size: 18px;
color: #f7e1d5;
}
.doc p, .doc li {
font-size: 14px;
}
.doc pre {
overflow-x: auto;
background: #0d0b0b;
border: 1px solid #6f3d2d;
padding: 12px 14px;
}
.doc code {
font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
font-size: 12px;
overflow-wrap: anywhere;
word-break: break-word;
color: #f7e1d5;
}
.doc table {
width: 100%;
border-collapse: collapse;
margin: 12px 0 18px;
font-size: 13px;
table-layout: fixed;
}
.doc th, .doc td {
border: 1px solid #6f3d2d;
padding: 7px 9px;
vertical-align: top;
text-align: left;
overflow-wrap: anywhere;
word-break: break-word;
}
.doc th {
background: #2a1713;
color: #fff1e8;
}
.doc blockquote {
margin: 14px 0;
padding: 8px 12px;
border-left: 4px solid #8a4a36;
background: #151111;
color: #f2d6c2;
}
.search-panel {
border: 1px solid #6f3d2d;
background: #151111;
padding: 16px 18px;
margin-bottom: 20px;
}
.search-panel input {
width: 100%;
box-sizing: border-box;
padding: 8px 10px;
border: 1px solid #6f3d2d;
background: #0d0b0b;
color: #f5f1ec;
font-size: 14px;
}
.search-panel input::placeholder {
color: #c8a995;
}
.search-results {
list-style: none;
padding: 0;
margin: 16px 0 0;
}
.search-results li {
border-top: 1px solid #4b2317;
padding: 10px 0;
}
.search-results li.hidden {
display: none;
}
.search-results a {
font-weight: 700;
}
.search-results .module-tag {
display: inline-block;
margin-left: 8px;
padding: 2px 6px;
border: 1px solid #8a4a36;
background: #2a1713;
color: #f2d6c2;
font-size: 12px;
}
.search-results .result-path {
margin-top: 4px;
color: #c8a995;
font-size: 12px;
}
.footer {
max-width: 1440px;
margin: 0 auto;
padding: 0 20px 28px;
color: #b89481;
font-size: 12px;
}
.doc > * {
min-width: 0;
}
@media (max-width: 960px) {
.layout {
grid-template-columns: 1fr;
}
.content-grid {
grid-template-columns: 1fr;
}
.toc-panel {
position: static;
}
}
</style>
</head>
<body>
<div class="topbar">
<div class="topbar-inner">
<div class="brand"><a href="../index.html">AIVI / oapy API 中文文档</a></div>
<div class="tabs"><a class="tab" href="../base/index.html">base</a><a class="tab" href="../common/index.html">common</a><a class="tab" href="../cms/index.html">cms</a><a class="tab active" href="../dm/index.html">dm</a><a class="tab" href="../design/index.html">design</a><a class="tab" href="../tech/index.html">tech</a><a class="tab" href="../wafer/index.html">wafer</a></div>
</div>
</div>
<div class="layout">
<aside class="sidebar"><div class="sidebar-panel"><div class="sidebar-title">模块</div><div class="sidebar-body"><ul><li><a href="../classes.html">全部类</a></li><li><a href="../base/index.html">base</a></li><li><a href="../common/index.html">common</a></li><li><a href="../cms/index.html">cms</a></li><li><a class="active-link" href="../dm/index.html">dm</a></li><li><a href="../design/index.html">design</a></li><li><a href="../tech/index.html">tech</a></li><li><a href="../wafer/index.html">wafer</a></li></ul></div></div><div class="sidebar-panel"><div class="sidebar-title">dm 类</div><div class="sidebar-body"><input class="sidebar-search" type="search" placeholder="筛选类" data-class-filter><ul><li data-class-item data-class-name="oacell"><a href="oaCell.html">oaCell</a></li><li data-class-item data-class-name="oacelldmdata"><a href="oaCellDMData.html">oaCellDMData</a></li><li data-class-item data-class-name="oacellview"><a href="oaCellView.html">oaCellView</a></li><li data-class-item data-class-name="oacellviewdmdata"><a href="oaCellViewDMData.html">oaCellViewDMData</a></li><li data-class-item data-class-name="oadmattr"><a href="oaDMAttr.html">oaDMAttr</a></li><li data-class-item data-class-name="oadmattrarray"><a href="oaDMAttrArray.html">oaDMAttrArray</a></li><li data-class-item data-class-name="oadmcontainer"><a href="oaDMContainer.html">oaDMContainer</a></li><li data-class-item data-class-name="oadmdata"><a href="oaDMData.html">oaDMData</a></li><li data-class-item data-class-name="oadmdatatype"><a href="oaDMDataType.html">oaDMDataType</a></li><li data-class-item data-class-name="oadmerror"><a href="oaDMError.html">oaDMError</a></li><li data-class-item data-class-name="oadmexception"><a href="oaDMException.html">oaDMException</a></li><li data-class-item data-class-name="oadmfile"><a href="oaDMFile.html">oaDMFile</a></li><li data-class-item data-class-name="oadmlockstatus"><a href="oaDMLockStatus.html">oaDMLockStatus</a></li><li data-class-item data-class-name="oadmobject"><a class="active-link" href="oaDMObject.html">oaDMObject</a></li><li data-class-item data-class-name="oadmobjectiter"><a href="oaDMObjectIter.html">oaDMObjectIter</a></li><li data-class-item data-class-name="oadmobjectstatusref"><a href="oaDMObjectStatusRef.html">oaDMObjectStatusRef</a></li><li data-class-item data-class-name="oadmobjectstatusrefiter"><a href="oaDMObjectStatusRefIter.html">oaDMObjectStatusRefIter</a></li><li data-class-item data-class-name="oadmobjectversionref"><a href="oaDMObjectVersionRef.html">oaDMObjectVersionRef</a></li><li data-class-item data-class-name="oadmobjectversionrefiter"><a href="oaDMObjectVersionRefIter.html">oaDMObjectVersionRefIter</a></li><li data-class-item data-class-name="oadmpluginerror"><a href="oaDMPlugInError.html">oaDMPlugInError</a></li><li data-class-item data-class-name="oalib"><a href="oaLib.html">oaLib</a></li><li data-class-item data-class-name="oalibaccess"><a href="oaLibAccess.html">oaLibAccess</a></li><li data-class-item data-class-name="oalibaccesslevel"><a href="oaLibAccessLevel.html">oaLibAccessLevel</a></li><li data-class-item data-class-name="oalibdmdata"><a href="oaLibDMData.html">oaLibDMData</a></li><li data-class-item data-class-name="oalibdatatype"><a href="oaLibDataType.html">oaLibDataType</a></li><li data-class-item data-class-name="oalibdef"><a href="oaLibDef.html">oaLibDef</a></li><li data-class-item data-class-name="oalibdeflist"><a href="oaLibDefList.html">oaLibDefList</a></li><li data-class-item data-class-name="oalibdeflistmem"><a href="oaLibDefListMem.html">oaLibDefListMem</a></li><li data-class-item data-class-name="oalibdeflistref"><a href="oaLibDefListRef.html">oaLibDefListRef</a></li><li data-class-item data-class-name="oalibmode"><a href="oaLibMode.html">oaLibMode</a></li><li data-class-item data-class-name="oareservedviewtype"><a href="oaReservedViewType.html">oaReservedViewType</a></li><li data-class-item data-class-name="oasaverecovertype"><a href="oaSaveRecoverType.html">oaSaveRecoverType</a></li><li data-class-item data-class-name="oavccap"><a href="oaVCCap.html">oaVCCap</a></li><li data-class-item data-class-name="oavcmessagetype"><a href="oaVCMessageType.html">oaVCMessageType</a></li><li data-class-item data-class-name="oavcobserver"><a href="oaVCObserver.html">oaVCObserver</a></li><li data-class-item data-class-name="oavcobservercollection"><a href="oaVCObserverCollection.html">oaVCObserverCollection</a></li><li data-class-item data-class-name="oavcobserveriter"><a href="oaVCObserverIter.html">oaVCObserverIter</a></li><li data-class-item data-class-name="oavcobserverresult"><a href="oaVCObserverResult.html">oaVCObserverResult</a></li><li data-class-item data-class-name="oavcoperation"><a href="oaVCOperation.html">oaVCOperation</a></li><li data-class-item data-class-name="oavcquerydepth"><a href="oaVCQueryDepth.html">oaVCQueryDepth</a></li><li data-class-item data-class-name="oavcsystem"><a href="oaVCSystem.html">oaVCSystem</a></li><li data-class-item data-class-name="oavcversion"><a href="oaVCVersion.html">oaVCVersion</a></li><li data-class-item data-class-name="oavcversioniter"><a href="oaVCVersionIter.html">oaVCVersionIter</a></li><li data-class-item data-class-name="oaversioncomp"><a href="oaVersionComp.html">oaVersionComp</a></li><li data-class-item data-class-name="oaview"><a href="oaView.html">oaView</a></li><li data-class-item data-class-name="oaviewdmdata"><a href="oaViewDMData.html">oaViewDMData</a></li><li data-class-item data-class-name="oaviewtype"><a href="oaViewType.html">oaViewType</a></li></ul></div></div></aside>
<main class="content">
<div class="content-grid">
<div class="doc">
<div class="crumbs"><a href="../index.html">首页</a> / <a href="index.html">dm</a> / oaDMObject</div>
<h1 id="oadmobject">oaDMObject</h1>
<p><strong>模块</strong>: <code>oapy._oa._dm</code>
<strong>导入</strong>: <code>from oapy._oa import _dm</code></p>
<h2 id="_1">概览</h2>
<p><code>oaDMObject</code><code>oapy</code> 中可用,可通过 <code>_dm</code> 模块访问。</p>
<p>本页汇总 <code>oaDMObject</code> 当前在 <code>oapy</code> 中可用的 Python 接口。</p>
<h2 id="_2">详细说明</h2>
<p>The oaDMObject class is an abstract base for all OpenAccess DM objects。 Child classes are the oaDMContainer classes -- oaCell , oaView , oaCellView and oaLib -- and oaDMFile 。 Note: The oaDMObject function descriptions indicate if access to the library associated with the object is required for the called function。 If the access type must be write access, this requirement also is noted。 For more information on library access, see Library Access in the detailed description for oaLib and OpenAccess 2.2 Libraries and Design Management in the Programmers Guide。</p>
<h2 id="_3">方法总览</h2>
<table>
<thead>
<tr>
<th>状态</th>
<th>Python 调用</th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td><code>obj.isContainer()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getLib()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getTempFile(path, sameFileSystem=false)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getVCStatus(mask=oacVCStatusAll)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getVersions()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.update(version, recurse=true, options=NULL)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.makeEditable(lock, recurse=true, options=NULL)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.cancelEdit(recurse=true, options=NULL)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.commitEdits(comment, recurse=true, keepEditable=false, options=NULL)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.setControlled(recurse=true, options=NULL)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.unsetControlled(recurse=true, keepLocalRep=true, options=NULL)</code></td>
</tr>
</tbody>
</table>
<h2 id="_4">方法说明</h2>
<h3 id="objiscontainer"><code>obj.isContainer()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.isContainer()</code></p>
<p>This function returns true if this object is an oaDMContainer object implying that it is either an oaLib , oaCell , oaView or an oaCellView object。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _dm
# assume obj is a oaDMObject
obj.isContainer()
</code></pre>
<h3 id="objgetlib"><code>obj.getLib()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getLib()</code></p>
<p>This function returns a pointer to the library database associated with this object。 This function requires access to the library associated with this object (through a call to oaLib::getAccess )。 An oacLibAccessDenied exception is thrown if access to the library does not exist。 For more information on library access, see Library Access in the detailed description for oaLib and OpenAccess 2.2 Libraries and Design Management in the Programmers Guide。</p>
<p><strong>异常</strong></p>
<ul>
<li><code>oacInvalidContainer</code></li>
<li><code>oacLibAccessDenied</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _dm
# assume obj is a oaDMObject
obj.getLib()
</code></pre>
<h3 id="objgettempfilepath-samefilesystemfalse"><code>obj.getTempFile(path, sameFileSystem=false)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getTempFile(path, sameFileSystem=false)</code></p>
<p>This function returns a path to a new, unique, temporary file which is associated with this object。 Temporary files are not DM objects, and the management of such files is left up to the application。 Temporary files are expected to be process-specific。 The user may specify the directory to create the temporary file in by using the writePath argument in oaLib::open() 。 If the library being used has been created in the process with oaLib::create() , then the library directory is assumed to be writeable and is used for temporary file creation。 This function requires access to the library associated with this object (through a call to oaLib::getAccess )。 An oacLibAccessDenied exception is thrown if access to the library does not exist。 For more information on library access, see Library Access in the detailed description for oaLib and OpenAccess 2.2 Libraries and Design Management in the Programmers Guide。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>path</code>: returned unique path to the temp file associated with this object。</li>
<li><code>sameFileSystem</code>: A boolean flag indicating whether the temp file should be created on the same file system as the one that the library is on。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacLibAccessDenied</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _dm
# assume obj is a oaDMObject
obj.getTempFile(path, sameFileSystem=false)
</code></pre>
<h3 id="objgetvcstatusmaskoacvcstatusall"><code>obj.getVCStatus(mask=oacVCStatusAll)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getVCStatus(mask=oacVCStatusAll)</code></p>
<p>This function is only active when a Version Control system is in place for the library this object is in。 It gets the version control status of the object。 This status only relates to the given object and is not hierarchical。 This function requires access to the library associated with this object (through a call to oaLib::getAccess )。 An oacLibAccessDenied exception is thrown if access to the library does not exist。 For more information on library access, see Library Access in the detailed description for oaLib and OpenAccess 2.2 Libraries and Design Management in the Programmers Guide。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>mask</code>: this parameter is used to limit the status bits being retrieved。 Some types of status are more expensive to discover than others; use this mask to optimize performance。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacLibAccessDenied</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _dm
# assume obj is a oaDMObject
obj.getVCStatus(mask=oacVCStatusAll)
</code></pre>
<h3 id="objgetversions"><code>obj.getVersions()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getVersions()</code></p>
<p>This function gets the versions that exist for this object in the form of an oaVCVersionIter 。 This information is for this object only and is not recursive。 This function requires access to the library associated with this object (through a call to oaLib::getAccess )。 An oacLibAccessDenied exception is thrown if access to the library does not exist。 For more information on library access, see Library Access in the detailed description for oaLib and OpenAccess 2.2 Libraries and Design Management in the Programmers Guide。</p>
<p><strong>异常</strong></p>
<ul>
<li><code>oacLibAccessDenied</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _dm
# assume obj is a oaDMObject
obj.getVersions()
</code></pre>
<h3 id="objupdateversion-recursetrue-optionsnull"><code>obj.update(version, recurse=true, options=NULL)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.update(version, recurse=true, options=NULL)</code></p>
<p>This function is only active when a Version Control system is in place for the library this object is in。 It will retrieve the given version of the object from the repository。 If the object is current, it will be left unchanged; if it didn't previously exist in the local directory, it will be retrieved。 This function requires write access to the library associated with this object (through a call to oaLib::getAccess )。 An oacLibAccessDenied exception is thrown if write access to the library does not exist。 For more information on library access, see Library Access in the detailed description for oaLib and OpenAccess 2.2 Libraries and Design Management in the Programmers Guide。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>version</code>: the version of the object to retrieve from version control。 Use an oaVCVersion created with the default constructor to denote the most recent version in the repository。</li>
<li><code>recurse</code>: signals to the version control system to apply this operation to all children of this object。</li>
<li><code>options</code>: a string that represents options that are specific to the version control system that's install for this library。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacLibAccessDenied</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _dm
# assume obj is a oaDMObject
obj.update(version, recurse=true, options=NULL)
</code></pre>
<h3 id="objmakeeditablelock-recursetrue-optionsnull"><code>obj.makeEditable(lock, recurse=true, options=NULL)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.makeEditable(lock, recurse=true, options=NULL)</code></p>
<p>This function is only active when a Version Control system is in place for the library this object is in。 It will set the version control access mode of the object (and it's children if "recurse" is "true") to be editable。 On some version control systems this could result in a check-out of the underlying file(s)。 This function requires access to the library associated with this object (through a call to oaLib::getAccess )。 An oacLibAccessDenied exception is thrown if access to the library does not exist。 For more information on library access, see Library Access in the detailed description for oaLib and OpenAccess 2.2 Libraries and Design Management in the Programmers Guide。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>lock</code>: if this parameter is true, the file(s) will be locked after this call returns。</li>
<li><code>recurse</code>: signals to the version control system to apply this operation to all children of this object。</li>
<li><code>options</code>: a string that represents options that are specific to the version control system that's install for this library。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacLibAccessDenied</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _dm
# assume obj is a oaDMObject
obj.makeEditable(lock, recurse=true, options=NULL)
</code></pre>
<h3 id="objcanceleditrecursetrue-optionsnull"><code>obj.cancelEdit(recurse=true, options=NULL)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.cancelEdit(recurse=true, options=NULL)</code></p>
<p>This function is only active when a Version Control system is in place for the library this object is in。 It will cancel the editable state of the object (and it's children if "recurse" is set to "true")。 Note that in most VC systems this operation will cause the underlying file(s) to revert to what's currently in the repository。 This function requires access to the library associated with this object (through a call to oaLib::getAccess )。 An oacLibAccessDenied exception is thrown if access to the library does not exist。 For more information on library access, see Library Access in the detailed description for oaLib and OpenAccess 2.2 Libraries and Design Management in the Programmers Guide。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>recurse</code>: signals to the version control system to apply this operation to all children of this object。</li>
<li><code>options</code>: a string that represents options that are specific to the version control system that's install for this library。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacLibAccessDenied</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _dm
# assume obj is a oaDMObject
obj.cancelEdit(recurse=true, options=NULL)
</code></pre>
<h3 id="objcommiteditscomment-recursetrue-keepeditablefalse-optionsnull"><code>obj.commitEdits(comment, recurse=true, keepEditable=false, options=NULL)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.commitEdits(comment, recurse=true, keepEditable=false, options=NULL)</code></p>
<p>This function is only active when a Version Control system is in place for the library this object is in。 It will commit the current set of edits to this object to the version control system's repository。 This function requires access to the library associated with this object (through a call to oaLib::getAccess )。 An oacLibAccessDenied exception is thrown if access to the library does not exist。 For more information on library access, see Library Access in the detailed description for oaLib and OpenAccess 2.2 Libraries and Design Management in the Programmers Guide。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>comment</code>: the comment that will be stored with the new version of this object in the repository。</li>
<li><code>recurse</code>: signals to the version control system to apply this operation to all children of this object。</li>
<li><code>keepEditable</code>: setting this to true is equivalent to calling "makeEditable" immediately after this function。</li>
<li><code>options</code>: a string that represents options that are specific to the version control system that's install for this library。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacLibAccessDenied</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _dm
# assume obj is a oaDMObject
obj.commitEdits(comment, recurse=true, keepEditable=false, options=NULL)
</code></pre>
<h3 id="objsetcontrolledrecursetrue-optionsnull"><code>obj.setControlled(recurse=true, options=NULL)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.setControlled(recurse=true, options=NULL)</code></p>
<p>This function is only active when a Version Control system is in place for the library this object is in。 It adds the object to the version control system's repository。 This function requires access to the library associated with this object (through a call to oaLib::getAccess )。 An oacLibAccessDenied exception is thrown if access to the library does not exist。 For more information on library access, see Library Access in the detailed description for oaLib and OpenAccess 2.2 Libraries and Design Management in the Programmers Guide。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>recurse</code>: signals to the version control system to apply this operation to all children of this object。</li>
<li><code>options</code>: a string that represents options that are specific to the version control system that's install for this library。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacLibAccessDenied</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _dm
# assume obj is a oaDMObject
obj.setControlled(recurse=true, options=NULL)
</code></pre>
<h3 id="objunsetcontrolledrecursetrue-keeplocalreptrue-optionsnull"><code>obj.unsetControlled(recurse=true, keepLocalRep=true, options=NULL)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.unsetControlled(recurse=true, keepLocalRep=true, options=NULL)</code></p>
<p>This function is only active when a Version Control system is in place for the library this object is in。 It will remove the object from the version control systems repository。 if keepLocalRep is "false" the local file will also be removed。 This function requires access to the library associated with this object (through a call to oaLib::getAccess )。 An oacLibAccessDenied exception is thrown if access to the library does not exist。 For more information on library access, see Library Access in the detailed description for oaLib and OpenAccess 2.2 Libraries and Design Management in the Programmers Guide。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>recurse</code>: signals to the version control system to apply this operation to all children of this object。</li>
<li><code>keepLocalRep</code>: set to true to prevent the local file from being removed from disk after it is removed from the version control repository。</li>
<li><code>options</code>: a string that represents options that are specific to the version control system that's install for this library。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacLibAccessDenied</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _dm
# assume obj is a oaDMObject
obj.unsetControlled(recurse=true, keepLocalRep=true, options=NULL)
</code></pre>
</div>
<aside class="toc-panel"><button class="toc-toggle" type="button" data-toc-toggle aria-expanded="false"><span>方法</span><span class="toc-toggle-indicator">展开</span></button><div class="toc-body"><h2>方法</h2><ul><li><a href="#obj-iscontainer"><code>obj.isContainer()</code></a></li><li><a href="#obj-getlib"><code>obj.getLib()</code></a></li><li><a href="#obj-gettempfile-path-samefilesystem-false"><code>obj.getTempFile(path, sameFileSystem=false)</code></a></li><li><a href="#obj-getvcstatus-mask-oacvcstatusall"><code>obj.getVCStatus(mask=oacVCStatusAll)</code></a></li><li><a href="#obj-getversions"><code>obj.getVersions()</code></a></li><li><a href="#obj-update-version-recurse-true-options-null"><code>obj.update(version, recurse=true, options=NULL)</code></a></li><li><a href="#obj-makeeditable-lock-recurse-true-options-null"><code>obj.makeEditable(lock, recurse=true, options=NULL)</code></a></li><li><a href="#obj-canceledit-recurse-true-options-null"><code>obj.cancelEdit(recurse=true, options=NULL)</code></a></li><li><a href="#obj-commitedits-comment-recurse-true-keepeditable-false-options-null"><code>obj.commitEdits(comment, recurse=true, keepEditable=false, options=NULL)</code></a></li><li><a href="#obj-setcontrolled-recurse-true-options-null"><code>obj.setControlled(recurse=true, options=NULL)</code></a></li><li><a href="#obj-unsetcontrolled-recurse-true-keeplocalrep-true-options-null"><code>obj.unsetControlled(recurse=true, keepLocalRep=true, options=NULL)</code></a></li></ul></div></aside>
</div>
</main>
</div>
<div class="footer">oapy 是 AIVI 项目的一部分。此站点提供当前 oapy Python API 的中文文档。</div>
<script>
document.addEventListener("DOMContentLoaded", () => {
const input = document.querySelector("[data-class-filter]");
if (input) {
input.addEventListener("input", () => {
const term = input.value.trim().toLowerCase();
document.querySelectorAll("[data-class-item]").forEach((item) => {
const name = item.getAttribute("data-class-name") || "";
item.classList.toggle("hidden", term && !name.includes(term));
});
});
}
const globalInput = document.querySelector("[data-global-search]");
if (globalInput) {
globalInput.addEventListener("input", () => {
const term = globalInput.value.trim().toLowerCase();
document.querySelectorAll("[data-search-item]").forEach((item) => {
const name = item.getAttribute("data-search-name") || "";
const module = item.getAttribute("data-search-module") || "";
const visible = !term || name.includes(term) || module.includes(term);
item.classList.toggle("hidden", !visible);
});
});
}
document.querySelectorAll("[data-toc-toggle]").forEach((button) => {
button.addEventListener("click", () => {
const panel = button.closest(".toc-panel");
if (!panel) return;
const isOpen = panel.classList.toggle("open");
button.setAttribute("aria-expanded", isOpen ? "true" : "false");
const indicator = button.querySelector(".toc-toggle-indicator");
if (indicator) {
indicator.textContent = isOpen ? "Hide" : "Show";
}
});
});
});
</script>
</body>
</html>