Изменение элементов инструмента рисования размеров ARCHICAD в файлах XML
Я делаю список чертежей/элементов нестандартных размеров с помощью досок Archiframe. Я начал с изменения ArchiFrameBlocks.xml и с помощью «Все части в один столбец с одним кадром». ID, он делает это по длине. Прикреплю пример. В идеале я хотел бы, чтобы список шел сверху вниз 101,102,103,104 и т. д. Любые предложения очень ценятся.
Если вам нужна дополнительная информация, свяжитесь со мной. 1: как это выглядит сейчас 2: Стена, которую я сделал в ARCHICAD3: В идеале я хотел бы, чтобы она выглядела так [1]: https://stackru.com/images/a306ebb5051dd42ff910f899b609033c6bef0765.jpg[2]: https://stackru.com/images/17d3cdd08aa1570fc5c1bfd8e552ea290e9a9deb.jpg[3]: https://stackru.com/images/c31d468c0e46b6a8c6314f57f9d62461a3c02ee2.jpg
<dimdrawing id="dim10_all2single_onecol" name="All parts to single frame single column" name_fin="kaikki osat yhteen kehykseen ja yhteen sarakkeeseen">
<!--
GENERAL contains the settings for a group of projections + titles + dimensions + textblocks.
:param groupminwidth: gives minimum value in meter for the width of the whole group of layouts
:param groupminheight: gives minimum value in meter for the height of the whole group of layouts
:param groupmaxwidth: gives maximum values in meter for the width of the whole group of layouts
:param groupmaxheight: gives maximum values in meter for the height of the whole group of layouts
:param boxmargins: margins around each layout (left, right, top, bottom)
-->
<general groupminwidth="10.0" groupminheight="3.0" groupmaxwidth="6.0" groupmaxheight="80.0" boxmargins="0.01,0.01,0.01,0.01">
<!-- it may contain default settings for all children, and this could be overwritten later -->
<settings>
<elemparam name="fontname">Arial</elemparam>
<elemparam name="fontsize">1.1</elemparam>
<elemparam name="fontsizemodel">55</elemparam>
<elemparam name="fontstyle"></elemparam>
<elemparam name="pen">1</elemparam>
</settings>
</general>
<!--
DIMENSIONLINESETTINGS contains the default settings for all dimension lines, and then individual parameters and settings for each dimension line, separately.
-->
<dimensionlinesettings>
<!-- the following DRILL block with midout parameter is optional, you can overwrite the default setting (midout=1), if the value is 0, then the drillings with center point outside of the object will not have dim lines. -->
<drill midout="1"></drill>
<!-- the following SETTINGS block is optional, you can overwrite the default setting (coming from general tag), the result will be the base settings for dimension line definitions -->
<settings>
<elemparam name="fontname">Arial</elemparam>
<elemparam name="fontsize">0</elemparam>
<elemparam name="fontstyle"></elemparam>
<elemparam name="markersize">2</elemparam>
<elemparam name="pen">1</elemparam>
</settings>
<!--
Each DIMLINE tag defines the parameters and setting of a certain type of dimension line.
:param side: defines positioning, according to the projection (can be top, bottom, left, right, both)
:param gap: defines distance from the last element on that side, in meter (you can position dimlines relative to each other)
:param offset: defines distance from the projection, in meter (you can position dimlines in absolute positions, it will overwrite GAP parameter)
:param showalways: 0 means that this dimline can be skipped (if it contains no new data), 1 means it must be shown
Their SETTINGS block is optional. -->
</dimensionlinesettings>
<!--
PROJECTION contains the settings for one specific element projection. All sides must have distinct definition, so many <projection> tag can appear in one style.
:param type: this tells which side is projected. Can be "top", "bottom-old", "front", "back-old", "back-real", "begin", "end", "bottom-real".
:param margins: margins in a row (left, right, top, bottom)
:param showalways: 0 means that this projection can be skipped (if it contains no new data in the dimlines), 1 means it must be shown (it also applies to all of its dimlines)
-->
<projection id="frontproj" type="front" margins="0.1,0.1,0.1,0.1" showalways="0">
<!--
TITLE contains the settings for the title of this projection (this tag is optional).
:param value: the text to write out for this title
:param side: on which side of the projection should it be placed
:param align: -1 / 0 / 1 for left, center, right OR top, middle, bottom (depending on the side parameter)
:param offset: offset from projection (if x or y axis, that depends on the side parameter)
-->
<title value="" side="middle" align="0" offset="0.10">
</title>
<!-- the following SETTINGS block is optional, you can overwrite the default setting (coming from general tag), the result will be applied only to this projection (view of an element) -->
<settings>
<elemparam name="linetype">1</elemparam>
<elemparam name="pen">1</elemparam>
<objparam name="#useobjlinetype">0</objparam>
<objparam name="iFillFrom3D">1</objparam>
<objparam name="iFillPen"></objparam>
<objparam name="iFill">0</objparam>
</settings>
</projection>
<projection id="topproj" type="top" margins="0.1,0.1,0.1,0.1" showalways="0">
<title value="TOP" side="top" align="0" offset="0.10">
<settings>
<elemparam name="pen">15</elemparam>
</settings>
</title>
<settings>
<objparam name="#useobjlinetype">0</objparam>
<objparam name="iFillFrom3D">0</objparam>
<objparam name="iFillPen"></objparam>
<objparam name="iFill">0</objparam>
</settings>
</projection>
<projection id="begproj" type="beg" margins="0.1,0.1,0.1,0.1" showalways="0">
<title value="BEGIN" side="left" align="0" offset="0.10" />
<settings>
<objparam name="#useobjlinetype">0</objparam>
<objparam name="iFillFrom3D">0</objparam>
<objparam name="iFillPen"></objparam>
<objparam name="iFill">0</objparam>
</settings>
</projection>
<projection id="endproj" type="end" margins="0.1,0.1,0.1,0.1" showalways="0">
<title value="END" side="right" align="0" offset="0.10" />
<settings>
<objparam name="#useobjlinetype">0</objparam>
<objparam name="iFillFrom3D">0</objparam>
<objparam name="iFillPen"></objparam>
<objparam name="iFill">0</objparam>
</settings>
</projection>
<projection id="backproj" type="back" margins="0.1,0.1,0.1,0.1" showalways="0">
<title value="BACK" side="left" align="0" offset="0.10" />
<settings>
<objparam name="#useobjlinetype">0</objparam>
<objparam name="iFillFrom3D">0</objparam>
<objparam name="iFillPen"></objparam>
<objparam name="iFill">0</objparam>
</settings>
</projection>
<projection id="bottomproj" type="bottom" margins="0.1,0.1,0.1,0.1" showalways="0">
<title value="BOTTOM" side="bottom" align="0" offset="0.10" />
<settings>
<objparam name="#useobjlinetype">0</objparam>
<objparam name="iFillFrom3D">0</objparam>
<objparam name="iFillPen"></objparam>
<objparam name="iFill">0</objparam>
</settings>
</projection>
<!--
TEXTBLOCK contains the settings and content for a block of text.
:param margins: margins in a row (left, right, top, bottom)
:param minwidth: minimum width in meter (optional)
:param maxwidth: maximum width in meter (optional)
:param content: parametrized value to print out (word substitution is applied: [matname], [mat], [quality], [usage] will be replaced with object parameter value, and [count] will be replaced by the number of similar objects)
:param content_LANG: similar to "content", but translated (use word substitution as in content)
-->
<textblock id="text1" margins="6.2,0.1,0.1,-0.2" minwidth="1.0" maxwidth="5.0" side="right" content="Ammount: [count]">
<!-- the following SETTINGS block is optional, you can overwrite the default setting (coming from general tag), the result will be applied only to this textblock -->
<settings>
<elemparam name="fontname">Arial</elemparam>
<elemparam name="fontsize">2</elemparam>
<elemparam name="fontsizemodel">60</elemparam>
<elemparam name="fontstyle"></elemparam>
<elemparam name="pen">1</elemparam>
</settings>
</textblock>
<!--
FRAME is optional for the dim drawings, the <frame> tag can be missing from the style definition. It contains the settings for the frame drawn around the projections, dimlines, texts, etc.
:param foreach: 1=put all different IDs to separate frames (the old way), 0=put one frame around the whole group of plank drawings
:param horizontalgap: if framed dimdrawings are beside each other, this distance will be between the frames
:param verticalgap: if framed dimdrawings are on the top of each other, this distance will be between the frames
:param title: name parameter in the frame object will be filled with this value (#id# will be replaced with ID of a single plank/board, #elemid# will be replaced with the ID of the whole element)
-->
<frame foreach="1" horizontalgap="0.00" verticalgap="0.00" title="Frame #elemid#">
<!-- the following SETTINGS block is optional, you can overwrite the default setting (coming from general tag), the result will be applied only to the frame -->
<settings>
<objparam name="framepen">1</objparam>
</settings>
</frame>
<!--
TABLELAYOUT is optional for the dim drawings, all projections and texts will be drawn on the top of each other, if the <tablelayout> tag is missing from the style definition.
It has only one parameter, "main", which contains an id of a cell. That cell will be in the central, all other elem will relate to the content of that cell.
It contains some <row> tags.
Each <row> tag contains some <cell> tag.
All cells in one row will be drawn beside each other, while rows will be drawn on the top of each other.
CELL tags have parameters to define the content and alignment within.
:param content: can be empty string or an ID of a text or projection element
:param aligntype: can be set to "full" or "main". Full means the whole content will be taken into calculation and the whole size of neighbouring cells will be matched with that. Main means the master part of the content (e.g. projected element drawing without titles and dimension lines) will be aligned to the master parts to the neighbouring cells.
:param alignto: can be empty or an ID of a projection element. If aligntype is main, here you can set the matching cell, instead of the default neighbour.
:param halign: horizontal alignment, can be -1 = left, 0 = center or 1 = right.
:param valign: vertical alignment, can be -1 = top, 0 = middle or 1 = bottom.
:param colspan: can be set to a positive integer. It gives the number of cells merged together in this row, to form this bigger single cell.
:param rowspan: can be set to a positive integer. It gives the number of cells merged together, stepping downward, as in a column. The following rows should skip those cell definitions, which are already merged with rowspan.
-->
<tablelayout main="central">
<row>
<cell content="text1" colspan="1" halign="0" valign="0" aligntype="full" />
</row>
<row>
</row>
<row>
<cell id="central" content="frontproj" halign="0" valign="0" />
</row>
</tablelayout>
</dimdrawing>