Viewport
The Viewport category in the @itwin/imodel-components-react
package includes
classes and components for working with a Viewport.
Component and Properties
The ViewportComponent React component is wrapper for a ScreenViewport. The ViewportProps interface defines the properties for the ViewportComponent.
The imodel
prop is required and specifies the IModelConnection to display.
Either the viewDefinitionId
prop or the viewState
prop is required to specify a starting view point.
The viewDefinitionId
is the Id of a default view definition to load.
The viewState
is the ViewState to use as a starting point.
The viewportRef
specifies a function that receives the ScreenViewport created by the component and
allows the component user a chance to save it. When using @itwin/appui-react
and
Frontstages, setting ViewportContentControl.viewport
notifies the FrontstageManager that the
content view is ready.
Sample using Presentation Rules
Simple Viewport Component
This React component utilizes the ViewportComponent component and viewWithUnifiedSelection HOC to create a HOC viewport component that supports unified selection.
import * as React from "react";
import { ViewportComponent, ViewportProps } from "@itwin/imodel-components-react";
import { viewWithUnifiedSelection } from "@itwin/presentation-components";
// create a HOC viewport component that supports unified selection
// eslint-disable-next-line @typescript-eslint/naming-convention
const SimpleViewport = viewWithUnifiedSelection(ViewportComponent);
/** React properties for the viewport component */
export interface SimpleViewportComponentProps extends ViewportProps {
/** ID of the presentation rule set to use for unified selection */
rulesetId: string;
}
/** Viewport component for the viewer app */
export default class SimpleViewportComponent extends React.Component<SimpleViewportComponentProps> {
public render() {
return (
<SimpleViewport
viewportRef={this.props.viewportRef}
imodel={this.props.imodel}
viewDefinitionId={this.props.viewDefinitionId}
viewState={this.props.viewState}
ruleset={this.props.rulesetId}
/>
);
}
}
Using the SimpleViewportComponent component
const rulesetId = "Default";
. . .
<SimpleViewportComponent
imodel={this.props.imodel}
rulesetId={rulesetId}
viewDefinitionId={this.props.viewDefinitionId} />
API Reference
Last Updated: 30 November, 2023