Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doubts about datasets #93

Closed
nylvy opened this issue Oct 14, 2022 · 8 comments
Closed

Doubts about datasets #93

nylvy opened this issue Oct 14, 2022 · 8 comments

Comments

@nylvy
Copy link

nylvy commented Oct 14, 2022

Thank you for open sourcing such a great project!
But I have a few questions about Assembly Dataset that I hope you can answer.
Hierarchical information about the assembly dataset, such as Tree, root, etc. There are some variables that I somewhat don't quite understand after reading the paper and in the presentation of Fusion 360 Gallery, as follows:

  1. In the paper you say: "The tree contains this hierarchy information by linking to occurrence UUIDs." Is the tree the whole diagram in Figure 9 right in the paper? Does it include the parts below? (I understand that the parts should be the bodies in the paper.) I may be a bit vague about the definition of the tree.

  2. For example, take an assembly(20215_e2eb3082)that I randomly selected from the Assembly Dataset. Looking at the JSON file, the Tree only contains a dictionary with a key of root and a value of occurrences, but at the root level of the data it contains only components and bodies, which shouldn't mean the same thing as root, right?

  3. Is the 'name' of Occurrence in the dataset the proper name for the component in a particular industry, and does it contain other information such as location or order that is useful for assembly?

  4. About 'body' inside the 'name' naming method for 'Body' + 'number', and different 'bodies' may contain the same name, what does this number indicate?

5.The last point, about the naming of bodies, occurrences, components, similar to 20215_e2eb3082 in occurrences: 03fd7a74-05b5-11ec-ba40-0a17b33ae929, component: 03fcde40-05b5- 11ec-8cdf-0a17b33ae929, bodies: 03f2f326-05b5-11ec-9d62-0a17b33ae929, do these numbers and letters have any special meaning?

Hope to get your reply!
Thank you as always and have a nice day !

@karldd
Copy link
Collaborator

karldd commented Oct 14, 2022

Re: 1

So the tree element in the assembly.json file comes from the Fusion 360 browser (see 4 in the image below)

When a CAD model is created the designer can create and nest multiple layers of components. This becomes the tree structure.

One way to understand this is to rebuild the CAD and inspect it manually in Fusion 360 using this script: https://github.com/AutodeskAILab/Fusion360GalleryDataset/tree/master/tools/assembly2cad

Re: 2
Here is what is different between occurrences, components, and bodies:

Element Description
occurrences Instances of components, referencing the parent component with instance properties such as location, orientation, and visibility
components Components containing bodies or other components to form sub-assemblies
bodies The underlying 3D shape geometry in the B-Rep format

Re: 3
Yes occurrences contain various information such as:

{
    "occurrences": {
        "5090334c-05a1-11ec-96cd-0621f375c677": {
            "bodies": {...},
            "component": "508d9b40-05a1-11ec-9d41-0621f375c677",
            "is_grounded": true,
            "is_visible": true,
            "name": "steering upright",
            "physical_properties": {...},
            "transform": {...},
            "type": "Occurrence",
            "valid_occ_name": true
        },
        ...
    }
}

The location is contained in the transform.

Re: 4
Not sure I understand this question. Can you elaborate?

Re: 5
These numbers are called UUID's that are the unique keys to find the element in the json.

@nylvy
Copy link
Author

nylvy commented Oct 15, 2022

Thank you for your reply.
Regarding the fourth point of concern I'll use the information of the assembly 20215_e2eb3082 in the assembly dataset to express my confusion. The bodies level of this assembly data contains a 'name' information, e.g. name='Body1', name='Body2' etc. Does the number after this Body have any meaning?

@nylvy
Copy link
Author

nylvy commented Oct 15, 2022

Also about the source of this data, you said it was obtained by parsing this .f3d using Fusion 360 python API, I wonder if you have the intention to open source this parser?

@karldd
Copy link
Collaborator

karldd commented Oct 15, 2022

So you mean the 1 in Body1. That is the default naming used in Fusion 360.

FYI
If you want to reference a body (i.e. the actual 3D geometry) you will need to reference it using the UUID in the file name.
So for example with this simple one: https://github.com/AutodeskAILab/Fusion360GalleryDataset/tree/master/tools/testdata/assembly_examples/belt_clamp

8b4e1828-b296-11eb-9d3c-f21898acd3b7.smt and 8b4e5752-b296-11eb-9d3c-f21898acd3b7.smt are two bodies. One of them is the screw and one of them is the plate.

Assembly

There are two components - one is the root component containing the plate, and one is the screw component.
There are four occurrences for each of the repeated screws used in the design.

@karldd
Copy link
Collaborator

karldd commented Oct 15, 2022

Also about the source of this data, you said it was obtained by parsing this .f3d using Fusion 360 python API, I wonder if you have the intention to open source this parser?

Yes we parsed the .f3d files using the python API. Unfortunately we don't have plans to release this code.

@nylvy
Copy link
Author

nylvy commented Oct 15, 2022

So you mean the 1 in Body1. That is the default naming used in Fusion 360.

FYI If you want to reference a body (i.e. the actual 3D geometry) you will need to reference it using the UUID in the file name. So for example with this simple one: https://github.com/AutodeskAILab/Fusion360GalleryDataset/tree/master/tools/testdata/assembly_examples/belt_clamp

8b4e1828-b296-11eb-9d3c-f21898acd3b7.smt and 8b4e5752-b296-11eb-9d3c-f21898acd3b7.smt are two bodies. One of them is the screw and one of them is the plate.

Assembly

There are two components - one is the root component containing the plate, and one is the screw component. There are four occurrences for each of the repeated screws used in the design.

Your response was so timely and I appreciate you being so patient in answering my questions, however, the answer here raises three other minor questions for me.
1.Why the tree here contains only four ocurrence's uuid, four screws and a plane why not 5 ocurrence's uuid.

2.What kind of components and bodies are put into the root hierarchy, and are there any characteristics of the components and bodies that are put into the root hierarchy?

3.Does there exist assembly data for a component that contains multiple bodies, and if so, is it possible to give information about this assembly data so that I can quickly retrieve it in the dataset.

Thank you as always and have a nice day !

@karldd
Copy link
Collaborator

karldd commented Oct 15, 2022

1.Why the tree here contains only four ocurrence's uuid, four screws and a plane why not 5 ocurrence's uuid.

This is because there is one body in the root component (which by definition there can be only one root, so therefore no occurrences). Occurrences will exist for all regular components, just not the root.

2.What kind of components and bodies are put into the root hierarchy, and are there any characteristics of the components and bodies that are put into the root hierarchy?

This really depends on the designers preferences.

3.Does there exist assembly data for a component that contains multiple bodies, and if so, is it possible to give information about this assembly data so that I can quickly retrieve it in the dataset.

Yes that is possible. What I would suggest you do to understand how the assemblies are structured is to rebuild them and inspect them manually in Fusion 360 using this script: https://github.com/AutodeskAILab/Fusion360GalleryDataset/tree/master/tools/assembly2cad

@nylvy
Copy link
Author

nylvy commented Oct 17, 2022

1.Why the tree here contains only four ocurrence's uuid, four screws and a plane why not 5 ocurrence's uuid.

This is because there is one body in the root component (which by definition there can be only one root, so therefore no occurrences). Occurrences will exist for all regular components, just not the root.

2.What kind of components and bodies are put into the root hierarchy, and are there any characteristics of the components and bodies that are put into the root hierarchy?

This really depends on the designers preferences.

3.Does there exist assembly data for a component that contains multiple bodies, and if so, is it possible to give information about this assembly data so that I can quickly retrieve it in the dataset.

Yes that is possible. What I would suggest you do to understand how the assemblies are structured is to rebuild them and inspect them manually in Fusion 360 using this script: https://github.com/AutodeskAILab/Fusion360GalleryDataset/tree/master/tools/assembly2cad

Ok, thanks for your reply, I will try to rebuild it to understand it better.
Thank you as always and have a nice day !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants