

.. _sphx_glr_examples_04_metadata:

.. _metadata:

Metadata, units, and layers
===========================

Examples that exercise the ``cad.*`` metadata schema: units handling,
DXF layer splits, color groupings, and the
:class:`pyvista_cad.CadMetadata` bag.


.. raw:: html

  <div id='sg-tag-list' class='sphx-glr-tag-list'></div>


.. raw:: html

    <div class="sphx-glr-thumbnails">

.. thumbnail-parent-div-open

.. raw:: html

    <div class="sphx-glr-thumbcontainer" tooltip="The .cad accessor adds walk, find, and flatten for hierarchical CAD assemblies. walk yields (path, block) pairs; find filters by metadata predicates; flatten collapses every leaf to a single-level MultiBlock with path-named blocks.">

.. only:: html

  .. image:: /examples/04_metadata/images/thumb/sphx_glr_assembly_tree_walk_thumb.png
    :alt:

  :doc:`/examples/04_metadata/assembly_tree_walk`

.. raw:: html

      <div class="sphx-glr-thumbnail-title">Walk and filter a real IFC assembly</div>
    </div>


.. raw:: html

    <div class="sphx-glr-thumbcontainer" tooltip="3MF stores one &lt;object&gt; per mesh. When you write a pyvista.MultiBlock, every block name and cad.label is preserved on the way in and on the way out.">

.. only:: html

  .. image:: /examples/04_metadata/images/thumb/sphx_glr_color_aware_3mf_thumb.png
    :alt:

  :doc:`/examples/04_metadata/color_aware_3mf`

.. raw:: html

      <div class="sphx-glr-thumbnail-title">Per-object names round-trip through 3MF</div>
    </div>


.. raw:: html

    <div class="sphx-glr-thumbcontainer" tooltip="A STEP file with multiple parts arrives as a pyvista.MultiBlock. Per-part labels and colors are attached as cad.label / cad.color field data. Use .cad.find and .cad.walk to navigate the tree.">

.. only:: html

  .. image:: /examples/04_metadata/images/thumb/sphx_glr_inspect_step_assembly_thumb.png
    :alt:

  :doc:`/examples/04_metadata/inspect_step_assembly`

.. raw:: html

      <div class="sphx-glr-thumbnail-title">Inspect a STEP assembly</div>
    </div>


.. raw:: html

    <div class="sphx-glr-thumbcontainer" tooltip="Use the .cad accessor to fan a single pyvista.PolyData back out into a pyvista.MultiBlock keyed by layer name. Each block contains only the cells originally drawn on that layer.">

.. only:: html

  .. image:: /examples/04_metadata/images/thumb/sphx_glr_split_by_layer_dxf_thumb.png
    :alt:

  :doc:`/examples/04_metadata/split_by_layer_dxf`

.. raw:: html

      <div class="sphx-glr-thumbnail-title">Split a DXF drawing by layer</div>
    </div>


.. raw:: html

    <div class="sphx-glr-thumbcontainer" tooltip="The cad.units field-data slot records the document unit on read and write. units_conversion_factor returns the scalar to multiply points by to reach a target unit, so an mm-defined part can move into meters (for FEA) or inches (for US-customary CAM) without leaving the pipeline.">

.. only:: html

  .. image:: /examples/04_metadata/images/thumb/sphx_glr_units_and_conversion_thumb.png
    :alt:

  :doc:`/examples/04_metadata/units_and_conversion`

.. raw:: html

      <div class="sphx-glr-thumbnail-title">Units and unit conversion</div>
    </div>


.. thumbnail-parent-div-close

.. raw:: html

    </div>


.. toctree::
   :hidden:

   /examples/04_metadata/assembly_tree_walk
   /examples/04_metadata/color_aware_3mf
   /examples/04_metadata/inspect_step_assembly
   /examples/04_metadata/split_by_layer_dxf
   /examples/04_metadata/units_and_conversion

