Share

ShapeImporter Class

A utility class that supports conversion of geometry stored in an external format into a Revit geometry objects.

Inheritance Hierarchy

System.Object
  Autodesk.Revit.DB.ShapeImporter


Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.3.0.0 (25.3.0.0)

Syntax

C#

public class ShapeImporter : IDisposable

The ShapeImporter type exposes the following members.

Constructors

 NameDescription
Public methodShapeImporter Default constructor. Initializes an instance of ShapeImporter that will automatically recognize the file format from its extension (ShapeImporterSourceFormat.Auto).

Properties

 NameDescription
Public propertyDefaultLengthUnit The length unit to be used if not specified when the input is a unitless SAT file.
Public propertyInputFormat The format of the incoming data.
Public propertyIsValidObject Specifies whether the .NET object represents a valid Revit entity.

Methods

 NameDescription
Public methodConvert Converts the geometry stored in the external format into a collection of Revit geometry objects.
Public methodDisposeReleases all resources used by the ShapeImporter
Public methodEqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
Public methodGetHashCodeServes as the default hash function.
(Inherited from Object)
Public methodGetTypeGets the Type of the current instance.
(Inherited from Object)
Public methodStatic memberIsServiceAvailable Checks whether the data conversion service is available.
Public methodSetDefaultLengthUnit Sets the length unit to be used when the input is a unitless SAT file.
Public methodToStringReturns a string that represents the current object.
(Inherited from Object)

Remarks

See ShapeImporterSourceFormat for the list of supported formats.

Example

C#

public void ReadSATFile(Document revitDoc)
{
    // Allow the user to select a SAT file.
    OpenFileDialog ofd = new OpenFileDialog();
    ofd.Filter = "SAT Files (*.sat)|*.sat";

    if (DialogResult.OK == ofd.ShowDialog())
    {
        ShapeImporter shapeImporter = new ShapeImporter();
        shapeImporter.InputFormat = ShapeImporterSourceFormat.SAT; 
        IList<GeometryObject> shapes = shapeImporter.Convert(revitDoc, ofd.FileName);

        if (shapes.Count != 0)
        {
            using (Transaction tr = new Transaction(revitDoc, "Create a DirectShape"))
            {
                tr.Start();

                DirectShape dsImportedSat = DirectShape.CreateElement(revitDoc, new ElementId(BuiltInCategory.OST_Walls));
                dsImportedSat.SetShape(shapes);

                tr.Commit();
            }
        }
    }
}

VB

Public Sub ReadSATFile(revitDoc As Document)
    ' Allow the user to select a SAT file.
    Dim ofd As New OpenFileDialog()
    ofd.Filter = "SAT Files (*.sat)|*.sat"

    If DialogResult.OK = ofd.ShowDialog() Then
        Dim shapeImporter As New ShapeImporter()
        shapeImporter.InputFormat = ShapeImporterSourceFormat.SAT
        Dim shapes As IList(Of GeometryObject) = shapeImporter.Convert(revitDoc, ofd.FileName)

        If shapes.Count <> 0 Then
            Using tr As New Transaction(revitDoc, "Create a DirectShape")
                tr.Start()

                Dim dsImportedSat As DirectShape = DirectShape.CreateElement(revitDoc, New ElementId(BuiltInCategory.OST_Walls))
                dsImportedSat.SetShape(shapes)

                tr.Commit()
            End Using
        End If
    End If
End Sub

See Also

Reference

Was this information helpful?