Is there a relevant manual or documentation describing the data storage mode of Revit?

Revit is a data integration software, we can see a lot of model/component information, such as geometric information, material information and so on.

Then inside Revit, there must be something similar to a database, which stores this information, shows it to us, stores geometric information, material information, model mapping information, etc. in the library, and displays them to users when they are used in drawing Look.

The question is coming, how can we see this internal storage mechanism? Is there a relevant manual or documentation describing the data storage mode of Revit?

Comments

  • Typically, in proprietary software, it is not possible to easily see how they store things in files, nor how they store things internally in the software memory. This is one of the disadvantages of proprietary software. With free software, all this is completely transparent to the user.

    You can perhaps make some assumptions of the Revit object model from the Revit SDK / API documentation.

  • @Moult said:
    Typically, in proprietary software, it is not possible to easily see how they store things in files, nor how they store things internally in the software memory. This is one of the disadvantages of proprietary software. With free software, all this is completely transparent to the user.

    You can perhaps make some assumptions of the Revit object model from the Revit SDK / API documentation.

    Yeah. I mainly do ifc related research before, and don't know much about Revit API. So I hereby post a consultation, hoping to get answers from experts in the field of API

  • @Moult said:
    Typically, in proprietary software, it is not possible to easily see how they store things in files, nor how they store things internally in the software memory. This is one of the disadvantages of proprietary software. With free software, all this is completely transparent to the user.

    You can perhaps make some assumptions of the Revit object model from the Revit SDK / API documentation.

    I also asked the same question in the Autodesk forum. If there are good suggestions there, I will update this post as soon as possible.

    Make progress together!

  • I recommend you to learn Blender, IfcOpenShell or FreeCAD API instead but I know Revit API pretty well…
    Revit File as Structured Storage
    If you have to. I highly recommend you to use pyRevit and revitpythonshell :

    duncantlang
  • edited June 2020

    @Cyril said:
    I recommend you to learn Blender, IfcOpenShell or FreeCAD API instead but I know Revit API pretty well…
    Revit File as Structured Storage
    If you have to. I highly recommend you to use pyRevit and revitpythonshell :

    Fine!Now I have used Lookup to snoop the database on Revit. And I will try to pyRevit again.

    By the way, I saw the SSViewer mentioned in Notion, but unfortunately it can't detect the storage format of RVT file, as shown below:

    Thank you again!

  • edited June 2020

    Revit Lookup was recently installed, and after clicking it, a large amount of information is given in the form of a structured list. Some of this information is relatively easy to understand but some is difficult to understand. I think this information will cause trouble for beginners, so I made some conclusions myself.

    PS: In our community, I believe that most users already have enough relevant knowledge, but if a beginner sees my share, I will feel very happy.

    The information in the above picture is actually the various classes in the REVIT API DOC. There are properties, methods and other logic in the class. For example, let's say that the first "element" in my screenshot (I don't know if that's right or wrong) analytical link type. There is a dedicated AnalyticalLinkType Class in DOC and AnalyticalLinkType Members in the See Also section. After clicking inside, there are methods and properties. Properties as shown below:

  • edited June 2020

    The object you are pointing at is an AnalyticalLinkType Class not an AnalyticalLink Class. On class page you have a text description and inheritance hirerarchy

    From last line, you know that to import this class you need to :

    from Autodesk.Revit.DB import AnalyticalLinkType
    

    Autodesk, Revit and DB are namespaces you cannot import it.
    Then you can check members to see what properties and methods this object has :

    Some objects also have a constructor. Some objects don't or have a document method to create it.
    Checkout Ehsan Python + Revit API Course videos I linked before to learn more.

    shanmama
  • edited June 2020

    @Cyril said:
    The object you are pointing at is an AnalyticalLinkType Class not an AnalyticalLink Class. On class page you have a text description and inheritance hirerarchy

    From last line, you know that to import this class you need to :

    from Autodesk.Revit.DB import AnalyticalLinkType
    

    Autodesk, Revit and DB are namespaces you cannot import it.
    Then you can check members to see what properties and methods this object has :

    Some objects also have a constructor. Some objects don't or have a document method to create it.
    Checkout Ehsan Python + Revit API Course videos I linked before to learn more.

    I have modified the picture and installed pyRevit. Thank you again!

Sign In or Register to comment.